[FIX] website: snippet editor: speed up save view (construct only option with clean_for_save method); fix carousel arrow
bzr revid: chm@openerp.com-20140423095901-q945d4593uet41xy
This commit is contained in:
parent
8ee8b7bde6
commit
ff9ae691d5
|
@ -130,6 +130,7 @@
|
|||
|
||||
*/
|
||||
|
||||
var dummy = function () {};
|
||||
|
||||
var website = openerp.website;
|
||||
website.add_template_file('/website/static/src/xml/website.snippets.xml');
|
||||
|
@ -161,7 +162,6 @@
|
|||
return this._super.apply(this, arguments);
|
||||
},
|
||||
save: function () {
|
||||
website.snippet.clean_for_save = true;
|
||||
this.snippets.clean_for_save();
|
||||
this._super();
|
||||
},
|
||||
|
@ -362,15 +362,21 @@
|
|||
},
|
||||
clean_for_save: function () {
|
||||
var self = this;
|
||||
$(website.snippet.globalSelector).each(function () {
|
||||
var $snippet = $(this);
|
||||
self.make_active($snippet);
|
||||
self.make_active(false);
|
||||
var editor = $snippet.data("snippet-editor");
|
||||
if (editor) {
|
||||
editor.clean_for_save();
|
||||
|
||||
$("*[contentEditable], *[attributeEditable]")
|
||||
.removeAttr('contentEditable')
|
||||
.removeAttr('attributeEditable');
|
||||
|
||||
var options = website.snippet.options;
|
||||
var template = website.snippet.templateOptions;
|
||||
for (var k in options) {
|
||||
if (template[k] && options[k].prototype.clean_for_save !== dummy) {
|
||||
var $snippet = this.dom_filter(template[k].selector);
|
||||
$snippet.each(function () {
|
||||
new options[k](self, null, $(this), k).clean_for_save();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
make_active: function ($snippet) {
|
||||
if ($snippet && this.$active_snipped_id && this.$active_snipped_id.get(0) === $snippet.get(0)) {
|
||||
|
@ -854,8 +860,7 @@
|
|||
}
|
||||
},
|
||||
|
||||
clean_for_save: function () {
|
||||
}
|
||||
clean_for_save: dummy
|
||||
});
|
||||
|
||||
website.snippet.options.background = website.snippet.Option.extend({
|
||||
|
@ -943,8 +948,7 @@
|
|||
this.id = this.unique_id();
|
||||
this.$target.attr("id", this.id);
|
||||
this.$target.find("[data-slide]").attr("data-cke-saved-href", "#" + this.id);
|
||||
this.$target.find("[data-slide-to]").attr("data-target", "#" + this.id);
|
||||
|
||||
this.$target.find("[data-target]").attr("data-target", "#" + this.id);
|
||||
this.rebind_event();
|
||||
},
|
||||
on_clone: function ($clone) {
|
||||
|
@ -964,7 +968,7 @@
|
|||
},
|
||||
clean_for_save: function () {
|
||||
this._super();
|
||||
this.$target.find(".item").removeClass("next prev left right");
|
||||
$(".carousel").find(".item").removeClass("next prev left right active");
|
||||
if(!this.$target.find(".item.active").length) {
|
||||
this.$target.find(".item:first").addClass("active");
|
||||
}
|
||||
|
@ -1519,9 +1523,6 @@
|
|||
});
|
||||
},
|
||||
onFocus : function () {
|
||||
// don't open media editor before clean for save
|
||||
if (website.snippet.clean_for_save) return;
|
||||
|
||||
var self = this;
|
||||
if (this.$target.parent().data("oe-field") === "image") {
|
||||
this.$overlay.addClass("hidden");
|
||||
|
@ -1761,19 +1762,6 @@
|
|||
}
|
||||
this.$overlay.removeClass('oe_active');
|
||||
},
|
||||
|
||||
/* clean_for_save
|
||||
* 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')
|
||||
.find('*').removeAttr('attributeEditable');
|
||||
},
|
||||
});
|
||||
|
||||
})();
|
||||
|
|
Loading…
Reference in New Issue