|
|
@ -6,29 +6,35 @@ |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
openerp.web_confirm_window_close = function(openerp) { |
|
|
|
//3 essential differences between 6.1 and 7.0
|
|
|
|
// - widget_parent replaced by ViewManager
|
|
|
|
// - $element. replaced by $el
|
|
|
|
// - $(window).bind replaced by $(window).on
|
|
|
|
openerp.web.FormView.include({ |
|
|
|
openerp.web_confirm_window_close = function(instance) { |
|
|
|
|
|
|
|
instance.web.FormView.include({ |
|
|
|
init: function(parent, dataset, view_id, options) { |
|
|
|
res = this._super(parent, dataset, view_id, options); |
|
|
|
instance.web.bus.on('report_uncommitted_changes', this, function(e) { |
|
|
|
if (this.$el.is('.oe_form_dirty')) { |
|
|
|
e.preventDefault(); |
|
|
|
} |
|
|
|
}); |
|
|
|
return res; |
|
|
|
} |
|
|
|
}), |
|
|
|
|
|
|
|
instance.web.WebClient.include({ |
|
|
|
warning_on_close: function() { |
|
|
|
if (this.ViewManager |
|
|
|
&& this.ViewManager.active_view == 'form' |
|
|
|
&& this.$el.hasClass('oe_form_dirty')) |
|
|
|
// Firefox will show a generic confirmation dialog
|
|
|
|
// When any text is returned here.
|
|
|
|
return openerp.web._t( |
|
|
|
var $e = $.Event('report_uncommitted_changes'); |
|
|
|
instance.web.bus.trigger('report_uncommitted_changes', $e); |
|
|
|
if ($e.isDefaultPrevented()) { |
|
|
|
return instance.web._t( |
|
|
|
"You have unsaved data in this window. " + |
|
|
|
"Do you really want to leave?"); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
start: function() { |
|
|
|
res = this._super(); |
|
|
|
if (!(this.embedded_view)) { |
|
|
|
$(window).on("beforeunload", _.bind( |
|
|
|
this.warning_on_close, this)); |
|
|
|
} |
|
|
|
return res; |
|
|
|
} |
|
|
|
|
|
|
|