Pman.Tab.AdminLogDrill.bjs
authorjohn <john@roojs.com>
Thu, 19 Oct 2017 02:50:29 +0000 (10:50 +0800)
committerjohn <john@roojs.com>
Thu, 19 Oct 2017 02:50:29 +0000 (10:50 +0800)
Pman.Tab.AdminLogDrill.js

Pman.Tab.AdminLogDrill.bjs
Pman.Tab.AdminLogDrill.js

index 214e9c8..637e31b 100644 (file)
 {
-    "id": "roo-file-205",
-    "name": "Pman.Tab.AdminLogDrill",
-    "parent": "Pman.Tab.AdminLogs",
-    "title": "Pman.Tab.AdminLogDrill",
-    "path": "/home/chris/gitlive/Pman.Admin/Pman.Tab.AdminLogDrill.bjs",
-    "items": [
+ "name" : "Pman.Tab.AdminLogDrill",
+ "parent" : "Pman.Tab.AdminLogs",
+ "title" : "Pman.Tab.AdminLogDrill",
+ "path" : "/home/johns/gitlive/web.coba/Pman/Admin/Pman.Admin/Pman.Admin/Pman.Admin/Pman.Admin/Pman.Admin/Pman.Tab.AdminLogDrill.bjs",
+ "permname" : "",
+ "modOrder" : "003",
+ "strings" : {
+  "7a11042f53957727d8667732d7de1102" : "Ipaddr",
+  "231bc72756b5e6de492aaaa1577f61b1" : "Remarks",
+  "87f9f735a1d36793ceaecd4e47124b63" : "Events",
+  "490aa6e856ccf208a054389e47ce0d06" : "Id",
+  "739cea2b85156183f917f2ccaa10a50c" : "#ID",
+  "591933c26da312455c63b6bc1ec046bc" : "(function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })()",
+  "d9578744f1d4b13d40a51fbb8b9d6ea5" : "Person name",
+  "e1edab2a061a49e21790204249b1aee9" : "(function() { var d = new Date(); return d.format('Y-m-01'); })()",
+  "1243daf593fa297e07ab03bf06d925af" : "Searching...",
+  "51c45b795d5d18a3e4e0c37e8b20a141" : "Table",
+  "6be4aa550791c310e098cd6c234af7d8" : "Event when",
+  "679308a758de538c5f39c4c6cdba6593" : "Select Affects",
+  "c112bb3542e98308d12d5ecb10a67abc" : "Changes",
+  "a254c25adc7d10d7e9c4889484f875a5" : "Detail",
+  "7205d42d6d975c911bc1147259d78935" : "Displaying Events{0} - {1} of {2}",
+  "39b9e051f9fe75e65c7a330bb00499d4" : "Date Range",
+  "a8929eb5c1553d3f70497f862d25d0ce" : "Select Action",
+  "004bf6c9a40003140292e97330236c53" : "Action",
+  "f971b3a2cc583b475332380649a4fa05" : "Daily summary",
+  "0668a37e3eb3480f0444f8da7bc446ba" : "Event Drilldown",
+  "b5fe0746885b906c8ed9b7cc06023c35" : "#Affected",
+  "90e4ac2e5a22e53df63b6b186d8727ba" : "No Events found"
+ },
+ "items" : [
+  {
+   "background" : true,
+   "region" : "center",
+   "title" : "Event Drilldown",
+   "xtype" : "NestedLayoutPanel",
+   "$ xns" : "Roo",
+   "items" : [
+    {
+     "xtype" : "Toolbar",
+     "$ xns" : "Roo",
+     "* prop" : "toolbar",
+     "items" : [
+      {
+       "text" : "Date Range",
+       "xtype" : "TextItem",
+       "$ xns" : "Roo.Toolbar"
+      },
+      {
+       "listeners" : {
+        "render" : "function (_self)\n{\n  _this.dateFrom = _self;\n}",
+        "change" : "function (_self, newValue, oldValue)\n{\n  _this.dategrid.ds.load({});\n}"
+       },
+       "format" : "Y-m-d",
+       "| value" : "(function() { var d = new Date(); return d.format('Y-m-01'); })()",
+       "xtype" : "DateField",
+       "$ xns" : "Roo.form"
+      },
+      {
+       "listeners" : {
+        "render" : "function (_self)\n{\n  _this.dateTo = _self;\n}",
+        "change" : "function (_self, newValue, oldValue)\n{\n  _this.dategrid.ds.load({});\n}"
+       },
+       "format" : "Y-m-d",
+       "xtype" : "DateField",
+       "| value" : "(function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })()",
+       "$ xns" : "Roo.form"
+      },
+      {
+       "listeners" : {
+        "|render" : "function (_self)\n{\n  _this.actionSel = _self;\n}",
+        "|select" : "function (combo, record, index)\n{\n   _this.dategrid.ds.load({});\n}"
+       },
+       "listWidth" : 300,
+       "triggerAction" : "all",
+       "forceSelection" : true,
+       "selectOnFocus" : true,
+       "pageSize" : 20,
+       "displayField" : "action",
+       "emptyText" : "Select Action",
+       "minChars" : 2,
+       "valueField" : "action",
+       "xtype" : "ComboBox",
+       "allowBlank" : true,
+       "typeAhead" : true,
+       "editable" : true,
+       "width" : 150,
+       "$ xns" : "Roo.form",
+       "name" : "action",
+       "qtip" : "Select Action",
+       "queryParam" : "query[action]",
+       "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{action}</b> </div>",
+       "loadingText" : "Searching...",
+       "items" : [
         {
-            "background": true,
-            "region": "center",
-            "title": "Event Drilldown",
-            "xtype": "NestedLayoutPanel",
-            "|xns": "Roo",
-            "items": [
-                {
-                    "|xns": "Roo",
-                    "xtype": "Toolbar",
-                    "*prop": "toolbar",
-                    "items": [
-                        {
-                            "text": "Date Range",
-                            "xtype": "TextItem",
-                            "|xns": "Roo.Toolbar"
-                        },
-                        {
-                            "listeners": {
-                                "render": "function (_self)\n{\n  _this.dateFrom = _self;\n}",
-                                "change": "function (_self, newValue, oldValue)\n{\n  _this.dategrid.ds.load({});\n}"
-                            },
-                            "format": "Y-m-d",
-                            "xtype": "DateField",
-                            "|value": "(function() { var d = new Date(); return d.format('Y-m-01'); })()",
-                            "|xns": "Roo.form"
-                        },
-                        {
-                            "listeners": {
-                                "render": "function (_self)\n{\n  _this.dateTo = _self;\n}",
-                                "change": "function (_self, newValue, oldValue)\n{\n  _this.dategrid.ds.load({});\n}"
-                            },
-                            "format": "Y-m-d",
-                            "|value": "(function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })()",
-                            "xtype": "DateField",
-                            "|xns": "Roo.form"
-                        },
-                        {
-                            "listeners": {
-                                "|select": "function (combo, record, index)\n{\n   _this.dategrid.ds.load({});\n}",
-                                "|render": "function (_self)\n{\n  _this.actionSel = _self;\n}"
-                            },
-                            "allowBlank": true,
-                            "displayField": "action",
-                            "editable": true,
-                            "emptyText": "Select Action",
-                            "forceSelection": true,
-                            "listWidth": 300,
-                            "loadingText": "Searching...",
-                            "minChars": 2,
-                            "name": "action",
-                            "pageSize": 20,
-                            "qtip": "Select Action",
-                            "queryParam": "query[action]",
-                            "selectOnFocus": true,
-                            "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{action}</b> </div>",
-                            "triggerAction": "all",
-                            "typeAhead": true,
-                            "valueField": "action",
-                            "width": 150,
-                            "xtype": "ComboBox",
-                            "|xns": "Roo.form",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|beforeload": "function (_self, o)\n{\n    o.params = o.params || {};\n    // staff can see all logs, other companies can only see their own.\n    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {\n        o.params.company_id = Pman.Login.authUser.company_id;\n    }\n    o.params._distinct = 'action';\n    o.params._columns ='action';\n}"
-                                    },
-                                    "*prop": "store",
-                                    "remoteSort": true,
-                                    "xtype": "Store",
-                                    "|sortInfo": "{ field : 'action' , direction : 'ASC' }",
-                                    "|xns": "Roo.data",
-                                    "items": [
-                                        {
-                                            "*prop": "proxy",
-                                            "method": "GET",
-                                            "timeout": 50000,
-                                            "xtype": "HttpProxy",
-                                            "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                        }
-                                    ]
-                                }
-                            ]
-                        },
-                        {
-                            "listeners": {
-                                "|select": "function (combo, record, index)\n{\n   _this.dategrid.ds.load({});\n}",
-                                "|render": "function (_self)\n{\n  _this.affectSel = _self;\n}"
-                            },
-                            "allowBlank": true,
-                            "displayField": "on_table",
-                            "editable": true,
-                            "emptyText": "Select Affects",
-                            "forceSelection": true,
-                            "listWidth": 300,
-                            "loadingText": "Searching...",
-                            "minChars": 2,
-                            "name": "on_table",
-                            "pageSize": 20,
-                            "qtip": "Select Action",
-                            "queryParam": "query[on_table]",
-                            "selectOnFocus": true,
-                            "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{on_table}</b> </div>",
-                            "triggerAction": "all",
-                            "typeAhead": true,
-                            "valueField": "action",
-                            "width": 150,
-                            "xtype": "ComboBox",
-                            "|xns": "Roo.form",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|beforeload": "function (_self, o)\n{\n    o.params = o.params || {};\n    // staff can see all logs, other companies can only see their own.\n    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {\n        o.params.company_id = Pman.Login.authUser.company_id;\n    }\n    o.params._distinct = 'on_table';\n    o.params._columns ='on_table';\n}"
-                                    },
-                                    "*prop": "store",
-                                    "remoteSort": true,
-                                    "xtype": "Store",
-                                    "|sortInfo": "{ field : 'on_table' , direction : 'ASC' }",
-                                    "|xns": "Roo.data",
-                                    "items": [
-                                        {
-                                            "*prop": "proxy",
-                                            "method": "GET",
-                                            "timeout": 60000,
-                                            "xtype": "HttpProxy",
-                                            "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                        }
-                                    ]
-                                }
-                            ]
-                        }
-                    ]
-                },
-                {
-                    "|xns": "Roo",
-                    "xtype": "BorderLayout",
-                    "*prop": "layout",
-                    "items": [
-                        {
-                            "*prop": "west",
-                            "split": true,
-                            "width": 300,
-                            "xtype": "LayoutRegion",
-                            "|xns": "Roo"
-                        },
-                        {
-                            "|xns": "Roo",
-                            "xtype": "LayoutRegion",
-                            "*prop": "center"
-                        },
-                        {
-                            "*prop": "east",
-                            "split": true,
-                            "tabPosition": "top",
-                            "width": 600,
-                            "xtype": "LayoutRegion",
-                            "|xns": "Roo"
-                        },
-                        {
-                            "listeners": {
-                                "|activate": "function() {\n    _this.datepanel = this;\n    if (_this.dategrid) {\n        _this.dategrid.ds.load({});\n    }\n}"
-                            },
-                            "background": false,
-                            "fitContainer": true,
-                            "fitToframe": true,
-                            "region": "west",
-                            "tableName": "Events",
-                            "title": "Events",
-                            "xtype": "GridPanel",
-                            "|xns": "Roo",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|render": "function() \n{\n    _this.dategrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.panel.active) {\n       this.ds.load({});\n    }\n}",
-                                        "rowclick": "function (_self, rowIndex, e)\n{\n    _this.tablegrid.footer.onClick('first');\n}"
-                                    },
-                                    "*prop": "grid",
-                                    "autoExpandColumn": "person_name",
-                                    "loadMask": true,
-                                    "xtype": "Grid",
-                                    "|xns": "Roo.grid",
-                                    "items": [
-                                        {
-                                            "listeners": {
-                                                "beforeload": "function (_self, o)\n{\n    \n    \n    if (! _this.dateFrom) {\n        return;\n    }\n\n     try {\n         _this.tablegrid.ds.removeAll();\n         _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();\n         \n    } catch (e) {\n        // do nothing..\n    }\n    o.params = o.params || {};\n     \n    var act = _this.actionSel ? _this.actionSel.getValue() : '';\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel ? _this.affectSel.getValue() : '';\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n    \n    \n    \n    o.params['query[person_sum]'] = 1;\n    o.params._columns = 'person_id,person_id_name,person_id_email,qty,uqty';\n    o.params.limit = 999;\n \n}"
-                                            },
-                                            "*prop": "dataSource",
-                                            "remoteSort": true,
-                                            "xtype": "Store",
-                                            "|sortInfo": "{ field : 'person_id_name', direction: 'ASC' }",
-                                            "|xns": "Roo.data",
-                                            "items": [
-                                                {
-                                                    "*prop": "proxy",
-                                                    "xtype": "HttpProxy",
-                                                    "method": "GET",
-                                                    "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "person_id_name",
-                                            "header": "Person name",
-                                            "sortable": true,
-                                            "width": 200,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v,x,r) {\n     return String.format('{0} &lt;<a href=\"mailto:{1}\">{1}</a>&gt;', v, r.data.person_id_email); \n }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "uqty",
-                                            "header": "#Affected",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "qty",
-                                            "header": "Changes",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        }
-                                    ]
-                                }
-                            ]
-                        },
-                        {
-                            "listeners": {
-                                "|activate": "function() {\n    _this.tablepanel = this;\n    if (_this.tablegrid) {\n        _this.tablegrid.footer.onClick('first');\n    }\n}"
-                            },
-                            "background": false,
-                            "fitContainer": true,
-                            "fitToframe": true,
-                            "region": "center",
-                            "tableName": "Events",
-                            "title": "Events",
-                            "xtype": "GridPanel",
-                            "|xns": "Roo",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|render": "function() \n{\n    _this.tablegrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.tablepanel.active) {\n       this.footer.onClick('first');\n    }\n}",
-                                        "rowclick": "function (_self, rowIndex, e)\n{\n \n    _this.panel.layout.getRegion('east').getActivePanel().grid.footer.onClick('first');\n}"
-                                    },
-                                    "*prop": "grid",
-                                    "autoExpandColumn": "person_name",
-                                    "loadMask": true,
-                                    "xtype": "Grid",
-                                    "|xns": "Roo.grid",
-                                    "items": [
-                                        {
-                                            "listeners": {
-                                                "beforeload": "function (_self, o)\n{\n     if (! _this.dategrid) {\n     return;\n    }\n    try {\n         _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();\n         \n    } catch (e) {\n        // do nothing..\n    }\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.tablegrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    _this.tablegrid.view.el.unmask();\n \n    o.params = o.params || {};\n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n    o.params.person_id = s.data.person_id;\n    o.params['query[table_sum]'] = 1;\n    o.params._columns = 'on_table,qty,uqty';\n\n    \n}"
-                                            },
-                                            "*prop": "dataSource",
-                                            "remoteSort": true,
-                                            "xtype": "Store",
-                                            "|sortInfo": "{ field : 'on_table', direction: 'ASC' }",
-                                            "|xns": "Roo.data",
-                                            "items": [
-                                                {
-                                                    "*prop": "proxy",
-                                                    "xtype": "HttpProxy",
-                                                    "method": "GET",
-                                                    "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            "*prop": "footer",
-                                            "xtype": "PagingToolbar",
-                                            "pageSize": 25,
-                                            "displayInfo": true,
-                                            "displayMsg": "Displaying Events{0} - {1} of {2}",
-                                            "emptyMsg": "No Events found",
-                                            "|xns": "Roo"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "on_table",
-                                            "header": "Table",
-                                            "sortable": true,
-                                            "width": 200,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { \n    if (!v.length) {\n        return \"Login / Logout / Errors\";\n    }\n    return String.format('{0}', v); \n}",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "uqty",
-                                            "header": "#Affected",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "qty",
-                                            "header": "Changes",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        }
-                                    ]
-                                }
-                            ]
-                        },
-                        {
-                            "listeners": {
-                                "|activate": "function() {\n    _this.detailpanel = this;\n    if (_this.detailgrid) {\n        _this.detailgrid.footer.onClick('first');\n    }\n}"
-                            },
-                            "background": true,
-                            "fitContainer": true,
-                            "fitToframe": true,
-                            "region": "east",
-                            "tableName": "Events",
-                            "title": "Detail",
-                            "xtype": "GridPanel",
-                            "|xns": "Roo",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|render": "function() \n{\n    _this.detailgrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.detailpanel.active) {\n       this.footer.onClick('first');\n    }\n}"
-                                    },
-                                    "*prop": "grid",
-                                    "autoExpandColumn": "person_name",
-                                    "loadMask": true,
-                                    "xtype": "Grid",
-                                    "|xns": "Roo.grid",
-                                    "items": [
-                                        {
-                                            "listeners": {
-                                                "beforeload": "function (_self, o)\n{\n     if (! _this.dategrid) {\n         return false;\n    }\n    \n    o.params = o.params || {};\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    \n    o.params.person_id = s.data.person_id;    \n    \n    var s = _this.tablegrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a table\");\n        return false;\n    }\n    o.params.on_table = s.data.on_table;        \n    \n    _this.detailgrid.view.el.unmask();\n \n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n     \n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n\n    //o.params['query[table_d]'] = 1;\n    //o.params._columns = 'on_table,qty,uqty';\n\n    \n}"
-                                            },
-                                            "*prop": "dataSource",
-                                            "remoteSort": true,
-                                            "xtype": "Store",
-                                            "|sortInfo": "{ field : 'event_when', direction: 'DESC' }",
-                                            "|xns": "Roo.data",
-                                            "items": [
-                                                {
-                                                    "*prop": "proxy",
-                                                    "xtype": "HttpProxy",
-                                                    "method": "GET",
-                                                    "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            "*prop": "footer",
-                                            "xtype": "PagingToolbar",
-                                            "pageSize": 25,
-                                            "displayInfo": true,
-                                            "displayMsg": "Displaying Events{0} - {1} of {2}",
-                                            "emptyMsg": "No Events found",
-                                            "|xns": "Roo"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "id",
-                                            "header": "Id",
-                                            "width": 50,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "xtype": "ColumnModel",
-                                            "header": "Event when",
-                                            "width": 75,
-                                            "dataIndex": "event_when",
-                                            "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
-                                            "|xns": "Roo.grid",
-                                            "*prop": "colModel[]"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "action",
-                                            "header": "Action",
-                                            "width": 50,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "ipaddr",
-                                            "header": "Ipaddr",
-                                            "width": 100,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "on_id",
-                                            "header": "#ID",
-                                            "width": 75,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "xtype": "ColumnModel",
-                                            "header": "Remarks",
-                                            "width": 200,
-                                            "dataIndex": "remarks",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid",
-                                            "*prop": "colModel[]"
-                                        }
-                                    ]
-                                }
-                            ]
-                        },
-                        {
-                            "listeners": {
-                                "|activate": "function() {\n    _this.daypanel = this;\n    if (_this.daygrid) {\n        _this.daygrid.footer.onClick('first');\n    }\n}"
-                            },
-                            "background": true,
-                            "fitContainer": true,
-                            "fitToframe": true,
-                            "region": "east",
-                            "tableName": "Events",
-                            "title": "Daily summary",
-                            "xtype": "GridPanel",
-                            "|xns": "Roo",
-                            "items": [
-                                {
-                                    "listeners": {
-                                        "|render": "function() \n{\n    _this.daygrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.daypanel.active) {\n       this.footer.onClick('first');\n    }\n}"
-                                    },
-                                    "*prop": "grid",
-                                    "autoExpandColumn": "person_name",
-                                    "loadMask": true,
-                                    "xtype": "Grid",
-                                    "|xns": "Roo.grid",
-                                    "items": [
-                                        {
-                                            "listeners": {
-                                                "beforeload": "function (_self, o)\n{\n     if (! _this.dategrid) {\n         return false;\n    }\n    \n    o.params = o.params || {};\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    \n    o.params.person_id = s.data.person_id;    \n    \n    var s = _this.tablegrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a table\");\n        return false;\n    }\n    o.params.on_table = s.data.on_table;        \n    \n    _this.detailgrid.view.el.unmask();\n \n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n     \n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n\n    o.params['query[day_sum]'] = 1;\n    o.params._columns = 'on_day,qty,uqty';\n\n    \n}"
-                                            },
-                                            "*prop": "dataSource",
-                                            "remoteSort": true,
-                                            "xtype": "Store",
-                                            "|sortInfo": "{ field : 'on_day', direction: 'ASC' }",
-                                            "|xns": "Roo.data",
-                                            "items": [
-                                                {
-                                                    "*prop": "proxy",
-                                                    "xtype": "HttpProxy",
-                                                    "method": "GET",
-                                                    "|url": "baseURL + '/Roo/Events.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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]"
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            "*prop": "footer",
-                                            "xtype": "PagingToolbar",
-                                            "pageSize": 25,
-                                            "displayInfo": true,
-                                            "displayMsg": "Displaying Events{0} - {1} of {2}",
-                                            "emptyMsg": "No Events found",
-                                            "|xns": "Roo"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "on_day",
-                                            "header": "Event when",
-                                            "sortable": true,
-                                            "width": 75,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v  ); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "uqty",
-                                            "header": "#Affected",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        },
-                                        {
-                                            "*prop": "colModel[]",
-                                            "dataIndex": "qty",
-                                            "header": "Changes",
-                                            "sortable": true,
-                                            "width": 70,
-                                            "xtype": "ColumnModel",
-                                            "|renderer": "function(v) { return String.format('{0}', v); }",
-                                            "|xns": "Roo.grid"
-                                        }
-                                    ]
-                                }
-                            ]
-                        }
-                    ]
-                }
-            ]
+         "listeners" : {
+          "|beforeload" : "function (_self, o)\n{\n    o.params = o.params || {};\n    // staff can see all logs, other companies can only see their own.\n    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {\n        o.params.company_id = Pman.Login.authUser.company_id;\n    }\n    o.params._distinct = 'action';\n    o.params._columns ='action';\n}"
+         },
+         "xtype" : "Store",
+         "remoteSort" : true,
+         "$ sortInfo" : "{ field : 'action' , direction : 'ASC' }",
+         "$ xns" : "Roo.data",
+         "* prop" : "store",
+         "items" : [
+          {
+           "$ url" : "baseURL + '/Roo/Events.php'",
+           "method" : "GET",
+           "xtype" : "HttpProxy",
+           "timeout" : 50000,
+           "$ 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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+           "* prop" : "reader",
+           "totalProperty" : "total"
+          }
+         ]
         }
-    ],
-    "permname": "",
-    "modOrder": "003"
+       ]
+      },
+      {
+       "listeners" : {
+        "|render" : "function (_self)\n{\n  _this.affectSel = _self;\n}",
+        "|select" : "function (combo, record, index)\n{\n   _this.dategrid.ds.load({});\n}"
+       },
+       "listWidth" : 300,
+       "triggerAction" : "all",
+       "forceSelection" : true,
+       "selectOnFocus" : true,
+       "pageSize" : 20,
+       "displayField" : "on_table",
+       "emptyText" : "Select Affects",
+       "minChars" : 2,
+       "valueField" : "action",
+       "xtype" : "ComboBox",
+       "allowBlank" : true,
+       "typeAhead" : true,
+       "editable" : true,
+       "width" : 150,
+       "$ xns" : "Roo.form",
+       "name" : "on_table",
+       "qtip" : "Select Action",
+       "queryParam" : "query[on_table]",
+       "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{on_table}</b> </div>",
+       "loadingText" : "Searching...",
+       "items" : [
+        {
+         "listeners" : {
+          "|beforeload" : "function (_self, o)\n{\n    o.params = o.params || {};\n    // staff can see all logs, other companies can only see their own.\n    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {\n        o.params.company_id = Pman.Login.authUser.company_id;\n    }\n    o.params._distinct = 'on_table';\n    o.params._columns ='on_table';\n}"
+         },
+         "xtype" : "Store",
+         "remoteSort" : true,
+         "$ sortInfo" : "{ field : 'on_table' , direction : 'ASC' }",
+         "$ xns" : "Roo.data",
+         "* prop" : "store",
+         "items" : [
+          {
+           "$ url" : "baseURL + '/Roo/Events.php'",
+           "method" : "GET",
+           "xtype" : "HttpProxy",
+           "timeout" : 60000,
+           "$ 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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+           "* prop" : "reader",
+           "totalProperty" : "total"
+          }
+         ]
+        }
+       ]
+      }
+     ]
+    },
+    {
+     "xtype" : "BorderLayout",
+     "$ xns" : "Roo",
+     "* prop" : "layout",
+     "items" : [
+      {
+       "xtype" : "LayoutRegion",
+       "width" : 300,
+       "$ xns" : "Roo",
+       "split" : true,
+       "* prop" : "west"
+      },
+      {
+       "xtype" : "LayoutRegion",
+       "$ xns" : "Roo",
+       "* prop" : "center"
+      },
+      {
+       "xtype" : "LayoutRegion",
+       "tabPosition" : "top",
+       "width" : 600,
+       "$ xns" : "Roo",
+       "split" : true,
+       "* prop" : "east"
+      },
+      {
+       "listeners" : {
+        "|activate" : "function() {\n    _this.datepanel = this;\n    if (_this.dategrid) {\n        _this.dategrid.ds.load({});\n    }\n}"
+       },
+       "fitToframe" : true,
+       "background" : false,
+       "region" : "west",
+       "title" : "Events",
+       "xtype" : "GridPanel",
+       "fitContainer" : true,
+       "$ xns" : "Roo",
+       "tableName" : "Events",
+       "items" : [
+        {
+         "listeners" : {
+          "|render" : "function() \n{\n    _this.dategrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.panel.active) {\n       this.ds.load({});\n    }\n}",
+          "rowclick" : "function (_self, rowIndex, e)\n{\n    _this.tablegrid.footer.onClick('first');\n}"
+         },
+         "autoExpandColumn" : "person_name",
+         "xtype" : "Grid",
+         "loadMask" : true,
+         "$ xns" : "Roo.grid",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "beforeload" : "function (_self, o)\n{\n    \n    \n    if (! _this.dateFrom) {\n        return;\n    }\n\n     try {\n         _this.tablegrid.ds.removeAll();\n         _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();\n         \n    } catch (e) {\n        // do nothing..\n    }\n    o.params = o.params || {};\n     \n    var act = _this.actionSel ? _this.actionSel.getValue() : '';\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel ? _this.affectSel.getValue() : '';\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n    \n    \n    \n    o.params['query[person_sum]'] = 1;\n    o.params._columns = 'person_id,person_id_name,person_id_email,qty,uqty';\n    o.params.limit = 999;\n \n}"
+           },
+           "xtype" : "Store",
+           "remoteSort" : true,
+           "$ sortInfo" : "{ field : 'person_id_name', direction: 'ASC' }",
+           "$ xns" : "Roo.data",
+           "* prop" : "dataSource",
+           "items" : [
+            {
+             "$ url" : "baseURL + '/Roo/Events.php'",
+             "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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+             "* prop" : "reader",
+             "totalProperty" : "total"
+            }
+           ]
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Person name",
+           "width" : 200,
+           "$ renderer" : "function(v,x,r) {\n     return String.format('{0} &lt;<a href=\"mailto:{1}\">{1}</a>&gt;', v, r.data.person_id_email); \n }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "person_id_name"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "#Affected",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "uqty"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Changes",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "qty"
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "listeners" : {
+        "|activate" : "function() {\n    _this.tablepanel = this;\n    if (_this.tablegrid) {\n        _this.tablegrid.footer.onClick('first');\n    }\n}"
+       },
+       "fitToframe" : true,
+       "background" : false,
+       "region" : "center",
+       "title" : "Events",
+       "xtype" : "GridPanel",
+       "fitContainer" : true,
+       "$ xns" : "Roo",
+       "tableName" : "Events",
+       "items" : [
+        {
+         "listeners" : {
+          "|render" : "function() \n{\n    _this.tablegrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.tablepanel.active) {\n       this.footer.onClick('first');\n    }\n}",
+          "rowclick" : "function (_self, rowIndex, e)\n{\n \n    _this.panel.layout.getRegion('east').getActivePanel().grid.footer.onClick('first');\n}"
+         },
+         "autoExpandColumn" : "person_name",
+         "xtype" : "Grid",
+         "loadMask" : true,
+         "$ xns" : "Roo.grid",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "beforeload" : "function (_self, o)\n{\n     if (! _this.dategrid) {\n     return;\n    }\n    try {\n         _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();\n         \n    } catch (e) {\n        // do nothing..\n    }\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.tablegrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    _this.tablegrid.view.el.unmask();\n \n    o.params = o.params || {};\n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n    o.params.person_id = s.data.person_id;\n    o.params['query[table_sum]'] = 1;\n    o.params._columns = 'on_table,qty,uqty';\n\n    \n}"
+           },
+           "xtype" : "Store",
+           "remoteSort" : true,
+           "$ sortInfo" : "{ field : 'on_table', direction: 'ASC' }",
+           "$ xns" : "Roo.data",
+           "* prop" : "dataSource",
+           "items" : [
+            {
+             "$ url" : "baseURL + '/Roo/Events.php'",
+             "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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+             "* prop" : "reader",
+             "totalProperty" : "total"
+            }
+           ]
+          },
+          {
+           "pageSize" : 25,
+           "xtype" : "PagingToolbar",
+           "emptyMsg" : "No Events found",
+           "$ xns" : "Roo",
+           "displayInfo" : true,
+           "displayMsg" : "Displaying Events{0} - {1} of {2}",
+           "* prop" : "footer"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Table",
+           "width" : 200,
+           "$ renderer" : "function(v) { \n    if (!v.length) {\n        return \"Login / Logout / Errors\";\n    }\n    return String.format('{0}', v); \n}",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "on_table"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "#Affected",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "uqty"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Changes",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "qty"
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "listeners" : {
+        "|activate" : "function() {\n    _this.detailpanel = this;\n    if (_this.detailgrid) {\n        _this.detailgrid.footer.onClick('first');\n    }\n}"
+       },
+       "fitToframe" : true,
+       "background" : true,
+       "region" : "east",
+       "title" : "Detail",
+       "xtype" : "GridPanel",
+       "fitContainer" : true,
+       "$ xns" : "Roo",
+       "tableName" : "Events",
+       "items" : [
+        {
+         "listeners" : {
+          "|render" : "function() \n{\n    _this.detailgrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.detailpanel.active) {\n       this.footer.onClick('first');\n    }\n}"
+         },
+         "autoExpandColumn" : "person_name",
+         "xtype" : "Grid",
+         "loadMask" : true,
+         "$ xns" : "Roo.grid",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "beforeload" : "function (_self, o)\n{\n     if (! _this.dategrid) {\n         return false;\n    }\n    \n    o.params = o.params || {};\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    \n    o.params.person_id = s.data.person_id;    \n    \n    var s = _this.tablegrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a table\");\n        return false;\n    }\n    o.params.on_table = s.data.on_table;        \n    \n    _this.detailgrid.view.el.unmask();\n \n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n     \n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n\n    //o.params['query[table_d]'] = 1;\n    //o.params._columns = 'on_table,qty,uqty';\n\n    \n}"
+           },
+           "xtype" : "Store",
+           "remoteSort" : true,
+           "$ sortInfo" : "{ field : 'event_when', direction: 'DESC' }",
+           "$ xns" : "Roo.data",
+           "* prop" : "dataSource",
+           "items" : [
+            {
+             "$ url" : "baseURL + '/Roo/Events.php'",
+             "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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+             "* prop" : "reader",
+             "totalProperty" : "total"
+            }
+           ]
+          },
+          {
+           "pageSize" : 25,
+           "xtype" : "PagingToolbar",
+           "emptyMsg" : "No Events found",
+           "$ xns" : "Roo",
+           "displayInfo" : true,
+           "displayMsg" : "Displaying Events{0} - {1} of {2}",
+           "* prop" : "footer"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "header" : "Id",
+           "width" : 50,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "id"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "width" : 75,
+           "header" : "Event when",
+           "$ renderer" : "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "event_when"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "header" : "Action",
+           "width" : 50,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "action"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "header" : "Ipaddr",
+           "width" : 100,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "ipaddr"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "header" : "#ID",
+           "width" : 75,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "on_id"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "width" : 200,
+           "header" : "Remarks",
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "remarks"
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "listeners" : {
+        "|activate" : "function() {\n    _this.daypanel = this;\n    if (_this.daygrid) {\n        _this.daygrid.footer.onClick('first');\n    }\n}"
+       },
+       "fitToframe" : true,
+       "background" : true,
+       "region" : "east",
+       "title" : "Daily summary",
+       "xtype" : "GridPanel",
+       "fitContainer" : true,
+       "$ xns" : "Roo",
+       "tableName" : "Events",
+       "items" : [
+        {
+         "listeners" : {
+          "|render" : "function() \n{\n    _this.daygrid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n    if (_this.daypanel.active) {\n       this.footer.onClick('first');\n    }\n}"
+         },
+         "autoExpandColumn" : "person_name",
+         "xtype" : "Grid",
+         "loadMask" : true,
+         "$ xns" : "Roo.grid",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "beforeload" : "function (_self, o)\n{\n     if (! _this.dategrid) {\n         return false;\n    }\n    \n    o.params = o.params || {};\n    \n    var s = _this.dategrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a person\");\n        return false;\n    }\n    \n    o.params.person_id = s.data.person_id;    \n    \n    var s = _this.tablegrid.selModel.getSelected();\n    if (!s) {\n        _this.detailgrid.view.el.mask(\"Select a table\");\n        return false;\n    }\n    o.params.on_table = s.data.on_table;        \n    \n    _this.detailgrid.view.el.unmask();\n \n    var act = _this.actionSel.getValue();\n    if (act.length) {\n        o.params.action = act;\n    }\n    var tbl = _this.affectSel.getValue();\n    if (tbl.length) {\n        o.params.on_table = tbl;\n    }\n     \n \n    act = _this.dateFrom.getValue();\n    if (act.format) {\n        o.params['query[from]'] = act.format('Y-m-d');\n    }\n    act = _this.dateTo.getValue();\n    if (act.format) {\n        o.params['query[to]'] = act.format('Y-m-d');\n    }\n\n    o.params['query[day_sum]'] = 1;\n    o.params._columns = 'on_day,qty,uqty';\n\n    \n}"
+           },
+           "xtype" : "Store",
+           "remoteSort" : true,
+           "$ sortInfo" : "{ field : 'on_day', direction: 'ASC' }",
+           "$ xns" : "Roo.data",
+           "* prop" : "dataSource",
+           "items" : [
+            {
+             "$ url" : "baseURL + '/Roo/Events.php'",
+             "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': 'person_name',\n        'type': 'string'\n    },\n    {\n        'name': 'event_when',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'action',\n        'type': 'string'\n    },\n    {\n        'name': 'ipaddr',\n        'type': 'string'\n    },\n    {\n        'name': 'on_id',\n        'type': 'int'\n    },\n    {\n        'name': 'on_table',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id',\n        'type': 'int'\n    },\n    {\n        'name': 'remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_office_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_phone',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_fax',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_email',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_company_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_role',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_active',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_remarks',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_passwd',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_owner_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_lang',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_no_reset_sent',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_action_type',\n        'type': 'string'\n    },\n    {\n        'name': 'person_id_project_id',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_by',\n        'type': 'int'\n    },\n    {\n        'name': 'person_id_deleted_dt',\n        'type': 'date'\n    }\n]",
+             "* prop" : "reader",
+             "totalProperty" : "total"
+            }
+           ]
+          },
+          {
+           "pageSize" : 25,
+           "xtype" : "PagingToolbar",
+           "emptyMsg" : "No Events found",
+           "$ xns" : "Roo",
+           "displayInfo" : true,
+           "displayMsg" : "Displaying Events{0} - {1} of {2}",
+           "* prop" : "footer"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Event when",
+           "width" : 75,
+           "$ renderer" : "function(v) { return String.format('{0}', v  ); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "on_day"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "#Affected",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "uqty"
+          },
+          {
+           "xtype" : "ColumnModel",
+           "sortable" : true,
+           "header" : "Changes",
+           "width" : 70,
+           "$ renderer" : "function(v) { return String.format('{0}', v); }",
+           "$ xns" : "Roo.grid",
+           "* prop" : "colModel[]",
+           "dataIndex" : "qty"
+          }
+         ]
+        }
+       ]
+      }
+     ]
+    }
+   ]
+  }
+ ]
 }
