summaryrefslogtreecommitdiff
path: root/addons/website_form/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_form/static/src/js')
-rw-r--r--addons/website_form/static/src/js/website_form.js2
-rw-r--r--addons/website_form/static/src/js/website_form_editor.js19
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'],