diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index 217d7fd24ee..30514b25780 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -162,9 +162,17 @@ editables: { text: '*' }, upcast: function (el) { - return el.attributes['data-oe-type']; + return el.attributes['data-oe-type'] + && el.attributes['data-oe-type'] !== 'monetary'; }, }); + editor.widgets.add('monetary', { + editables: { text: 'span.oe_currency_value' }, + + upcast: function (el) { + return el.attributes['data-oe-type'] === 'monetary'; + } + }); } }); @@ -346,12 +354,17 @@ var self = this; // setup dirty-marking for each editable element this.fetch_editables(root) - .prop('contentEditable', true) .addClass('oe_editable') .each(function () { var node = this; - observer.observe(node, OBSERVER_CONFIG); var $node = $(node); + // only explicitly set contenteditable on view sections, + // cke widgets system will do the widgets themselves + if ($node.data('oe-model') === 'ir.ui.view') { + node.contentEditable = true; + } + + observer.observe(node, OBSERVER_CONFIG); $node.one('content_changed', function () { $node.addClass('oe_dirty'); self.trigger('change');