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); - }, - }); -}); diff --git a/website_form_require_legal/static/src/xml/website_form_editor.xml b/website_form_require_legal/static/src/xml/website_form_editor.xml index 4771263cea..dd3cfaa164 100644 --- a/website_form_require_legal/static/src/xml/website_form_editor.xml +++ b/website_form_require_legal/static/src/xml/website_form_editor.xml @@ -1,4 +1,3 @@ -