Procházet zdrojové kódy

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

version-14
Prateeksha Singh před 7 roky
committed by Rushabh Mehta
rodič
revize
3ff990cf8e
1 změnil soubory, kde provedl 10 přidání a 2 odebrání
  1. +10
    -2
      frappe/public/js/legacy/form.js

+ 10
- 2
frappe/public/js/legacy/form.js Zobrazit soubor

@@ -205,7 +205,11 @@ _f.Frm.prototype.watch_model_updates = function() {
&& me.fields_dict[fieldname].refresh(fieldname); && me.fields_dict[fieldname].refresh(fieldname);


me.layout.refresh_dependency(); 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); // this.check_doctype_conflict(docname);
var me = this; var me = this;


this.promises = [];

// hide any open grid // hide any open grid
this.script_manager.trigger("before_load", this.doctype, this.docname) this.script_manager.trigger("before_load", this.doctype, this.docname)
.then(() => { .then(() => {
@@ -696,7 +702,9 @@ _f.Frm.prototype.save = function(save_action, callback, btn, on_error) {


// let any pending js process finish // let any pending js process finish
setTimeout(function() { 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); }, 100);
}); });
}; };


Načítá se…
Zrušit
Uložit