diff options
| author | Xavier Morel <xmo@openerp.com> | 2013-11-07 10:20:18 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2013-11-07 10:20:18 +0100 |
| commit | ea65573b48b35e5d99bc31410941c8363b37614e (patch) | |
| tree | e1560c74a3a9d712cb290b5f2e75b8f918d10326 /addons/website/static/src/js | |
| parent | 11c54b7d7564cf752bd18f93b1ef9a6d7fca82f9 (diff) | |
[ADD] image edition button v0
bzr revid: xmo@openerp.com-20131107092018-66tae9nu1kcft21g
Diffstat (limited to 'addons/website/static/src/js')
| -rw-r--r-- | addons/website/static/src/js/website.editor.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index b23ccf7a9f0..9f5e32ae183 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -63,6 +63,39 @@ link_dialog(editor); }, null, null, 500); + var previousSelection; + editor.on('selectionChange', function (evt) { + var selected = evt.data.path.lastElement; + if (previousSelection) { + // cleanup previous selection + $(previousSelection).next().remove(); + previousSelection = null; + } + if (!selected.is('img') + || selected.data('cke-realelement') + || selected.isReadOnly() + || selected.data('oe-model') === 'ir.ui.view') { + return; + } + + // display button + var $el = $(previousSelection = selected.$); + var $btn = $('<button type="button" class="btn btn-primary" contenteditable="false">Edit</button>') + .insertAfter($el) + .click(function (e) { + e.preventDefault(); + e.stopPropagation(); + image_dialog(editor); + }); + + var position = $el.position(); + $btn.css({ + position: 'absolute', + top: $el.height() / 2 + position.top - $btn.outerHeight() / 2, + left: $el.width() / 2 + position.left - $btn.outerWidth() / 2, + }); + }); + //noinspection JSValidateTypes editor.addCommand('link', { exec: function (editor) { |
