From b4cb60514f1866d6d7ba795169940b5f0243f987 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 11 Dec 2008 22:09:49 +0000 Subject: [PATCH] dynamic grid creation git-svn-id: svn://svn.open-ils.org/ILS/trunk@11533 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../web/js/ui/default/acq/financial/list_funds.js | 49 ++++++++++++---------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/Open-ILS/web/js/ui/default/acq/financial/list_funds.js b/Open-ILS/web/js/ui/default/acq/financial/list_funds.js index bd9be344bc..aa6f3ed98e 100644 --- a/Open-ILS/web/js/ui/default/acq/financial/list_funds.js +++ b/Open-ILS/web/js/ui/default/acq/financial/list_funds.js @@ -2,7 +2,7 @@ dojo.require("dijit.Dialog"); dojo.require("dijit.form.FilteringSelect"); dojo.require('dijit.form.Button'); dojo.require('dojox.grid.DataGrid'); -dojo.require('dojo.data.ItemFileReadStore'); +dojo.require('dojo.data.ItemFileWriteStore'); dojo.require('openils.widget.OrgUnitFilteringSelect'); dojo.require('openils.acq.CurrencyType'); dojo.require('openils.Event'); @@ -24,28 +24,35 @@ function getBalanceInfo(rowIndex, item) { } function loadFundGrid() { - openils.acq.Fund.createStore( - function(storeData) { - var store = new dojo.data.ItemFileReadStore({data:storeData}); - - fundListGrid.setStore(store); - fundListGrid.render(); - - var yearStore = {identifier:'year', name:'year', items:[]}; - - var added = {}; - for(var i = 0; i < storeData.items.length; i++) { - var year = storeData.items[i].year; - if(!(year in added)) { - yearStore.items.push({year:year}); - added[year] = 1; + var store = new dojo.data.ItemFileWriteStore({data:acqf.initStoreData()}); + fundListGrid.setStore(store); + fundListGrid.render(); + var yearStore = {identifier:'year', name:'year', items:[]}; + var yearsAdded = {}; /* don't duplicate the years in the selector */ + + fieldmapper.standardRequest( + [ 'open-ils.acq', 'open-ils.acq.fund.org.retrieve'], + { async: true, + params: [openils.User.authtoken, null, {flesh_summary:1}], + onresponse : function(r) { + if(lf = openils.Util.readResponse(r)) { + openils.acq.Fund.cache[lf.id()] = lf; + store.newItem(acqf.itemToStoreData(lf)); + var year = lf.year(); + if(!(year in yearsAdded)) { + yearStore.items.push({year:year}); + yearsAdded[year] = 1; + } } + }, + oncomplete : function(r) { + // sort the unique list of years and set the selector to "now" if possible + yearStore.items = yearStore.items.sort().reverse(); + fundFilterYearSelect.store = new dojo.data.ItemFileReadStore({data:yearStore}); + var today = new Date().getFullYear().toString(); + if(today in yearsAdded) + fundFilterYearSelect.setValue(today); } - yearStore.items = yearStore.items.sort().reverse(); - fundFilterYearSelect.store = new dojo.data.ItemFileReadStore({data:yearStore}); - var today = new Date().getFullYear().toString(); - if(today in added) - fundFilterYearSelect.setValue(today); } ); } -- 2.11.0