diff --git a/addons/web_editor/static/src/js/backend.js b/addons/web_editor/static/src/js/backend.js index b160e6a7e97..964ececa06b 100644 --- a/addons/web_editor/static/src/js/backend.js +++ b/addons/web_editor/static/src/js/backend.js @@ -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"];