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                             Roo.log(rec);
77                             _this.dataUpdate[rec.data.id] = rec.data.accessmask;
78                     
79                             //rec.commit();
80                              
81                             
82                     }
83                 },
84                 ddGroup : 'groupDD',
85                 enableDrag : true,
86                 loadMask : true,
87                 dataSource : {
88                     xtype: 'Store',
89                     xns: Roo.data,
90                     listeners : {
91                         beforeload : function (_self, o)
92                         {
93                             if (!o.params) {
94                                 o.params = {}
95                             }
96                             var s = Pman.Tab.Groups.grid.getSelectionModel().getSelections();
97                             if (!s.length) {
98                                 o.params.group_id = -1;
99                             } else {
100                                 o.params.group_id = s[0].data.id;
101                             }
102                             if (o.params.group_id < 0) {
103                                 _this.grid.getView().el.mask("You can not set permissions for that group");
104                                 return false;
105                             }
106                             _this.grid.getView().el.unmask();
107                             return true;
108                           
109                         },
110                         update : function (_self, record, operation)
111                         {
112                             if (operation != 'commit') {
113                                 return;
114                             }
115                             // only used to change active status.
116                             
117                             new Pman.Request({
118                                 url : baseURL + '/Roo/GroupRights.php',
119                                 method :'POST',
120                                 params : {
121                                     id : record.data.id,
122                                     active: record.data.active
123                                     
124                                 },
125                                 success : function() {
126                                     // do nothing
127                                     
128                                     _this.grid.ds.remove(record);
129                                     
130                                 },
131                                 failure : function() 
132                                 {
133                                     Roo.MessageBox.alert("Error", "saving failed", function() {
134                                         _this.grid.footer.onClick('first');
135                                     });
136                                 }
137                             });
138                         },
139                         load : function (_self, records, options)
140                         {
141                             Roo.each(records, function(e){
142                                 var k = e.data.accessmask.split('');
143                                 Roo.each(k, function(ee){
144                                     e.set('accessmask_'+ee, 1);
145                                 });
146                                 if(e.data.accessmask == e.data.FullMask){
147                                     e.set('accessmask_AA', 1);
148                                 }
149                             });
150                         }
151                     },
152                     remoteSort : true,
153                     sortInfo : { field : 'id', direction: 'ASC' },
154                     proxy : {
155                         xtype: 'HttpProxy',
156                         xns: Roo.data,
157                         method : 'GET',
158                         url : baseURL + '/Admin/GroupRights.php'
159                     },
160                     reader : {
161                         xtype: 'JsonReader',
162                         xns: Roo.data,
163                         id : 'id',
164                         root : 'data',
165                         totalProperty : 'total',
166                         fields : [
167                             {
168                                 'name': 'id',
169                                 'type': 'int'
170                             },
171                             {
172                                 'name': 'rightname',
173                                 'type': 'string'
174                             },
175                             {
176                                 'name': 'descript',
177                                 'type': 'string'
178                             },
179                             {
180                                 'name': 'accessmask',
181                                 'type': 'string'
182                             },
183                             {
184                                 'name': 'FullMask',
185                                 'type': 'string'
186                             },
187                             {
188                                 'name': 'group_id',
189                                 'type': 'int'
190                             }
191                         ]
192                     }
193                 },
194                 footer : {
195                     xtype: 'PagingToolbar',
196                     xns: Roo,
197                     pageSize : 25,
198                     displayInfo : true,
199                     displayMsg : "Displaying Person{0} - {1} of {2}",
200                     emptyMsg : "No Person found",
201                     items : [
202                         {
203                             xtype: 'TextItem',
204                             xns: Roo.Toolbar,
205                             text : "Drag person to add or remove from group"
206                         }
207                     ]
208                 },
209                 toolbar : {
210                     xtype: 'Toolbar',
211                     xns: Roo,
212                     items : [
213                         {
214                             xtype: 'Button',
215                             xns: Roo.Toolbar,
216                             listeners : {
217                                 click : function (_self, e)
218                                 {
219                                     
220                                     new Pman.Request({
221                                         url : baseURL + '/Roo/GroupRights.php',
222                                         method :'POST',
223                                         params : _this.dataUpdate,
224                                         success : function() {
225                                             // do nothing
226                                             
227                                             //_this.grid.ds.remove(record);
228                                             
229                                         },
230                                         failure : function() 
231                                         {
232                                             Roo.MessageBox.alert("Error", "saving failed", function() {
233                                                 _this.grid.footer.onClick('first');
234                                             });
235                                         }
236                                     });
237                                 }
238                             },
239                             text : "Save"
240                         }
241                     ]
242                 },
243                 colModel : [
244                     {
245                         xtype: 'ColumnModel',
246                         xns: Roo.grid,
247                         dataIndex : 'accessmask_AA',
248                         header : 'All',
249                         sortable : false,
250                         width : 50,
251                         renderer : function(v,x,r) {
252                              
253                             var state = v> 0 ?  '-checked' : '';
254                         
255                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
256                         }
257                     },
258                     {
259                         xtype: 'ColumnModel',
260                         xns: Roo.grid,
261                         dataIndex : 'rightname',
262                         header : 'Module',
263                         sortable : false,
264                         width : 150,
265                         renderer : function(v,x,r) {
266                             if(!v){
267                                 return;
268                             }
269                             return String.format('<span qtip="{1}">{0}</span>', v.split('.').shift(), v);
270                         }
271                     },
272                     {
273                         xtype: 'ColumnModel',
274                         xns: Roo.grid,
275                         dataIndex : 'descript',
276                         header : 'Permission',
277                         sortable : false,
278                         width : 300,
279                         renderer : function(v,x,r)
280                         {
281                             if (r.json.descript && r.json.descript.length) {
282                                 return String.format('{0}',r.json.descript);
283                             }
284                             
285                             return '???' + v;
286                         }
287                     },
288                     {
289                         xtype: 'ColumnModel',
290                         xns: Roo.grid,
291                         dataIndex : 'accessmask_A',
292                         header : 'Add',
293                         width : 75,
294                         renderer : function(v) {  
295                             var state = v> 0 ?  '-checked' : '';
296                         
297                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
298                                         
299                          }
300                     },
301                     {
302                         xtype: 'ColumnModel',
303                         xns: Roo.grid,
304                         dataIndex : 'accessmask_E',
305                         header : 'Edit',
306                         width : 75,
307                         renderer : function(v) {  
308                             var state = v> 0 ?  '-checked' : '';
309                         
310                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
311                                         
312                          }
313                     },
314                     {
315                         xtype: 'ColumnModel',
316                         xns: Roo.grid,
317                         dataIndex : 'accessmask_D',
318                         header : 'Delete',
319                         width : 75,
320                         renderer : function(v) {  
321                             var state = v> 0 ?  '-checked' : '';
322                         
323                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
324                                         
325                          }
326                     },
327                     {
328                         xtype: 'ColumnModel',
329                         xns: Roo.grid,
330                         dataIndex : 'accessmask_S',
331                         header : 'List/View',
332                         width : 75,
333                         renderer : function(v) {  
334                             var state = v> 0 ?  '-checked' : '';
335                         
336                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
337                                         
338                          }
339                     },
340                     {
341                         xtype: 'ColumnModel',
342                         xns: Roo.grid,
343                         dataIndex : 'accessmask_P',
344                         header : 'Print/Export',
345                         width : 75,
346                         renderer : function(v,x,r) {  
347                             
348                             var state = v> 0 ?  '-checked' : '';
349                         
350                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
351                                         
352                          }
353                     }
354                 ]
355             }
356         };
357     }
358 });