diff options
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/form_common.js | 14 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 9 |
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(); |
