summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/form_common.js14
-rw-r--r--addons/web/static/src/js/views/form_view.js9
2 files changed, 16 insertions, 7 deletions
diff --git a/addons/web/static/src/js/views/form_common.js b/addons/web/static/src/js/views/form_common.js
index 7ec310be6fc..3e31579826a 100644
--- a/addons/web/static/src/js/views/form_common.js
+++ b/addons/web/static/src/js/views/form_common.js
@@ -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();
+ });
+ });
+ }
});
}
});
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js
index c729e397b65..9ef60610783 100644
--- a/addons/web/static/src/js/views/form_view.js
+++ b/addons/web/static/src/js/views/form_view.js
@@ -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();