PageRenderTime 48ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/releases/extjs/myext/agent_list.js.php

http://toan-friendly-ch4n.googlecode.com/
PHP | 198 lines | 187 code | 9 blank | 2 comment | 6 complexity | 39886af2648d76f337cc6c86cc199a33 MD5 | raw file
Possible License(s): AGPL-3.0
  1. var fm = Ext.form;
  2. var base_url = '<?php echo base64_decode($_GET['baseUrl']);?>';
  3. <?php
  4. $langList = unserialize(base64_decode($_GET['langList']));
  5. $langFilter = array();
  6. foreach($langList as $k=>$v){
  7. $langFilter[]=array($k,$v);
  8. }
  9. $langFilter = json_encode($langFilter);
  10. $langList = json_encode($langList);
  11. ?>
  12. var langFilter = <?php echo $langFilter;?>;
  13. var langList = <?php echo $langList;?>;
  14. var total_row = 20;
  15. var proxy = new Ext.data.ScriptTagProxy({
  16. api: {
  17. read : base_url+'admin/agent/grid.html',
  18. create : base_url+'admin/agent/add.html',
  19. update: base_url+'admin/agent/add.html',
  20. destroy: base_url+'admin/agent/delete.html'
  21. }
  22. });
  23. var writer = new Ext.data.JsonWriter({
  24. encode: true
  25. });
  26. var store = new Ext.data.JsonStore({
  27. start : 'start',
  28. remoteSort: true,
  29. totalProperty: 'total',
  30. proxy: proxy,
  31. root: 'data',
  32. fields : [
  33. {name: 'id'},
  34. {name: 'company_name'},
  35. {name: 'contact_name'},
  36. {name: 'email'},
  37. {name: 'phone'},
  38. {name: 'fax'},
  39. {name: 'address'},
  40. {name: 'comment'},
  41. {name: 'username'},
  42. {name: 'edit',type: 'string'}
  43. ],
  44. listeners: {
  45. save: function(s, b, d) {
  46. store.save();
  47. }
  48. },
  49. writer: writer
  50. });
  51. var filters = new Ext.ux.grid.GridFilters({
  52. // encode and local configuration options defined previously for easier reuse
  53. encode: true, // json encode the filter query
  54. local: true, // defaults to false (remote filtering)
  55. filters: [
  56. {type: 'string',dataIndex: 'company_name'},
  57. {type: 'string',dataIndex: 'contact_name'},
  58. {type: 'string',dataIndex: 'email'},
  59. {type: 'string',dataIndex: 'phone'},
  60. {type: 'string',dataIndex: 'fax'},
  61. {type: 'string',dataIndex: 'address'},
  62. {type: 'string',dataIndex: 'comment'},
  63. {type: 'string',dataIndex: 'username'},
  64. ]
  65. });
  66. var createColModel = function () {
  67. var columns = [
  68. {header: 'ID',sort: 'id',dataIndex: 'id'},
  69. {header: 'Company Name',sortable: true,sort: 'company_name',dataIndex: 'company_name',editor: new Ext.form.TextField()},
  70. {header: 'Contact Name',sortable: true,sort: 'contact_name',dataIndex: 'contact_name',editor: new Ext.form.TextField()},
  71. {header: 'Email',sortable: true,sort: 'email',dataIndex: 'email',editor: new Ext.form.TextField()},
  72. {header: 'Phone',sortable: true,sort: 'phone',dataIndex: 'phone',editor: new Ext.form.TextField()},
  73. {header: 'Fax',sortable: true,sort: 'fax',dataIndex: 'fax',editor: new Ext.form.TextField()},
  74. {header: 'Address',sortable: true,sort: 'address',dataIndex: 'address',editor: new Ext.form.TextArea()},
  75. {header: 'Comment',sortable: true,sort: 'comment',dataIndex: 'comment',editor: new Ext.form.TextArea()},
  76. {header: 'User Name',sortable: true,sort: 'username',dataIndex: 'username',editor: new Ext.form.TextField()},
  77. {header: 'Edit',dataIndex: 'edit',sortable: false}
  78. ];
  79. return new Ext.grid.ColumnModel({
  80. columns: columns,
  81. defaults: {
  82. sortable: true
  83. }
  84. });
  85. };
  86. pagingBar = new Ext.PagingToolbar({
  87. store: store,
  88. pageSize: total_row,
  89. displayInfo: true,
  90. displayMsg: 'Displaying item {0} - {1} of {2}',
  91. emptyMsg: "No item to display",
  92. plugins: new Ext.ux.ProgressBarPager()
  93. });
  94. Ext.onReady(function() {
  95. Ext.QuickTips.init();
  96. // use RowEditor for editing
  97. var editor = new Ext.ux.grid.RowEditor({
  98. saveText: 'Update'
  99. });
  100. var newsGrid = new Ext.grid.GridPanel({
  101. renderTo: 'news-grid',
  102. iconCls: 'icon-grid',
  103. frame: true,
  104. height: 300,
  105. store: store,
  106. plugins: [editor,filters],
  107. colModel: createColModel(),
  108. listeners: {
  109. render: {
  110. fn: function(){
  111. store.load({
  112. params: {
  113. start: 0,
  114. limit: total_row
  115. }
  116. });
  117. }
  118. }
  119. },
  120. tbar: [new Ext.form.ComboBox({
  121. triggerAction: 'all',
  122. lazyRender:false,
  123. width:40,
  124. mode: 'local',
  125. store: new Ext.data.ArrayStore({
  126. fields: [
  127. 'id',
  128. 'value'
  129. ],
  130. data: [[10,'10'],[20,'20'],[50,'50'],[100,'100']]
  131. }),
  132. valueField: 'id',
  133. displayField: 'value',
  134. listeners:{
  135. 'select': function(combo,record ,index){
  136. total_row = combo.getValue();
  137. store.reload({params:{start:0, limit:total_row}});
  138. pagingBar.pageSize = total_row;
  139. pagingBar.render();
  140. }
  141. }
  142. })
  143. ,'-',{
  144. text: 'Add',
  145. iconCls: 'silk-add',
  146. handler: onAdd
  147. }, '-', {
  148. text: 'Delete',
  149. iconCls: 'silk-delete',
  150. handler: onDelete
  151. }, '-'],
  152. bbar: pagingBar,
  153. viewConfig: {
  154. forceFit: true
  155. }
  156. });
  157. function onAdd(btn, ev) {
  158. window.location.href = base_url+'admin/agent/edit';
  159. }
  160. function onDelete() {
  161. Ext.MessageBox.show({
  162. title:'Delete item',
  163. msg: 'Do you really want to delete this item ?',
  164. buttons: Ext.MessageBox.YESNO,
  165. animEl: 'samplebutton',
  166. icon: Ext.MessageBox.QUESTION,
  167. fn:function(buttonId){
  168. if (buttonId == 'yes'){
  169. var recs = newsGrid.getSelectionModel().getSelections() ;
  170. if (!recs) {
  171. return false;
  172. }
  173. for(var i in recs)
  174. {
  175. newsGrid.store.remove(recs[i]);
  176. }
  177. }
  178. }
  179. });
  180. }
  181. });
  182. function formatDate(value){
  183. return value ? value.dateFormat('d-m-Y') : '';
  184. }
  185. function formatLanguage(value){
  186. if(value!='')
  187. return eval('langList.'+value);
  188. else return '';
  189. }