From 8a10e6a688219534d07beadc30cd51e6cbef3020 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 11 Oct 2013 15:56:16 +0200 Subject: [PATCH] [IMP] add a cke widget for monetary fields to make the currency symbol non-editable bzr revid: xmo@openerp.com-20131011135616-3zfvuhoxjzoce78q --- .../website/static/src/js/website.editor.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) 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');