From 16c32ec7e6d07b5249c1a46041680e92f2f0c69f Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Mon, 11 Jul 2011 15:09:34 -0400 Subject: [PATCH] append line items to table in specified order Prior to this patch, the order that line items were displayed in (e.g.) a purchase order view was effetively randomized based on the amount of time it would take for async calls to fetch additional line item details to return. Signed-off-by: Galen Charlton Signed-off-by: Lebbeous Fogle-Weekley --- Open-ILS/web/js/ui/default/acq/common/li_table.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Open-ILS/web/js/ui/default/acq/common/li_table.js b/Open-ILS/web/js/ui/default/acq/common/li_table.js index 15679ba192..4068294535 100644 --- a/Open-ILS/web/js/ui/default/acq/common/li_table.js +++ b/Open-ILS/web/js/ui/default/acq/common/li_table.js @@ -253,11 +253,19 @@ function AcqLiTable() { this.addLineitem = function(li, skip_final_placement) { this.liCache[li.id()] = li; + // insert the row right away so that final order isn't + // dependent on how long subsequent async request take + // for a given line item + var row = self.rowTemplate.cloneNode(true); + if (!skip_final_placement) { + self.tbody.appendChild(row); + self.selectors.push(dojo.query('[name=selectbox]', row)[0]); + } + // sort the lineitem notes on edit_time if(!li.lineitem_notes()) li.lineitem_notes([]); var liWrapper = new openils.acq.Lineitem({lineitem:li}); - var row = self.rowTemplate.cloneNode(true); row.setAttribute('li', li.id()); var tds = dojo.query('[attr]', row); dojo.forEach(tds, function(td) {self.setRowAttr(td, liWrapper, td.getAttribute('attr'), td.getAttribute('attr_type'));}); @@ -360,10 +368,7 @@ function AcqLiTable() { // show either "mark received" or "unreceive" as appropriate this.updateLiState(li, row); - if (!skip_final_placement) { - self.tbody.appendChild(row); - self.selectors.push(dojo.query('[name=selectbox]', row)[0]); - } else { + if (skip_final_placement) { return row; } }; -- 2.43.2