{ "id": "roo-file-10", "name": "Pman.Tab.AdminPermManager", "parent": "Pman.Tab.Admin", "title": "Pman.Tab.AdminPermManager", "path": "/home/alan/gitlive/Pman.Admin/Pman.Tab.AdminPermManager.bjs", "items": [ { "background": true, "region": "center", "title": "Permission Manager", "xtype": "NestedLayoutPanel", "|xns": "Roo", "items": [ { "|xns": "Roo", "xtype": "BorderLayout", "*prop": "layout", "items": [ { "*prop": "center", "tabPosition": "top", "xtype": "LayoutRegion", "|xns": "Roo" }, { "*prop": "west", "width": 200, "xtype": "LayoutRegion", "|xns": "Roo" }, { "listeners": { "|activate": "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.ds.load({});\n }\n}" }, "background": true, "fitContainer": true, "fitToframe": true, "region": "west", "tableName": "Groups", "title": "Groups", "xtype": "GridPanel", "|xns": "Roo", "items": [ { "listeners": { "|render": "function() \n{\n _this.grid = this; \n _this.dialog = Pman.Dialog.Groups;\n if (_this.panel.active) {\n _this.grid.ds.load({});\n }\n}", "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n var s = this.getDataSource().getAt(rowIndex);\n if (s.data.id < 1 ) {\n return;\n }\n _this.dialog.show( s.data, function() {\n _this.ds.load({});\n }); \n}\n" }, "*prop": "grid", "autoExpandColumn": "name", "ddGroup": "groupDD", "enableDrop": true, "loadMask": true, "xtype": "Grid", "|xns": "Roo.grid", "items": [ { "listeners": { "beforeload": "function (_self, o)\n{\n o.params = o.params || {};\n o.params.type =0;\n}", "load": "function (_self, records, options)\n{\n var sm = _this.grid.getSelectionModel();\n if (!sm.getSelections().length) {\n sm.selectFirstRow();\n }\n // should refresh righthand side grid..\n // Pman.Tab.AdminContacts.grid.footer.onClick('first');\n}" }, "*prop": "dataSource", "remoteSort": true, "xtype": "Store", "|sortInfo": "{ field : 'name', direction: 'ASC' }", "|xns": "Roo.data", "items": [ { "*prop": "proxy", "xtype": "HttpProxy", "method": "GET", "|url": "baseURL + '/Roo/Groups.php'", "|xns": "Roo.data" }, { "|xns": "Roo.data", "xtype": "JsonReader", "totalProperty": "total", "root": "data", "*prop": "reader", "id": "id", "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'name',\n 'type': 'string'\n },\n {\n 'name': 'type',\n 'type': 'int'\n },\n {\n 'name': 'leader',\n 'type': 'int'\n },\n {\n 'name': 'leader_id',\n 'type': 'int'\n },\n {\n 'name': 'leader_office_id',\n 'type': 'int'\n },\n {\n 'name': 'leader_name',\n 'type': 'string'\n },\n {\n 'name': 'leader_phone',\n 'type': 'string'\n },\n {\n 'name': 'leader_fax',\n 'type': 'string'\n },\n {\n 'name': 'leader_email',\n 'type': 'string'\n },\n {\n 'name': 'leader_company_id',\n 'type': 'int'\n },\n {\n 'name': 'leader_role',\n 'type': 'string'\n },\n {\n 'name': 'leader_active',\n 'type': 'int'\n },\n {\n 'name': 'leader_remarks',\n 'type': 'string'\n },\n {\n 'name': 'leader_passwd',\n 'type': 'string'\n },\n {\n 'name': 'leader_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'leader_lang',\n 'type': 'string'\n },\n {\n 'name': 'leader_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'leader_action_type',\n 'type': 'string'\n },\n {\n 'name': 'leader_project_id',\n 'type': 'int'\n }\n]" } ] }, { "*prop": "toolbar", "xtype": "Toolbar", "|xns": "Roo", "items": [ { "text": "Manage Groups", "xtype": "Button", "|xns": "Roo.Toolbar", "items": [ { "|xns": "Roo.menu", "xtype": "Menu", "*prop": "menu", "items": [ { "listeners": { "|click": "function()\n{\n if (!_this.dialog) return;\n _this.dialog.show( { id : 0, type: 0 } , function() {\n _this.grid.ds.load({});\n }); \n}\n" }, "cls": "x-btn-text-icon", "text": "Add", "xtype": "Item", "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'", "|xns": "Roo.menu" }, { "listeners": { "|click": "function()\n{\n var s = _this.grid.getSelectionModel().getSelections();\n if (!s.length || (s.length > 1)) {\n Roo.MessageBox.alert(\"Error\", s.length ? \"Select only one Row\" : \"Select a Row\");\n return;\n }\n if (s[0].data.id < 1 ) {\n return;\n }\n if (!_this.dialog) return;\n _this.dialog.show(s[0].data, function() {\n _this.grid.ds.load({});\n }); \n \n}\n" }, "cls": "x-btn-text-icon", "text": "Edit", "xtype": "Item", "|icon": "Roo.rootURL + 'images/default/tree/leaf.gif'", "|xns": "Roo.menu" }, { "listeners": { "|click": "function()\n{\n Pman.genericDelete(_this, 'Groups'); \n}\n " }, "cls": "x-btn-text-icon", "text": "Delete", "xtype": "Item", "|icon": "rootURL + '/Pman/templates/images/trash.gif'", "|xns": "Roo.menu" }, { "|xns": "Roo.menu", "xtype": "Separator" }, { "listeners": { "click": "function (_self, e)\n{\n _this.grid.ds.load({});\n}" }, "text": "Reload", "xtype": "Item", "|xns": "Roo.menu" } ] } ] } ] }, { "*prop": "colModel[]", "dataIndex": "name", "header": "Name", "width": 200, "xtype": "ColumnModel", "|renderer": "function(v,x,r) { \n if (r.data.id == -1) {\n return '' + \"Not in a Group\" + '';\n }\n if ((r.data.id == 0) && (_this.type == 0)) {\n return '' + \"All Staff (Default Permissions)\" + '';\n }\n if ((r.data.id == 0) && (_this.type == 2)) {\n return '' + \"Everybody\" + '';\n }\n if (r.data.id == 0) {\n return '' + \"All Staff\" + '';\n }\n if (v == 'Administrators') {\n return '' + \"Adminstrators\" + '';\n }\n if (r.data.leader) {\n return v + ' (' + r.data.leader_name + ')';\n }\n \n return v;\n}", "|xns": "Roo.grid" }, { "listeners": { "afterselectionchange": "function (_self)\n{\n Pman.Tab.AdminPermMembers.grid.footer.onClick('first');\n}" }, "*prop": "sm", "singleSelect": true, "xtype": "RowSelectionModel", "|xns": "Roo.grid" }, { "listeners": { "drop": "function (source, e, data)\n{\n // Roo.log(\"DROP\");\n var t = Roo.lib.Event.getTarget(e); \n var ri = _this.grid.view.findRowIndex(t);\n var rid = false;\n if (ri !== false) {\n rid = _this.grid.getDataSource().getAt(ri).data;\n }\n var s = _this.grid.getSelectionModel().getSelections();\n \n //console.log(data);\n var isFromGroup = s.length ? s[0].data.id > 0 : false;\n\n var isToGroup = rid && rid.id > 0;\n this.success = false;\n if (isFromGroup && isToGroup) {\n return;\n }\n if (!isFromGroup && !isToGroup) {\n return;\n }\n var action = 'add';\n if (isFromGroup && !isToGroup) {\n action = 'sub';\n //return 'x-dd-drop-ok-sub'; \n }\n // build a list of selections.\n var sels = [];\n for (var i=0; i < data.selections.length; i++) {\n sels.push(data.selections[i].data.id);\n }\n\n Pman.request({\n url: baseURL + '/Core/GroupMembers.php',\n params: {\n action : action,\n group_id: action =='add' ? rid.id : s[0].data.id,\n type: _this.type,\n user_ids : sels.join(',')\n \n }, \n method: 'POST', \n success : function(data) {\n //refreshPager();\n // \n // do we need to do anything??\n if (isFromGroup) {\n Pman.Tab.AdminPermMembers.grid.footer.onClick('refresh');\n }\n }, \n \n failure: function() {\n //Ext.get(document.body).unmask();\n //if (cb) {\n // cb.call(false);\n //}\n \n }\n });\n\n this.success = true;\n\n //if (!isFromGroup && isToGroup) {\n //return 'x-dd-drop-ok-add'; \n return;\n //}\n}", "over": "function (source, e, data)\n{\n // Roo.log(\"dragover\");\n \n //Roo.log(e);\n var t = Roo.lib.Event.getTarget(e); \n // Roo.log(t);\n var ri = _this.grid.view.findRowIndex(t);\n // Roo.log(ri);\n \n var rid = false;\n if (ri !== false) {\n rid = _this.grid.getDataSource().getAt(ri).data;\n }\n \n var s = _this.grid.getSelectionModel().getSelections();\n \n var isFromGroup = s.length ? s[0].data.id > 0 : false;\n \n var isToGroup = rid && rid.id > 0;\n \n// Roo.log(\"isToGroup:\" + isToGroup + \", isFromGroup\" + isFromGroup);\n \n if (isFromGroup && isToGroup) {\n this.valid = false;\n// Roo.log('not valid');\n return;\n }\n if (!isFromGroup && !isToGroup) {\n this.valid = false;\n// Roo.log('not valid');\n return \n }\n if (isFromGroup && !isToGroup) {\n this.valid = 'ok-sub'; \n return;\n } \n //if (!isFromGroup && isToGroup) {\n this.valid = 'ok-add';\n// Roo.log('add'); \n //}\n}" }, "*prop": "dropTarget", "ddGroup": "groupDD", "xtype": "DropTarget", "|xns": "Roo.dd" } ] } ] } ] } ] } ], "permname": "Core.Groups", "modOrder": "700" }