{
- "id": "roo-file-171",
- "name": "Pman.Tab.AdminContactsGroup",
- "parent": "Pman.Tab.AdminContactsManager",
- "title": "Pman.Tab.AdminContactsGroup",
- "path": "/home/alan/gitlive/Pman.Admin/Pman.Tab.AdminContactsGroup.bjs",
- "items": [
+ "name" : "Pman.Tab.AdminContactsGroup",
+ "parent" : "Pman.Tab.AdminContactsManager",
+ "title" : "Pman.Tab.AdminContactsGroup",
+ "path" : "/home/benny/gitlive/web.hhyc_membership_system/Pman.Admin/Pman.Tab.AdminContactsGroup.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "ec211f7c20af43e742bf2570c3cb84f9" : "Add",
+ "a37ede293936e29279ed543129451ec3" : "Groups",
+ "7dce122004969d56ae2e0245cb754d35" : "Edit",
+ "4d1c8263ba1036754f8db14a98f9f006" : "Reload",
+ "f2a6c498fb90ee345d997f888fce3b18" : "Delete",
+ "49ee3087348e8d44e1feda1917443987" : "Name",
+ "aba9f7d7443652e858969bfc280690b1" : "Manage Groups"
+ },
+ "items" : [
+ {
+ "listeners" : {
+ "|activate" : "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.ds.load({});\n }\n}"
+ },
+ "fitToframe" : true,
+ "background" : true,
+ "region" : "west",
+ "title" : "Groups",
+ "xtype" : "GridPanel",
+ "fitContainer" : true,
+ "$ xns" : "Roo",
+ "tableName" : "core_group",
+ "items" : [
+ {
+ "listeners" : {
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) { \n return; \n }\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",
+ "|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}"
+ },
+ "autoExpandColumn" : "name",
+ "enableDrop" : true,
+ "xtype" : "Grid",
+ "ddGroup" : "groupDD",
+ "loadMask" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "listeners" : {
+ "beforeload" : "function (_self, o)\n{\n o.params = o.params || {};\n \n o.params.type =2;\n \n o.params._add_everyone = 1;\n}",
+ "load" : "function (_self, records, options)\n{\n var sm = _this.grid.getSelectionModel();\n if (!sm.getSelections().length) {\n sm.selectFirstRow();\n }\n Pman.Tab.AdminContacts.grid.footer.onClick('first');\n}"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ sortInfo" : "{ field : 'name', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
{
- "listeners": {
- "|activate": "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.ds.load({});\n }\n}"
+ "$ url" : "baseURL + '/Roo/core_group'",
+ "method" : "GET",
+ "xtype" : "HttpProxy",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ 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" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ },
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "text" : "Manage Groups",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar",
+ "items" : [
+ {
+ "xtype" : "Menu",
+ "$ xns" : "Roo.menu",
+ "* prop" : "menu",
+ "items" : [
+ {
+ "listeners" : {
+ "|click" : "function()\n{\n if (!_this.dialog) {\n return;\n }\n _this.dialog.show( { id : 0, type: 2 } , function() {\n _this.grid.ds.load({});\n }); \n}\n"
+ },
+ "text" : "Add",
+ "xtype" : "Item",
+ "cls" : "x-btn-text-icon",
+ "$ 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) {\n return;\n }\n _this.dialog.show(s[0].data, function() {\n _this.grid.ds.load({});\n }); \n \n}\n"
+ },
+ "text" : "Edit",
+ "xtype" : "Item",
+ "cls" : "x-btn-text-icon",
+ "$ icon" : "Roo.rootURL + 'images/default/tree/leaf.gif'",
+ "$ xns" : "Roo.menu"
+ },
+ {
+ "listeners" : {
+ "|click" : "function()\n{\n Pman.genericDelete(_this, 'core_group'); \n}\n "
+ },
+ "text" : "Delete",
+ "xtype" : "Item",
+ "cls" : "x-btn-text-icon",
+ "$ icon" : "rootURL + '/Pman/templates/images/trash.gif'",
+ "$ xns" : "Roo.menu"
+ },
+ {
+ "xtype" : "Separator",
+ "$ xns" : "Roo.menu"
},
- "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.FILL_IN\n if (_this.panel.active) {\n _this.grid.ds.load({});\n }\n}",
- "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
- "dragover": "function (_self, dd, targetId, e)\n{\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 \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 if (isFromGroup && isToGroup) {\n return this.dropNotAllowed; \n }\n if (!isFromGroup && !isToGroup) {\n return this.dropNotAllowed; \n }\n if (isFromGroup && !isToGroup) {\n return 'x-dd-drop-ok-sub'; \n } \n //if (!isFromGroup && isToGroup) {\n return 'x-dd-drop-ok-add'; \n //}\n}",
- "dragdrop": "function (_self, dd, targetId, e)\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 \n if (isFromGroup && isToGroup) {\n return false;\n }\n if (!isFromGroup && !isToGroup) {\n return false;\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 \n failure: function() {\n //Ext.get(document.body).unmask();\n //if (cb) {\n // cb.call(false);\n //}\n \n }\n });\n \n \n \n //if (!isFromGroup && isToGroup) {\n //return 'x-dd-drop-ok-add'; \n return true;\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 =2;\n}",
- "load": "function (_self, records, options)\n{\n var sm = _this.grid.getSelectionModel();\n if (!sm.getSelections().length) {\n sm.selectFirstRow();\n }\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 } , 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 (!_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 '<b>' + \"Not in a Group\" + '</b>';\n }\n if ((r.data.id == 0) && (_this.type == 0)) {\n return '<b>' + \"All Staff (Default Permissions)\" + '</b>';\n }\n if ((r.data.id == 0) && (_this.type == 2)) {\n return '<b>' + \"Everybody\" + '</b>';\n }\n if (r.data.id == 0) {\n return '<b>' + \"All Staff\" + '</b>';\n }\n if (v == 'Administrators') {\n return '<b>' + \"Adminstrators\" + '</b>';\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.AdminContacts.footer.onClick('first');\n}"
- },
- "*prop": "sm",
- "singleSelect": true,
- "xtype": "RowSelectionModel",
- "|xns": "Roo.grid"
- }
- ]
- }
- ]
+ {
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n _this.grid.ds.load({});\n}"
+ },
+ "text" : "Reload",
+ "xtype" : "Item",
+ "$ xns" : "Roo.menu"
+ }
+ ]
+ }
+ ]
}
- ],
- "permname": "",
- "modOrder": "001"
+ ]
+ },
+ {
+ "xtype" : "ColumnModel",
+ "header" : "Name",
+ "width" : 200,
+ "$ renderer" : "function(v,x,r) { \n if (r.data.id == -1) {\n return '<b>' + \"Not in a Group\" + '</b>';\n }\n if ((r.data.id == 0) && (_this.type == 0)) {\n return '<b>' + \"All Staff (Default Permissions)\" + '</b>';\n }\n if ((r.data.id == 0) && (_this.type == 2)) {\n return '<b>' + \"Everybody\" + '</b>';\n }\n if (r.data.id == 0) {\n return '<b>' + \"All Staff\" + '</b>';\n }\n if (v == 'Administrators') {\n return '<b>' + \"Adminstrators\" + '</b>';\n }\n if (r.data.leader) {\n return v + ' (' + r.data.leader_name + ')';\n }\n \n return v;\n}",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "name"
+ },
+ {
+ "listeners" : {
+ "afterselectionchange" : "function (_self)\n{\n// Pman.Tab.AdminContacts.grid.footer.onClick('first');\n var c = Pman.Tab.AdminContactsManager.layout.getRegion('center');\n c.getActivePanel().grid.footer.onClick('first');\n \n}"
+ },
+ "xtype" : "RowSelectionModel",
+ "singleSelect" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "sm"
+ },
+ {
+ "listeners" : {
+ "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}",
+ "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 new 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(res) {\n \n var data = res.data;\n //refreshPager();\n // \n // do we need to do anything??\n if (isFromGroup) {\n Pman.Tab.AdminContacts.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}"
+ },
+ "xtype" : "DropTarget",
+ "ddGroup" : "groupDD",
+ "$ xns" : "Roo.dd",
+ "* prop" : "dropTarget"
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
\ No newline at end of file