Pman.Tab.AdminContactsGroupRight.bjs
[Pman.Admin] / Pman.Tab.AdminContactsGroupRight.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
4
5 Pman.Tab.AdminContactsGroupRight = new Roo.XComponent({
6     part     :  ["Admin","ContactsGroupRight"],
7     order    : '001-Pman.Tab.AdminContactsGroupRight',
8     region   : 'center',
9     parent   : 'Pman.Tab.AdminContactsManager',
10     name     : "unnamed module",
11     disabled : false, 
12     permname : '', 
13     _tree : function()
14     {
15         var _this = this;
16         var MODULE = this;
17         return {
18             xtype: 'GridPanel',
19             xns: Roo,
20             listeners : {
21                 activate : function() {
22                     _this.panel = this;
23                     if (_this.grid) {
24                         _this.grid.footer.onClick('first');
25                     }
26                 }
27             },
28             autoScroll : true,
29             background : true,
30             fitContainer : true,
31             fitToframe : true,
32             region : 'center',
33             tableName : 'Person',
34             title : "Rights",
35             grid : {
36                 xtype: 'Grid',
37                 xns: Roo.grid,
38                 listeners : {
39                     render : function() 
40                     {
41                         _this.grid = this; 
42                         if (!_this.dialog) {
43                             _this.dialog = Pman.Dialog.PersonEdit;
44                             
45                         }
46                         //_this.dialog = Pman.Dialog.FILL_IN
47                         if (_this.panel.active) {
48                            this.footer.onClick('first');
49                         }
50                     },
51                     rowdblclick : function (_self, rowIndex, e)
52                     {
53                         if (!_this.dialog) return;
54                         _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
55                             _this.grid.footer.onClick('first');
56                         }); 
57                     },
58                     cellclick : function (_self, rowIndex, columnIndex, e)
59                     {
60                             _this.dataUpdate = typeof(_this.dataUpdate) =='undefined' ?  {} : _this.dataUpdate;
61                             
62                             var di = this.colModel.getDataIndex(columnIndex);
63                             var i = di.split('_').shift();
64                             var k = di.split('_').pop();
65                             if (i != 'accessmask') {
66                                 return;
67                             }
68                             var rec = _this.grid.ds.getAt(rowIndex);
69                             if(k == 'AA'){
70                                 var fm = rec.data.FullMask.split('');
71                                 Roo.each(fm, function(e){
72                                     rec.set(i+'_'+e, rec.data[i+'_'+k] ? 0 : 1);
73                                 });
74                             } 
75                             rec.set(i+'_'+k, rec.data[i+'_'+k] ? 0 : 1);
76                             _this.dataUpdate[rec.data.id] = rec.data.accessmask;
77                             //rec.commit();
78                              
79                             
80                     }
81                 },
82                 ddGroup : 'groupDD',
83                 enableDrag : true,
84                 loadMask : true,
85                 dataSource : {
86                     xtype: 'Store',
87                     xns: Roo.data,
88                     listeners : {
89                         beforeload : function (_self, o)
90                         {
91                             if (!o.params) {
92                                 o.params = {}
93                             }
94                             var s = Pman.Tab.Groups.grid.getSelectionModel().getSelections();
95                             if (!s.length) {
96                                 o.params.group_id = -1;
97                             } else {
98                                 o.params.group_id = s[0].data.id;
99                             }
100                             if (o.params.group_id < 0) {
101                                 _this.grid.getView().el.mask("You can not set permissions for that group");
102                                 return false;
103                             }
104                             _this.grid.getView().el.unmask();
105                             return true;
106                           
107                         },
108                         update : function (_self, record, operation)
109                         {
110                             if (operation != 'commit') {
111                                 return;
112                             }
113                             // only used to change active status.
114                             
115                             new Pman.Request({
116                                 url : baseURL + '/Roo/GroupRights.php',
117                                 method :'POST',
118                                 params : {
119                                     id : record.data.id,
120                                     active: record.data.active
121                                     
122                                 },
123                                 success : function() {
124                                     // do nothing
125                                     
126                                     _this.grid.ds.remove(record);
127                                     
128                                 },
129                                 failure : function() 
130                                 {
131                                     Roo.MessageBox.alert("Error", "saving failed", function() {
132                                         _this.grid.footer.onClick('first');
133                                     });
134                                 }
135                             });
136                         },
137                         load : function (_self, records, options)
138                         {
139                             Roo.each(records, function(e){
140                                 var k = e.data.accessmask.split('');
141                                 Roo.each(k, function(ee){
142                                     e.set('accessmask_'+ee, 1);
143                                 });
144                                 if(e.data.accessmask == e.data.FullMask){
145                                     e.set('accessmask_AA', 1);
146                                 }
147                             });
148                         }
149                     },
150                     remoteSort : true,
151                     sortInfo : { field : 'id', direction: 'ASC' },
152                     proxy : {
153                         xtype: 'HttpProxy',
154                         xns: Roo.data,
155                         method : 'GET',
156                         url : baseURL + '/Admin/GroupRights.php'
157                     },
158                     reader : {
159                         xtype: 'JsonReader',
160                         xns: Roo.data,
161                         id : 'id',
162                         root : 'data',
163                         totalProperty : 'total',
164                         fields : [
165                             {
166                                 'name': 'id',
167                                 'type': 'int'
168                             },
169                             {
170                                 'name': 'rightname',
171                                 'type': 'string'
172                             },
173                             {
174                                 'name': 'descript',
175                                 'type': 'string'
176                             },
177                             {
178                                 'name': 'accessmask',
179                                 'type': 'string'
180                             },
181                             {
182                                 'name': 'FullMask',
183                                 'type': 'string'
184                             },
185                             {
186                                 'name': 'group_id',
187                                 'type': 'int'
188                             }
189                         ]
190                     }
191                 },
192                 footer : {
193                     xtype: 'PagingToolbar',
194                     xns: Roo,
195                     pageSize : 25,
196                     displayInfo : true,
197                     displayMsg : "Displaying Person{0} - {1} of {2}",
198                     emptyMsg : "No Person found",
199                     items : [
200                         {
201                             xtype: 'TextItem',
202                             xns: Roo.Toolbar,
203                             text : "Drag person to add or remove from group"
204                         }
205                     ]
206                 },
207                 toolbar : {
208                     xtype: 'Toolbar',
209                     xns: Roo,
210                     items : [
211                         {
212                             xtype: 'Button',
213                             xns: Roo.Toolbar,
214                             listeners : {
215                                 click : function (_self, e)
216                                 {
217                                     
218                                     new Pman.Request({
219                                         url : baseURL + '/Roo/GroupRights.php',
220                                         method :'POST',
221                                         params : _this.dataUpdate,
222                                         success : function() {
223                                             // do nothing
224                                             
225                                             //_this.grid.ds.remove(record);
226                                             
227                                         },
228                                         failure : function() 
229                                         {
230                                             Roo.MessageBox.alert("Error", "saving failed", function() {
231                                                 _this.grid.footer.onClick('first');
232                                             });
233                                         }
234                                     });
235                                 }
236                             },
237                             text : "Save"
238                         }
239                     ]
240                 },
241                 colModel : [
242                     {
243                         xtype: 'ColumnModel',
244                         xns: Roo.grid,
245                         dataIndex : 'accessmask_AA',
246                         header : 'All',
247                         sortable : false,
248                         width : 50,
249                         renderer : function(v,x,r) {
250                              
251                             var state = v> 0 ?  '-checked' : '';
252                         
253                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
254                         }
255                     },
256                     {
257                         xtype: 'ColumnModel',
258                         xns: Roo.grid,
259                         dataIndex : 'rightname',
260                         header : 'Module',
261                         sortable : false,
262                         width : 150,
263                         renderer : function(v,x,r) {
264                             if(!v){
265                                 return;
266                             }
267                             return String.format('<span qtip="{1}">{0}</span>', v.split('.').shift(), v);
268                         }
269                     },
270                     {
271                         xtype: 'ColumnModel',
272                         xns: Roo.grid,
273                         dataIndex : 'descript',
274                         header : 'Permission',
275                         sortable : false,
276                         width : 300,
277                         renderer : function(v,x,r)
278                         {
279                             if (r.json.descript && r.json.descript.length) {
280                                 return String.format('{0}',r.json.descript);
281                             }
282                             
283                             return '???' + v;
284                         }
285                     },
286                     {
287                         xtype: 'ColumnModel',
288                         xns: Roo.grid,
289                         dataIndex : 'accessmask_A',
290                         header : 'Add',
291                         width : 75,
292                         renderer : function(v) {  
293                             var state = v> 0 ?  '-checked' : '';
294                         
295                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
296                                         
297                          }
298                     },
299                     {
300                         xtype: 'ColumnModel',
301                         xns: Roo.grid,
302                         dataIndex : 'accessmask_E',
303                         header : 'Edit',
304                         width : 75,
305                         renderer : function(v) {  
306                             var state = v> 0 ?  '-checked' : '';
307                         
308                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
309                                         
310                          }
311                     },
312                     {
313                         xtype: 'ColumnModel',
314                         xns: Roo.grid,
315                         dataIndex : 'accessmask_D',
316                         header : 'Delete',
317                         width : 75,
318                         renderer : function(v) {  
319                             var state = v> 0 ?  '-checked' : '';
320                         
321                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
322                                         
323                          }
324                     },
325                     {
326                         xtype: 'ColumnModel',
327                         xns: Roo.grid,
328                         dataIndex : 'accessmask_S',
329                         header : 'List/View',
330                         width : 75,
331                         renderer : function(v) {  
332                             var state = v> 0 ?  '-checked' : '';
333                         
334                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
335                                         
336                          }
337                     },
338                     {
339                         xtype: 'ColumnModel',
340                         xns: Roo.grid,
341                         dataIndex : 'accessmask_P',
342                         header : 'Print/Export',
343                         width : 75,
344                         renderer : function(v,x,r) {  
345                             
346                             var state = v> 0 ?  '-checked' : '';
347                         
348                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
349                                         
350                          }
351                     }
352                 ]
353             }
354         };
355     }
356 });