From: Bill Erickson Date: Wed, 3 Oct 2012 19:00:26 +0000 (-0400) Subject: ACQ invoice receive UI handles async LI retrieval X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=032b9e7f47d25f3d2f166dc516b8dfe972249ed4;p=contrib%2FConifer.git ACQ invoice receive UI handles async LI retrieval openils.acq.Linetitem.fetchAndRender() now fetches lineitems asynchronously. This commit causes the invoice receive UI to calculate the copies to be received after all lineitems have been (async) fetched. Without this, it always appears as though there are no copies to receive Signed-off-by: Bill Erickson Signed-off-by: Kathy Lussier Signed-off-by: Lebbeous Fogle-Weekley --- diff --git a/Open-ILS/web/js/ui/default/acq/invoice/receive.js b/Open-ILS/web/js/ui/default/acq/invoice/receive.js index d521335fcb..b9320c9edf 100644 --- a/Open-ILS/web/js/ui/default/acq/invoice/receive.js +++ b/Open-ILS/web/js/ui/default/acq/invoice/receive.js @@ -265,28 +265,38 @@ function ReceivableCopyTable() { this._set_invoice_header(); } - this.pcrud.search("acqie", {"invoice": this.inv_id}).forEach( + var entries = this.pcrud.search("acqie", {"invoice": this.inv_id}); + var fetched = 0; + var self = this; + + entries.forEach( function(entry) { if (entry.lineitem()) { openils.acq.Lineitem.fetchAndRender( entry.lineitem(), {"flesh_li_details": true, "flesh_notes": true}, - function(li, str) { self.add_lineitem(entry, li, str); } + function(li, str) { + self.add_lineitem(entry, li, str); + + fetched++; + if (fetched == entries.length) { + self._render_copy_count_info(); + + if (openils.Util.objectProperties(self.li_by_lid).length) { + openils.Util.show("non-empty"); + openils.Util.hide("empty"); + } else { + openils.Util.hide("non-empty"); + openils.Util.show("empty"); + } + + progress_dialog.hide(); + } + } ); } } ); - - this._render_copy_count_info(); - - if (openils.Util.objectProperties(this.li_by_lid).length) { - openils.Util.show("non-empty"); - openils.Util.hide("empty"); - } else { - openils.Util.hide("non-empty"); - openils.Util.show("empty"); - } - progress_dialog.hide(); }; /* returns an array of lineitem_detail IDs */