diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-07-29 14:10:30 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-07-29 14:10:30 +0200 |
| commit | d5e1fd16b4fd796cc25b2b2d694dadb375110ce7 (patch) | |
| tree | 35d130b4161985cd9ca3071a59980b52e8401be5 /addons/website_form/static/src | |
| parent | ae71f95371b4a5c99c10a23e3553c5badc45a1ac (diff) | |
| parent | cda4f3c308ca233aead81f5ae97d250b5b7bf82f (diff) | |
[MERGE] forward port branch saas-12.4 up to cda4f3c308c
Diffstat (limited to 'addons/website_form/static/src')
| -rw-r--r-- | addons/website_form/static/src/js/website_form.js | 2 | ||||
| -rw-r--r-- | addons/website_form/static/src/js/website_form_editor.js | 19 |
2 files changed, 19 insertions, 2 deletions
diff --git a/addons/website_form/static/src/js/website_form.js b/addons/website_form/static/src/js/website_form.js index 2469372005c..4fdbf0fd2c1 100644 --- a/addons/website_form/static/src/js/website_form.js +++ b/addons/website_form/static/src/js/website_form.js @@ -57,7 +57,7 @@ odoo.define('website_form.animation', function (require) { // Because, using t-att- inside form make it non-editable var $values = $('[data-for=' + this.$target.attr('id') + ']'); if ($values.length) { - var values = JSON.parse($values.data('values').replace(/'/g, '"')); + var values = JSON.parse($values.data('values').replace('False', '""').replace('None', '""').replace(/'/g, '"')); var fields = _.pluck(this.$target.serializeArray(), 'name'); _.each(fields, function (field) { if (_.has(values, field)) { diff --git a/addons/website_form/static/src/js/website_form_editor.js b/addons/website_form/static/src/js/website_form_editor.js index 5acaf0df0d6..74e62e0b7a7 100644 --- a/addons/website_form/static/src/js/website_form_editor.js +++ b/addons/website_form/static/src/js/website_form_editor.js @@ -10,6 +10,7 @@ odoo.define('website_form_editor', function (require) { var FormEditorRegistry = require('website_form.form_editor_registry'); var options = require('web_editor.snippets.options'); var wUtils = require('website.utils'); + var Wysiwyg = require('web_editor.wysiwyg'); var qweb = core.qweb; @@ -442,7 +443,7 @@ odoo.define('website_form_editor', function (require) { var self = this; var select = this.$target.find('select'); select.hide(); - this.editable_select = $('<div id="editable_select" class="form-control o_website_form_input"/>'); + this.editable_select = $('<div id="editable_select" class="form-control o_website_form_input" contenteditable="true"/>'); _.each(select.children(), function (option) { self.editable_select.append( $('<div id="' + $(option).attr('value') + '" class="o_website_form_select_item">' + $(option).text().trim() + '</div>') @@ -493,6 +494,22 @@ odoo.define('website_form_editor', function (require) { } }); + // allow breaking of form select items, to create new ones + Wysiwyg.include({ + /** + * @override + */ + _editorOptions: function () { + var options = this._super.apply(this, arguments); + var isUnbreakableNode = options.isUnbreakableNode; + options.isUnbreakableNode = function (node) { + var isSelItem = $(node).hasClass('o_website_form_select_item'); + return isUnbreakableNode(node) && !isSelItem; + }; + return options; + }, + }); + // Superclass for options that need to disable a button from the snippet overlay var disable_overlay_button_option = options.Class.extend({ xmlDependencies: ['/website_form/static/src/xml/website_form_editor.xml'], |
