wait for trigger promises to finish before save (#4488)

This commit is contained in:
Prateeksha Singh 2017-11-14 15:37:58 +05:30 committed by Rushabh Mehta
parent b4001046d5
commit 3ff990cf8e

View file

@ -205,7 +205,11 @@ _f.Frm.prototype.watch_model_updates = function() {
&& me.fields_dict[fieldname].refresh(fieldname);
me.layout.refresh_dependency();
return me.script_manager.trigger(fieldname, doc.doctype, doc.name);
let object = me.script_manager.trigger(fieldname, doc.doctype, doc.name);
if(object instanceof Promise) {
me.promises.push(object);
}
return object;
}
});
@ -586,6 +590,8 @@ _f.Frm.prototype.setnewdoc = function() {
// this.check_doctype_conflict(docname);
var me = this;
this.promises = [];
// hide any open grid
this.script_manager.trigger("before_load", this.doctype, this.docname)
.then(() => {
@ -696,7 +702,9 @@ _f.Frm.prototype.save = function(save_action, callback, btn, on_error) {
// let any pending js process finish
setTimeout(function() {
me._save(save_action, callback, btn, on_error, resolve);
Promise.all(me.promises).then(() => {
me._save(save_action, callback, btn, on_error, resolve);
});
}, 100);
});
};