old/Pman.Tab.AdminPermMembers.bjs
[Pman.Admin] / old / Pman.Tab.AdminPermMembers.bjs
1 {
2     "name" : "Pman.Tab.AdminPermMembers",
3     "parent" : "Pman.Tab.AdminPermManager",
4     "title" : "Pman.Tab.AdminPermMembers",
5     "path" : "/home/michael/gitlive/web.Texon/Pman/Admin/old/Pman.Tab.AdminPermMembers.bjs",
6     "permname" : "",
7     "modOrder" : "001",
8     "items" : [
9         {
10             "listeners" : {
11                 "|activate" : "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n}"
12             },
13             "autoScroll" : true,
14             "background" : true,
15             "fitToframe" : true,
16             "region" : "center",
17             "title" : "Person",
18             "xtype" : "GridPanel",
19             "fitContainer" : true,
20             "$ xns" : "Roo",
21             "tableName" : "Person",
22             "items" : [
23                 {
24                     "listeners" : {
25                         "|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",
26                         "cellclick" : "function (_self, rowIndex, columnIndex, e)\n{\n\n        var di = this.colModel.getDataIndex(columnIndex);\n        if (di != 'active') {\n            return;\n        }\n         \n        var rec = _this.grid.ds.getAt(rowIndex);\n        \n        rec.set('active', rec.data.active ? 0 : 1);\n        rec.commit();\n         \n        \n}",
27                         "|render" : "function() \n{\n    _this.grid = this; \n    if (!_this.dialog) {\n        _this.dialog = Pman.Dialog.PersonEdit;\n        \n    }\n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.panel.active) {\n       this.footer.onClick('first');\n    }\n}"
28                     },
29                     "autoExpandColumn" : "name",
30                     "xtype" : "Grid",
31                     "ddGroup" : "groupDD",
32                     "enableDrag" : true,
33                     "loadMask" : true,
34                     "$ xns" : "Roo.grid",
35                     "* prop" : "grid",
36                     "items" : [
37                         {
38                             "listeners" : {
39                                 "update" : "function (_self, record, operation)\n{\n    if (operation != 'commit') {\n        return;\n    }\n    // only used to change active status.\n    \n    new Pman.Request({\n        url : baseURL + '/Roo/Person.php',\n        method :'POST',\n        params : {\n            id : record.data.id,\n            active: record.data.active\n            \n        },\n        success : function() {\n            // do nothing\n            \n            _this.grid.ds.remove(record);\n            \n        },\n        failure : function() \n        {\n            Roo.MessageBox.alert(\"Error\", \"saving failed\", function() {\n                _this.grid.footer.onClick('first');\n            });\n        }\n    });\n}",
40                                 "beforeload" : "function (_self, o)\n{\n  \n   // technically we may allow non-owner's to be in the group..\n   // need to work out how that will work...\n   // \n   \n    //o.params['company_id_comptype'] = 'OWNER';\n    o.params['query[search]'] = _this.searchBox.getValue();\n    \n    if (!_this.activeButton) {return; false;}\n    \n    \n    o.params.active = _this.activeButton.pressed ? 0 : 1;\n    if (!Pman.Tab.AdminPermManager) { \n        return false;\n    }\n    \n    \n    if (Pman.Tab.AdminPermManager && Pman.Tab.AdminPermManager.grid) {\n        var tms = Pman.Tab.AdminPermManager.grid.getSelectionModel().getSelected();\n        \n        if (!tms) {\n            return false;\n        }\n        o.params['query[in_group]'] = tms.data.id;\n        o.params['query[type]'] = 0; // group type..\n        \n    }\n    //o.params['query[name]'] = _this.searchBox.getValue();\n  \n    \n}"
41                             },
42                             "xtype" : "Store",
43                             "remoteSort" : true,
44                             "$ sortInfo" : "{ field : 'name', direction: 'ASC' }",
45                             "$ xns" : "Roo.data",
46                             "* prop" : "dataSource",
47                             "items" : [
48                                 {
49                                     "$ url" : "baseURL + '/Roo/Person.php'",
50                                     "method" : "GET",
51                                     "xtype" : "HttpProxy",
52                                     "$ xns" : "Roo.data",
53                                     "* prop" : "proxy"
54                                 },
55                                 {
56                                     "id" : "id",
57                                     "root" : "data",
58                                     "xtype" : "JsonReader",
59                                     "$ xns" : "Roo.data",
60                                     "$ fields" : "[\n    {\n        'name': 'id',\n        'type': 'int'\n    },\n    {\n        'name': 'office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'name',\n        'type': 'string'\n    },\n    {\n        'name': 'phone',\n        'type': 'string'\n    },\n    {\n        'name': 'fax',\n        'type': 'string'\n    },\n    {\n        'name': 'email',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'role',\n        'type': 'string'\n    },\n    {\n        'name': 'active',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'lang',\n        'type': 'string'\n    },\n    {\n        'name': 'no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'office_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'office_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'office_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'office_id_address',\n        'type': 'string'\n    },\n    {\n        'name': 'office_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'office_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'office_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'office_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_code',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_address',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_tel',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_isOwner',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_logo_id',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_background_color',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_comptype',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_url',\n        'type': 'string'\n    },\n    {\n        'name': 'company_id_main_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_created_by',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_created_dt',\n        'type': 'date'\n    },\n    {\n        'name': 'company_id_updated_by',\n        'type': 'int'\n    },\n    {\n        'name': 'company_id_updated_dt',\n        'type': 'date'\n    },\n    {\n        'name': 'company_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_code',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_type',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_client_id',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_team_id',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_file_location',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_open_date',\n        'type': 'date'\n    },\n    {\n        'name': 'project_id_open_by',\n        'type': 'int'\n    },\n    {\n        'name': 'project_id_close_date',\n        'type': 'date'\n    },\n    {\n        'name': 'project_id_countries',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_languages',\n        'type': 'string'\n    },\n    {\n        'name': 'project_id_agency_id',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'owner_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'owner_id_project_id',\n        'type': 'int'\n    }\n]",
61                                     "* prop" : "reader",
62                                     "totalProperty" : "total"
63                                 }
64                             ]
65                         },
66                         {
67                             "pageSize" : 25,
68                             "xtype" : "PagingToolbar",
69                             "emptyMsg" : "No Person found",
70                             "$ xns" : "Roo",
71                             "displayInfo" : true,
72                             "displayMsg" : "Displaying Person{0} - {1} of {2}",
73                             "* prop" : "footer",
74                             "items" : [
75                                 {
76                                     "text" : "Drag person to add or remove from group",
77                                     "xtype" : "TextItem",
78                                     "$ xns" : "Roo.Toolbar"
79                                 }
80                             ]
81                         },
82                         {
83                             "xtype" : "Toolbar",
84                             "$ xns" : "Roo",
85                             "* prop" : "toolbar",
86                             "items" : [
87                                 {
88                                     "listeners" : {
89                                         "|click" : "function()\n{\n    \n    _this.dialog.show( { id : 0 } , function() {\n        _this.grid.footer.onClick('first');\n   }); \n}\n"
90                                     },
91                                     "text" : "Add",
92                                     "xtype" : "Button",
93                                     "cls" : "x-btn-text-icon",
94                                     "$ icon" : "Roo.rootURL + 'images/default/dd/drop-add.gif'",
95                                     "$ xns" : "Roo.Toolbar"
96                                 },
97                                 {
98                                     "listeners" : {
99                                         "|click" : "function()\n{\n    \n    Pman.Dialog.PersonBulkAdd.show( { id : 0 } , function() {\n        _this.grid.footer.onClick('first');\n   }); \n}\n"
100                                     },
101                                     "text" : "Bulk Add",
102                                     "xtype" : "Button",
103                                     "cls" : "x-btn-text-icon",
104                                     "$ icon" : "Roo.rootURL + 'images/default/dd/drop-add.gif'",
105                                     "$ xns" : "Roo.Toolbar"
106                                 },
107                                 {
108                                     "listeners" : {
109                                         "|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  \n    _this.dialog.show(s[0].data, function() {\n        _this.grid.footer.onClick('first');\n    }); \n    \n}\n"
110                                     },
111                                     "text" : "Edit",
112                                     "xtype" : "Button",
113                                     "cls" : "x-btn-text-icon",
114                                     "$ icon" : "Roo.rootURL + 'images/default/tree/leaf.gif'",
115                                     "$ xns" : "Roo.Toolbar"
116                                 },
117                                 {
118                                     "xtype" : "Separator",
119                                     "$ xns" : "Roo.Toolbar"
120                                 },
121                                 {
122                                     "text" : "Search",
123                                     "xtype" : "TextItem",
124                                     "$ xns" : "Roo.Toolbar"
125                                 },
126                                 {
127                                     "listeners" : {
128                                         "specialkey" : "function (_self, e)\n{\n  if (e.getKey() == 13) {\n    _this.grid.footer.onClick('first');\n  }\n}",
129                                         "show" : "function (_self,e)\n{\n    if (e.getCharCode() != 13) {\n        return;\n    }\n    _this.grid.footer.onClick('first');\n}",
130                                         "render" : "function (_self)\n{\n    _this.searchBox = _self;\n}"
131                                     },
132                                     "xtype" : "TextField",
133                                     "$ xns" : "Roo.form"
134                                 },
135                                 {
136                                     "listeners" : {
137                                         "|click" : "function (_self, e)\n{\n_this.grid.footer.onClick('first');\n}"
138                                     },
139                                     "xtype" : "Button",
140                                     "cls" : "x-btn-icon",
141                                     "$ icon" : "rootURL + '/Pman/templates/images/search.gif'",
142                                     "$ xns" : "Roo.Toolbar"
143                                 },
144                                 {
145                                     "listeners" : {
146                                         "|click" : "function (_self, e)\n{\n_this.searchBox.setValue('');\n    _this.grid.footer.onClick('first');\n}"
147                                     },
148                                     "xtype" : "Button",
149                                     "cls" : "x-btn-icon",
150                                     "$ icon" : "rootURL + '/Pman/templates/images/edit-clear.gif'",
151                                     "$ xns" : "Roo.Toolbar"
152                                 },
153                                 {
154                                     "xtype" : "Fill",
155                                     "$ xns" : "Roo.Toolbar"
156                                 },
157                                 {
158                                     "listeners" : {
159                                         "toggle" : "function (_self, pressed)\n{\n   _this.grid.footer.onClick('first');\n   this.setText(pressed ? \"Show Active\" : \"Show Removed\");\n   \n   \n}",
160                                         "render" : "function (_self)\n{\n  _this.activeButton = _self;\n}"
161                                     },
162                                     "text" : "Show Removed",
163                                     "enableToggle" : true,
164                                     "xtype" : "Button",
165                                     "$ xns" : "Roo.Toolbar"
166                                 }
167                             ]
168                         },
169                         {
170                             "hidden" : true,
171                             "xtype" : "ColumnModel",
172                             "sortable" : true,
173                             "header" : "Project",
174                             "width" : 75,
175                             "$ renderer" : "function(v,x,r) { \n      return String.format('<span qtip=\"{0}\">{1}</span>', \n                    r.data.project_id_name,\n                    v);\n }",
176                             "$ xns" : "Roo.grid",
177                             "* prop" : "colModel[]",
178                             "dataIndex" : "project_id_code"
179                         },
180                         {
181                             "xtype" : "ColumnModel",
182                             "sortable" : true,
183                             "header" : "Type",
184                             "width" : 50,
185                             "$ renderer" : "function(v,x,r) {\n    if (r.data.office_id) {\n        return String.format('{0} - {1}', v, r.data.office_id_name); \n    } \n    return String.format('{0}', v); \n}",
186                             "$ xns" : "Roo.grid",
187                             "* prop" : "colModel[]",
188                             "dataIndex" : "company_id_comptype"
189                         },
190                         {
191                             "xtype" : "ColumnModel",
192                             "sortable" : true,
193                             "header" : "Company",
194                             "width" : 150,
195                             "$ renderer" : "function(v,x,r) {\n    if (r.data.office_id) {\n        return String.format('{0} - {1}', v, r.data.office_id_name); \n    } \n    return String.format('{0}', v); \n}",
196                             "$ xns" : "Roo.grid",
197                             "* prop" : "colModel[]",
198                             "dataIndex" : "company_id_name"
199                         },
200                         {
201                             "xtype" : "ColumnModel",
202                             "sortable" : true,
203                             "header" : "Name",
204                             "width" : 200,
205                             "$ renderer" : "function(v) { return String.format('{0}', v); }",
206                             "$ xns" : "Roo.grid",
207                             "* prop" : "colModel[]",
208                             "dataIndex" : "name"
209                         },
210                         {
211                             "xtype" : "ColumnModel",
212                             "header" : "Role",
213                             "width" : 100,
214                             "$ renderer" : "function(v) { return String.format('{0}', v); }",
215                             "$ xns" : "Roo.grid",
216                             "* prop" : "colModel[]",
217                             "dataIndex" : "role"
218                         },
219                         {
220                             "xtype" : "ColumnModel",
221                             "header" : "Phone",
222                             "width" : 100,
223                             "$ renderer" : "function(v) { return String.format('{0}', v); }",
224                             "$ xns" : "Roo.grid",
225                             "* prop" : "colModel[]",
226                             "dataIndex" : "phone"
227                         },
228                         {
229                             "xtype" : "ColumnModel",
230                             "header" : "Fax",
231                             "width" : 100,
232                             "$ renderer" : "function(v) { return String.format('{0}', v); }",
233                             "$ xns" : "Roo.grid",
234                             "* prop" : "colModel[]",
235                             "dataIndex" : "fax"
236                         },
237                         {
238                             "xtype" : "ColumnModel",
239                             "sortable" : true,
240                             "header" : "Email",
241                             "width" : 200,
242                             "$ renderer" : "function(v) {\n   return (v.length && v.indexOf('@') > 0 ) ? \n                    String.format('<a href=\"mailto:{0}\">{0}</a>',v) : v;\n }",
243                             "$ xns" : "Roo.grid",
244                             "* prop" : "colModel[]",
245                             "dataIndex" : "email"
246                         },
247                         {
248                             "xtype" : "ColumnModel",
249                             "header" : "Active",
250                             "width" : 75,
251                             "$ renderer" : "function(v) {  \n    var state = v> 0 ?  '-checked' : '';\n\n    return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n                \n }",
252                             "$ xns" : "Roo.grid",
253                             "* prop" : "colModel[]",
254                             "dataIndex" : "active"
255                         }
256                     ]
257                 }
258             ]
259         }
260     ]
261 }