acq fund : balance getter, fleshed funds, filter dialog acq-fund-nav-improvements
authorBill Erickson <berick@esilibrary.com>
Fri, 23 Mar 2012 16:06:53 +0000 (12:06 -0400)
committerBill Erickson <berick@esilibrary.com>
Fri, 23 Mar 2012 16:06:53 +0000 (12:06 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/acq/fund/list.tt2
Open-ILS/web/js/ui/default/acq/financial/list_funds.js

index c70e1a1..95eac5f 100644 (file)
             requiredFields="['name', 'code', 'year', 'org', 'currency_type']"
             query="{id: '*'}"
             fmClass='acqf'
+            showLoadFilter='true'
             showPaginator='true'
             editOnEnter='true'>
         <thead>
index 276f89a..763ee2b 100644 (file)
@@ -32,6 +32,7 @@ var fundFleshFields = [
 ];
 
 var adminPermOrgs = [];
+var cachedFunds = [];
 
 function initPage() {
     contextOrg = openils.User.user.ws_ou();
@@ -48,7 +49,8 @@ function initPage() {
         );
     };
 
-    dojo.connect(refreshButton, 'onClick', function() { rolloverMode = false; gridDataLoader(); });
+    dojo.connect(refreshButton, 'onClick', 
+        function() { rolloverMode = false; gridDataLoader(); });
 
     new openils.User().buildPermOrgSelector(
         ['ADMIN_ACQ_FUND', 'VIEW_FUND'], 
@@ -58,7 +60,8 @@ function initPage() {
         fieldmapper.aou.findOrgUnit(contextOrg).shortname();
 
     loadYearSelector();
-    lfGrid.dataLoader = gridDataLoader;
+    //lfGrid.dataLoader = gridDataLoader;
+    lfGrid.onItemReceived = function(item) {cachedFunds.push(item)};
 
     new openils.User().getPermOrgList(
         'ADMIN_ACQ_FUND',
@@ -87,11 +90,44 @@ function gridDataLoader() {
     }
 }
 
+function getBalanceInfo(rowIdx, item) {
+    if (!item) return '';
+    var fundId = this.grid.store.getValue(item, 'id');
+    var fund = cachedFunds.filter(function(f) { return f.id() == fundId })[0];
+    var cb = fund.combined_balance();
+    return cb ? cb.amount() : '0';
+}
+
 function loadFundGrid(year) {
 
     openils.Util.hide('acq-fund-list-rollover-summary');
     year = year || fundFilterYearSelect.attr('value');
+    cachedFunds = [];
+
+    lfGrid.loadAll(
+        {
+            flesh : 1,  
+            flesh_fields : {acqf : fundFleshFields},
+            
+            // by default, sort funds I can edit to the front
+            order_by : [
+                {   'class' : 'acqf',
+                    field : 'org',
+                    compare : {'in' : adminPermOrgs},
+                    direction : 'desc'
+                },
+                {   'class' : 'acqf',
+                    field : 'name'
+                }
+            ]
+        }, {   
+            year : year, 
+            org : fieldmapper.aou.descendantNodeList(contextOrg, true) 
+        } 
+    );
+
 
+    /*
     var pcrud = new openils.PermaCrud();
     pcrud.search('acqf', 
         {   year : year, 
@@ -124,6 +160,7 @@ function loadFundGrid(year) {
             }
         }
     );
+    */
 }
 
 function loadYearSelector() {