diff options
Diffstat (limited to 'addons/website_form/static/src/js')
| -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'], |
