diff options
Diffstat (limited to 'addons/web_editor/static/src')
5 files changed, 29 insertions, 8 deletions
diff --git a/addons/web_editor/static/src/js/content/body_manager.js b/addons/web_editor/static/src/js/content/body_manager.js index 2291aa1d4db..85ace262fc5 100644 --- a/addons/web_editor/static/src/js/content/body_manager.js +++ b/addons/web_editor/static/src/js/content/body_manager.js @@ -1,6 +1,7 @@ odoo.define('web_editor.BodyManager', function (require) { 'use strict'; +var weContext = require('web_editor.context'); var rootWidget = require('web_editor.root_widget'); var ServiceProviderMixin = require('web.ServiceProviderMixin'); var session = require('web.session'); @@ -28,6 +29,27 @@ var BodyManager = rootWidget.RootWidget.extend(ServiceProviderMixin, { session.is_bound ); }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * Automatically add the web_editor context. + * + * @override + */ + _call_service: function (event) { + if (event.data.service === 'ajax' && event.data.method === 'rpc') { + var route = event.data.args[0]; + if (_.str.startsWith(route, '/web/dataset/call_kw/')) { + var params = event.data.args[1]; + params.kwargs.context = _.extend({}, weContext.get(), params.kwargs.context || {}); + params.kwargs.context = JSON.parse(JSON.stringify(params.kwargs.context)); + } + } + return ServiceProviderMixin._call_service.apply(this, arguments); + }, }); return BodyManager; }); diff --git a/addons/web_editor/static/src/js/editor/rte.js b/addons/web_editor/static/src/js/editor/rte.js index 11001cc7a06..8719779c079 100644 --- a/addons/web_editor/static/src/js/editor/rte.js +++ b/addons/web_editor/static/src/js/editor/rte.js @@ -573,8 +573,8 @@ var RTEWidget = Widget.extend({ $el.data('oe-id'), this._getEscapedElement($el).prop('outerHTML'), $el.data('oe-xpath') || null, - withLang ? context : _.omit(context, 'lang') ], + context: withLang ? context : _.extend({}, context, {lang: undefined}), }); }, diff --git a/addons/web_editor/static/src/js/editor/snippets.options.js b/addons/web_editor/static/src/js/editor/snippets.options.js index ab82d34a23b..aed0ca91a66 100644 --- a/addons/web_editor/static/src/js/editor/snippets.options.js +++ b/addons/web_editor/static/src/js/editor/snippets.options.js @@ -1236,7 +1236,6 @@ registry.many2one = SnippetOption.extend({ kwargs: { order: [{name: 'name', asc: false}], limit: 5, - context: weContext.get(), }, }).then(function (result) { self.$search.siblings().remove(); @@ -1275,7 +1274,6 @@ registry.many2one = SnippetOption.extend({ args: [[self.ID]], kwargs: { options: options, - context: weContext.get(), }, }).then(function (html) { $node.html(html); diff --git a/addons/web_editor/static/src/js/editor/translator.js b/addons/web_editor/static/src/js/editor/translator.js index cf9b0a0b085..c6cadb40562 100644 --- a/addons/web_editor/static/src/js/editor/translator.js +++ b/addons/web_editor/static/src/js/editor/translator.js @@ -34,12 +34,12 @@ var RTETranslatorWidget = rte.Class.extend({ method: 'save_html', args: [ [+$el.data('oe-translation-id')], - this._getEscapedElement($el).html(), - context || weContext.get() + this._getEscapedElement($el).html() ], + context: context, }).fail(function (error) { - Dialog.alert(null, error.data.message); - }); + Dialog.alert(null, error.data.message); + }); } return this._super($el, context, withLang === undefined ? true : withLang); }, diff --git a/addons/web_editor/static/src/js/widgets/ace.js b/addons/web_editor/static/src/js/widgets/ace.js index c6cbb43295f..bd5b4a9c47a 100644 --- a/addons/web_editor/static/src/js/widgets/ace.js +++ b/addons/web_editor/static/src/js/widgets/ace.js @@ -593,7 +593,8 @@ var ViewEditor = Widget.extend({ this._rpc({ model: 'ir.ui.view', method: 'write', - args: [[session.id], {arch: session.text}, _.extend(weContext.get(), {lang: null})], + args: [[session.id], {arch: session.text}], + context: _.extend({}, weContext.get(), {lang: undefined}), }).then(function () { self._toggleDirtyInfo(session.id, 'xml', false); def.resolve(); |
