sync
[Pman.Admin] / Pman.Tab.AdminContactsGroup.bjs
index 9dc336f..825387c 100644 (file)
 {
-    "id": "roo-file-9",
-    "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"
-                    },
-                    "*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": {
-                                "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\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}",
-                                "over": "function (source, e, data)\n{\n    Roo.log(\"dragover\");\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}"
-                            },
-                            "ddGroup": "",
-                            "*prop": "dropTarget",
-                            "xtype": "DropTarget",
-                            "|xns": "Roo.dd"
-                        }
-                    ]
-                }
-            ]
+            {
+             "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