Start of inventory app page.
[htsworkflow.git] / htsworkflow / frontend / static / js / htsw-inventory.js
1
2 var getInventoryDataGrid = function(){
3     
4     var Item = Ext.data.Record.create([
5        { name: 'uuid' },
6        { name: 'barcode_id'},
7        { name: 'creation_date'/*, type: 'date', dateFormat: 'n/j h:ia'*/},
8        { name: 'modified_date'/*, type: 'date', dateFormat: 'n/j h:ia'*/},
9        { name: 'type'}
10     ]);
11     
12     var inventoryReader = new Ext.data.JsonReader(
13         {
14             totalProperty: "results",
15             root: "rows",
16             idProperty: "uuid"
17         },
18         Item
19     );
20     
21     /*
22     var inventoryStore = new Ext.data.JsonStore({
23        autoDestory: true,
24        url: '/inventory/data/items/',
25        storeId: 'item_store',
26        
27     });
28     */
29     
30     var grid = new Ext.grid.GridPanel({
31         store: new Ext.data.GroupingStore({
32             reader: inventoryReader,
33             url: '/inventory/data/items/',
34             storeId: 'item_group_store',
35             groupField: 'type',
36             sortInfo: { field: 'modified_date', direction: "ASC"},
37             autoLoad: true
38         }),
39     
40         columns: [
41             {id: 'uuid', header:"UUID", width: 32, sortable: true, dataIndex: 'uuid'},
42             {header: 'Barcode ID', width: 20, sortable: true, dataIndex: 'barcode_id'},
43             {header: 'Creation Date', width: 20, sortable: true, dataIndex: 'creation_date'/*, renderer: Ext.util.Format.dateRenderer('Y/m/d')*/},
44             {header: 'Modified Date', width: 20, sortable: true, dataIndex: 'modified_date'/*, renderer: Ext.util.Format.dateRenderer('Y/m/d')*/},
45             {header: 'Type', width: 20, sortable: true, dataIndex: 'type'}
46         ],
47         
48         view: new Ext.grid.GroupingView({
49            forceFit: true,
50            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
51         }),
52         
53         frame: true,
54         width: 'auto',
55         height: 500,
56         //autoHeight: true,
57         collapsible: false,
58         title: "Inventory Index",
59         iconCls: 'icon-grid'
60         //renderTo: 'grid_target'
61     });
62     
63     return grid;
64 }