From 5e2a8df0eb0af7f8af78ec57fb6d23942b13bd37 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Sat, 16 Nov 2024 10:58:38 -0500 Subject: [PATCH] [MIG] web_editor_class_selector: Migration to 17.0 --- web_editor_class_selector/README.rst | 2 +- web_editor_class_selector/__manifest__.py | 6 ++-- .../i18n/web_editor_class_selector.pot | 7 +---- .../models/web_editor_class.py | 3 +- .../static/description/index.html | 2 +- .../static/src/js/backend/html_field.esm.js | 18 ++++++----- .../src/js/odoo-editor/OdooEditor.esm.js | 8 ++--- .../static/src/js/odoo-editor/toolbar.esm.js | 13 ++++++++ .../static/src/js/wysiwyg/wysiwyg.esm.js | 30 +++++++------------ .../static/src/xml/web_editor.xml | 16 +++++----- 10 files changed, 56 insertions(+), 49 deletions(-) create mode 100644 web_editor_class_selector/static/src/js/odoo-editor/toolbar.esm.js diff --git a/web_editor_class_selector/README.rst b/web_editor_class_selector/README.rst index c020da6a5..ff8d57940 100644 --- a/web_editor_class_selector/README.rst +++ b/web_editor_class_selector/README.rst @@ -7,7 +7,7 @@ Web editor class selector !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:87a4e58b89ecc7f911d8e9fad84c60f0b1a024d6564c5040550651ed2be7ff83 + !! source digest: sha256:1001db1827a41a874f6505371f07ecc14ff40c6e3f1a6b7d7ec8e5805c8e4c03 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/web_editor_class_selector/__manifest__.py b/web_editor_class_selector/__manifest__.py index 3701de15c..e9c34962b 100644 --- a/web_editor_class_selector/__manifest__.py +++ b/web_editor_class_selector/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Web editor class selector", - "version": "16.0.1.0.1", + "version": "17.0.1.0.0", "summary": "", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/web", @@ -18,12 +18,12 @@ "assets": { "web.assets_backend": [ "web_editor_class_selector/static/src/js/backend/**/*", - "web_editor_class_selector/static/src/xml/**/", ], - "web_editor.assets_wysiwyg": [ + "web_editor.backend_assets_wysiwyg": [ "web_editor_class_selector/static/src/js/odoo-editor/**/*", "web_editor_class_selector/static/src/js/wysiwyg/**/*", "web_editor_class_selector/static/src/scss/demo_styles.scss", + "web_editor_class_selector/static/src/xml/**/", ], }, "installable": True, diff --git a/web_editor_class_selector/i18n/web_editor_class_selector.pot b/web_editor_class_selector/i18n/web_editor_class_selector.pot index b1807675b..eb1b895d7 100644 --- a/web_editor_class_selector/i18n/web_editor_class_selector.pot +++ b/web_editor_class_selector/i18n/web_editor_class_selector.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -62,11 +62,6 @@ msgstr "" msgid "ID" msgstr "" -#. module: web_editor_class_selector -#: model:ir.model.fields,field_description:web_editor_class_selector.field_web_editor_class____last_update -msgid "Last Modified on" -msgstr "" - #. module: web_editor_class_selector #: model:ir.model.fields,field_description:web_editor_class_selector.field_web_editor_class__write_uid msgid "Last Updated by" diff --git a/web_editor_class_selector/models/web_editor_class.py b/web_editor_class_selector/models/web_editor_class.py index eb5bdf93f..a9878bbc0 100644 --- a/web_editor_class_selector/models/web_editor_class.py +++ b/web_editor_class_selector/models/web_editor_class.py @@ -8,7 +8,8 @@ class WebEditorClass(models.Model): name = fields.Char(required=True) class_name = fields.Char( required=True, - help="The class name to be added to the tag. It must be created in the CSS file.", + help="The class name to be added to the tag. " + "It must be created in the CSS file.", ) active = fields.Boolean(default=True) diff --git a/web_editor_class_selector/static/description/index.html b/web_editor_class_selector/static/description/index.html index 7b8cd3e90..0d67f89ab 100644 --- a/web_editor_class_selector/static/description/index.html +++ b/web_editor_class_selector/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:87a4e58b89ecc7f911d8e9fad84c60f0b1a024d6564c5040550651ed2be7ff83 +!! source digest: sha256:1001db1827a41a874f6505371f07ecc14ff40c6e3f1a6b7d7ec8e5805c8e4c03 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

This module allows users to create custom CSS class records, which can diff --git a/web_editor_class_selector/static/src/js/backend/html_field.esm.js b/web_editor_class_selector/static/src/js/backend/html_field.esm.js index 7bbbb3dbf..67b45aae3 100644 --- a/web_editor_class_selector/static/src/js/backend/html_field.esm.js +++ b/web_editor_class_selector/static/src/js/backend/html_field.esm.js @@ -5,9 +5,9 @@ import {useService} from "@web/core/utils/hooks"; const {onWillStart} = owl; -patch(HtmlField.prototype, "web_editor_class_selector.HtmlField", { +patch(HtmlField.prototype, { setup() { - this._super(...arguments); + super.setup(...arguments); this.orm = useService("orm"); this.custom_class_css = []; onWillStart(async () => { @@ -18,10 +18,14 @@ patch(HtmlField.prototype, "web_editor_class_selector.HtmlField", { ); }); }, - async startWysiwyg(wysiwyg) { - // Provide the custom class css to the wysiwyg editor - // to render the custom class css in the toolbar - wysiwyg.options.custom_class_css = this.custom_class_css; - return this._super(wysiwyg); + get wysiwygOptions() { + // Provide the custom_class_css to the toolbar through the toolbarOptions. + return { + ...super.wysiwygOptions, + toolbarOptions: { + ...super.wysiwygOptions.toolbarOptions, + custom_class_css: this.custom_class_css, + }, + }; }, }); diff --git a/web_editor_class_selector/static/src/js/odoo-editor/OdooEditor.esm.js b/web_editor_class_selector/static/src/js/odoo-editor/OdooEditor.esm.js index b7cf068f6..74734b0fe 100644 --- a/web_editor_class_selector/static/src/js/odoo-editor/OdooEditor.esm.js +++ b/web_editor_class_selector/static/src/js/odoo-editor/OdooEditor.esm.js @@ -1,16 +1,16 @@ /** @odoo-module **/ -import {_t} from "web.core"; -import {patch} from "web.utils"; import { closestElement, getSelectedNodes, isVisibleTextNode, } from "@web_editor/js/editor/odoo-editor/src/utils/utils"; import {OdooEditor} from "@web_editor/js/editor/odoo-editor/src/OdooEditor"; +import {_t} from "@web/core/l10n/translation"; +import {patch} from "@web/core/utils/patch"; -patch(OdooEditor.prototype, "web_editor_class_selector.OdooEditor", { +patch(OdooEditor.prototype, { _updateToolbar(show) { - const res = this._super(show); + const res = super._updateToolbar(show); if (!this.toolbar || !this.custom_class_css) { return res; } diff --git a/web_editor_class_selector/static/src/js/odoo-editor/toolbar.esm.js b/web_editor_class_selector/static/src/js/odoo-editor/toolbar.esm.js new file mode 100644 index 000000000..6e2afe703 --- /dev/null +++ b/web_editor_class_selector/static/src/js/odoo-editor/toolbar.esm.js @@ -0,0 +1,13 @@ +/** @odoo-module */ + +import {Toolbar} from "@web_editor/js/editor/toolbar"; +import {patch} from "@web/core/utils/patch"; + +patch(Toolbar.props, { + ...Toolbar.props, + custom_class_css: {type: Array, optional: true}, +}); +patch(Toolbar.defaultProps, { + ...Toolbar.defaultProps, + custom_class_css: [], +}); diff --git a/web_editor_class_selector/static/src/js/wysiwyg/wysiwyg.esm.js b/web_editor_class_selector/static/src/js/wysiwyg/wysiwyg.esm.js index 7fa75f0d4..fccd793b1 100644 --- a/web_editor_class_selector/static/src/js/wysiwyg/wysiwyg.esm.js +++ b/web_editor_class_selector/static/src/js/wysiwyg/wysiwyg.esm.js @@ -1,25 +1,17 @@ /** @odoo-module **/ -import Wysiwyg from "web_editor.wysiwyg"; -import core from "web.core"; +import {Wysiwyg} from "@web_editor/js/wysiwyg/wysiwyg"; import {createCustomCssFormats} from "../odoo-editor/utils.esm"; +import {patch} from "@web/core/utils/patch"; -const Qweb = core.qweb; - -Wysiwyg.include({ - _configureToolbar: function (options) { - this._super(options); - if (options.custom_class_css && options.custom_class_css.length > 0) { - const $dialogContent = $( - Qweb.render("web_editor_class_selector.custom_class_css", { - custom_class_css: options.custom_class_css, - }) - ); - $dialogContent.appendTo(this.toolbar.$el); - // Binding the new commands to the editor - // to react to the click on the new options - this.odooEditor.bindExecCommand($dialogContent[0]); - this.odooEditor.custom_class_css = options.custom_class_css; - createCustomCssFormats(options.custom_class_css); +patch(Wysiwyg.prototype, { + _configureToolbar(options) { + super._configureToolbar(options); + if ( + options.toolbarOptions.custom_class_css && + options.toolbarOptions.custom_class_css.length > 0 + ) { + this.odooEditor.custom_class_css = options.toolbarOptions.custom_class_css; + createCustomCssFormats(options.toolbarOptions.custom_class_css); } }, }); diff --git a/web_editor_class_selector/static/src/xml/web_editor.xml b/web_editor_class_selector/static/src/xml/web_editor.xml index d930766dc..031225160 100644 --- a/web_editor_class_selector/static/src/xml/web_editor.xml +++ b/web_editor_class_selector/static/src/xml/web_editor.xml @@ -1,9 +1,12 @@ - - - -