浏览代码

Merge pull request #914 from nabinhait/hotfix

Block parallel ajax while saving
version-14
Nabin Hait 10 年前
父节点
当前提交
a0e17a80b1
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. +10
    -0
      frappe/public/js/frappe/form/save.js
  2. +2
    -0
      frappe/public/js/frappe/request.js

+ 10
- 0
frappe/public/js/frappe/form/save.js 查看文件

@@ -114,6 +114,13 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
// btn: btn // btn: btn
// } // }
$(opts.btn).prop("disabled", true); $(opts.btn).prop("disabled", true);

if(frappe.ui.form.is_saving) {
msgprint(__("Already saving. Please wait a few moments."));
throw "saving";
}
frappe.ui.form.is_saving = true;

return frappe.call({ return frappe.call({
freeze: true, freeze: true,
method: opts.method, method: opts.method,
@@ -121,6 +128,9 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
callback: function(r) { callback: function(r) {
$(opts.btn).prop("disabled", false); $(opts.btn).prop("disabled", false);
opts.callback && opts.callback(r); opts.callback && opts.callback(r);
},
always: function() {
frappe.ui.form.is_saving = false;
} }
}) })
}; };


+ 2
- 0
frappe/public/js/frappe/request.js 查看文件

@@ -29,6 +29,7 @@ frappe.call = function(opts) {
args: args, args: args,
success: opts.callback, success: opts.callback,
error: opts.error, error: opts.error,
always: opts.always,
btn: opts.btn, btn: opts.btn,
freeze: opts.freeze, freeze: opts.freeze,
show_spinner: !opts.no_spinner, show_spinner: !opts.no_spinner,
@@ -124,6 +125,7 @@ frappe.request.call = function(opts) {
data = JSON.parse(data.responseText); data = JSON.parse(data.responseText);
} }
frappe.request.cleanup(opts, data); frappe.request.cleanup(opts, data);
if(opts.always) opts.always(data);
}) })
.done(function(data, textStatus, xhr) { .done(function(data, textStatus, xhr) {
var status_code_handler = statusCode[xhr.statusCode().status]; var status_code_handler = statusCode[xhr.statusCode().status];


正在加载...
取消
保存