1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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'));
};
});
|