[FIX] web: do not try to close a destroyed dialog. trigger "closing" signal on close by top-right "X" button
bzr revid: chs@openerp.com-20140411162426-60bfybim5aqojsxx
This commit is contained in:
parent
fb19b54ff9
commit
df3c6b7502
|
@ -198,6 +198,8 @@ instance.web.Dialog = instance.web.Widget.extend({
|
||||||
if (options.height === 'auto' && options.max_height) {
|
if (options.height === 'auto' && options.max_height) {
|
||||||
this.$el.css({ 'max-height': options.max_height, 'overflow-y': 'auto' });
|
this.$el.css({ 'max-height': options.max_height, 'overflow-y': 'auto' });
|
||||||
}
|
}
|
||||||
|
var self = this;
|
||||||
|
this.$el.on('dialogclose', function() { self.close(); });
|
||||||
this.dialog_inited = true;
|
this.dialog_inited = true;
|
||||||
var res = this.start();
|
var res = this.start();
|
||||||
return res;
|
return res;
|
||||||
|
@ -206,9 +208,11 @@ instance.web.Dialog = instance.web.Widget.extend({
|
||||||
Closes the popup, if destroy_on_close was passed to the constructor, it is also destroyed.
|
Closes the popup, if destroy_on_close was passed to the constructor, it is also destroyed.
|
||||||
*/
|
*/
|
||||||
close: function(reason) {
|
close: function(reason) {
|
||||||
if (this.dialog_inited && this.$el.is(":data(dialog)")) {
|
if (this.dialog_inited) {
|
||||||
this.trigger("closing", reason);
|
this.trigger("closing", reason);
|
||||||
this.$el.dialog('close');
|
if (this.$el.is(":data(dialog)")) { // may have been destroyed by closing signal
|
||||||
|
this.$el.dialog('close');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_closing: function() {
|
_closing: function() {
|
||||||
|
|
Loading…
Reference in New Issue