\ No newline at end of file
index ec2e292..b67ddd0 100644 (file)
 
 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
 
+Roo.namespace('Pman.Tab');
+
 Pman.Tab.AdminLogDrill = new Roo.XComponent({
-    part     :  ["Admin","LogDrill"],
-    order    : '003-Pman.Tab.AdminLogDrill',
-    region   : 'center',
-    parent   : 'Pman.Tab.AdminLogs',
-    name     : "Pman.Tab.AdminLogDrill",
-    disabled : false, 
-    permname : '', 
-    _tree : function()
-    {
-        var _this = this;
-        var MODULE = this;
-        return {
-            xtype: 'NestedLayoutPanel',
-            xns: Roo,
-            background : true,
-            region : 'center',
-            title : "Event Drilldown",
-            toolbar : {
-                xtype: 'Toolbar',
-                xns: Roo,
-                items : [
-                    {
-                        xtype: 'TextItem',
-                        xns: Roo.Toolbar,
-                        text : "Date Range"
-                    },
-                    {
-                        xtype: 'DateField',
-                        xns: Roo.form,
-                        listeners : {
-                            render : function (_self)
-                            {
-                              _this.dateFrom = _self;
-                            },
-                            change : function (_self, newValue, oldValue)
-                            {
-                              _this.dategrid.ds.load({});
-                            }
-                        },
-                        format : 'Y-m-d',
-                        value : (function() { var d = new Date(); return d.format('Y-m-01'); })()
-                    },
-                    {
-                        xtype: 'DateField',
-                        xns: Roo.form,
-                        listeners : {
-                            render : function (_self)
-                            {
-                              _this.dateTo = _self;
-                            },
-                            change : function (_self, newValue, oldValue)
-                            {
-                              _this.dategrid.ds.load({});
-                            }
-                        },
-                        format : 'Y-m-d',
-                        value : (function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })()
-                    },
-                    {
-                        xtype: 'ComboBox',
-                        xns: Roo.form,
-                        listeners : {
-                            select : function (combo, record, index)
-                            {
-                               _this.dategrid.ds.load({});
-                            },
-                            render : function (_self)
-                            {
-                              _this.actionSel = _self;
-                            }
-                        },
-                        allowBlank : true,
-                        displayField : 'action',
-                        editable : true,
-                        emptyText : "Select Action",
-                        forceSelection : true,
-                        listWidth : 300,
-                        loadingText : "Searching...",
-                        minChars : 2,
-                        name : 'action',
-                        pageSize : 20,
-                        qtip : "Select Action",
-                        queryParam : 'query[action]',
-                        selectOnFocus : true,
-                        tpl : '<div class="x-grid-cell-text x-btn button"><b>{action}</b> </div>',
-                        triggerAction : 'all',
-                        typeAhead : true,
-                        valueField : 'action',
-                        width : 150,
-                        store : {
-                            xtype: 'Store',
-                            xns: Roo.data,
-                            listeners : {
-                                beforeload : function (_self, o)
-                                {
-                                    o.params = o.params || {};
-                                    // staff can see all logs, other companies can only see their own.
-                                    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {
-                                        o.params.company_id = Pman.Login.authUser.company_id;
-                                    }
-                                    o.params._distinct = 'action';
-                                    o.params._columns ='action';
-                                }
-                            },
-                            remoteSort : true,
-                            sortInfo : { field : 'action' , direction : 'ASC' },
-                            proxy : {
-                                xtype: 'HttpProxy',
-                                xns: Roo.data,
-                                method : 'GET',
-                                timeout : 50000,
-                                url : baseURL + '/Roo/Events.php'
-                            },
-                            reader : {
-                                xtype: 'JsonReader',
-                                xns: Roo.data,
-                                totalProperty : 'total',
-                                root : 'data',
-                                id : 'id',
-                                fields : [
-                                    {
-                                        'name': 'id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_name',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'event_when',
-                                        'type': 'date',
-                                        'dateFormat': 'Y-m-d'
-                                    },
-                                    {
-                                        'name': 'action',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'ipaddr',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'on_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'on_table',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'remarks',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_office_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_name',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_phone',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_fax',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_email',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_company_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_role',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_active',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_remarks',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_passwd',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_owner_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_lang',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_no_reset_sent',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_action_type',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_project_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_deleted_by',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_deleted_dt',
-                                        'type': 'date'
-                                    }
-                                ]
-                            }
-                        }
-                    },
-                    {
-                        xtype: 'ComboBox',
-                        xns: Roo.form,
-                        listeners : {
-                            select : function (combo, record, index)
-                            {
-                               _this.dategrid.ds.load({});
-                            },
-                            render : function (_self)
-                            {
-                              _this.affectSel = _self;
-                            }
-                        },
-                        allowBlank : true,
-                        displayField : 'on_table',
-                        editable : true,
-                        emptyText : "Select Affects",
-                        forceSelection : true,
-                        listWidth : 300,
-                        loadingText : "Searching...",
-                        minChars : 2,
-                        name : 'on_table',
-                        pageSize : 20,
-                        qtip : "Select Action",
-                        queryParam : 'query[on_table]',
-                        selectOnFocus : true,
-                        tpl : '<div class="x-grid-cell-text x-btn button"><b>{on_table}</b> </div>',
-                        triggerAction : 'all',
-                        typeAhead : true,
-                        valueField : 'action',
-                        width : 150,
-                        store : {
-                            xtype: 'Store',
-                            xns: Roo.data,
-                            listeners : {
-                                beforeload : function (_self, o)
-                                {
-                                    o.params = o.params || {};
-                                    // staff can see all logs, other companies can only see their own.
-                                    if (Pman.Login.authUser.company_id_comptype != 'OWNER') {
-                                        o.params.company_id = Pman.Login.authUser.company_id;
-                                    }
-                                    o.params._distinct = 'on_table';
-                                    o.params._columns ='on_table';
-                                }
-                            },
-                            remoteSort : true,
-                            sortInfo : { field : 'on_table' , direction : 'ASC' },
-                            proxy : {
-                                xtype: 'HttpProxy',
-                                xns: Roo.data,
-                                method : 'GET',
-                                timeout : 60000,
-                                url : baseURL + '/Roo/Events.php'
-                            },
-                            reader : {
-                                xtype: 'JsonReader',
-                                xns: Roo.data,
-                                totalProperty : 'total',
-                                root : 'data',
-                                id : 'id',
-                                fields : [
-                                    {
-                                        'name': 'id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_name',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'event_when',
-                                        'type': 'date',
-                                        'dateFormat': 'Y-m-d'
-                                    },
-                                    {
-                                        'name': 'action',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'ipaddr',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'on_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'on_table',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'remarks',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_office_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_name',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_phone',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_fax',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_email',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_company_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_role',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_active',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_remarks',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_passwd',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_owner_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_lang',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_no_reset_sent',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_action_type',
-                                        'type': 'string'
-                                    },
-                                    {
-                                        'name': 'person_id_project_id',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_deleted_by',
-                                        'type': 'int'
-                                    },
-                                    {
-                                        'name': 'person_id_deleted_dt',
-                                        'type': 'date'
-                                    }
-                                ]
-                            }
-                        }
-                    }
-                ]
+
+ _strings : {
+  '7a11042f53957727d8667732d7de1102' :"Ipaddr",
+  '231bc72756b5e6de492aaaa1577f61b1' :"Remarks",
+  '87f9f735a1d36793ceaecd4e47124b63' :"Events",
+  '490aa6e856ccf208a054389e47ce0d06' :"Id",
+  '739cea2b85156183f917f2ccaa10a50c' :"#ID",
+  '591933c26da312455c63b6bc1ec046bc' :"(function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })()",
+  'd9578744f1d4b13d40a51fbb8b9d6ea5' :"Person name",
+  'e1edab2a061a49e21790204249b1aee9' :"(function() { var d = new Date(); return d.format('Y-m-01'); })()",
+  '1243daf593fa297e07ab03bf06d925af' :"Searching...",
+  '51c45b795d5d18a3e4e0c37e8b20a141' :"Table",
+  '6be4aa550791c310e098cd6c234af7d8' :"Event when",
+  '679308a758de538c5f39c4c6cdba6593' :"Select Affects",
+  'c112bb3542e98308d12d5ecb10a67abc' :"Changes",
+  'a254c25adc7d10d7e9c4889484f875a5' :"Detail",
+  '7205d42d6d975c911bc1147259d78935' :"Displaying Events{0} - {1} of {2}",
+  '39b9e051f9fe75e65c7a330bb00499d4' :"Date Range",
+  'a8929eb5c1553d3f70497f862d25d0ce' :"Select Action",
+  '004bf6c9a40003140292e97330236c53' :"Action",
+  'f971b3a2cc583b475332380649a4fa05' :"Daily summary",
+  '0668a37e3eb3480f0444f8da7bc446ba' :"Event Drilldown",
+  'b5fe0746885b906c8ed9b7cc06023c35' :"#Affected",
+  '90e4ac2e5a22e53df63b6b186d8727ba' :"No Events found"
+ },
+
+  part     :  ["Admin", "LogDrill" ],
+  order    : '003-Pman.Tab.AdminLogDrill',
+  region   : 'center',
+  parent   : 'Pman.Tab.AdminLogs',
+  name     : "Pman.Tab.AdminLogDrill",
+  disabled : false, 
+  permname : '', 
+  _tree : function(_data)
+  {
+   var _this = this;
+   var MODULE = this;
+   return {
+   xtype : 'NestedLayoutPanel',
+   background : true,
+   region : 'center',
+   title : _this._strings['0668a37e3eb3480f0444f8da7bc446ba'] /* Event Drilldown */,
+   xns : Roo,
+   '|xns' : 'Roo',
+   toolbar : {
+    xtype : 'Toolbar',
+    xns : Roo,
+    '|xns' : 'Roo',
+    items  : [
+     {
+      xtype : 'TextItem',
+      text : _this._strings['39b9e051f9fe75e65c7a330bb00499d4'] /* Date Range */,
+      xns : Roo.Toolbar,
+      '|xns' : 'Roo.Toolbar'
+     },
+     {
+      xtype : 'DateField',
+      format : 'Y-m-d',
+      value : (function() { var d = new Date(); return d.format('Y-m-01'); })(),
+      listeners : {
+       change : function (_self, newValue, oldValue)
+        {
+          _this.dategrid.ds.load({});
+        },
+       render : function (_self)
+        {
+          _this.dateFrom = _self;
+        }
+      },
+      xns : Roo.form,
+      '|xns' : 'Roo.form'
+     },
+     {
+      xtype : 'DateField',
+      format : 'Y-m-d',
+      value : (function() { var d = new Date();d =  d.add(Date.MONTH, 1) ; return d.format('Y-m-01'); })(),
+      listeners : {
+       change : function (_self, newValue, oldValue)
+        {
+          _this.dategrid.ds.load({});
+        },
+       render : function (_self)
+        {
+          _this.dateTo = _self;
+        }
+      },
+      xns : Roo.form,
+      '|xns' : 'Roo.form'
+     },
+     {
+      xtype : 'ComboBox',
+      allowBlank : true,
+      displayField : 'action',
+      editable : true,
+      emptyText : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */,
+      forceSelection : true,
+      listWidth : 300,
+      loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+      minChars : 2,
+      name : 'action',
+      pageSize : 20,
+      qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */,
+      queryParam : 'query[action]',
+      selectOnFocus : true,
+      tpl : '<div class=\"x-grid-cell-text x-btn button\"><b>{action}</b> </div>',
+      triggerAction : 'all',
+      typeAhead : true,
+      valueField : 'action',
+      width : 150,
+      listeners : {
+       render : function (_self)
+        {
+          _this.actionSel = _self;
+        },
+       select : function (combo, record, index)
+        {
+           _this.dategrid.ds.load({});
+        }
+      },
+      xns : Roo.form,
+      '|xns' : 'Roo.form',
+      store : {
+       xtype : 'Store',
+       remoteSort : true,
+       sortInfo : { field : 'action' , direction : 'ASC' },
+       listeners : {
+        beforeload : function (_self, o)
+         {
+             o.params = o.params || {};
+             // staff can see all logs, other companies can only see their own.
+             if (Pman.Login.authUser.company_id_comptype != 'OWNER') {
+                 o.params.company_id = Pman.Login.authUser.company_id;
+             }
+             o.params._distinct = 'action';
+             o.params._columns ='action';
+         }
+       },
+       xns : Roo.data,
+       '|xns' : 'Roo.data',
+       proxy : {
+        xtype : 'HttpProxy',
+        method : 'GET',
+        timeout : 50000,
+        url : baseURL + '/Roo/Events.php',
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       },
+       reader : {
+        xtype : 'JsonReader',
+        fields : [
+            {
+                'name': 'id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_name',
+                'type': 'string'
+            },
+            {
+                'name': 'event_when',
+                'type': 'date',
+                'dateFormat': 'Y-m-d'
+            },
+            {
+                'name': 'action',
+                'type': 'string'
+            },
+            {
+                'name': 'ipaddr',
+                'type': 'string'
+            },
+            {
+                'name': 'on_id',
+                'type': 'int'
+            },
+            {
+                'name': 'on_table',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id',
+                'type': 'int'
+            },
+            {
+                'name': 'remarks',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_office_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_name',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_phone',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_fax',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_email',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_company_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_role',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_active',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_remarks',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_passwd',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_owner_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_lang',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_no_reset_sent',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_action_type',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_project_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_deleted_by',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_deleted_dt',
+                'type': 'date'
+            }
+        ],
+        id : 'id',
+        root : 'data',
+        totalProperty : 'total',
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       }
+      }
+     },
+     {
+      xtype : 'ComboBox',
+      allowBlank : true,
+      displayField : 'on_table',
+      editable : true,
+      emptyText : _this._strings['679308a758de538c5f39c4c6cdba6593'] /* Select Affects */,
+      forceSelection : true,
+      listWidth : 300,
+      loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+      minChars : 2,
+      name : 'on_table',
+      pageSize : 20,
+      qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */,
+      queryParam : 'query[on_table]',
+      selectOnFocus : true,
+      tpl : '<div class=\"x-grid-cell-text x-btn button\"><b>{on_table}</b> </div>',
+      triggerAction : 'all',
+      typeAhead : true,
+      valueField : 'action',
+      width : 150,
+      listeners : {
+       render : function (_self)
+        {
+          _this.affectSel = _self;
+        },
+       select : function (combo, record, index)
+        {
+           _this.dategrid.ds.load({});
+        }
+      },
+      xns : Roo.form,
+      '|xns' : 'Roo.form',
+      store : {
+       xtype : 'Store',
+       remoteSort : true,
+       sortInfo : { field : 'on_table' , direction : 'ASC' },
+       listeners : {
+        beforeload : function (_self, o)
+         {
+             o.params = o.params || {};
+             // staff can see all logs, other companies can only see their own.
+             if (Pman.Login.authUser.company_id_comptype != 'OWNER') {
+                 o.params.company_id = Pman.Login.authUser.company_id;
+             }
+             o.params._distinct = 'on_table';
+             o.params._columns ='on_table';
+         }
+       },
+       xns : Roo.data,
+       '|xns' : 'Roo.data',
+       proxy : {
+        xtype : 'HttpProxy',
+        method : 'GET',
+        timeout : 60000,
+        url : baseURL + '/Roo/Events.php',
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       },
+       reader : {
+        xtype : 'JsonReader',
+        fields : [
+            {
+                'name': 'id',
+                'type': 'int'
             },
-            layout : {
-                xtype: 'BorderLayout',
-                xns: Roo,
-                items : [
-                    {
-                        xtype: 'GridPanel',
-                        xns: Roo,
-                        listeners : {
-                            activate : function() {
-                                _this.datepanel = this;
-                                if (_this.dategrid) {
-                                    _this.dategrid.ds.load({});
-                                }
-                            }
-                        },
-                        background : false,
-                        fitContainer : true,
-                        fitToframe : true,
-                        region : 'west',
-                        tableName : 'Events',
-                        title : "Events",
-                        grid : {
-                            xtype: 'Grid',
-                            xns: Roo.grid,
-                            listeners : {
-                                render : function() 
-                                {
-                                    _this.dategrid = this; 
-                                    //_this.dialog = Pman.Dialog.FILL_IN
-                                    if (_this.panel.active) {
-                                       this.ds.load({});
-                                    }
-                                },
-                                rowclick : function (_self, rowIndex, e)
-                                {
-                                    _this.tablegrid.footer.onClick('first');
-                                }
-                            },
-                            autoExpandColumn : 'person_name',
-                            loadMask : true,
-                            dataSource : {
-                                xtype: 'Store',
-                                xns: Roo.data,
-                                listeners : {
-                                    beforeload : function (_self, o)
-                                    {
-                                        
-                                        
-                                        if (! _this.dateFrom) {
-                                            return;
-                                        }
-                                    
-                                         try {
-                                             _this.tablegrid.ds.removeAll();
-                                             _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();
-                                             
-                                        } catch (e) {
-                                            // do nothing..
-                                        }
-                                        o.params = o.params || {};
-                                         
-                                        var act = _this.actionSel ? _this.actionSel.getValue() : '';
-                                        if (act.length) {
-                                            o.params.action = act;
-                                        }
-                                        var tbl = _this.affectSel ? _this.affectSel.getValue() : '';
-                                        if (tbl.length) {
-                                            o.params.on_table = tbl;
-                                        }
-                                        act = _this.dateFrom.getValue();
-                                        if (act.format) {
-                                            o.params['query[from]'] = act.format('Y-m-d');
-                                        }
-                                        act = _this.dateTo.getValue();
-                                        if (act.format) {
-                                            o.params['query[to]'] = act.format('Y-m-d');
-                                        }
-                                        
-                                        
-                                        
-                                        o.params['query[person_sum]'] = 1;
-                                        o.params._columns = 'person_id,person_id_name,person_id_email,qty,uqty';
-                                        o.params.limit = 999;
-                                     
-                                    }
-                                },
-                                remoteSort : true,
-                                sortInfo : { field : 'person_id_name', direction: 'ASC' },
-                                proxy : {
-                                    xtype: 'HttpProxy',
-                                    xns: Roo.data,
-                                    method : 'GET',
-                                    url : baseURL + '/Roo/Events.php'
-                                },
-                                reader : {
-                                    xtype: 'JsonReader',
-                                    xns: Roo.data,
-                                    totalProperty : 'total',
-                                    root : 'data',
-                                    id : 'id',
-                                    fields : [
-                                        {
-                                            'name': 'id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'event_when',
-                                            'type': 'date',
-                                            'dateFormat': 'Y-m-d'
-                                        },
-                                        {
-                                            'name': 'action',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'ipaddr',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'on_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'on_table',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_office_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_phone',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_fax',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_email',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_company_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_role',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_active',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_passwd',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_owner_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_lang',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_no_reset_sent',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_action_type',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_project_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_by',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_dt',
-                                            'type': 'date'
-                                        }
-                                    ]
-                                }
-                            },
-                            colModel : [
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'person_id_name',
-                                    header : 'Person name',
-                                    sortable : true,
-                                    width : 200,
-                                    renderer : function(v,x,r) {
-                                         return String.format('{0} &lt;<a href="mailto:{1}">{1}</a>&gt;', v, r.data.person_id_email); 
-                                     }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'uqty',
-                                    header : '#Affected',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'qty',
-                                    header : 'Changes',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                }
-                            ]
-                        }
-                    },
-                    {
-                        xtype: 'GridPanel',
-                        xns: Roo,
-                        listeners : {
-                            activate : function() {
-                                _this.tablepanel = this;
-                                if (_this.tablegrid) {
-                                    _this.tablegrid.footer.onClick('first');
-                                }
-                            }
-                        },
-                        background : false,
-                        fitContainer : true,
-                        fitToframe : true,
-                        region : 'center',
-                        tableName : 'Events',
-                        title : "Events",
-                        grid : {
-                            xtype: 'Grid',
-                            xns: Roo.grid,
-                            listeners : {
-                                render : function() 
-                                {
-                                    _this.tablegrid = this; 
-                                    //_this.dialog = Pman.Dialog.FILL_IN
-                                    if (_this.tablepanel.active) {
-                                       this.footer.onClick('first');
-                                    }
-                                },
-                                rowclick : function (_self, rowIndex, e)
-                                {
-                                 
-                                    _this.panel.layout.getRegion('east').getActivePanel().grid.footer.onClick('first');
-                                }
-                            },
-                            autoExpandColumn : 'person_name',
-                            loadMask : true,
-                            dataSource : {
-                                xtype: 'Store',
-                                xns: Roo.data,
-                                listeners : {
-                                    beforeload : function (_self, o)
-                                    {
-                                         if (! _this.dategrid) {
-                                         return;
-                                        }
-                                        try {
-                                             _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();
-                                             
-                                        } catch (e) {
-                                            // do nothing..
-                                        }
-                                        
-                                        var s = _this.dategrid.selModel.getSelected();
-                                        if (!s) {
-                                            _this.tablegrid.view.el.mask("Select a person");
-                                            return false;
-                                        }
-                                        _this.tablegrid.view.el.unmask();
-                                     
-                                        o.params = o.params || {};
-                                        var act = _this.actionSel.getValue();
-                                        if (act.length) {
-                                            o.params.action = act;
-                                        }
-                                        var tbl = _this.affectSel.getValue();
-                                        if (tbl.length) {
-                                            o.params.on_table = tbl;
-                                        }
-                                     
-                                        act = _this.dateFrom.getValue();
-                                        if (act.format) {
-                                            o.params['query[from]'] = act.format('Y-m-d');
-                                        }
-                                        act = _this.dateTo.getValue();
-                                        if (act.format) {
-                                            o.params['query[to]'] = act.format('Y-m-d');
-                                        }
-                                        o.params.person_id = s.data.person_id;
-                                        o.params['query[table_sum]'] = 1;
-                                        o.params._columns = 'on_table,qty,uqty';
-                                    
-                                        
-                                    }
-                                },
-                                remoteSort : true,
-                                sortInfo : { field : 'on_table', direction: 'ASC' },
-                                proxy : {
-                                    xtype: 'HttpProxy',
-                                    xns: Roo.data,
-                                    method : 'GET',
-                                    url : baseURL + '/Roo/Events.php'
-                                },
-                                reader : {
-                                    xtype: 'JsonReader',
-                                    xns: Roo.data,
-                                    totalProperty : 'total',
-                                    root : 'data',
-                                    id : 'id',
-                                    fields : [
-                                        {
-                                            'name': 'id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'event_when',
-                                            'type': 'date',
-                                            'dateFormat': 'Y-m-d'
-                                        },
-                                        {
-                                            'name': 'action',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'ipaddr',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'on_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'on_table',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_office_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_phone',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_fax',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_email',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_company_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_role',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_active',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_passwd',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_owner_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_lang',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_no_reset_sent',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_action_type',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_project_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_by',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_dt',
-                                            'type': 'date'
-                                        }
-                                    ]
-                                }
-                            },
-                            footer : {
-                                xtype: 'PagingToolbar',
-                                xns: Roo,
-                                pageSize : 25,
-                                displayInfo : true,
-                                displayMsg : "Displaying Events{0} - {1} of {2}",
-                                emptyMsg : "No Events found"
-                            },
-                            colModel : [
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'on_table',
-                                    header : 'Table',
-                                    sortable : true,
-                                    width : 200,
-                                    renderer : function(v) { 
-                                        if (!v.length) {
-                                            return "Login / Logout / Errors";
-                                        }
-                                        return String.format('{0}', v); 
-                                    }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'uqty',
-                                    header : '#Affected',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'qty',
-                                    header : 'Changes',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                }
-                            ]
-                        }
-                    },
-                    {
-                        xtype: 'GridPanel',
-                        xns: Roo,
-                        listeners : {
-                            activate : function() {
-                                _this.detailpanel = this;
-                                if (_this.detailgrid) {
-                                    _this.detailgrid.footer.onClick('first');
-                                }
-                            }
-                        },
-                        background : true,
-                        fitContainer : true,
-                        fitToframe : true,
-                        region : 'east',
-                        tableName : 'Events',
-                        title : "Detail",
-                        grid : {
-                            xtype: 'Grid',
-                            xns: Roo.grid,
-                            listeners : {
-                                render : function() 
-                                {
-                                    _this.detailgrid = this; 
-                                    //_this.dialog = Pman.Dialog.FILL_IN
-                                    if (_this.detailpanel.active) {
-                                       this.footer.onClick('first');
-                                    }
-                                }
-                            },
-                            autoExpandColumn : 'person_name',
-                            loadMask : true,
-                            dataSource : {
-                                xtype: 'Store',
-                                xns: Roo.data,
-                                listeners : {
-                                    beforeload : function (_self, o)
-                                    {
-                                         if (! _this.dategrid) {
-                                             return false;
-                                        }
-                                        
-                                        o.params = o.params || {};
-                                        
-                                        var s = _this.dategrid.selModel.getSelected();
-                                        if (!s) {
-                                            _this.detailgrid.view.el.mask("Select a person");
-                                            return false;
-                                        }
-                                        
-                                        o.params.person_id = s.data.person_id;    
-                                        
-                                        var s = _this.tablegrid.selModel.getSelected();
-                                        if (!s) {
-                                            _this.detailgrid.view.el.mask("Select a table");
-                                            return false;
-                                        }
-                                        o.params.on_table = s.data.on_table;        
-                                        
-                                        _this.detailgrid.view.el.unmask();
-                                     
-                                        var act = _this.actionSel.getValue();
-                                        if (act.length) {
-                                            o.params.action = act;
-                                        }
-                                        var tbl = _this.affectSel.getValue();
-                                        if (tbl.length) {
-                                            o.params.on_table = tbl;
-                                        }
-                                         
-                                     
-                                        act = _this.dateFrom.getValue();
-                                        if (act.format) {
-                                            o.params['query[from]'] = act.format('Y-m-d');
-                                        }
-                                        act = _this.dateTo.getValue();
-                                        if (act.format) {
-                                            o.params['query[to]'] = act.format('Y-m-d');
-                                        }
-                                    
-                                        //o.params['query[table_d]'] = 1;
-                                        //o.params._columns = 'on_table,qty,uqty';
-                                    
-                                        
-                                    }
-                                },
-                                remoteSort : true,
-                                sortInfo : { field : 'event_when', direction: 'DESC' },
-                                proxy : {
-                                    xtype: 'HttpProxy',
-                                    xns: Roo.data,
-                                    method : 'GET',
-                                    url : baseURL + '/Roo/Events.php'
-                                },
-                                reader : {
-                                    xtype: 'JsonReader',
-                                    xns: Roo.data,
-                                    totalProperty : 'total',
-                                    root : 'data',
-                                    id : 'id',
-                                    fields : [
-                                        {
-                                            'name': 'id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'event_when',
-                                            'type': 'date',
-                                            'dateFormat': 'Y-m-d'
-                                        },
-                                        {
-                                            'name': 'action',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'ipaddr',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'on_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'on_table',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_office_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_phone',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_fax',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_email',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_company_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_role',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_active',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_passwd',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_owner_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_lang',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_no_reset_sent',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_action_type',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_project_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_by',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_dt',
-                                            'type': 'date'
-                                        }
-                                    ]
-                                }
-                            },
-                            footer : {
-                                xtype: 'PagingToolbar',
-                                xns: Roo,
-                                pageSize : 25,
-                                displayInfo : true,
-                                displayMsg : "Displaying Events{0} - {1} of {2}",
-                                emptyMsg : "No Events found"
-                            },
-                            colModel : [
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'id',
-                                    header : 'Id',
-                                    width : 50,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    header : 'Event when',
-                                    width : 75,
-                                    dataIndex : 'event_when',
-                                    renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'action',
-                                    header : 'Action',
-                                    width : 50,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'ipaddr',
-                                    header : 'Ipaddr',
-                                    width : 100,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'on_id',
-                                    header : '#ID',
-                                    width : 75,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    header : 'Remarks',
-                                    width : 200,
-                                    dataIndex : 'remarks',
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                }
-                            ]
-                        }
-                    },
-                    {
-                        xtype: 'GridPanel',
-                        xns: Roo,
-                        listeners : {
-                            activate : function() {
-                                _this.daypanel = this;
-                                if (_this.daygrid) {
-                                    _this.daygrid.footer.onClick('first');
-                                }
-                            }
-                        },
-                        background : true,
-                        fitContainer : true,
-                        fitToframe : true,
-                        region : 'east',
-                        tableName : 'Events',
-                        title : "Daily summary",
-                        grid : {
-                            xtype: 'Grid',
-                            xns: Roo.grid,
-                            listeners : {
-                                render : function() 
-                                {
-                                    _this.daygrid = this; 
-                                    //_this.dialog = Pman.Dialog.FILL_IN
-                                    if (_this.daypanel.active) {
-                                       this.footer.onClick('first');
-                                    }
-                                }
-                            },
-                            autoExpandColumn : 'person_name',
-                            loadMask : true,
-                            dataSource : {
-                                xtype: 'Store',
-                                xns: Roo.data,
-                                listeners : {
-                                    beforeload : function (_self, o)
-                                    {
-                                         if (! _this.dategrid) {
-                                             return false;
-                                        }
-                                        
-                                        o.params = o.params || {};
-                                        
-                                        var s = _this.dategrid.selModel.getSelected();
-                                        if (!s) {
-                                            _this.detailgrid.view.el.mask("Select a person");
-                                            return false;
-                                        }
-                                        
-                                        o.params.person_id = s.data.person_id;    
-                                        
-                                        var s = _this.tablegrid.selModel.getSelected();
-                                        if (!s) {
-                                            _this.detailgrid.view.el.mask("Select a table");
-                                            return false;
-                                        }
-                                        o.params.on_table = s.data.on_table;        
-                                        
-                                        _this.detailgrid.view.el.unmask();
-                                     
-                                        var act = _this.actionSel.getValue();
-                                        if (act.length) {
-                                            o.params.action = act;
-                                        }
-                                        var tbl = _this.affectSel.getValue();
-                                        if (tbl.length) {
-                                            o.params.on_table = tbl;
-                                        }
-                                         
-                                     
-                                        act = _this.dateFrom.getValue();
-                                        if (act.format) {
-                                            o.params['query[from]'] = act.format('Y-m-d');
-                                        }
-                                        act = _this.dateTo.getValue();
-                                        if (act.format) {
-                                            o.params['query[to]'] = act.format('Y-m-d');
-                                        }
-                                    
-                                        o.params['query[day_sum]'] = 1;
-                                        o.params._columns = 'on_day,qty,uqty';
-                                    
-                                        
-                                    }
-                                },
-                                remoteSort : true,
-                                sortInfo : { field : 'on_day', direction: 'ASC' },
-                                proxy : {
-                                    xtype: 'HttpProxy',
-                                    xns: Roo.data,
-                                    method : 'GET',
-                                    url : baseURL + '/Roo/Events.php'
-                                },
-                                reader : {
-                                    xtype: 'JsonReader',
-                                    xns: Roo.data,
-                                    totalProperty : 'total',
-                                    root : 'data',
-                                    id : 'id',
-                                    fields : [
-                                        {
-                                            'name': 'id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'event_when',
-                                            'type': 'date',
-                                            'dateFormat': 'Y-m-d'
-                                        },
-                                        {
-                                            'name': 'action',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'ipaddr',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'on_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'on_table',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_office_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_name',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_phone',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_fax',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_email',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_company_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_role',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_active',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_remarks',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_passwd',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_owner_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_lang',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_no_reset_sent',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_action_type',
-                                            'type': 'string'
-                                        },
-                                        {
-                                            'name': 'person_id_project_id',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_by',
-                                            'type': 'int'
-                                        },
-                                        {
-                                            'name': 'person_id_deleted_dt',
-                                            'type': 'date'
-                                        }
-                                    ]
-                                }
-                            },
-                            footer : {
-                                xtype: 'PagingToolbar',
-                                xns: Roo,
-                                pageSize : 25,
-                                displayInfo : true,
-                                displayMsg : "Displaying Events{0} - {1} of {2}",
-                                emptyMsg : "No Events found"
-                            },
-                            colModel : [
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'on_day',
-                                    header : 'Event when',
-                                    sortable : true,
-                                    width : 75,
-                                    renderer : function(v) { return String.format('{0}', v  ); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'uqty',
-                                    header : '#Affected',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                },
-                                {
-                                    xtype: 'ColumnModel',
-                                    xns: Roo.grid,
-                                    dataIndex : 'qty',
-                                    header : 'Changes',
-                                    sortable : true,
-                                    width : 70,
-                                    renderer : function(v) { return String.format('{0}', v); }
-                                }
-                            ]
-                        }
-                    }
-                ],
-                west : {
-                    xtype: 'LayoutRegion',
-                    xns: Roo,
-                    split : true,
-                    width : 300
-                },
-                center : {
-                    xtype: 'LayoutRegion',
-                    xns: Roo
-                },
-                east : {
-                    xtype: 'LayoutRegion',
-                    xns: Roo,
-                    split : true,
-                    tabPosition : 'top',
-                    width : 600
-                }
+            {
+                'name': 'person_name',
+                'type': 'string'
+            },
+            {
+                'name': 'event_when',
+                'type': 'date',
+                'dateFormat': 'Y-m-d'
+            },
+            {
+                'name': 'action',
+                'type': 'string'
+            },
+            {
+                'name': 'ipaddr',
+                'type': 'string'
+            },
+            {
+                'name': 'on_id',
+                'type': 'int'
+            },
+            {
+                'name': 'on_table',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id',
+                'type': 'int'
+            },
+            {
+                'name': 'remarks',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_office_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_name',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_phone',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_fax',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_email',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_company_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_role',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_active',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_remarks',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_passwd',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_owner_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_lang',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_no_reset_sent',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_action_type',
+                'type': 'string'
+            },
+            {
+                'name': 'person_id_project_id',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_deleted_by',
+                'type': 'int'
+            },
+            {
+                'name': 'person_id_deleted_dt',
+                'type': 'date'
+            }
+        ],
+        id : 'id',
+        root : 'data',
+        totalProperty : 'total',
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       }
+      }
+     }
+    ]
+   },
+   layout : {
+    xtype : 'BorderLayout',
+    xns : Roo,
+    '|xns' : 'Roo',
+    center : {
+     xtype : 'LayoutRegion',
+     xns : Roo,
+     '|xns' : 'Roo'
+    },
+    east : {
+     xtype : 'LayoutRegion',
+     split : true,
+     tabPosition : 'top',
+     width : 600,
+     xns : Roo,
+     '|xns' : 'Roo'
+    },
+    west : {
+     xtype : 'LayoutRegion',
+     split : true,
+     width : 300,
+     xns : Roo,
+     '|xns' : 'Roo'
+    },
+    items  : [
+     {
+      xtype : 'GridPanel',
+      background : false,
+      fitContainer : true,
+      fitToframe : true,
+      region : 'west',
+      tableName : 'Events',
+      title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'] /* Events */,
+      listeners : {
+       activate : function() {
+            _this.datepanel = this;
+            if (_this.dategrid) {
+                _this.dategrid.ds.load({});
+            }
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo',
+      grid : {
+       xtype : 'Grid',
+       autoExpandColumn : 'person_name',
+       loadMask : true,
+       listeners : {
+        render : function() 
+         {
+             _this.dategrid = this; 
+             //_this.dialog = Pman.Dialog.FILL_IN
+             if (_this.panel.active) {
+                this.ds.load({});
+             }
+         },
+        rowclick : function (_self, rowIndex, e)
+         {
+             _this.tablegrid.footer.onClick('first');
+         }
+       },
+       xns : Roo.grid,
+       '|xns' : 'Roo.grid',
+       dataSource : {
+        xtype : 'Store',
+        remoteSort : true,
+        sortInfo : { field : 'person_id_name', direction: 'ASC' },
+        listeners : {
+         beforeload : function (_self, o)
+          {
+              
+              
+              if (! _this.dateFrom) {
+                  return;
+              }
+          
+               try {
+                   _this.tablegrid.ds.removeAll();
+                   _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();
+                   
+              } catch (e) {
+                  // do nothing..
+              }
+              o.params = o.params || {};
+               
+              var act = _this.actionSel ? _this.actionSel.getValue() : '';
+              if (act.length) {
+                  o.params.action = act;
+              }
+              var tbl = _this.affectSel ? _this.affectSel.getValue() : '';
+              if (tbl.length) {
+                  o.params.on_table = tbl;
+              }
+              act = _this.dateFrom.getValue();
+              if (act.format) {
+                  o.params['query[from]'] = act.format('Y-m-d');
+              }
+              act = _this.dateTo.getValue();
+              if (act.format) {
+                  o.params['query[to]'] = act.format('Y-m-d');
+              }
+              
+              
+              
+              o.params['query[person_sum]'] = 1;
+              o.params._columns = 'person_id,person_id_name,person_id_email,qty,uqty';
+              o.params.limit = 999;
+           
+          }
+        },
+        xns : Roo.data,
+        '|xns' : 'Roo.data',
+        proxy : {
+         xtype : 'HttpProxy',
+         method : 'GET',
+         url : baseURL + '/Roo/Events.php',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        },
+        reader : {
+         xtype : 'JsonReader',
+         fields : [
+             {
+                 'name': 'id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'event_when',
+                 'type': 'date',
+                 'dateFormat': 'Y-m-d'
+             },
+             {
+                 'name': 'action',
+                 'type': 'string'
+             },
+             {
+                 'name': 'ipaddr',
+                 'type': 'string'
+             },
+             {
+                 'name': 'on_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'on_table',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_office_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_phone',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_fax',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_email',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_company_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_role',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_active',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_passwd',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_owner_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_lang',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_no_reset_sent',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_action_type',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_project_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_by',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_dt',
+                 'type': 'date'
+             }
+         ],
+         id : 'id',
+         root : 'data',
+         totalProperty : 'total',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        }
+       },
+       colModel : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'person_id_name',
+         header : _this._strings['d9578744f1d4b13d40a51fbb8b9d6ea5'] /* Person name */,
+         renderer : function(v,x,r) {
+              return String.format('{0} &lt;<a href="mailto:{1}">{1}</a>&gt;', v, r.data.person_id_email); 
+          },
+         sortable : true,
+         width : 200,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'uqty',
+         header : _this._strings['b5fe0746885b906c8ed9b7cc06023c35'] /* #Affected */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'qty',
+         header : _this._strings['c112bb3542e98308d12d5ecb10a67abc'] /* Changes */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     },
+     {
+      xtype : 'GridPanel',
+      background : false,
+      fitContainer : true,
+      fitToframe : true,
+      region : 'center',
+      tableName : 'Events',
+      title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'] /* Events */,
+      listeners : {
+       activate : function() {
+            _this.tablepanel = this;
+            if (_this.tablegrid) {
+                _this.tablegrid.footer.onClick('first');
+            }
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo',
+      grid : {
+       xtype : 'Grid',
+       autoExpandColumn : 'person_name',
+       loadMask : true,
+       listeners : {
+        render : function() 
+         {
+             _this.tablegrid = this; 
+             //_this.dialog = Pman.Dialog.FILL_IN
+             if (_this.tablepanel.active) {
+                this.footer.onClick('first');
+             }
+         },
+        rowclick : function (_self, rowIndex, e)
+         {
+          
+             _this.panel.layout.getRegion('east').getActivePanel().grid.footer.onClick('first');
+         }
+       },
+       xns : Roo.grid,
+       '|xns' : 'Roo.grid',
+       footer : {
+        xtype : 'PagingToolbar',
+        displayInfo : true,
+        displayMsg : _this._strings['7205d42d6d975c911bc1147259d78935'] /* Displaying Events{0} - {1} of {2} */,
+        emptyMsg : _this._strings['90e4ac2e5a22e53df63b6b186d8727ba'] /* No Events found */,
+        pageSize : 25,
+        xns : Roo,
+        '|xns' : 'Roo'
+       },
+       dataSource : {
+        xtype : 'Store',
+        remoteSort : true,
+        sortInfo : { field : 'on_table', direction: 'ASC' },
+        listeners : {
+         beforeload : function (_self, o)
+          {
+               if (! _this.dategrid) {
+               return;
+              }
+              try {
+                   _this.panel.layout.getRegion('east').getActivePanel().grid.ds.removeAll();
+                   
+              } catch (e) {
+                  // do nothing..
+              }
+              
+              var s = _this.dategrid.selModel.getSelected();
+              if (!s) {
+                  _this.tablegrid.view.el.mask("Select a person");
+                  return false;
+              }
+              _this.tablegrid.view.el.unmask();
+           
+              o.params = o.params || {};
+              var act = _this.actionSel.getValue();
+              if (act.length) {
+                  o.params.action = act;
+              }
+              var tbl = _this.affectSel.getValue();
+              if (tbl.length) {
+                  o.params.on_table = tbl;
+              }
+           
+              act = _this.dateFrom.getValue();
+              if (act.format) {
+                  o.params['query[from]'] = act.format('Y-m-d');
+              }
+              act = _this.dateTo.getValue();
+              if (act.format) {
+                  o.params['query[to]'] = act.format('Y-m-d');
+              }
+              o.params.person_id = s.data.person_id;
+              o.params['query[table_sum]'] = 1;
+              o.params._columns = 'on_table,qty,uqty';
+          
+              
+          }
+        },
+        xns : Roo.data,
+        '|xns' : 'Roo.data',
+        proxy : {
+         xtype : 'HttpProxy',
+         method : 'GET',
+         url : baseURL + '/Roo/Events.php',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        },
+        reader : {
+         xtype : 'JsonReader',
+         fields : [
+             {
+                 'name': 'id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'event_when',
+                 'type': 'date',
+                 'dateFormat': 'Y-m-d'
+             },
+             {
+                 'name': 'action',
+                 'type': 'string'
+             },
+             {
+                 'name': 'ipaddr',
+                 'type': 'string'
+             },
+             {
+                 'name': 'on_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'on_table',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_office_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_phone',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_fax',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_email',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_company_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_role',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_active',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_passwd',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_owner_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_lang',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_no_reset_sent',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_action_type',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_project_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_by',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_dt',
+                 'type': 'date'
+             }
+         ],
+         id : 'id',
+         root : 'data',
+         totalProperty : 'total',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        }
+       },
+       colModel : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'on_table',
+         header : _this._strings['51c45b795d5d18a3e4e0c37e8b20a141'] /* Table */,
+         renderer : function(v) { 
+             if (!v.length) {
+                 return "Login / Logout / Errors";
+             }
+             return String.format('{0}', v); 
+         },
+         sortable : true,
+         width : 200,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'uqty',
+         header : _this._strings['b5fe0746885b906c8ed9b7cc06023c35'] /* #Affected */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'qty',
+         header : _this._strings['c112bb3542e98308d12d5ecb10a67abc'] /* Changes */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     },
+     {
+      xtype : 'GridPanel',
+      background : true,
+      fitContainer : true,
+      fitToframe : true,
+      region : 'east',
+      tableName : 'Events',
+      title : _this._strings['a254c25adc7d10d7e9c4889484f875a5'] /* Detail */,
+      listeners : {
+       activate : function() {
+            _this.detailpanel = this;
+            if (_this.detailgrid) {
+                _this.detailgrid.footer.onClick('first');
+            }
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo',
+      grid : {
+       xtype : 'Grid',
+       autoExpandColumn : 'person_name',
+       loadMask : true,
+       listeners : {
+        render : function() 
+         {
+             _this.detailgrid = this; 
+             //_this.dialog = Pman.Dialog.FILL_IN
+             if (_this.detailpanel.active) {
+                this.footer.onClick('first');
+             }
+         }
+       },
+       xns : Roo.grid,
+       '|xns' : 'Roo.grid',
+       footer : {
+        xtype : 'PagingToolbar',
+        displayInfo : true,
+        displayMsg : _this._strings['7205d42d6d975c911bc1147259d78935'] /* Displaying Events{0} - {1} of {2} */,
+        emptyMsg : _this._strings['90e4ac2e5a22e53df63b6b186d8727ba'] /* No Events found */,
+        pageSize : 25,
+        xns : Roo,
+        '|xns' : 'Roo'
+       },
+       dataSource : {
+        xtype : 'Store',
+        remoteSort : true,
+        sortInfo : { field : 'event_when', direction: 'DESC' },
+        listeners : {
+         beforeload : function (_self, o)
+          {
+               if (! _this.dategrid) {
+                   return false;
+              }
+              
+              o.params = o.params || {};
+              
+              var s = _this.dategrid.selModel.getSelected();
+              if (!s) {
+                  _this.detailgrid.view.el.mask("Select a person");
+                  return false;
+              }
+              
+              o.params.person_id = s.data.person_id;    
+              
+              var s = _this.tablegrid.selModel.getSelected();
+              if (!s) {
+                  _this.detailgrid.view.el.mask("Select a table");
+                  return false;
+              }
+              o.params.on_table = s.data.on_table;        
+              
+              _this.detailgrid.view.el.unmask();
+           
+              var act = _this.actionSel.getValue();
+              if (act.length) {
+                  o.params.action = act;
+              }
+              var tbl = _this.affectSel.getValue();
+              if (tbl.length) {
+                  o.params.on_table = tbl;
+              }
+               
+           
+              act = _this.dateFrom.getValue();
+              if (act.format) {
+                  o.params['query[from]'] = act.format('Y-m-d');
+              }
+              act = _this.dateTo.getValue();
+              if (act.format) {
+                  o.params['query[to]'] = act.format('Y-m-d');
+              }
+          
+              //o.params['query[table_d]'] = 1;
+              //o.params._columns = 'on_table,qty,uqty';
+          
+              
+          }
+        },
+        xns : Roo.data,
+        '|xns' : 'Roo.data',
+        proxy : {
+         xtype : 'HttpProxy',
+         method : 'GET',
+         url : baseURL + '/Roo/Events.php',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        },
+        reader : {
+         xtype : 'JsonReader',
+         fields : [
+             {
+                 'name': 'id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'event_when',
+                 'type': 'date',
+                 'dateFormat': 'Y-m-d'
+             },
+             {
+                 'name': 'action',
+                 'type': 'string'
+             },
+             {
+                 'name': 'ipaddr',
+                 'type': 'string'
+             },
+             {
+                 'name': 'on_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'on_table',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_office_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_phone',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_fax',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_email',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_company_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_role',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_active',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_passwd',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_owner_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_lang',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_no_reset_sent',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_action_type',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_project_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_by',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_dt',
+                 'type': 'date'
+             }
+         ],
+         id : 'id',
+         root : 'data',
+         totalProperty : 'total',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        }
+       },
+       colModel : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'id',
+         header : _this._strings['490aa6e856ccf208a054389e47ce0d06'] /* Id */,
+         renderer : function(v) { return String.format('{0}', v); },
+         width : 50,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'event_when',
+         header : _this._strings['6be4aa550791c310e098cd6c234af7d8'] /* Event when */,
+         renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); },
+         width : 75,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'action',
+         header : _this._strings['004bf6c9a40003140292e97330236c53'] /* Action */,
+         renderer : function(v) { return String.format('{0}', v); },
+         width : 50,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'ipaddr',
+         header : _this._strings['7a11042f53957727d8667732d7de1102'] /* Ipaddr */,
+         renderer : function(v) { return String.format('{0}', v); },
+         width : 100,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'on_id',
+         header : _this._strings['739cea2b85156183f917f2ccaa10a50c'] /* #ID */,
+         renderer : function(v) { return String.format('{0}', v); },
+         width : 75,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'remarks',
+         header : _this._strings['231bc72756b5e6de492aaaa1577f61b1'] /* Remarks */,
+         renderer : function(v) { return String.format('{0}', v); },
+         width : 200,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     },
+     {
+      xtype : 'GridPanel',
+      background : true,
+      fitContainer : true,
+      fitToframe : true,
+      region : 'east',
+      tableName : 'Events',
+      title : _this._strings['f971b3a2cc583b475332380649a4fa05'] /* Daily summary */,
+      listeners : {
+       activate : function() {
+            _this.daypanel = this;
+            if (_this.daygrid) {
+                _this.daygrid.footer.onClick('first');
             }
-        };
-    }
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo',
+      grid : {
+       xtype : 'Grid',
+       autoExpandColumn : 'person_name',
+       loadMask : true,
+       listeners : {
+        render : function() 
+         {
+             _this.daygrid = this; 
+             //_this.dialog = Pman.Dialog.FILL_IN
+             if (_this.daypanel.active) {
+                this.footer.onClick('first');
+             }
+         }
+       },
+       xns : Roo.grid,
+       '|xns' : 'Roo.grid',
+       footer : {
+        xtype : 'PagingToolbar',
+        displayInfo : true,
+        displayMsg : _this._strings['7205d42d6d975c911bc1147259d78935'] /* Displaying Events{0} - {1} of {2} */,
+        emptyMsg : _this._strings['90e4ac2e5a22e53df63b6b186d8727ba'] /* No Events found */,
+        pageSize : 25,
+        xns : Roo,
+        '|xns' : 'Roo'
+       },
+       dataSource : {
+        xtype : 'Store',
+        remoteSort : true,
+        sortInfo : { field : 'on_day', direction: 'ASC' },
+        listeners : {
+         beforeload : function (_self, o)
+          {
+               if (! _this.dategrid) {
+                   return false;
+              }
+              
+              o.params = o.params || {};
+              
+              var s = _this.dategrid.selModel.getSelected();
+              if (!s) {
+                  _this.detailgrid.view.el.mask("Select a person");
+                  return false;
+              }
+              
+              o.params.person_id = s.data.person_id;    
+              
+              var s = _this.tablegrid.selModel.getSelected();
+              if (!s) {
+                  _this.detailgrid.view.el.mask("Select a table");
+                  return false;
+              }
+              o.params.on_table = s.data.on_table;        
+              
+              _this.detailgrid.view.el.unmask();
+           
+              var act = _this.actionSel.getValue();
+              if (act.length) {
+                  o.params.action = act;
+              }
+              var tbl = _this.affectSel.getValue();
+              if (tbl.length) {
+                  o.params.on_table = tbl;
+              }
+               
+           
+              act = _this.dateFrom.getValue();
+              if (act.format) {
+                  o.params['query[from]'] = act.format('Y-m-d');
+              }
+              act = _this.dateTo.getValue();
+              if (act.format) {
+                  o.params['query[to]'] = act.format('Y-m-d');
+              }
+          
+              o.params['query[day_sum]'] = 1;
+              o.params._columns = 'on_day,qty,uqty';
+          
+              
+          }
+        },
+        xns : Roo.data,
+        '|xns' : 'Roo.data',
+        proxy : {
+         xtype : 'HttpProxy',
+         method : 'GET',
+         url : baseURL + '/Roo/Events.php',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        },
+        reader : {
+         xtype : 'JsonReader',
+         fields : [
+             {
+                 'name': 'id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'event_when',
+                 'type': 'date',
+                 'dateFormat': 'Y-m-d'
+             },
+             {
+                 'name': 'action',
+                 'type': 'string'
+             },
+             {
+                 'name': 'ipaddr',
+                 'type': 'string'
+             },
+             {
+                 'name': 'on_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'on_table',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_office_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_name',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_phone',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_fax',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_email',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_company_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_role',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_active',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_remarks',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_passwd',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_owner_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_lang',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_no_reset_sent',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_action_type',
+                 'type': 'string'
+             },
+             {
+                 'name': 'person_id_project_id',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_by',
+                 'type': 'int'
+             },
+             {
+                 'name': 'person_id_deleted_dt',
+                 'type': 'date'
+             }
+         ],
+         id : 'id',
+         root : 'data',
+         totalProperty : 'total',
+         xns : Roo.data,
+         '|xns' : 'Roo.data'
+        }
+       },
+       colModel : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'on_day',
+         header : _this._strings['6be4aa550791c310e098cd6c234af7d8'] /* Event when */,
+         renderer : function(v) { return String.format('{0}', v  ); },
+         sortable : true,
+         width : 75,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'uqty',
+         header : _this._strings['b5fe0746885b906c8ed9b7cc06023c35'] /* #Affected */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'qty',
+         header : _this._strings['c112bb3542e98308d12d5ecb10a67abc'] /* Changes */,
+         renderer : function(v) { return String.format('{0}', v); },
+         sortable : true,
+         width : 70,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     }
+    ]
+   }
+  };  }
 });