From: erickson Date: Mon, 20 Apr 2009 17:32:06 +0000 (+0000) Subject: fixed some grid update and progress bugs with merge/clone X-Git-Tag: sprint4-merge-nov22~10211 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=28241d467062502aaadd0efc9defc3db78c8b8e5;p=working%2FEvergreen.git fixed some grid update and progress bugs with merge/clone git-svn-id: svn://svn.open-ils.org/ILS/trunk@12918 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/js/ui/default/acq/picklist/view_list.js b/Open-ILS/web/js/ui/default/acq/picklist/view_list.js index df2eb80917..ce332f1214 100644 --- a/Open-ILS/web/js/ui/default/acq/picklist/view_list.js +++ b/Open-ILS/web/js/ui/default/acq/picklist/view_list.js @@ -94,22 +94,28 @@ function cloneSelectedPl(fields) { if(selected.length == 0 || !(fields.name)) return; var item = selected[0]; // clone the first selected + var plId = plListGrid.store.getValue(item, 'id'); + var entryCount = Number(plListGrid.store.getValue(item, 'entry_count')); + progressDialog.show(); - progressDialog.update({maximum:item.entry_count, progress:0}); + progressDialog.update({maximum:entryCount, progress:0}); fieldmapper.standardRequest( ['open-ils.acq', 'open-ils.acq.picklist.clone'], { async: true, - params: [openils.User.authtoken, item.id, fields.name], + params: [openils.User.authtoken, plId, fields.name], + onresponse : function(r) { var resp = openils.Util.readResponse(r); if(!resp) return; progressDialog.update({progress:resp.li}); + if(resp.complete) { progressDialog.hide(); var pl = resp.picklist; plCache[pl.id()] = pl; pl.owner(openils.User.user); + pl.entry_count(entryCount); plListGrid.store.newItem(fieldmapper.acqpl.toStoreItem(pl)); } } @@ -135,10 +141,14 @@ function mergeSelectedPl(fields) { var totalLi = 0; var selected = plListGrid.selection.getSelected(); var leadPl = plCache[fields.lead]; + var leadPlItem; dojo.forEach(selected, function(item) { var id = plListGrid.store.getValue(item, 'id'); - if(id == fields.lead) return; + if(id == fields.lead) { + leadPlItem = item; + return; + } totalLi += new Number(plListGrid.store.getValue(item, 'entry_count')); ids.push(id); }); @@ -158,6 +168,7 @@ function mergeSelectedPl(fields) { if(resp.complete) { progressDialog.hide(); leadPl.entry_count( leadPl.entry_count() + totalLi ); + plListGrid.store.setValue(leadPlItem, 'entry_count', leadPl.entry_count()); // remove the deleted lists from the grid dojo.forEach(selected, function(item) { @@ -169,7 +180,6 @@ function mergeSelectedPl(fields) { } } ); - } openils.Util.addOnLoad(loadGrid);