moved queue grid to dojo.data.DataGrid plus some other dojo-istic updates. need...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 6 May 2009 17:28:20 +0000 (17:28 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 6 May 2009 17:28:20 +0000 (17:28 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@13090 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/vandelay/inc/queue.xml
Open-ILS/web/vandelay/vandelay.js

index 736565f..00ae5cd 100644 (file)
@@ -13,7 +13,6 @@
     var vlQueueGridLayout;
     function resetVlQueueGridLayout() {
         vlQueueGridLayout = [{
     var vlQueueGridLayout;
     function resetVlQueueGridLayout() {
         vlQueueGridLayout = [{
-            //defaultCell: {styles: 'text-align: center;'},
             cells : [[
                 {name: '&lt;input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"/>', 
                     get: vlQueueGridDrawSelectBox, styles : 'text-align: center;' },
             cells : [[
                 {name: '&lt;input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"/>', 
                     get: vlQueueGridDrawSelectBox, styles : 'text-align: center;' },
     </div>
 
     <!-- Queue Grid -->
     </div>
 
     <!-- Queue Grid -->
-    <div class='' style='height:87%;' dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-        <div dojoType='dojox.Grid' jsId='vlQueueGrid'> </div>
+    <div dojoType="openils.widget.GridColumnPicker" jsid="vlQueueGridMenu" style="display: none;" grid='vlQueueGrid'>
+        <div dojoType="dojox.widget.PlaceholderMenuItem" label="GridColumns"></div>
+    </div>
+    <div style='height:600px' dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+        <!--
+        <table dojoType='dojox.grid.DataGrid' jsId='vlQueueGrid' query="{id:'*'}" headerMenu='vlQueueGridMenu'> 
+        -->
+        <table dojoType='dojox.grid.DataGrid' jsId='vlQueueGrid' query="{id:'*'}"> 
+        </table>
     </div>
 </div>
 
     </div>
 </div>
 
index 6a16c03..ea07b47 100644 (file)
@@ -39,6 +39,7 @@ dojo.require('openils.Event');
 dojo.require('openils.Util');
 dojo.require('openils.MarcXPathParser');
 dojo.require('openils.GridColumnPicker');
 dojo.require('openils.Util');
 dojo.require('openils.MarcXPathParser');
 dojo.require('openils.GridColumnPicker');
+dojo.require('openils.widget.GridColumnPicker');
 
 
 var globalDivs = [
 
 
 var globalDivs = [
@@ -318,7 +319,7 @@ function retrieveQueuedRecords(type, queueId, onload) {
     currentOverlayRecordsMap = {};
     currentOverlayRecordsMapGid = {};
     selectableGridRecords = {};
     currentOverlayRecordsMap = {};
     currentOverlayRecordsMapGid = {};
     selectableGridRecords = {};
-    resetVlQueueGridLayout();
+    //resetVlQueueGridLayout();
 
     if(!type) type = currentType;
     if(!queueId) queueId = currentQueueId;
 
     if(!type) type = currentType;
     if(!queueId) queueId = currentQueueId;
@@ -328,10 +329,9 @@ function retrieveQueuedRecords(type, queueId, onload) {
     if(vlQueueGridShowMatches.checked)
         method = method.replace('records', 'records.matches');
 
     if(vlQueueGridShowMatches.checked)
         method = method.replace('records', 'records.matches');
 
-    //var limit = parseInt(vlQueueDisplayLimit.getValue());
     var sel = dojo.byId('vl-queue-display-limit-selector');
     var limit = parseInt(sel.options[sel.selectedIndex].value);
     var sel = dojo.byId('vl-queue-display-limit-selector');
     var limit = parseInt(sel.options[sel.selectedIndex].value);
-    var offset = limit * parseInt(vlQueueDisplayPage.getValue()-1);
+    var offset = limit * parseInt(vlQueueDisplayPage.attr('value')-1);
 
     var params =  [authtoken, queueId, {clear_marc: 1, offset: offset, limit: limit}];
     if(vlQueueGridShowNonImport.checked)
 
     var params =  [authtoken, queueId, {clear_marc: 1, offset: offset, limit: limit}];
     if(vlQueueGridShowNonImport.checked)
@@ -520,29 +520,28 @@ function getRecAttrFromCode(rec, attrCode) {
     return null;
 }
 
     return null;
 }
 
-function vlGetViewMatches(rowIdx) {
-    var data = this.grid.model.getRow(rowIdx);
-    if(!data) return '';
-    var rec = queuedRecordsMap[data.id];
+function vlGetViewMatches(rowIdx, item) {
+    if(!item) return '';
+    var id = this.grid.store.getValue(item, 'id');
+    var rec = queuedRecordsMap[id];
     if(rec.matches().length > 0)
     if(rec.matches().length > 0)
-        return this.value.replace('RECID', data.id);
+        return this.value.replace('RECID', id);
     return '';
 }
 
     return '';
 }
 
-function getAttrValue(rowIdx) {
-    var data = this.grid.model.getRow(rowIdx);
-    if(!data) return '';
+function getAttrValue(rowIdx, item) {
+    if(!item) return '';
     var attrCode = this.field.split('.')[1];
     var attrCode = this.field.split('.')[1];
-    var rec = queuedRecordsMap[data.id];
+    var rec = queuedRecordsMap[this.grid.store.getValue(item, 'id')];
     var attr = getRecAttrFromCode(rec, attrCode);
     return (attr) ? attr.attr_value() : '';
 }
 
     var attr = getRecAttrFromCode(rec, attrCode);
     return (attr) ? attr.attr_value() : '';
 }
 
-function vlGetDateTimeField(rowIdx) {
-    data = this.grid.model.getRow(rowIdx);
-    if(!data) return '';
-    if(!data[this.field]) return '';
-    var date = dojo.date.stamp.fromISOString(data[this.field]);
+function vlGetDateTimeField(rowIdx, item) {
+    if(!item) return '';
+    var value = this.grid.store.getValue(item, this.field);
+    if(!value) return '';
+    var date = dojo.date.stamp.fromISOString(value);
     return dojo.date.locale.format(date, {selector:'date'});
 }
 
     return dojo.date.locale.format(date, {selector:'date'});
 }
 
@@ -560,10 +559,9 @@ function vlGetCreator(rowIdx) {
     return user.usrname();
 }
 
     return user.usrname();
 }
 
-function vlGetViewMARC(rowIdx) {
-    data = this.grid.model.getRow(rowIdx);
-    if(data) 
-        return this.value.replace('RECID', data.id);
+function vlGetViewMARC(rowIdx, item) {
+    if(!item) return '';
+    return this.value.replace('RECID', this.grid.store.getValue(item, 'id'));
 }
 
 function vlGetOverlayTargetSelector(rowIdx) {
 }
 
 function vlGetOverlayTargetSelector(rowIdx) {
@@ -639,19 +637,22 @@ function buildRecordGrid(type) {
         storeData = vqar.toStoreData(queuedRecords);
 
     var store = new dojo.data.ItemFileReadStore({data:storeData});
         storeData = vqar.toStoreData(queuedRecords);
 
     var store = new dojo.data.ItemFileReadStore({data:storeData});
-    var model = new dojox.grid.data.DojoData(
-        null, store, {rowsPerPage: 100, clientSort: true, query:{id:'*'}});
-    vlQueueGrid.setModel(model);
-
+    vlQueueGrid.setStore(store);
+    vlQueueGrid.attr('structure', vlQueueGridLayout);
 
 
+    /*
     if(vlQueueGridColumePicker[type]) {
         vlQueueGrid.update();
     } else {
         vlQueueGridColumePicker[type] = 
     if(vlQueueGridColumePicker[type]) {
         vlQueueGrid.update();
     } else {
         vlQueueGridColumePicker[type] = 
-            new openils.GridColumnPicker(vlQueueGridColumePickerDialog, 
-                vlQueueGrid, vlQueueGridLayout, authtoken, 'vandelay.queue.'+type);
+            new vlQueueGridMenu.init({
+                grid : vlQueueGrid, 
+                authtoken : authtoken, 
+                persistPrefix : 'vandelay.queue.'+type
+            });
         vlQueueGridColumePicker[type].load();
     }
         vlQueueGridColumePicker[type].load();
     }
+    */
 }
 
 function vlQueueGridPrevPage() {
 }
 
 function vlQueueGridPrevPage() {
@@ -682,11 +683,11 @@ function vlDeleteQueue(type, queueId, onload) {
 }
 
 
 }
 
 
-function vlQueueGridDrawSelectBox(rowIdx) {
-    var data = this.grid.model.getRow(rowIdx);
-    if(!data) return '';
-    var domId = 'vl-record-list-selected-' +data.id;
-    selectableGridRecords[domId] = data.id;
+function vlQueueGridDrawSelectBox(rowIdx, item) {
+    if(!item) return '';
+    var id = this.grid.store.getValue(item, 'id');
+    var domId = 'vl-record-list-selected-' + id;
+    selectableGridRecords[domId] = id;
     return "<div><input type='checkbox' id='"+domId+"'/></div>";
 }
 
     return "<div><input type='checkbox' id='"+domId+"'/></div>";
 }