diff options
| author | Antoine Guenet <age@odoo.com> | 2019-03-06 12:41:50 +0000 |
|---|---|---|
| committer | Antoine Guenet <age@odoo.com> | 2019-03-06 12:51:41 +0000 |
| commit | 0374ecaeb8012d048d25d6db645043de1f6c6db2 (patch) | |
| tree | 9ce8764985ee6648d0a6d21bbe040fc980887788 /addons | |
| parent | f1c05305151202390d275554769913a4a5de8af4 (diff) | |
[FIX] web_editor: properly set media dialog `onlyImages` and find video
Media dialog was trying to reach the current media's parent node, which
was not possible as it was cloned on instantiation.
To fix this, the `showImageDialog` now passes the `onlyImages` option
upon instantiation, checking the parent's data. It also passes the
media's parent if said parent is a video. This way, neither of these two
things need to be done in media dialog.
closes odoo/odoo#31634
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/web_editor/static/src/js/wysiwyg/plugin/media.js | 9 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/wysiwyg/widgets/media_dialog.js | 6 |
2 files changed, 9 insertions, 6 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 2cdfbe70cfe..1509a6412df 100644 --- a/addons/web_editor/static/src/js/wysiwyg/plugin/media.js +++ b/addons/web_editor/static/src/js/wysiwyg/plugin/media.js @@ -54,7 +54,14 @@ var MediaPlugin = AbstractPlugin.extend({ this.context.invoke('editor.saveRange'); var media = this.context.invoke('editor.restoreTarget'); - var mediaDialog = new weWidgets.MediaDialog(this.options.parent, {}, + var $mediaParent = $(media).parent(); + if ($mediaParent.hasClass('media_iframe_video')) { + media = $mediaParent[0]; + $mediaParent = $mediaParent.parent(); + } + var mediaDialog = new weWidgets.MediaDialog(this.options.parent, { + onlyImages: $mediaParent.data('oeField') === 'image' || $mediaParent.data('oeType') === 'image', + }, $(media).clone()[0] ); diff --git a/addons/web_editor/static/src/js/wysiwyg/widgets/media_dialog.js b/addons/web_editor/static/src/js/wysiwyg/widgets/media_dialog.js index f214d210b52..08345895067 100644 --- a/addons/web_editor/static/src/js/wysiwyg/widgets/media_dialog.js +++ b/addons/web_editor/static/src/js/wysiwyg/widgets/media_dialog.js @@ -48,7 +48,7 @@ var MediaDialog = Dialog.extend({ this.$media = $(media); this.multiImages = options.multiImages; - var onlyImages = options.onlyImages || this.multiImages || (this.media && (this.$media.parent().data('oeField') === 'image' || this.$media.parent().data('oeType') === 'image')); + var onlyImages = options.onlyImages || this.multiImages; this.noImages = options.noImages; this.noDocuments = onlyImages || options.noDocuments; this.noIcons = onlyImages || options.noIcons; @@ -80,10 +80,6 @@ var MediaDialog = Dialog.extend({ this.active = this.documentDialog; } else if (this.videoDialog && this.$media.hasClass('media_iframe_video')) { this.active = this.videoDialog; - } else if (this.videoDialog && this.$media.parent().hasClass('media_iframe_video')) { - this.$media = this.$media.parent(); - this.media = this.$media[0]; - this.active = this.videoDialog; } else if (this.iconDialog && this.$media.is('span, i')) { this.active = this.iconDialog; } |
