diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-09-17 17:49:09 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-09-17 17:49:09 +0200 |
| commit | 080f8b1f96dec30fd9568a81342b5d20cc9d521a (patch) | |
| tree | 14cecabb2c6502e73d93178bd322722e2e62f07d /addons/web_editor | |
| parent | c12bd7125a1c64339e02ae0563f667b8de931b3b (diff) | |
| parent | d8ce75466e4a6728cccfc7696a65a399e9cf23f1 (diff) | |
[MERGE] forward port branch saas-12.3 up to d8ce75466e4
Diffstat (limited to 'addons/web_editor')
4 files changed, 25 insertions, 5 deletions
diff --git a/addons/web_editor/static/src/js/wysiwyg/plugin/media.js b/addons/web_editor/static/src/js/wysiwyg/plugin/media.js index b8b4a7582fe..ba7793d1d95 100644 --- a/addons/web_editor/static/src/js/wysiwyg/plugin/media.js +++ b/addons/web_editor/static/src/js/wysiwyg/plugin/media.js @@ -76,7 +76,7 @@ var MediaPlugin = AbstractPlugin.extend({ mediaWidth: mediaWidth, onlyImages: $mediaParent.data('oeField') === 'image' || $mediaParent.data('oeType') === 'image', }, - $(media).clone()[0] + $(media).clone(true, true)[0] ); mediaDialog.on('save', this, function (element) { @@ -708,7 +708,7 @@ var ImagePlugin = AbstractMediaPlugin.extend({ var media = this.context.invoke('editor.restoreTarget'); var cropImageDialog = new weWidgets.CropImageDialog(this.options.parent, {}, - $(media).clone()[0] + $(media).clone(true, true)[0] ); cropImageDialog.on('save', this, function (img) { this.context.invoke('MediaPlugin.insertMedia', media, img); @@ -727,7 +727,7 @@ var ImagePlugin = AbstractMediaPlugin.extend({ var media = this.context.invoke('editor.restoreTarget'); var altDialog = new weWidgets.AltDialog(this.options.parent, {}, - $(media).clone()[0] + $(media).clone(true, true)[0] ); altDialog.on('save', this, this._wrapCommand(function (img) { $(media).attr('alt', img.alt) diff --git a/addons/web_editor/static/src/js/wysiwyg/widgets/media.js b/addons/web_editor/static/src/js/wysiwyg/widgets/media.js index b196552709d..95b55b7e877 100644 --- a/addons/web_editor/static/src/js/wysiwyg/widgets/media.js +++ b/addons/web_editor/static/src/js/wysiwyg/widgets/media.js @@ -1119,7 +1119,7 @@ var VideoWidget = MediaWidget.extend({ $video.attr('src', vinMatch[0] + '/embed/simple'); videoType = 'vin'; } else if (vimMatch && vimMatch[3].length) { - $video.attr('src', '//player.vimeo.com/video/' + vimMatch[3] + autoplay); + $video.attr('src', '//player.vimeo.com/video/' + vimMatch[3] + autoplay.replace('mute', 'muted')); videoType = 'vim'; } else if (dmMatch && dmMatch[2].length) { var justId = dmMatch[2].replace('video/', ''); diff --git a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.editor.js b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.editor.js index 4193aef5332..6077dcfafae 100644 --- a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.editor.js +++ b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.editor.js @@ -88,7 +88,16 @@ var SnippetEditor = Widget.extend({ return $clone; }, start: _.bind(self._onDragAndDropStart, self), - stop: _.bind(self._onDragAndDropStop, self) + stop: function () { + // Delay our stop handler so that some summernote handlers + // which occur on mouseup (and are themself delayed) are + // executed first (this prevents the library to crash + // because our stop handler may change the DOM). + var args = arguments; + setTimeout(function () { + self._onDragAndDropStop.apply(self, args); + }, 0); + }, }); } diff --git a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js index 9515bf19ab6..f4b921bbeef 100644 --- a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js +++ b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js @@ -703,6 +703,17 @@ registry.colorpicker = SnippetOption.extend({ } var bgColor = ColorpickerDialog.formatColor(self.$target.css('background-color')); + + // TODO refactor in master + // The primary and secondary are hardcoded here (but marked as hidden) + // so they can be removed from snippets when selecting another color. + // Normally, the chosable colors do not contain them, which prevents + // them to be removed. Indeed, normally, the 'alpha' and 'beta' colors + // (which are the same) are displayed instead... but not for all themes. + var $colorpicker = this.$el.find('.colorpicker'); + $colorpicker.append($('<button/>', {'class': 'd-none', 'data-color': 'primary'})); + $colorpicker.append($('<button/>', {'class': 'd-none', 'data-color': 'secondary'})); + var classes = []; this.$el.find('.colorpicker button').each(function () { var $color = $(this); |
