Advertisement
Guest User

Untitled

a guest
May 14th, 2011
1,543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script language="javascript">
  2.  
  3. Ext.Loader.setPath('Ext','/media/ext-js');
  4. Ext.Loader.setConfig({enabled:true});
  5.  
  6. Ext.require([
  7.              'Ext.grid.*',
  8.              'Ext.data.*',
  9.              'Ext.panel.*',
  10.              'Ext.layout.container.Border',
  11.              'Ext.ux.grid.FiltersFeature'
  12.              ]);
  13.  
  14. var myDateFormat = "d/m/Y H:i";
  15.  
  16. Ext.onReady(function(){
  17.    
  18.    
  19.     Ext.define('Order',{
  20.         extend: 'Ext.data.Model',
  21.         fields: [
  22.                  'date_created',
  23.                  'status',
  24.                  'name',
  25.                  'phone',
  26.                  'delivery_type',
  27.                  'address',
  28.                  'order_price',
  29.                  'purchase_items'
  30.                  ]
  31.     });
  32.    
  33.     //filter options
  34.     var local = true;
  35.     var encode = false;
  36.    
  37.    
  38.    
  39.     var status_store = Ext.create('Ext.data.Store',{
  40.         model: 'Statuses',
  41.         proxy: {
  42.             type: 'ajax',
  43.             url: '/json/statuses/',
  44.             reader: 'json'
  45.         }
  46.     });
  47.    
  48.     var store = Ext.create('Ext.data.Store',{
  49.         model: 'Order',
  50.         proxy: {
  51.             type: 'ajax',
  52.             url: '/shopmng/json/list_of_orders/',
  53.             reader: 'json'
  54.         }
  55.     });
  56.    
  57.     var filters = {
  58.             ftype: 'filters',
  59.             encode: encode,
  60.             local: local,
  61.             filters: [{
  62.                 type: 'list',
  63.                 dataIndex: 'name',
  64.                 store: 'status_store',
  65.                 labelField: 'name'
  66.                
  67.             }]
  68.             };
  69.    
  70.     var grid = Ext.create('Ext.grid.Panel',{
  71.         store: store,
  72.         columns: [
  73.                   {Date: 'Date posted', width: 100, dataIndex: 'date_created', sortable: true, format: myDateFormat},
  74.                   {text: 'Status', width: 120, dataIndex: 'status', sortable: true, filterable: true, filter: {type: 'list'}},
  75.                   {text: 'Name', width: 120, dataIndex: 'name', sortable: false},
  76.                   {text: 'Phone', width: 100, dataIndex: 'phone', sortable: false},
  77.                   {text: 'Delivery Type', width: 160, dataIndex: 'delivery_type', sortable: true},
  78.                   {text: 'Delivery Address', width: 220, dataIndex: 'address', sortable: false, flex: true},
  79.                   {text: 'Price', width: 100, dataIndex: 'order_price', sortable: true}
  80.                   ],
  81.         viewConfig: {
  82.             forceFit: true
  83.         },
  84.         height: 200,
  85.         split: true,
  86.         region: 'north',
  87.         features: [filters]
  88.     });
  89.        
  90.     var OrderTpl = new Ext.XTemplate(
  91.     'Status: {status}, Total price: <strong>{order_price}</strong> <br />',
  92.     'Notes: {notes} <br />',
  93.     'Comments: {staff_comments} <br />',
  94.     '<tpl for="purchase_items">',
  95.     '<hr>',
  96.     '{#}. {picture_name}, {printSize}, {paperType}, количество: {quantity}, цена: {price}',
  97.     '</tpl>'
  98.     );
  99.    
  100.     Ext.create('Ext.Panel', {
  101.         renderTo: 'management_panel',
  102.         frame: true,
  103.         title: 'Manage Orders',
  104.         width: 1000,
  105.         height: 550,
  106.         layout: 'border',
  107.         items: [grid, {
  108.             id: 'detailPanel',
  109.             region: 'center',
  110.             bodyPadding: 7,
  111.             bodyStyle: 'background: #FFFFFF;',
  112.             html: 'select order to view details'
  113.         }]
  114.     });
  115.    
  116.     grid.getSelectionModel().on('selectionchange',function(sm, selectedRecord){
  117.         if (selectedRecord.length){
  118.             var detailPanel = Ext.getCmp('detailPanel');
  119.             OrderTpl.overwrite(detailPanel.body, selectedRecord[0].data);
  120.         }
  121.     });
  122.    
  123.     status_store.load();
  124.     store.load();
  125.    
  126. });
  127.  
  128.  
  129. </script>  
  130.  
  131. <div id='management_panel'></div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement