ported picklist page to autogrid for consistency
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 20 Apr 2009 18:33:33 +0000 (18:33 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 20 Apr 2009 18:33:33 +0000 (18:33 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12922 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/ui/default/acq/picklist/view_list.js
Open-ILS/web/templates/default/acq/picklist/list.tt2

index ce332f1..3e932d9 100644 (file)
@@ -1,4 +1,5 @@
-dojo.require('dojox.grid.DataGrid');
+//dojo.require('dojox.grid.DataGrid');
+dojo.require('openils.widget.AutoGrid');
 dojo.require('dojo.data.ItemFileWriteStore');
 dojo.require('dijit.Dialog');
 dojo.require('dijit.form.Button');
@@ -21,22 +22,15 @@ function loadGrid() {
     if(listAll)
         method = method.replace(/user/, 'user.all');
 
-    var store = new dojo.data.ItemFileWriteStore({data:acqpl.initStoreData()});
-    plListGrid.setStore(store);
-    plListGrid.render();
-
     fieldmapper.standardRequest(
         ['open-ils.acq', method],
-
         {   async: true,
-            params: [openils.User.authtoken, 
-                {flesh_lineitem_count:1, flesh_owner:1}],
-
+            params: [openils.User.authtoken, {flesh_lineitem_count:1, flesh_owner:1}],
             onresponse : function(r) {
-                if(pl = openils.Util.readResponse(r)) {
-                    plCache[pl.id()] = pl;
-                    store.newItem(acqpl.toStoreItem(pl));
-                }
+                var pl = openils.Util.readResponse(r);
+                if(!pl) return;
+                plCache[pl.id()] = pl;
+                plListGrid.store.newItem(acqpl.toStoreItem(pl));
             }, 
         }
     );
@@ -78,22 +72,23 @@ function getDateTimeField(rowIndex, item) {
     return dojo.date.locale.format(date, {formatLength:'short'});
 }
 function deleteFromGrid() {
-    var list = []
-    var selected = plListGrid.selection.getSelected();
-    for(var idx = 0; idx < selected.length; idx++) {
-        var item = selected[idx];
-        list.push(item.id);
-        plListGrid.store.deleteItem(item);
-    }
-    openils.acq.Picklist.deleteList(list);
+    progressDialogInd.show();
+    var list = [];
+    dojo.forEach(
+        plListGrid.getSelectedItems(), 
+        function(item) {
+            list.push(plListGrid.store.getValue(item, 'id'));
+            plListGrid.store.deleteItem(item);
+        }
+    );
+    openils.acq.Picklist.deleteList(list, function(){progressDialogInd.hide();});
 }
 
 function cloneSelectedPl(fields) {
 
-    var selected = plListGrid.selection.getSelected();
-    if(selected.length == 0 || !(fields.name)) return;
+    var item = plListGrid.getSelectedItems()[0];
+    if(!item) 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'));
 
@@ -125,11 +120,13 @@ function cloneSelectedPl(fields) {
 
 function loadLeadPlSelector() {
     var store = new dojo.data.ItemFileWriteStore({data:acqpl.initStoreData()}); 
-    var selected = plListGrid.selection.getSelected();
-    dojo.forEach(selected, function(item) { 
-        var pl = plCache[plListGrid.store.getValue(item, 'id')];
-        store.newItem(fieldmapper.acqpl.toStoreItem(pl));
-    });
+    dojo.forEach(
+        plListGrid.getSelectedItems(),
+        function(item) { 
+            var pl = plCache[plListGrid.store.getValue(item, 'id')];
+            store.newItem(fieldmapper.acqpl.toStoreItem(pl));
+        }
+    );
     plMergeLeadSelector.store = store;
     plMergeLeadSelector.startup();
 }
@@ -139,19 +136,21 @@ function mergeSelectedPl(fields) {
 
     var ids = [];
     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) {
-            leadPlItem = item;
-            return;
+    dojo.forEach(
+        plListGrid.getSelectedItems(),
+        function(item) { 
+            var id = plListGrid.store.getValue(item, 'id');
+            if(id == fields.lead) {
+                leadPlItem = item;
+                return;
+            }
+            totalLi +=  new Number(plListGrid.store.getValue(item, 'entry_count'));
+            ids.push(id);
         }
-        totalLi +=  new Number(plListGrid.store.getValue(item, 'entry_count'));
-        ids.push(id);
-    });
+    );
 
     progressDialog.show();
     progressDialog.update({maximum:totalLi, progress:0});
@@ -171,11 +170,14 @@ function mergeSelectedPl(fields) {
                     plListGrid.store.setValue(leadPlItem, 'entry_count', leadPl.entry_count());
 
                     // remove the deleted lists from the grid
-                    dojo.forEach(selected, function(item) { 
-                        var id = plListGrid.store.getValue(item, 'id');
-                        if(id != fields.lead)
-                            plListGrid.store.deleteItem(item);
-                    });
+                    dojo.forEach(
+                        plListGrid.getSelectedItems(),
+                        function(item) { 
+                            var id = plListGrid.store.getValue(item, 'id');
+                            if(id != fields.lead)
+                                plListGrid.store.deleteItem(item);
+                        }
+                    );
                 }
             }
         }
index 6911d51..18445da 100644 (file)
@@ -50,8 +50,6 @@
         </div>
     </div>
 
-    <button dojoType="dijit.form.Button" onclick="deleteFromGrid();">Delete Selected</button>
-
     <div dojoType="dijit.form.DropDownButton">
         <span>Clone Selected</span>
         <div dojoType="dijit.TooltipDialog" execute="cloneSelectedPl(arguments[0]);">
         </div>
     </div>
 
+    <button dojoType="dijit.form.Button" onclick="deleteFromGrid();">Delete Selected</button>
+
 </div>
 
 <div dojoType="dijit.layout.ContentPane" layoutAlign="top">
     <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'>
-        <table jsId="plListGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'>
+        <table 
+                jsId="plListGrid" 
+                dojoType="openils.widget.AutoGrid" 
+                query="{id: '*'}" 
+                fieldOrder="['name', 'owner', 'entry_count', 'create_time', 'edit_time']"
+                suppressFields="['editor', 'creator']"
+                query="{id: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='acqpl'
+                editOnEnter='true'>
             <thead>
                 <tr>
-                    <th field="id">ID</th>
-                    <th field="name" width='auto' editable='true'
-                        cellType='dojox.grid.cells._Widget'
-                        widgetClass='dijit.form.TextBox' formatter='formatName'>Name</th>
-                    <th field="owner" get='getOwnerName'>Selector</th>
-                    <th field="create_time" width='auto' get='getDateTimeField'>Create Time</th>
-                    <th field="edit_time" width='auto' get='getDateTimeField'>Edit Time</th>
+                    <th field="name" formatter='formatName'/>
+                    <th field="owner" get='getOwnerName'/>
                     <th field="entry_count">Entry Count</th>
                 </tr>
             </thead>
 </div>
 
 <div class='hidden'><div jsId='progressDialog' dojoType='openils.widget.ProgressDialog'/></div>
+<div class='hidden'><div jsId='progressDialogInd' dojoType='openils.widget.ProgressDialog' indeterminate='true'/></div>
 
 [% END %]