summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/editor/rte.summernote.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website/static/src/js/editor/rte.summernote.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website/static/src/js/editor/rte.summernote.js')
-rw-r--r--addons/website/static/src/js/editor/rte.summernote.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/addons/website/static/src/js/editor/rte.summernote.js b/addons/website/static/src/js/editor/rte.summernote.js
new file mode 100644
index 00000000..36cadca7
--- /dev/null
+++ b/addons/website/static/src/js/editor/rte.summernote.js
@@ -0,0 +1,59 @@
+odoo.define('website.rte.summernote', function (require) {
+'use strict';
+
+var core = require('web.core');
+require('web_editor.rte.summernote');
+
+var eventHandler = $.summernote.eventHandler;
+var renderer = $.summernote.renderer;
+var tplIconButton = renderer.getTemplate().iconButton;
+var _t = core._t;
+
+var fn_tplPopovers = renderer.tplPopovers;
+renderer.tplPopovers = function (lang, options) {
+ var $popover = $(fn_tplPopovers.call(this, lang, options));
+ $popover.find('.note-image-popover .btn-group:has([data-value="img-thumbnail"])').append(
+ tplIconButton('fa fa-object-ungroup', {
+ title: _t('Transform the picture (click twice to reset transformation)'),
+ event: 'transform',
+ }));
+ return $popover;
+};
+
+$.summernote.pluginEvents.transform = function (event, editor, layoutInfo, sorted) {
+ var $selection = layoutInfo.handle().find('.note-control-selection');
+ var $image = $($selection.data('target'));
+
+ if ($image.data('transfo-destroy')) {
+ $image.removeData('transfo-destroy');
+ return;
+ }
+
+ $image.transfo();
+
+ var mouseup = function (event) {
+ $('.note-popover button[data-event="transform"]').toggleClass('active', $image.is('[style*="transform"]'));
+ };
+ $(document).on('mouseup', mouseup);
+
+ var mousedown = function (event) {
+ if (!$(event.target).closest('.transfo-container').length) {
+ $image.transfo('destroy');
+ $(document).off('mousedown', mousedown).off('mouseup', mouseup);
+ }
+ if ($(event.target).closest('.note-popover').length) {
+ $image.data('transfo-destroy', true).attr('style', ($image.attr('style') || '').replace(/[^;]*transform[\w:]*;?/g, ''));
+ }
+ $image.trigger('content_changed');
+ };
+ $(document).on('mousedown', mousedown);
+};
+
+var fn_boutton_update = eventHandler.modules.popover.button.update;
+eventHandler.modules.popover.button.update = function ($container, oStyle) {
+ fn_boutton_update.call(this, $container, oStyle);
+ $container.find('button[data-event="transform"]')
+ .toggleClass('active', $(oStyle.image).is('[style*="transform"]'))
+ .toggleClass('d-none', !$(oStyle.image).is('img'));
+};
+});