summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2015-03-10 08:47:55 +0100
committerGéry Debongnie <ged@odoo.com>2015-03-18 09:09:22 +0100
commit5e6171bb6f43a2e0c35152fe456125ec8e1fd77e (patch)
tree3a016f21068fc724db379fdda3e7bfa16a8c08f1
parent90050c24bb3331189329414d81ace9e839387377 (diff)
[REF] various addons: update to the new module system
-rw-r--r--addons/mail_tip/static/src/js/mail_tip.js25
-rw-r--r--addons/pad/static/src/js/pad.js169
-rw-r--r--addons/project/static/src/js/project.js85
-rw-r--r--addons/purchase_requisition/static/src/js/web_addons.js57
-rw-r--r--addons/report/static/src/js/qwebactionmanager.js179
-rw-r--r--addons/sales_team/static/src/js/sales_team.js88
-rw-r--r--addons/share/static/src/js/share.js222
7 files changed, 438 insertions, 387 deletions
diff --git a/addons/mail_tip/static/src/js/mail_tip.js b/addons/mail_tip/static/src/js/mail_tip.js
index 1b6253d42dd..fefc95e5dbb 100644
--- a/addons/mail_tip/static/src/js/mail_tip.js
+++ b/addons/mail_tip/static/src/js/mail_tip.js
@@ -1,9 +1,16 @@
-openerp.mail_tip = function(session) {
- session.mail.Thread.include({
- message_fetch: function() {
- return this._super.apply(this, arguments).done(function() {
- openerp.web.bus.trigger('chatter_messages_fetched');
- });
- }
- });
-};
+odoo.define(['mail.mail', 'web.core'], function (require) {
+"use strict";
+
+var mail = require('mail.mail');
+var core = require('web.core');
+
+mail.Thread.include({
+ message_fetch: function() {
+ return this._super.apply(this, arguments).done(function() {
+ core.bus.trigger('chatter_messages_fetched');
+ });
+ }
+});
+
+});
+
diff --git a/addons/pad/static/src/js/pad.js b/addons/pad/static/src/js/pad.js
index a6f2ce69553..53b7d18b964 100644
--- a/addons/pad/static/src/js/pad.js
+++ b/addons/pad/static/src/js/pad.js
@@ -1,88 +1,91 @@
-openerp.pad = function(instance) {
- var _t = instance.web._t;
-
- instance.web.form.FieldPad = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeWidgetMixin, {
- template: 'FieldPad',
- content: "",
- init: function() {
- var self = this;
- this._super.apply(this, arguments);
- this._configured_deferred = this.view.dataset.call('pad_is_configured').done(function(data) {
- self.set("configured", !!data);
- }).fail(function(data, event) {
- event.preventDefault();
- self.set("configured", true);
- });
- this.pad_loading_request = null;
- },
- initialize_content: function() {
- var self = this;
- this.$('.oe_pad_switch').click(function() {
- self.$el.toggleClass('oe_pad_fullscreen');
- self.$el.find('.oe_pad_switch').toggleClass('fa-expand fa-compress');
- self.view.$el.find('.oe_chatter').toggle();
- $('#oe_main_menu_navbar').toggle();
- });
- this._configured_deferred.always(function() {
- var configured = self.get('configured');
- self.$(".oe_unconfigured").toggle(!configured);
- self.$(".oe_configured").toggle(configured);
- });
- this.render_value();
- },
- render_value: function() {
- var self = this;
- $.when(this._configured_deferred, this.pad_loading_request).always(function() {
- if (! self.get('configured')) {
- return;
- };
- var value = self.get('value');
- if (self.get('effective_readonly')) {
- if (_.str.startsWith(value, 'http')) {
- self.pad_loading_request = self.view.dataset.call('pad_get_content', {url: value}).done(function(data) {
- self.$('.oe_pad_content').removeClass('oe_pad_loading').html('<div class="oe_pad_readonly"><div>');
- self.$('.oe_pad_readonly').html(data);
- }).fail(function() {
- self.$('.oe_pad_content').text(_t('Unable to load pad'));
- });
- } else {
- self.$('.oe_pad_content').addClass('oe_pad_loading').show().text(_t("This pad will be initialized on first edit"));
- }
+odoo.define('pad.pad', ['web.core', 'web.form_common'], function (require) {
+
+var core = require('web.core');
+var form_common = require('web.form_common');
+
+var _t = core._t;
+
+var FieldPad = form_common.AbstractField.extend(form_common.ReinitializeWidgetMixin, {
+ template: 'FieldPad',
+ content: "",
+ init: function() {
+ var self = this;
+ this._super.apply(this, arguments);
+ this._configured_deferred = this.view.dataset.call('pad_is_configured').done(function(data) {
+ self.set("configured", !!data);
+ }).fail(function(data, event) {
+ event.preventDefault();
+ self.set("configured", true);
+ });
+ this.pad_loading_request = null;
+ },
+ initialize_content: function() {
+ var self = this;
+ this.$('.oe_pad_switch').click(function() {
+ self.$el.toggleClass('oe_pad_fullscreen');
+ self.$el.find('.oe_pad_switch').toggleClass('fa-expand fa-compress');
+ self.view.$el.find('.oe_chatter').toggle();
+ $('#oe_main_menu_navbar').toggle();
+ });
+ this._configured_deferred.always(function() {
+ var configured = self.get('configured');
+ self.$(".oe_unconfigured").toggle(!configured);
+ self.$(".oe_configured").toggle(configured);
+ });
+ this.render_value();
+ },
+ render_value: function() {
+ var self = this;
+ $.when(this._configured_deferred, this.pad_loading_request).always(function() {
+ if (! self.get('configured')) {
+ return;
+ }
+ var value = self.get('value');
+ if (self.get('effective_readonly')) {
+ if (_.str.startsWith(value, 'http')) {
+ self.pad_loading_request = self.view.dataset.call('pad_get_content', {url: value}).done(function(data) {
+ self.$('.oe_pad_content').removeClass('oe_pad_loading').html('<div class="oe_pad_readonly"><div>');
+ self.$('.oe_pad_readonly').html(data);
+ }).fail(function() {
+ self.$('.oe_pad_content').text(_t('Unable to load pad'));
+ });
+ } else {
+ self.$('.oe_pad_content').addClass('oe_pad_loading').show().text(_t("This pad will be initialized on first edit"));
}
- else {
- var def = $.when();
- if (! value || !_.str.startsWith(value, 'http')) {
- def = self.view.dataset.call('pad_generate_url', {
- context: {
- model: self.view.model,
- field_name: self.name,
- object_id: self.view.datarecord.id
- },
- }).done(function(data) {
- if (! data.url) {
- self.set("configured", false);
- } else {
- self.set("value", data.url);
- }
- });
- }
- def.then(function() {
- value = self.get('value');
- if (_.str.startsWith(value, 'http')) {
- var content = '<iframe width="100%" height="100%" frameborder="0" src="' + value + '?showChat=false&userName=' + self.session.username + '"></iframe>';
- self.$('.oe_pad_content').html(content);
- self._dirty_flag = true;
- }
- else {
- self.$('.oe_pad_content').text(value);
+ }
+ else {
+ var def = $.when();
+ if (! value || !_.str.startsWith(value, 'http')) {
+ def = self.view.dataset.call('pad_generate_url', {
+ context: {
+ model: self.view.model,
+ field_name: self.name,
+ object_id: self.view.datarecord.id
+ },
+ }).done(function(data) {
+ if (! data.url) {
+ self.set("configured", false);
+ } else {
+ self.set("value", data.url);
}
});
}
- });
- },
- });
+ def.then(function() {
+ value = self.get('value');
+ if (_.str.startsWith(value, 'http')) {
+ var content = '<iframe width="100%" height="100%" frameborder="0" src="' + value + '?showChat=false&userName=' + self.session.username + '"></iframe>';
+ self.$('.oe_pad_content').html(content);
+ self._dirty_flag = true;
+ }
+ else {
+ self.$('.oe_pad_content').text(value);
+ }
+ });
+ }
+ });
+ },
+});
+
+core.form_widget_registry.add('pad', FieldPad);
- instance.web.form.widgets = instance.web.form.widgets.extend({
- 'pad': 'instance.web.form.FieldPad',
- });
-};
+}); \ No newline at end of file
diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js
index 3c0f694b605..057a6913d9a 100644
--- a/addons/project/static/src/js/project.js
+++ b/addons/project/static/src/js/project.js
@@ -1,45 +1,52 @@
-openerp.project = function(openerp) {
- openerp.web_kanban.KanbanView.include({
- project_display_members_names: function() {
- /*
- * Set avatar title for members.
- * In kanban views, many2many fields only return a list of ids.
- * We can implement return value of m2m fields like [(1,"Adminstration"),...].
- */
- var self = this;
- var members_ids = [];
+odoo.define('project.update_kanban', ['web_kanban.common', 'web_kanban.KanbanView', 'web.data', 'web.session'], function (require) {
- // Collect members ids
- self.$el.find('img[data-member_id]').each(function() {
- members_ids.push($(this).data('member_id'));
- });
+var kanban_common = require('web_kanban.common');
+var KanbanView = require('web_kanban.KanbanView');
+var data = require('web.data');
+var session = require('web.session');
+
+KanbanView.include({
+ project_display_members_names: function() {
+ /*
+ * Set avatar title for members.
+ * In kanban views, many2many fields only return a list of ids.
+ * We can implement return value of m2m fields like [(1,"Adminstration"),...].
+ */
+ var self = this;
+ var members_ids = [];
+
+ // Collect members ids
+ self.$el.find('img[data-member_id]').each(function() {
+ members_ids.push($(this).data('member_id'));
+ });
- // Find their matching names
- var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
- dataset.read_slice(['id', 'name']).done(function(result) {
- _.each(result, function(v, k) {
- // Set the proper value in the DOM
- self.$el.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tooltip();
- });
+ // Find their matching names
+ var dataset = new data.DataSetSearch(self, 'res.users', session.context, [['id', 'in', _.uniq(members_ids)]]);
+ dataset.read_slice(['id', 'name']).done(function(result) {
+ _.each(result, function(v, k) {
+ // Set the proper value in the DOM
+ self.$el.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tooltip();
});
- },
- on_groups_started: function() {
- var self = this;
- self._super.apply(self, arguments);
+ });
+ },
+ on_groups_started: function() {
+ var self = this;
+ self._super.apply(self, arguments);
+
+ if (self.dataset.model === 'project.project') {
+ self.project_display_members_names();
+ }
+ }
+});
- if (self.dataset.model === 'project.project') {
- self.project_display_members_names();
- }
+kanban_common.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'project.project') {
+ this.$('.oe_kanban_project_list a').first().click();
+ } else {
+ this._super.apply(this, arguments);
}
- });
+ },
+});
- openerp.web_kanban.KanbanRecord.include({
- on_card_clicked: function() {
- if (this.view.dataset.model === 'project.project') {
- this.$('.oe_kanban_project_list a').first().click();
- } else {
- this._super.apply(this, arguments);
- }
- },
- });
-};
+});
diff --git a/addons/purchase_requisition/static/src/js/web_addons.js b/addons/purchase_requisition/static/src/js/web_addons.js
index 7b58feb2555..571b69d3ce0 100644
--- a/addons/purchase_requisition/static/src/js/web_addons.js
+++ b/addons/purchase_requisition/static/src/js/web_addons.js
@@ -1,27 +1,34 @@
-openerp.purchase_requisition = function(instance) {
- var QWeb = instance.web.qweb,
- _t = instance.web._t;
+odoo.define('purchase_requisition.purchase_requisition', ['web.core', 'web.ListView', 'web.Model'], function (require) {
+"use strict";
- instance.web.purchase_requisition = instance.web.purchase_requisition || {};
+var core = require('web.core');
+var Model = require('web.Model');
+var ListView = require('web.ListView');
- instance.web.views.add('tree_purchase_order_line_compare', 'instance.web.purchase_requisition.CompareListView');
- instance.web.purchase_requisition.CompareListView = instance.web.ListView.extend({
- init: function() {
- var self = this;
- this._super.apply(this, arguments);
- this.on('list_view_loaded', this, function() {
- if(self.__parentedParent.$el.find('.oe_generate_po').length == 0){
- var button = $("<button type='button' class='oe_button oe_highlight oe_generate_po'>Generate PO</button>")
- .click(this.proxy('generate_purchase_order'));
- self.__parentedParent.$el.find('.oe_list_buttons').append(button);
- }
- });
- },
- generate_purchase_order: function () {
- var self = this;
- new instance.web.Model(self.dataset.model).call("generate_po",[self.dataset.context.tender_id,self.dataset.context]).then(function(result) {
- self.ViewManager.ActionManager.history_back();
- });
- },
- });
-}
+var QWeb = core.qweb;
+var _t = core._t;
+
+
+var CompareListView = ListView.extend({
+ init: function() {
+ var self = this;
+ this._super.apply(this, arguments);
+ this.on('list_view_loaded', this, function() {
+ if(self.__parentedParent.$el.find('.oe_generate_po').length == 0){
+ var button = $("<button type='button' class='oe_button oe_highlight oe_generate_po'>Generate PO</button>")
+ .click(this.proxy('generate_purchase_order'));
+ self.__parentedParent.$el.find('.oe_list_buttons').append(button);
+ }
+ });
+ },
+ generate_purchase_order: function () {
+ var self = this;
+ new Model(self.dataset.model).call("generate_po",[self.dataset.context.tender_id,self.dataset.context]).then(function(result) {
+ self.ViewManager.ActionManager.history_back();
+ });
+ },
+});
+
+core.view_registry.add('tree_purchase_order_line_compare', CompareListView);
+
+});
diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js
index 74de70d03dd..339ae7d20c6 100644
--- a/addons/report/static/src/js/qwebactionmanager.js
+++ b/addons/report/static/src/js/qwebactionmanager.js
@@ -1,97 +1,106 @@
-openerp.report = function(instance) {
- var wkhtmltopdf_state;
+odoo.define('report.report', ['web.ActionManager', 'web.core', 'web.crash_manager', 'web.framework', 'web.session'], function (require) {
- var trigger_download = function(session, response, c, action, options) {
- session.get_file({
- url: '/report/download',
- data: {data: JSON.stringify(response)},
- complete: openerp.web.unblockUI,
- error: c.rpc_error.bind(c),
- success: function(){
- if (action && options && !action.dialog) {
- options.on_close();
- }
- },
- });
- };
+var ActionManager = require('web.ActionManager');
+var core = require('web.core');
+var crash_manager = require('web.crash_manager');
+var framework = require('web.framework');
+var session = require('web.session');
- instance.web.ActionManager = instance.web.ActionManager.extend({
- ir_actions_report_xml: function(action, options) {
- var self = this;
- instance.web.blockUI();
- action = _.clone(action);
- _t = instance.web._t;
+var _t = core._t;
+var wkhtmltopdf_state;
- // QWeb reports
- if ('report_type' in action && (action.report_type == 'qweb-html' || action.report_type == 'qweb-pdf' || action.report_type == 'controller')) {
- var report_url = '';
- switch (action.report_type) {
- case 'qweb-html':
- report_url = '/report/html/' + action.report_name;
- break;
- case 'qweb-pdf':
- report_url = '/report/pdf/' + action.report_name;
- break;
- case 'controller':
- report_url = action.report_file;
- break;
- default:
- report_url = '/report/html/' + action.report_name;
- break;
- }
+var trigger_download = function(session, response, c, action, options) {
+ session.get_file({
+ url: '/report/download',
+ data: {data: JSON.stringify(response)},
+ complete: framework.unblockUI,
+ error: c.rpc_error.bind(c),
+ success: function(){
+ if (action && options && !action.dialog) {
+ options.on_close();
+ }
+ },
+ });
+};
- // generic report: no query string
- // particular: query string of action.data.form and context
- if (!('data' in action) || !(action.data)) {
- if ('active_ids' in action.context) {
- report_url += "/" + action.context.active_ids.join(',');
- }
- } else {
- report_url += "?options=" + encodeURIComponent(JSON.stringify(action.data));
- report_url += "&context=" + encodeURIComponent(JSON.stringify(action.context));
+ActionManager.include({
+ ir_actions_report_xml: function(action, options) {
+ var self = this;
+ framework.blockUI();
+ action = _.clone(action);
+ _t = core._t;
+
+ // QWeb reports
+ if ('report_type' in action && (action.report_type == 'qweb-html' || action.report_type == 'qweb-pdf' || action.report_type == 'controller')) {
+ var report_url = '';
+ switch (action.report_type) {
+ case 'qweb-html':
+ report_url = '/report/html/' + action.report_name;
+ break;
+ case 'qweb-pdf':
+ report_url = '/report/pdf/' + action.report_name;
+ break;
+ case 'controller':
+ report_url = action.report_file;
+ break;
+ default:
+ report_url = '/report/html/' + action.report_name;
+ break;
+ }
+
+ // generic report: no query string
+ // particular: query string of action.data.form and context
+ if (!('data' in action) || !(action.data)) {
+ if ('active_ids' in action.context) {
+ report_url += "/" + action.context.active_ids.join(',');
}
+ } else {
+ report_url += "?options=" + encodeURIComponent(JSON.stringify(action.data));
+ report_url += "&context=" + encodeURIComponent(JSON.stringify(action.context));
+ }
- var response = new Array();
- response[0] = report_url;
- response[1] = action.report_type;
- var c = openerp.webclient.crashmanager;
+ var response = new Array();
+ response[0] = report_url;
+ response[1] = action.report_type;
+ var c = crash_manager;
- if (action.report_type == 'qweb-html') {
- window.open(report_url, '_blank', 'scrollbars=1,height=900,width=1280');
- instance.web.unblockUI();
- } else if (action.report_type === 'qweb-pdf') {
- // Trigger the download of the pdf/controller report
- (wkhtmltopdf_state = wkhtmltopdf_state || openerp.session.rpc('/report/check_wkhtmltopdf')).then(function (presence) {
- // Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker
- if (presence === 'install') {
- self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \
+ if (action.report_type == 'qweb-html') {
+ window.open(report_url, '_blank', 'scrollbars=1,height=900,width=1280');
+ framework.unblockUI();
+ } else if (action.report_type === 'qweb-pdf') {
+ // Trigger the download of the pdf/controller report
+ (wkhtmltopdf_state = wkhtmltopdf_state || session.rpc('/report/check_wkhtmltopdf')).then(function (presence) {
+ // Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker
+ if (presence === 'install') {
+ self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \
system. The report will be shown in html.<br><br><a href="http://wkhtmltopdf.org/" target="_blank">\
wkhtmltopdf.org</a>'), true);
- report_url = report_url.substring(12)
- window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
- instance.web.unblockUI();
- return;
- } else if (presence === 'workers') {
- self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \
+ report_url = report_url.substring(12);
+ window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
+ framework.unblockUI();
+ return;
+ } else if (presence === 'workers') {
+ self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \
workers to print a pdf version of the reports.'), true);
- report_url = report_url.substring(12)
- window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
- instance.web.unblockUI();
- return;
- } else if (presence === 'upgrade') {
- self.do_notify(_t('Report'), _t('You should upgrade your version of\
- Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\
- support for table-breaking between pages.<br><br><a href="http://wkhtmltopdf.org/" \
- target="_blank">wkhtmltopdf.org</a>'), true);
- }
- return trigger_download(self.session, response, c, action, options);
- });
- } else if (action.report_type === 'controller') {
+ report_url = report_url.substring(12);
+ window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
+ framework.unblockUI();
+ return;
+ } else if (presence === 'upgrade') {
+ self.do_notify(_t('Report'), _t('You should upgrade your version of\
+Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\
+support for table-breaking between pages.<br><br><a href="http://wkhtmltopdf.org/" \
+target="_blank">wkhtmltopdf.org</a>'), true);
+ }
return trigger_download(self.session, response, c, action, options);
- }
- } else {
- return self._super(action, options);
- }
+ });
+ } else if (action.report_type === 'controller') {
+ return trigger_download(self.session, response, c, action, options);
+ }
+ } else {
+ return self._super(action, options);
}
- });
-};
+ }
+});
+
+});
diff --git a/addons/sales_team/static/src/js/sales_team.js b/addons/sales_team/static/src/js/sales_team.js
index 93f6c4dc536..8a48c03a3fe 100644
--- a/addons/sales_team/static/src/js/sales_team.js
+++ b/addons/sales_team/static/src/js/sales_team.js
@@ -1,45 +1,53 @@
-openerp.crm = function(openerp) {
- openerp.web_kanban.KanbanView.include({
- crm_display_members_names: function() {
- /*
- * Set avatar title for members.
- * In kanban views, many2many fields only return a list of ids.
- * We can implement return value of m2m fields like [(1,"Adminstration"),...].
- */
- var self = this;
- var members_ids = [];
+odoo.define('sales_team.update_kanban', ['web_kanban.KanbanView', 'web_kanban.common', 'web.data', 'web.session'], function (require) {
+"use strict";
- // Collect members ids
- self.$el.find('img[data-member_id]').each(function() {
- members_ids.push($(this).data('member_id'));
- });
+var KanbanView = require('web_kanban.KanbanView');
+var kanban_common = require('web_kanban.common');
+var data = require('web.data');
+var session = require('web.session');
+
+KanbanView.include({
+ crm_display_members_names: function() {
+ /*
+ * Set avatar title for members.
+ * In kanban views, many2many fields only return a list of ids.
+ * We can implement return value of m2m fields like [(1,"Adminstration"),...].
+ */
+ var self = this;
+ var members_ids = [];
- // Find their matching names
- var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
- dataset.read_slice(['id', 'name']).done(function(result) {
- _.each(result, function(v, k) {
- // Set the proper value in the DOM
- self.$el.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tooltip();
- });
+ // Collect members ids
+ self.$el.find('img[data-member_id]').each(function() {
+ members_ids.push($(this).data('member_id'));
+ });
+
+ // Find their matching names
+ var dataset = new data.DataSetSearch(self, 'res.users', session.context, [['id', 'in', _.uniq(members_ids)]]);
+ dataset.read_slice(['id', 'name']).done(function(result) {
+ _.each(result, function(v) {
+ // Set the proper value in the DOM
+ self.$el.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tooltip();
});
- },
- on_groups_started: function() {
- var self = this;
- self._super.apply(self, arguments);
+ });
+ },
+ on_groups_started: function() {
+ var self = this;
+ self._super.apply(self, arguments);
+
+ if (self.dataset.model === 'crm.team') {
+ self.crm_display_members_names();
+ }
+ },
+});
- if (self.dataset.model === 'crm.team') {
- self.crm_display_members_names();
- }
- },
- });
+kanban_common.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'crm.team') {
+ this.$('.oe_kanban_crm_salesteams_list a').first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+});
- openerp.web_kanban.KanbanRecord.include({
- on_card_clicked: function() {
- if (this.view.dataset.model === 'crm.team') {
- this.$('.oe_kanban_crm_salesteams_list a').first().click();
- } else {
- this._super.apply(this, arguments);
- }
- },
- });
-};
+});
diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js
index 530b07c2b71..6a8d142ab7e 100644
--- a/addons/share/static/src/js/share.js
+++ b/addons/share/static/src/js/share.js
@@ -1,122 +1,132 @@
+odoo.define(['mail.mail', 'web.core', 'web.data', 'web.Model', 'web.pyeval', 'web.session', 'web.Sidebar', 'web.ViewManager'], function (require) {
-openerp.share = function(session) {
- var _t = session.web._t;
- var has_action_id = false;
+var mail = require('mail.mail');
+var core = require('web.core');
+var data = require('web.data');
+var Model = require('web.Model');
+var pyeval = require('web.pyeval');
+var session = require('web.session');
+var Sidebar = require('web.Sidebar');
+var ViewManager = require('web.ViewManager');
- function launch_wizard(self, view, user_type, invite) {
- var action = view.getParent().action;
- var Share = new session.web.DataSet(self, 'share.wizard', view.dataset.get_context());
- var domain = new session.web.CompoundDomain(view.dataset.domain);
- if (view.fields_view.type == 'form') {
- domain = new session.web.CompoundDomain(domain, [['id', '=', view.datarecord.id]]);
- }
- if (view.fields_view.type == 'form') rec_name = view.datarecord.name;
- else rec_name = '';
- session.web.pyeval.eval_domains_and_contexts({
- domains: [domain],
- contexts: [Share.get_context()]
- }).done(function (result) {
- Share.create({
- name: action.name,
- record_name: rec_name,
- domain: result.domain,
- action_id: action.id,
- user_type: user_type || 'embedded',
- view_type: view.fields_view.type,
- invite: invite || false,
- }).done(function(share_id) {
- var step1 = Share.call('go_step_1', [[share_id], Share.get_context()]).done(function(result) {
- var action = result;
- self.do_action(action);
- });
+var _t = core._t;
+var has_action_id = false;
+
+function launch_wizard(self, view, user_type, invite) {
+ var action = view.getParent().action;
+ var Share = new data.DataSet(self, 'share.wizard', view.dataset.get_context());
+ var domain = new data.CompoundDomain(view.dataset.domain);
+ var rec_name;
+ if (view.fields_view.type == 'form') {
+ domain = new data.CompoundDomain(domain, [['id', '=', view.datarecord.id]]);
+ }
+ if (view.fields_view.type == 'form') rec_name = view.datarecord.name;
+ else rec_name = '';
+ pyeval.eval_domains_and_contexts({
+ domains: [domain],
+ contexts: [Share.get_context()]
+ }).done(function (result) {
+ Share.create({
+ name: action.name,
+ record_name: rec_name,
+ domain: result.domain,
+ action_id: action.id,
+ user_type: user_type || 'embedded',
+ view_type: view.fields_view.type,
+ invite: invite || false,
+ }).done(function(share_id) {
+ Share.call('go_step_1', [[share_id], Share.get_context()]).done(function(result) {
+ var action = result;
+ self.do_action(action);
});
});
- }
+ });
+}
- function has_share(yes, no) {
- if (!session.session.share_flag) {
- session.session.share_flag = $.Deferred(function() {
- var func = new session.web.Model("share.wizard").get_func("has_share");
- func(session.session.uid).then(function(res) {
- if(res) {
- session.session.share_flag.resolve();
- } else {
- session.session.share_flag.reject();
- }
- });
+function has_share(yes, no) {
+ if (!session.share_flag) {
+ session.share_flag = $.Deferred(function() {
+ var func = new Model("share.wizard").get_func("has_share");
+ func(session.uid).then(function(res) {
+ if(res) {
+ session.share_flag.resolve();
+ } else {
+ session.share_flag.reject();
+ }
});
- }
- session.session.share_flag.done(yes).fail(no);
+ });
}
+ session.share_flag.done(yes).fail(no);
+}
- /* Extend the Sidebar to add Share and Embed links in the 'More' menu */
- session.web.Sidebar = session.web.Sidebar.extend({
+/* Extend the Sidebar to add Share and Embed links in the 'More' menu */
+Sidebar.include({
- start: function() {
- var self = this;
- this._super(this);
- has_share(function() {
- self.add_items('other', [
- { label: _t('Share'),
- callback: self.on_click_share,
- classname: 'oe_share' },
- { label: _t('Embed'),
- callback: self.on_click_share_link,
- classname: 'oe_share' },
- ]);
- });
- },
+ start: function() {
+ var self = this;
+ this._super(this);
+ has_share(function() {
+ self.add_items('other', [
+ { label: _t('Share'),
+ callback: self.on_click_share,
+ classname: 'oe_share' },
+ { label: _t('Embed'),
+ callback: self.on_click_share_link,
+ classname: 'oe_share' },
+ ]);
+ });
+ },
- on_click_share: function(item) {
- var view = this.getParent()
- launch_wizard(this, view, 'emails', false);
- },
+ on_click_share: function() {
+ var view = this.getParent();
+ launch_wizard(this, view, 'emails', false);
+ },
- on_click_share_link: function(item) {
- var view = this.getParent()
- launch_wizard(this, view, 'embedded', false);
- },
- });
+ on_click_share_link: function() {
+ var view = this.getParent();
+ launch_wizard(this, view, 'embedded', false);
+ },
+});
- /**
- * Extends mail (Chatter widget)
- * - show the 'invite' button' only we came on the form view through
- * an action. We do this because 'invite' is based on the share
- * mechanism, and it tries to share an action.
- */
- session.mail.RecordThread.include( {
- start: function() {
- start_res = this._super.apply(this, arguments);
- if (has_action_id) {
- this.$el.find('button.oe_share_invite').show();
- }
- return start_res;
+/**
+ * Extends mail (Chatter widget)
+ * - show the 'invite' button' only we came on the form view through
+ * an action. We do this because 'invite' is based on the share
+ * mechanism, and it tries to share an action.
+ */
+mail.RecordThread.include( {
+ start: function() {
+ var start_res = this._super.apply(this, arguments);
+ if (has_action_id) {
+ this.$el.find('button.oe_share_invite').show();
}
- });
+ return start_res;
+ }
+});
- session.web.ViewManager.include({
- start: function() {
- var self = this;
- this.check_if_action_is_defined();
- has_share(function() {
- self.$el.delegate('button.oe_share_invite', 'click', self.on_click_share_invite);
- });
- return this._super.apply(this, arguments);
- },
-
- check_if_action_is_defined: function() {
- if (this.action && this.action.id) {
- has_action_id = true;
- }
- else {
- has_action_id = false;
- }
- },
+ViewManager.include({
+ start: function() {
+ var self = this;
+ this.check_if_action_is_defined();
+ has_share(function() {
+ self.$el.delegate('button.oe_share_invite', 'click', self.on_click_share_invite);
+ });
+ return this._super.apply(this, arguments);
+ },
- on_click_share_invite: function(e) {
- e.preventDefault();
- launch_wizard(this, this.views[this.active_view].controller, 'emails', true);
- },
- });
-};
+ check_if_action_is_defined: function() {
+ if (this.action && this.action.id) {
+ has_action_id = true;
+ }
+ else {
+ has_action_id = false;
+ }
+ },
+
+ on_click_share_invite: function(e) {
+ e.preventDefault();
+ launch_wizard(this, this.views[this.active_view].controller, 'emails', true);
+ },
+});
+});