From 7d2d697b66376b79c22787206c8d8b62255ede82 Mon Sep 17 00:00:00 2001 From: Nils Coenen <74965194+NICO-SOLUTIONS@users.noreply.github.com> Date: Tue, 21 Nov 2023 14:07:36 +0100 Subject: [PATCH] [MIG] website_form_require_legal: Migration to 17.0 --- website_form_require_legal/README.rst | 4 ++ website_form_require_legal/__manifest__.py | 4 +- .../readme/CONTRIBUTORS.md | 2 + .../static/description/index.html | 4 ++ .../static/src/js/options.esm.js | 50 ++++++++++++++++ .../static/src/js/options.js | 57 ------------------- 6 files changed, 62 insertions(+), 59 deletions(-) create mode 100644 website_form_require_legal/static/src/js/options.esm.js delete mode 100644 website_form_require_legal/static/src/js/options.js diff --git a/website_form_require_legal/README.rst b/website_form_require_legal/README.rst index 6493b9434e..47ec338713 100644 --- a/website_form_require_legal/README.rst +++ b/website_form_require_legal/README.rst @@ -82,6 +82,10 @@ Contributors - Carlos Roca +- `NICO SOLUTIONS `__: + + - Nils Coenen + Maintainers ----------- diff --git a/website_form_require_legal/__manifest__.py b/website_form_require_legal/__manifest__.py index 7210fbf821..00255d3f7b 100644 --- a/website_form_require_legal/__manifest__.py +++ b/website_form_require_legal/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Website Form Require Legal", "summary": "Add possibility to require confirm legal terms.", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "Website", "license": "LGPL-3", "website": "https://github.com/OCA/website", @@ -14,7 +14,7 @@ "data": ["views/snippets.xml"], "assets": { "website.assets_wysiwyg": [ - "website_form_require_legal/static/src/js/options.js", + "website_form_require_legal/static/src/js/options.esm.js", "website_form_require_legal/static/src/xml/website_form_editor.xml", ], "web.assets_frontend": [ diff --git a/website_form_require_legal/readme/CONTRIBUTORS.md b/website_form_require_legal/readme/CONTRIBUTORS.md index 4b7dfed851..45bd008237 100644 --- a/website_form_require_legal/readme/CONTRIBUTORS.md +++ b/website_form_require_legal/readme/CONTRIBUTORS.md @@ -1,2 +1,4 @@ - [Tecnativa](https://www.tecnativa.com): - Carlos Roca +- [NICO SOLUTIONS](https://www.nico-solutions.de): + - Nils Coenen diff --git a/website_form_require_legal/static/description/index.html b/website_form_require_legal/static/description/index.html index 669296d943..d441bc675f 100644 --- a/website_form_require_legal/static/description/index.html +++ b/website_form_require_legal/static/description/index.html @@ -428,6 +428,10 @@

Contributors

  • Carlos Roca
  • +
  • NICO SOLUTIONS: +
  • diff --git a/website_form_require_legal/static/src/js/options.esm.js b/website_form_require_legal/static/src/js/options.esm.js new file mode 100644 index 0000000000..fc8d4c9038 --- /dev/null +++ b/website_form_require_legal/static/src/js/options.esm.js @@ -0,0 +1,50 @@ +/** @odoo-module **/ + +import options from "@web_editor/js/editor/snippets.options"; +import {renderToElement} from "@web/core/utils/render"; + +options.registry.WebsiteFormEditor.include({ + /** + * @override + */ + start: function () { + const proms = [this._super(...arguments)]; + this.$target.find(".s_website_form_legal").attr("contentEditable", true); + return Promise.all(proms); + }, + /** + * Toggle the legal terms checkbox + */ + toggleLegalTerms: function () { + const legalTermsEl = this.$target[0].querySelector(".s_website_form_legal"); + if (legalTermsEl) { + legalTermsEl.remove(); + } else { + const template = document.createElement("template"); + const labelWidth = this.$target[0].querySelector(".s_website_form_label") + .style.width; + template.content.append( + renderToElement("website_form_require_legal.s_website_form_legal", { + labelWidth: labelWidth, + termsURL: "terms", + }) + ); + const legal = template.content.firstElementChild; + legal.setAttribute("contentEditable", true); + if (this.$target.find(".s_website_form_recaptcha").length) { + this.$target.find(".s_website_form_recaptcha")[0].before(legal); + } else { + this.$target.find(".s_website_form_submit").before(legal); + } + } + }, + /** + * @override + */ + _computeWidgetState: function (methodName) { + if (methodName === "toggleLegalTerms") { + return !this.$target[0].querySelector(".s_website_form_legal") || ""; + } + return this._super(...arguments); + }, +}); diff --git a/website_form_require_legal/static/src/js/options.js b/website_form_require_legal/static/src/js/options.js deleted file mode 100644 index 3b7b29fc40..0000000000 --- a/website_form_require_legal/static/src/js/options.js +++ /dev/null @@ -1,57 +0,0 @@ -odoo.define("website_form_require_legal.form_editor", function (require) { - "use strict"; - - const core = require("web.core"); - const options = require("web_editor.snippets.options"); - require("website.form_editor_registry"); - require("website.editor.snippets.options"); - - const qweb = core.qweb; - - options.registry.WebsiteFormEditor.include({ - /** - * @override - */ - start: function () { - const proms = [this._super(...arguments)]; - this.$target.find(".s_website_form_legal").attr("contentEditable", true); - return Promise.all(proms); - }, - /** - * Toggle the legal terms checkbox - */ - toggleLegalTerms: function () { - const legalTermsEl = this.$target[0].querySelector(".s_website_form_legal"); - if (legalTermsEl) { - legalTermsEl.remove(); - } else { - const template = document.createElement("template"); - const labelWidth = this.$target[0].querySelector( - ".s_website_form_label" - ).style.width; - $(template).html( - qweb.render("website_form_require_legal.s_website_form_legal", { - labelWidth: labelWidth, - termsURL: "terms", - }) - ); - const legal = template.content.firstElementChild; - legal.setAttribute("contentEditable", true); - if (this.$target.find(".s_website_form_recaptcha").length) { - this.$target.find(".s_website_form_recaptcha")[0].before(legal); - } else { - this.$target.find(".s_website_form_submit").before(legal); - } - } - }, - /** - * @override - */ - _computeWidgetState: function (methodName) { - if (methodName === "toggleLegalTerms") { - return !this.$target[0].querySelector(".s_website_form_legal") || ""; - } - return this._super(...arguments); - }, - }); -});