diff --git a/addons/web_editor/static/src/components/media_dialog/document_selector.js b/addons/web_editor/static/src/components/media_dialog/document_selector.js index 73d241fc143..0c2272cbbf4 100644 --- a/addons/web_editor/static/src/components/media_dialog/document_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/document_selector.js @@ -66,6 +66,7 @@ export class DocumentSelector extends FileSelector { } } DocumentSelector.mediaSpecificClasses = ['o_image']; +DocumentSelector.mediaExtraClasses = []; DocumentSelector.tagNames = ['A']; DocumentSelector.attachmentsListTemplate = 'web_editor.DocumentsListTemplate'; DocumentSelector.components = { diff --git a/addons/web_editor/static/src/components/media_dialog/icon_selector.js b/addons/web_editor/static/src/components/media_dialog/icon_selector.js index 70cea8bb396..b4e130dd57a 100644 --- a/addons/web_editor/static/src/components/media_dialog/icon_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/icon_selector.js @@ -62,7 +62,11 @@ export class IconSelector extends Component { return allFonts; } } -IconSelector.mediaSpecificClasses = []; +IconSelector.mediaSpecificClasses = ['fa']; +IconSelector.mediaExtraClasses = [ + 'rounded-circle', 'rounded', 'thumbnail', 'shadow', + /^text-\S+$/, /^bg-\S+$/, /^fa-\S+$/, +]; IconSelector.tagNames = ['SPAN', 'I']; IconSelector.template = 'web_editor.IconSelector'; IconSelector.components = { diff --git a/addons/web_editor/static/src/components/media_dialog/image_selector.js b/addons/web_editor/static/src/components/media_dialog/image_selector.js index 475adc9b75c..65b18bd08f7 100644 --- a/addons/web_editor/static/src/components/media_dialog/image_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/image_selector.js @@ -253,6 +253,9 @@ export class ImageSelector extends FileSelector { } } ImageSelector.mediaSpecificClasses = ['img', 'img-fluid', 'o_we_custom_image']; +ImageSelector.mediaExtraClasses = [ + 'rounded-circle', 'rounded', 'thumbnail', 'shadow', /^img-\S+$/, +]; ImageSelector.tagNames = ['IMG']; ImageSelector.attachmentsListTemplate = 'web_editor.ImagesListTemplate'; ImageSelector.components = { diff --git a/addons/web_editor/static/src/components/media_dialog/media_dialog.js b/addons/web_editor/static/src/components/media_dialog/media_dialog.js index 29b6293ab30..ec9a4c4ff12 100644 --- a/addons/web_editor/static/src/components/media_dialog/media_dialog.js +++ b/addons/web_editor/static/src/components/media_dialog/media_dialog.js @@ -160,6 +160,19 @@ export class MediaDialog extends Component { } for (const otherTab of Object.keys(TABS).filter(key => key !== this.state.activeTab)) { element.classList.remove(...TABS[otherTab].Component.mediaSpecificClasses); + const extraClassesToRemove = []; + for (const name of TABS[otherTab].Component.mediaExtraClasses) { + if (typeof(name) === 'string') { + extraClassesToRemove.push(name); + } else { // Regex + for (const className of element.classList) { + if (className.match(name)) { + extraClassesToRemove.push(className); + } + } + } + } + element.classList.remove(...extraClassesToRemove); } element.classList.remove(...this.initialIconClasses); element.classList.remove('o_modified_image_to_save'); diff --git a/addons/web_editor/static/src/components/media_dialog/video_selector.js b/addons/web_editor/static/src/components/media_dialog/video_selector.js index a8a31345cb9..d07180fa89c 100644 --- a/addons/web_editor/static/src/components/media_dialog/video_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/video_selector.js @@ -193,6 +193,7 @@ export class VideoSelector extends Component { } } VideoSelector.mediaSpecificClasses = ['media_iframe_video']; +VideoSelector.mediaExtraClasses = []; VideoSelector.tagNames = ['IFRAME', 'DIV']; VideoSelector.template = 'web_editor.VideoSelector'; VideoSelector.components = {