1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
7 // register the module first
8 Pman.on('beforeload', function()
11 modKey : '700-Pman.Tab.AdminPermManager',
12 module : Pman.Tab.AdminPermManager,
14 parent : Pman.Tab.Admin,
15 name : "Pman.Tab.AdminPermManager",
17 permname: 'Core.Groups'
21 Pman.Tab.AdminPermManager = new Roo.util.Observable({
27 add : function(parentLayout, region)
31 this.parentLayout = parentLayout;
33 this.panel = parentLayout.addxtype({
34 xtype: 'NestedLayoutPanel',
38 title : "Permission Manager",
40 xtype: 'BorderLayout',
47 activate : function() {
50 _this.grid.ds.load({});
67 _this.dialog = Pman.Dialog.Groups;
68 if (_this.panel.active) {
69 _this.grid.ds.load({});
72 rowdblclick : function (_self, rowIndex, e)
74 if (!_this.dialog) return;
75 var s = this.getDataSource().getAt(rowIndex);
79 _this.dialog.show( s.data, function() {
84 autoExpandColumn : 'name',
92 beforeload : function (_self, o)
94 o.params = o.params || {};
97 load : function (_self, records, options)
99 var sm = _this.grid.getSelectionModel();
100 if (!sm.getSelections().length) {
103 // should refresh righthand side grid..
104 // Pman.Tab.AdminContacts.grid.footer.onClick('first');
108 sortInfo : { field : 'name', direction: 'ASC' },
113 url : baseURL + '/Roo/Groups.php'
118 totalProperty : 'total',
143 'name': 'leader_office_id',
147 'name': 'leader_name',
151 'name': 'leader_phone',
155 'name': 'leader_fax',
159 'name': 'leader_email',
163 'name': 'leader_company_id',
167 'name': 'leader_role',
171 'name': 'leader_active',
175 'name': 'leader_remarks',
179 'name': 'leader_passwd',
183 'name': 'leader_owner_id',
187 'name': 'leader_lang',
191 'name': 'leader_no_reset_sent',
195 'name': 'leader_action_type',
199 'name': 'leader_project_id',
212 text : "Manage Groups",
223 if (!_this.dialog) return;
224 _this.dialog.show( { id : 0, type: 0 } , function() {
225 _this.grid.ds.load({});
229 cls : 'x-btn-text-icon',
231 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
239 var s = _this.grid.getSelectionModel().getSelections();
240 if (!s.length || (s.length > 1)) {
241 Roo.MessageBox.alert("Error", s.length ? "Select only one Row" : "Select a Row");
244 if (s[0].data.id < 1 ) {
247 if (!_this.dialog) return;
248 _this.dialog.show(s[0].data, function() {
249 _this.grid.ds.load({});
254 cls : 'x-btn-text-icon',
256 icon : Roo.rootURL + 'images/default/tree/leaf.gif'
264 Pman.genericDelete(_this, 'Groups');
267 cls : 'x-btn-text-icon',
269 icon : rootURL + '/Pman/templates/images/trash.gif'
279 click : function (_self, e)
281 _this.grid.ds.load({});
293 xtype: 'ColumnModel',
298 renderer : function(v,x,r) {
299 if (r.data.id == -1) {
300 return '<b>' + "Not in a Group" + '</b>';
302 if ((r.data.id == 0) && (_this.type == 0)) {
303 return '<b>' + "All Staff (Default Permissions)" + '</b>';
305 if ((r.data.id == 0) && (_this.type == 2)) {
306 return '<b>' + "Everybody" + '</b>';
308 if (r.data.id == 0) {
309 return '<b>' + "All Staff" + '</b>';
311 if (v == 'Administrators') {
312 return '<b>' + "Adminstrators" + '</b>';
315 return v + ' (' + r.data.leader_name + ')';
323 xtype: 'RowSelectionModel',
326 afterselectionchange : function (_self)
328 Pman.Tab.AdminPermMembers.grid.footer.onClick('first');
337 drop : function (source, e, data)
340 var t = Roo.lib.Event.getTarget(e);
341 var ri = _this.grid.view.findRowIndex(t);
344 rid = _this.grid.getDataSource().getAt(ri).data;
346 var s = _this.grid.getSelectionModel().getSelections();
349 var isFromGroup = s.length ? s[0].data.id > 0 : false;
351 var isToGroup = rid && rid.id > 0;
352 this.success = false;
353 if (isFromGroup && isToGroup) {
356 if (!isFromGroup && !isToGroup) {
360 if (isFromGroup && !isToGroup) {
362 //return 'x-dd-drop-ok-sub';
364 // build a list of selections.
366 for (var i=0; i < data.selections.length; i++) {
367 sels.push(data.selections[i].data.id);
371 url: baseURL + '/Core/GroupMembers.php',
374 group_id: action =='add' ? rid.id : s[0].data.id,
376 user_ids : sels.join(',')
380 success : function(data) {
383 // do we need to do anything??
385 Pman.Tab.AdminPermMembers.grid.footer.onClick('refresh');
389 failure: function() {
390 //Ext.get(document.body).unmask();
400 //if (!isFromGroup && isToGroup) {
401 //return 'x-dd-drop-ok-add';
405 over : function (source, e, data)
407 // Roo.log("dragover");
410 var t = Roo.lib.Event.getTarget(e);
412 var ri = _this.grid.view.findRowIndex(t);
417 rid = _this.grid.getDataSource().getAt(ri).data;
420 var s = _this.grid.getSelectionModel().getSelections();
422 var isFromGroup = s.length ? s[0].data.id > 0 : false;
424 var isToGroup = rid && rid.id > 0;
426 // Roo.log("isToGroup:" + isToGroup + ", isFromGroup" + isFromGroup);
428 if (isFromGroup && isToGroup) {
430 // Roo.log('not valid');
433 if (!isFromGroup && !isToGroup) {
435 // Roo.log('not valid');
438 if (isFromGroup && !isToGroup) {
439 this.valid = 'ok-sub';
442 //if (!isFromGroup && isToGroup) {
443 this.valid = 'ok-add';
454 xtype: 'LayoutRegion',
459 xtype: 'LayoutRegion',
465 this.layout = this.panel.layout;