[FIX] web: display Warning if "Save & Close"

When a warning is triggered by an onchange, clicking on "Save & Close"
will cause the warning to be closed as soon as it is shown. This fix
prevents the saving and closing if a warning message is detected.

opw-653503
This commit is contained in:
Nicolas Martinelli
2015-11-16 08:53:04 +01:00
parent 3d7ae73305
commit 48942f1242
2 changed files with 16 additions and 7 deletions
@@ -868,11 +868,15 @@ var FormViewDialog = ViewDialog.extend({
if(!readonly) {
options.buttons.splice(0, 0, {text: _t("Save") + ((multi_select)? _t(" & Close") : ""), classes: "btn-primary o_formdialog_save", click: function() { // o_formdialog_save class for web_tests!
$.when(self.view_form.save()).done(function() {
self.view_form.reload_mutex.exec(function() {
self.trigger('record_saved');
self.close();
});
self.view_form.onchanges_mutex.def.then(function() {
if (!self.view_form.warning_displayed) {
$.when(self.view_form.save()).done(function() {
self.view_form.reload_mutex.exec(function() {
self.trigger('record_saved');
self.close();
});
});
}
});
}
});
+7 -2
View File
@@ -589,11 +589,16 @@ var FormView = View.extend(common.FieldManagerMixin, {
}
// FIXME XXX a list of warnings?
if (!_.isEmpty(result.warning)) {
new Dialog(this, {
this.warning_displayed = true;
var dialog = new Dialog(this, {
size: 'medium',
title:result.warning.title,
$content: QWeb.render("CrashManager.warning", result.warning)
}).open();
});
dialog.open();
dialog.on('closed', this, function () {
this.warning_displayed = false;
});
}
return $.Deferred().resolve();