From 24fc24dad21b71b5b4a7d7cf1de9357dfe963338 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 3 Oct 2012 15:00:26 -0400 Subject: [PATCH] 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 --- Open-ILS/web/js/ui/default/acq/invoice/receive.js | 36 +++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) 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 1ed65be7c3..1eddf86523 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 */ -- 2.11.0