From 1d51e3d4d50802ec1996b7b9c9acf271204bb457 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 24 Jul 2008 17:37:38 +0000 Subject: [PATCH] added ability to create PO from all listed items. added progress bar for asset create call git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10116 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../media/ui_js/oils/default/acq/po/li_search.js | 64 +++++++++++++--------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js index 99ec94f89f..e1de9f7c14 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js @@ -73,41 +73,43 @@ function handleResult(r) { function viewList() { dojo.style('searchProgress', 'visibility', 'hidden'); dojo.style('oils-acq-li-search-result-grid', 'visibility', 'visible'); - var store = new dojo.data.ItemFileReadStore( + var store = new dojo.data.ItemFileWriteStore( {data:jub.toStoreData(lineitems, null, {virtualFields:['estimated_price', 'actual_price']})}); var model = new dojox.grid.data.DojoData( null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}}); - JUBGrid.populate(liGrid, model, lineitems) + JUBGrid.populate(liGrid, model, lineitems); } function createPOFromLineitems(fields) { - var po = new acqpo() + var po = new acqpo(); po.provider(newPOProviderSelector.getValue()); createAssetsSelected = fields.create_assets; createDebitsSelected = fields.create_debits; - // find the selected lineitems - var selected = liGrid.selection.getSelected(); - var selList = []; - for(var idx = 0; idx < selected.length; idx++) { - var rowIdx = selected[idx]; - var id = liGrid.model.getRow(rowIdx).id; - for(var i = 0; i < lineitems.length; i++) { - var li = lineitems[i]; - if(li.id() == id && !li.purchase_order() && li.state() == 'approved') - selList.push(lineitems[i]); + if(fields.which == 'selected') { + // find the selected lineitems + var selected = liGrid.selection.getSelected(); + var selList = []; + for(var idx = 0; idx < selected.length; idx++) { + var rowIdx = selected[idx]; + var id = liGrid.model.getRow(rowIdx).id; + for(var i = 0; i < lineitems.length; i++) { + var li = lineitems[i]; + if(li.id() == id && !li.purchase_order() && li.state() == 'approved') + selList.push(lineitems[i]); + } } + } else { + selList = lineitems; } if(selList.length == 0) return; openils.acq.PO.create(po, function(poId) { - if(e = openils.Event.parse(poId)) { - alert(e); - return; - } + if(e = openils.Event.parse(poId)) + return alert(e); updateLiList(poId, selList); } ); @@ -143,7 +145,7 @@ function _updateLiList(poId, selList, idx) { if(createAssetsSelected) return createAssets(poId); else - return viewPo(poId); + return checkCreateDebits(poId); } var li = selList[idx]; li.purchase_order(poId); @@ -156,17 +158,27 @@ function _updateLiList(poId, selList, idx) { } function createAssets(poId) { + searchProgress.update({progress: 0}); + dojo.style('searchProgress', 'visibility', 'visible'); + + function onresponse(r) { + var stat = r.recv().content(); + if(e = openils.Event.parse(stat)) + return alert(e); + searchProgress.update({maximum: stat.total, progress: stat.progress}); + } + + function oncomplete(r) { + dojo.style('searchProgress', 'visibility', 'hidden'); + checkCreateDebits(poId); + } + fieldmapper.standardRequest( ['open-ils.acq','open-ils.acq.purchase_order.assets.create'], - { - async: true, + { async: true, params: [openils.User.authtoken, poId], - oncomplete : function(r) { - if(e = openils.Event.parse(r.recv().content())) - alert(e); - else - viewPO(poId); - } + onresponse : onresponse, + oncomplete : oncomplete } ); } -- 2.11.0