[FIX] web_editor: disable button when html field loading

Commit bed33e1ca2 forgot to include the case
where the html field is in a modal

This commit accounts for that case

closes #24500
This commit is contained in:
Lucas Perais (lpe)
2018-05-02 09:58:04 +02:00
parent 5ff3c03410
commit 472c5a4f9f
+22 -5
View File
@@ -194,8 +194,6 @@ var FieldTextHtml = widget.extend({
},
start: function () {
var self = this;
// Do not Forward port in >= 11.0
this.$formButtons = this.getParent().$buttons;
this.callback = _.uniqueId('FieldTextHtml_');
window.odoo[this.callback+"_editor"] = function (EditorBar) {
setTimeout(function () {
@@ -293,13 +291,32 @@ var FieldTextHtml = widget.extend({
src += "&datarecord="+ encodeURIComponent(JSON.stringify(datarecord));
return src;
},
_toggleFormButtons: function(enable) {
if (this.$formButtons) {
if (enable) {
this.$formButtons.find('button').removeClass('o_disabled').attr('disabled', false);
} else {
this.$formButtons.find('button').addClass('o_disabled').attr('disabled', true);
}
}
},
initialize_content: function () {
var self = this;
// Do not Forward port in >= 11.0
function getModalButtons() {
var $modal = self.getParent().getParent();
if ($modal && $modal.$footer) {
return $modal.$footer;
}
}
this.$formButtons = this.getParent().$buttons || getModalButtons();
this.$el.closest('.modal-body').css('max-height', 'none');
this.$iframe = this.$el.find('iframe');
// deactivate any button to avoid saving a not ready iframe
// Do not Forward port in >= 11.0
this.$formButtons.find('button').addClass('o_disabled').attr('disabled', true);
this._toggleFormButtons(false);
this.document = null;
this.$body = $();
this.$content = $();
@@ -327,7 +344,7 @@ var FieldTextHtml = widget.extend({
this.render_value();
// reactivate all the buttons when the field's content (the iframe) is loaded
// Do not Forward port in >= 11.0
this.$formButtons.find('button').removeClass('o_disabled').attr('disabled', false);
this._toggleFormButtons(true);
setTimeout(function () {
self.add_button();
setTimeout(self.resize,0);
@@ -426,7 +443,7 @@ var FieldTextHtml = widget.extend({
},
destroy: function () {
// Do not Forward port in >= 11.0
this.$formButtons.find('button').removeClass('o_disabled').attr('disabled', false);
this._toggleFormButtons(true);
$(window).off('resize', this.resize);
delete window.odoo[this.callback+"_editor"];
delete window.odoo[this.callback+"_content"];