diff --git a/addons/website/static/src/css/snippets.css b/addons/website/static/src/css/snippets.css index 3f5373e57e4..4baa2b06f2d 100644 --- a/addons/website/static/src/css/snippets.css +++ b/addons/website/static/src/css/snippets.css @@ -342,7 +342,7 @@ position: absolute; width: 100%; text-align: center; - top: -11px; + top: -20px; z-index: 1002; } .oe_overlay .oe_overlay_options .btn, .oe_overlay .oe_overlay_options a { diff --git a/addons/website/static/src/css/snippets.sass b/addons/website/static/src/css/snippets.sass index f9432b3749d..1be99e27f19 100644 --- a/addons/website/static/src/css/snippets.sass +++ b/addons/website/static/src/css/snippets.sass @@ -258,7 +258,7 @@ position: absolute width: 100% text-align: center - top: -11px + top: -20px z-index: 1002 .btn, a pointer-events: auto diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 671dfc14ee9..b99004243a2 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -229,11 +229,13 @@ dialog.on('click', '.btn-primary', function () { def.resolve(field.val(), field, dialog); dialog.remove(); + $('.modal-backdrop').remove(); }); }); dialog.on('hidden.bs.modal', function () { def.reject(); dialog.remove(); + $('.modal-backdrop').remove(); }); if (field.is('input[type="text"], select')) { field.keypress(function (e) { diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js index 94035d27544..b9b697f99a1 100644 --- a/addons/website/static/src/js/website.snippets.editor.js +++ b/addons/website/static/src/js/website.snippets.editor.js @@ -566,8 +566,9 @@ website.snippet.options = {}; website.snippet.Option = openerp.Class.extend({ // initialisation (don't overwrite) - init: function (BuildingBlock, $target, snippet_id) { + init: function (BuildingBlock, editor, $target, snippet_id) { this.BuildingBlock = BuildingBlock; + this.editor = editor; this.$target = $target; var styles = this.$target.data("snippet-option-ids") || {}; styles[snippet_id] = this; @@ -687,6 +688,11 @@ .first() .addClass("active"); this.$el.find('li:has(li[data-class].active)').addClass("active"); + }, + /* clean_for_save + * function called just before save vue + */ + clean_for_save: function () { } }); @@ -1382,7 +1388,7 @@ var style = val['snippet-option-id']; var Editor = website.snippet.options[style] || website.snippet.Option; - var editor = self.styles[style] = new Editor(self.BuildingBlock, self.$target, style); + var editor = self.styles[style] = new Editor(self.BuildingBlock, self, self.$target, style); $ul.append(editor.$el.addClass("snippet-style-" + style)); }); this.selector_siblings = this.selector_siblings.join(","); @@ -1473,6 +1479,9 @@ * function called just before save vue */ clean_for_save: function () { + for (var i in this.styles){ + this.styles[i].clean_for_save(); + } this.$target.removeAttr('contentEditable') .find('*').removeAttr('contentEditable'); this.$target.removeAttr('attributeEditable') diff --git a/addons/website_mail/models/__init__.py b/addons/website_mail/models/__init__.py index e60de014149..fd8997c645f 100644 --- a/addons/website_mail/models/__init__.py +++ b/addons/website_mail/models/__init__.py @@ -1,3 +1,4 @@ import mail_message import mail_thread import email_template +import website diff --git a/addons/website_mail/views/snippets.xml b/addons/website_mail/views/snippets.xml index 35932f6f7c3..3a1f8ab07bf 100644 --- a/addons/website_mail/views/snippets.xml +++ b/addons/website_mail/views/snippets.xml @@ -491,5 +491,50 @@ + + + + diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index e7a17c8f3db..4f128248bac 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -22,6 +22,7 @@