X-Git-Url: http://git.roojs.org/?p=Pman.Admin;a=blobdiff_plain;f=Pman.Tab.AdminLogEvents.js;h=41b7847d3f855c0e8796e9db9fccb9927468f678;hp=47d4d70da49875e1dd3a5b419c4612852c3bb632;hb=HEAD;hpb=3dfbac52f290c274c620351ccaffd326be160000 diff --git a/Pman.Tab.AdminLogEvents.js b/Pman.Tab.AdminLogEvents.js index 47d4d70..41b7847 100644 --- a/Pman.Tab.AdminLogEvents.js +++ b/Pman.Tab.AdminLogEvents.js @@ -7,6 +7,7 @@ Roo.namespace('Pman.Tab'); Pman.Tab.AdminLogEvents = new Roo.XComponent({ _strings : { + 'e4ef97f584a9c8d2d686f84569307575' :"Download to Excel (with extra descriptions)", '231bc72756b5e6de492aaaa1577f61b1' :"Remarks", '2ea72778ebaacc973260c88837dd7a2f' :"Displaying Events {0} - {1} of {2}", '87f9f735a1d36793ceaecd4e47124b63' :"Events", @@ -16,16 +17,33 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ '01bd6a16732dfa2b760dc8566c58afae' :"Download to Excel", '498f79c4c5bbde77f1bceb6c86fd0f6d' :"Show", '037fd50b0e85bb65995ca7125d06c7cd' :"Select Person Table", - 'fd7535ce3979bb8547e2c01689db0767' :"Select Person ", + '40bed7cf9b3d4bb3a3d7a7e3eb18c5eb' :"Person ", + '340c2ee497b85d5954b01c64de7f44f6' :"Select Person ", '679308a758de538c5f39c4c6cdba6593' :"Select Affects", 'a8929eb5c1553d3f70497f862d25d0ce' :"Select Action", '39b9e051f9fe75e65c7a330bb00499d4' :"Date Range", '4e97aeeaa8b15ca1180fcd1f3ac478d1' :"When", '40bed7cf9b3d4bb3a3d7a7e3eb18c5eb' :"Person", '004bf6c9a40003140292e97330236c53' :"Action", + '2bd339d85ee3b33e513359ce781b60cc' :"Restore", '90e4ac2e5a22e53df63b6b186d8727ba' :"No Events found", '2c92a9a6a5dbf570825e62eabcdecd8d' :"Affected" }, + _named_strings : { + 'person_table_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ , + 'person_id_name_qtip' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ , + 'person_table_qtip' : '037fd50b0e85bb65995ca7125d06c7cd' /* Select Person Table */ , + 'person_table_emptyText' : '037fd50b0e85bb65995ca7125d06c7cd' /* Select Person Table */ , + 'person_id_name_emptyText' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ , + 'person_id_name_fieldLabel' : '40bed7cf9b3d4bb3a3d7a7e3eb18c5eb' /* Person */ , + 'on_table_qtip' : 'a8929eb5c1553d3f70497f862d25d0ce' /* Select Action */ , + 'on_table_emptyText' : '679308a758de538c5f39c4c6cdba6593' /* Select Affects */ , + 'action_emptyText' : 'a8929eb5c1553d3f70497f862d25d0ce' /* Select Action */ , + 'action_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ , + 'action_qtip' : 'a8929eb5c1553d3f70497f862d25d0ce' /* Select Action */ , + 'on_table_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ , + 'person_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ + }, part : ["Admin", "LogEvents" ], order : '001-Pman.Tab.AdminLogEvents', @@ -34,266 +52,93 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ name : "Admin - Logs - Events", disabled : false, permname : 'Admin.Logs', - _tree : function() + _tree : function(_data) { var _this = this; var MODULE = this; return { + xtype : 'NestedLayoutPanel', + region : 'center', + title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'] /* Events */, + xns : Roo, + '|xns' : 'Roo', layout : { + xtype : 'BorderLayout', + xns : Roo, + '|xns' : 'Roo', center : { - '|xns' : 'Roo', + xtype : 'LayoutRegion', xns : Roo, - xtype : 'LayoutRegion' + '|xns' : 'Roo' }, south : { - '|xns' : 'Roo', + xtype : 'LayoutRegion', autoScroll : true, height : 150, split : true, xns : Roo, - xtype : 'LayoutRegion' + '|xns' : 'Roo' }, - '|xns' : 'Roo', - xns : Roo, - xtype : 'BorderLayout', - items : [ + items : [ { - '|xns' : 'Roo', + xtype : 'ContentPanel', fitToFrame : true, region : 'south', - xns : Roo, - xtype : 'ContentPanel', listeners : { render : function (_self) { _this.viewPanel = _self; } - } + }, + xns : Roo, + '|xns' : 'Roo' }, { - grid : { - sm : { - '|xns' : 'Roo.grid', - singleSelect : true, - xns : Roo.grid, - xtype : 'RowSelectionModel', - listeners : { - afterselectionchange : function (_self) - { - // load detail log in _this.viewPanel; - if (!this.getSelected()) { - this.viewPanel.setContent("Nothing Selected"); - return; - } - var id = this.getSelected().data.id; - _this.viewPanel.load( { url : baseURL + "/Admin/EventView/" + id + ".html" }); - - } + xtype : 'GridPanel', + background : false, + fitContainer : true, + fitToframe : true, + region : 'center', + tableName : 'Events', + title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'] /* Events */, + listeners : { + activate : function() { + _this.panel = this; + if (_this.grid) { + _this.grid.footer.onClick('first'); + } } - }, - dataSource : { - reader : { - '|xns' : 'Roo.data', - 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' + }, + xns : Roo, + '|xns' : 'Roo', + grid : { + xtype : 'Grid', + autoExpandColumn : 'remarks', + loadMask : true, + listeners : { + render : function () + { + _this.grid = this; + //_this.dialog = Pman.Dialog.FILL_IN + if (_this.panel.active) { + this.footer.onClick('first'); } - ], - id : 'id', - root : 'data', - totalProperty : 'total', - xns : Roo.data, - xtype : 'JsonReader' - }, - proxy : { - '|xns' : 'Roo.data', - method : 'GET', - url : baseURL + '/Roo/Events.php', - xns : Roo.data, - xtype : 'HttpProxy' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { field: 'event_when', direction: 'DESC'}, - xns : Roo.data, - xtype : 'Store', - listeners : { - beforeload : function (_self, o) - { - if (!Pman.buildCompleted) { - return false; - } - - - if (! _this.personSel) { - return false; - } - o.params = o.params || {}; - o.params.person_id = _this.personSel.getValue(); - o.params.person_table = _this.tableSel.getValue(); - 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'); - } - - - /* - act = _this.groupedCombo.getValue(); - o.params['query[grouped]'] = act; - if (o.params['query[grouped]'] == 'gr') { - - if (!tbl.length) { - Roo.MessageBox.alert("Error", "Select a table to group results on"); - return false; - } - // o.params['_columns'] = - o.params['_distinct'] = 'on_id'; - - - } - - */ - - - } - }, - items : [ - - ] - + } }, + xns : Roo.grid, + '|xns' : 'Roo.grid', footer : { - '|xns' : 'Roo', + xtype : 'PagingToolbar', displayInfo : true, - displayMsg : _this._strings['2ea72778ebaacc973260c88837dd7a2f'], - emptyMsg : _this._strings['90e4ac2e5a22e53df63b6b186d8727ba'], + displayMsg : _this._strings['2ea72778ebaacc973260c88837dd7a2f'] /* Displaying Events {0} - {1} of {2} */, + emptyMsg : _this._strings['90e4ac2e5a22e53df63b6b186d8727ba'] /* No Events found */, pageSize : 25, xns : Roo, - xtype : 'PagingToolbar', - items : [ + '|xns' : 'Roo', + items : [ { - '|xns' : 'Roo.Toolbar', - text : _this._strings['01bd6a16732dfa2b760dc8566c58afae'], - xns : Roo.Toolbar, xtype : 'Button', + text : _this._strings['01bd6a16732dfa2b760dc8566c58afae'] /* Download to Excel */, listeners : { click : function (_self, e) { @@ -310,7 +155,7 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ 'csvTitles[3]' : 'Record ID', 'csvCols[3]' : 'on_id' , 'csvTitles[4]' : 'Record Type', 'csvCols[4]' : 'on_table', 'csvTitles[5]' : 'Remarks', 'csvCols[5]' : 'remarks' - } + }; params.person_id = _this.personSel.getValue(); var act = _this.actionSel.getValue(); @@ -339,61 +184,134 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ }); } - } - } - ] - + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Button', + text : _this._strings['e4ef97f584a9c8d2d686f84569307575'] /* Download to Excel (with extra descriptions) */, + listeners : { + click : function (_self, e) + { + + var params = { + 'sort' : 'event_when', + 'dir' : 'DESC', + 'start' : 0, + 'limit' : 900, + person_id : _this.personSel.getValue(), + 'csvTitles[0]' : 'ID#', 'csvCols[0]' : 'id', + 'csvTitles[1]' : 'When', 'csvCols[1]' : 'event_when', + 'csvTitles[2]' : 'Staff', 'csvCols[2]' : 'person_id_name', + 'csvTitles[3]' : 'Action', 'csvCols[3]' : 'action', + 'csvTitles[4]' : 'Record ID', 'csvCols[4]' : 'on_id' , + 'csvTitles[5]' : 'Record Type', 'csvCols[5]' : 'on_table', + 'csvTitles[6]' : 'Remarks', 'csvCols[6]' : 'remarks' + }; + params._with_obj_summary = 1; + params.person_id = _this.personSel.getValue(); + var act = _this.actionSel.getValue(); + if (act.length) { + params.action = act; + } + var tbl = _this.affectSel.getValue(); + if (tbl.length) { + params.on_table = tbl; + } + act = _this.dateFrom.getValue(); + if (act.format) { + params['query[from]'] = act.format('Y-m-d'); + } + act = _this.dateTo.getValue(); + if (act.format) { + params['query[to]'] = act.format('Y-m-d'); + } + params.limit = 9999; + + + new Pman.download({ + url : baseURL + '/Roo/Events.php', + params : params , + newWindow: true + + }); + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Separator', + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Button', + cls : 'x-btn-text-icon', + icon : Roo.rootURL + 'images/default/tree/leaf.gif', + text : _this._strings['2bd339d85ee3b33e513359ce781b60cc'] /* Restore */, + listeners : { + click : function() + { + var s = _this.grid.getSelectionModel().getSelected(); + + if(!s || s.data.id * 1 < 1 || s.data.action != 'DELETE'){ + Roo.MessageBox.alert('Error', 'Please select a deleted person'); + return; + } + + new Pman.Request({ + url: baseURL + '/Roo/Events', + method : 'POST', + mask : 'Sending...', + params : { + id : s.data.id, + _restore : 1 + }, + success : function(ret) { + _this.grid.footer.onClick('refresh'); + Roo.MessageBox.alert('Notice', 'Restored person successfully'); + } + }); + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + } + ] }, toolbar : { - '|xns' : 'Roo', - xns : Roo, xtype : 'Toolbar', - items : [ + xns : Roo, + '|xns' : 'Roo', + items : [ { - '|xns' : 'Roo.Toolbar', - text : _this._strings['498f79c4c5bbde77f1bceb6c86fd0f6d'], + xtype : 'TextItem', + text : _this._strings['498f79c4c5bbde77f1bceb6c86fd0f6d'] /* Show */, xns : Roo.Toolbar, - xtype : 'TextItem' + '|xns' : 'Roo.Toolbar' }, { - store : { - '|xns' : 'Roo.data', - data : (function() { - - if(typeof(uiConfig) == 'undefined' || typeof(uiConfig.events_person_table) == 'undefined' || !uiConfig.events_person_table.length){ - - return []; - } - - return uiConfig.events_person_table; - - })(), - fields : [ 'value' ], - isLocal : true, - xns : Roo.data, - xtype : 'SimpleStore' - }, - '|xns' : 'Roo.form', + xtype : 'ComboBox', allowBlank : true, alwaysQuery : true, displayField : 'value', editable : false, - emptyText : _this._strings['037fd50b0e85bb65995ca7125d06c7cd'], + emptyText : _this._strings['037fd50b0e85bb65995ca7125d06c7cd'] /* Select Person Table */, forceSelection : true, listWidth : 300, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, minChars : 2, name : 'person_table', pageSize : 20, - qtip : _this._strings['037fd50b0e85bb65995ca7125d06c7cd'], + qtip : _this._strings['037fd50b0e85bb65995ca7125d06c7cd'] /* Select Person Table */, selectOnFocus : true, tpl : '
{value}
', triggerAction : 'all', typeAhead : true, valueField : 'value', width : 150, - xns : Roo.form, - xtype : 'ComboBox', listeners : { render : function (_self) { @@ -413,22 +331,83 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ _this.grid.footer.onClick('first'); } }, - items : [ - - ] - + xns : Roo.form, + '|xns' : 'Roo.form', + store : { + xtype : 'SimpleStore', + data : (function() { + + if(typeof(uiConfig) == 'undefined' || typeof(uiConfig.events_person_table) == 'undefined' || !uiConfig.events_person_table.length){ + + return []; + } + + return uiConfig.events_person_table; + + })(), + fields : [ 'value' ], + isLocal : true, + xns : Roo.data, + '|xns' : 'Roo.data' + } }, { + xtype : 'ComboBox', + allowBlank : true, + displayField : 'name', + editable : true, + emptyText : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */, + fieldLabel : _this._strings['40bed7cf9b3d4bb3a3d7a7e3eb18c5eb'] /* Person */, + forceSelection : true, + listWidth : 600, + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, + minChars : 2, + name : 'person_id_name', + pageSize : 20, + qtip : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */, + queryParam : 'query[name]', + selectOnFocus : true, + tpl : '
{name} ({company_id_name}) <{email}>
', + triggerAction : 'all', + typeAhead : true, + valueField : 'id', + width : 150, + listeners : { + render : function (_self) + { + _this.personSel = _self; + }, + select : function (combo, record, index) + { + _this.grid.footer.onClick('first'); + + } + }, + xns : Roo.form, + '|xns' : 'Roo.form', store : { + xtype : 'Store', + remoteSort : true, + sortInfo : { field : 'name' , direction : 'ASC' }, + listeners : { + beforeload : function (_self, o) + { + o.params = o.params || {}; + // this will show everyone... - for MO - that means they can see users. + //o.params.company_id = Pman.Login.authUser.company_id; + } + }, + xns : Roo.data, + '|xns' : 'Roo.data', proxy : { - '|xns' : 'Roo.data', + xtype : 'HttpProxy', method : 'GET', - url : baseURL + '/Roo/Person.php', + url : baseURL + '/Roo/core_person', xns : Roo.data, - xtype : 'HttpProxy' + '|xns' : 'Roo.data' }, reader : { - '|xns' : 'Roo.data', + xtype : 'JsonReader', fields : [ { 'name': 'id', @@ -768,74 +747,69 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ root : 'data', totalProperty : 'total', xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { field : 'name' , direction : 'ASC' }, - xns : Roo.data, - xtype : 'Store', - listeners : { - beforeload : function (_self, o) - { - o.params = o.params || {}; - o.params.company_id = Pman.Login.authUser.company_id; - } - }, - items : [ - - ] - - }, - '|xns' : 'Roo.form', + '|xns' : 'Roo.data' + } + } + }, + { + xtype : 'ComboBox', allowBlank : true, - displayField : 'name', + displayField : 'action', editable : true, - emptyText : _this._strings['fd7535ce3979bb8547e2c01689db0767'], - fieldLabel : 'Person ', + emptyText : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */, forceSelection : true, - listWidth : 600, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], + listWidth : 300, + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, minChars : 2, - name : 'person_id_name', + name : 'action', pageSize : 20, - qtip : _this._strings['fd7535ce3979bb8547e2c01689db0767'], - queryParam : 'query[name]', + qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */, + queryParam : 'query[action]', selectOnFocus : true, - tpl : '
{name} ({company_id_name}) <{email}>
', + tpl : '
{action}
', triggerAction : 'all', typeAhead : true, - valueField : 'id', + valueField : 'action', width : 150, - xns : Roo.form, - xtype : 'ComboBox', listeners : { render : function (_self) { - _this.personSel = _self; + _this.actionSel = _self; }, select : function (combo, record, index) { _this.grid.footer.onClick('first'); - } }, - items : [ - - ] - - }, - { + 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 : { - '|xns' : 'Roo.data', + xtype : 'HttpProxy', method : 'GET', url : baseURL + '/Roo/Events.php', xns : Roo.data, - xtype : 'HttpProxy' + '|xns' : 'Roo.data' }, reader : { - '|xns' : 'Roo.data', + xtype : 'JsonReader', fields : [ { 'name': 'id', @@ -951,77 +925,73 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ root : 'data', totalProperty : 'total', xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { field : 'action' , direction : 'ASC' }, - xns : Roo.data, - xtype : 'Store', - 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'; - } - }, - items : [ - - ] - - }, - '|xns' : 'Roo.form', + '|xns' : 'Roo.data' + } + } + }, + { + xtype : 'ComboBox', allowBlank : true, - displayField : 'action', + displayField : 'on_table', editable : true, - emptyText : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'], + emptyText : _this._strings['679308a758de538c5f39c4c6cdba6593'] /* Select Affects */, forceSelection : true, listWidth : 300, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, minChars : 2, - name : 'action', + name : 'on_table', pageSize : 20, - qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'], - queryParam : 'query[action]', + qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'] /* Select Action */, + queryParam : 'query[on_table]', selectOnFocus : true, - tpl : '
{action}
', + tpl : '
{on_table}
', triggerAction : 'all', typeAhead : true, valueField : 'action', width : 150, - xns : Roo.form, - xtype : 'ComboBox', listeners : { render : function (_self) { - _this.actionSel = _self; + _this.affectSel = _self; + + if(!Pman.hasPerm('Admin.Logs_Affects', 'S')){ + this.hide(); + } }, select : function (combo, record, index) { _this.grid.footer.onClick('first'); } }, - items : [ - - ] - - }, - { + xns : Roo.form, + '|xns' : 'Roo.form', store : { - proxy : { - '|xns' : 'Roo.data', - method : 'GET', - url : baseURL + '/Roo/Events.php', - xns : Roo.data, - xtype : 'HttpProxy' + 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', + url : baseURL + '/Roo/Events.php', + xns : Roo.data, + '|xns' : 'Roo.data' }, reader : { - '|xns' : 'Roo.data', + xtype : 'JsonReader', fields : [ { 'name': 'id', @@ -1137,81 +1107,19 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ root : 'data', totalProperty : 'total', xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { field : 'on_table' , direction : 'ASC' }, - xns : Roo.data, - xtype : 'Store', - 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'; - } - }, - items : [ - - ] - - }, - '|xns' : 'Roo.form', - allowBlank : true, - displayField : 'on_table', - editable : true, - emptyText : _this._strings['679308a758de538c5f39c4c6cdba6593'], - forceSelection : true, - listWidth : 300, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], - minChars : 2, - name : 'on_table', - pageSize : 20, - qtip : _this._strings['a8929eb5c1553d3f70497f862d25d0ce'], - queryParam : 'query[on_table]', - selectOnFocus : true, - tpl : '
{on_table}
', - triggerAction : 'all', - typeAhead : true, - valueField : 'action', - width : 150, - xns : Roo.form, - xtype : 'ComboBox', - listeners : { - render : function (_self) - { - _this.affectSel = _self; - - if(!Pman.hasPerm('Admin.Logs_Affects', 'S')){ - this.hide(); - } - }, - select : function (combo, record, index) - { - _this.grid.footer.onClick('first'); - } - }, - items : [ - - ] - + '|xns' : 'Roo.data' + } + } }, { - '|xns' : 'Roo.Toolbar', - text : _this._strings['39b9e051f9fe75e65c7a330bb00499d4'], + xtype : 'TextItem', + text : _this._strings['39b9e051f9fe75e65c7a330bb00499d4'] /* Date Range */, xns : Roo.Toolbar, - xtype : 'TextItem' + '|xns' : 'Roo.Toolbar' }, { - '|xns' : 'Roo.form', - format : 'Y-m-d', - xns : Roo.form, xtype : 'DateField', + format : 'Y-m-d', listeners : { change : function (_self, newValue, oldValue) { @@ -1221,13 +1129,13 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ { _this.dateFrom = _self; } - } + }, + xns : Roo.form, + '|xns' : 'Roo.form' }, { - '|xns' : 'Roo.form', - format : 'Y-m-d', - xns : Roo.form, xtype : 'DateField', + format : 'Y-m-d', listeners : { change : function (_self, newValue, oldValue) { @@ -1237,150 +1145,318 @@ Pman.Tab.AdminLogEvents = new Roo.XComponent({ { _this.dateTo = _self; } - } + }, + xns : Roo.form, + '|xns' : 'Roo.form' } ] - }, - '|xns' : 'Roo.grid', - autoExpandColumn : 'remarks', - loadMask : true, - xns : Roo.grid, - xtype : 'Grid', - colModel : [ - { - '|xns' : 'Roo.grid', - dataIndex : 'event_when', - header : _this._strings['4e97aeeaa8b15ca1180fcd1f3ac478d1'], - renderer : function(v) { return v ? v.dateFormat('d/m/Y H:i') : ''; }, - width : 100, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'id', - header : _this._strings['1b7f7d24575cdbfadb83b9587fa1bf97'], - width : 100, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'person_id_name', - header : _this._strings['40bed7cf9b3d4bb3a3d7a7e3eb18c5eb'], - renderer : function(v,x,r) { - - var ptable = _this.tableSel.getValue(); + dataSource : { + xtype : 'Store', + remoteSort : true, + sortInfo : { field: 'event_when', direction: 'DESC'}, + listeners : { + beforeload : function (_self, o) + { + if (!Pman.buildCompleted) { + return false; + } + + + if (! _this.personSel) { + return false; + } + o.params = o.params || {}; + o.params.person_id = _this.personSel.getValue(); + o.params.person_table = _this.tableSel.getValue(); + 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'); + } + - var efield = 'person_id_email'; - var nfield = 'person_id_name'; + /* + act = _this.groupedCombo.getValue(); + o.params['query[grouped]'] = act; + if (o.params['query[grouped]'] == 'gr') { - if(ptable.length && ptable != 'Person'){ - efield = ptable + '_id_email'; - nfield = ptable + '_id_name'; + if (!tbl.length) { + Roo.MessageBox.alert("Error", "Select a table to group results on"); + return false; + } + // o.params['_columns'] = + o.params['_distinct'] = 'on_id'; + + } - //Roo.log([r, efield, nfield]); - - var email = r.json[efield]; // ? r.data.person_id_email : r.data.person_id_email; - var name = r.json[nfield]; // ? r.data.person_id_name : r.data.person_id_name; - return String.format('{0} <{1}>', - name, email); - + */ - }, - width : 150, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'action', - header : _this._strings['004bf6c9a40003140292e97330236c53'], - renderer : function(v) { return String.format('{0}', v); }, - width : 100, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'ipaddr', - header : _this._strings['a12a3079e14ced46e69ba52b8a90b21a'], - renderer : function(v) { return String.format('{0}', v); }, - width : 100, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'on_table', - header : _this._strings['2c92a9a6a5dbf570825e62eabcdecd8d'], - renderer : function(v, x, r) { - return v ? String.format('{0}({1})', v, r.data.on_id) : ''; + + } + }, + 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' }, - width : 100, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'remarks', - header : _this._strings['231bc72756b5e6de492aaaa1577f61b1'], - renderer : function(v) { return String.format('{0}', v, Roo.util.Format.htmlEncode(v)); }, - width : 300, - xns : Roo.grid, - xtype : 'ColumnModel' - } - ], - listeners : { - render : function () - { - _this.grid = this; - //_this.dialog = Pman.Dialog.FILL_IN - if (_this.panel.active) { - this.footer.onClick('first'); + { + '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' + } }, - items : [ - - ] - - }, - '|xns' : 'Roo', - background : false, - fitContainer : true, - fitToframe : true, - region : 'center', - tableName : 'Events', - title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'], - xns : Roo, - xtype : 'GridPanel', - listeners : { - activate : function() { - _this.panel = this; - if (_this.grid) { - _this.grid.footer.onClick('first'); - } + sm : { + xtype : 'RowSelectionModel', + singleSelect : true, + listeners : { + afterselectionchange : function (_self) + { + // load detail log in _this.viewPanel; + if (!this.getSelected()) { + this.viewPanel.setContent("Nothing Selected"); + return; + } + var id = this.getSelected().data.id; + _this.viewPanel.load( { url : baseURL + "/Admin/EventView/" + id + ".html" }); + + } + }, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + colModel : [ + { + xtype : 'ColumnModel', + dataIndex : 'event_when', + header : _this._strings['4e97aeeaa8b15ca1180fcd1f3ac478d1'] /* When */, + renderer : function(v) { return v ? v.dateFormat('d/m/Y H:i') : ''; }, + width : 100, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'id', + header : _this._strings['1b7f7d24575cdbfadb83b9587fa1bf97'] /* #id */, + hidden : (function() { + return typeof(Pman.Tab.AdminLogEvents.hide_cols) == 'undefined' ? + false : + ((Pman.Tab.AdminLogEvents.hide_cols.indexOf('id') > -1) ? true : false); + })(), + width : 100, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'person_id_name', + header : _this._strings['40bed7cf9b3d4bb3a3d7a7e3eb18c5eb'] /* Person */, + renderer : function(v,x,r) { + + var ptable = _this.tableSel.getValue(); + + var efield = 'person_id_email'; + var nfield = 'person_id_name'; + + if( + ptable.length && + ptable != 'Person' && + typeof(r.data[ptable + '_id_email']) != 'undefined' && + typeof(r.data[ptable + '_id_name']) != 'undefined' + ){ + efield = ptable + '_id_email'; + nfield = ptable + '_id_name'; + } + + var email = r.data[efield]; // ? r.data.person_id_email : r.data.person_id_email; + var name = r.data[nfield]; // ? r.data.person_id_name : r.data.person_id_name; + return String.format('{0} <{1}>', + name, email); + + + }, + width : 150, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'action', + header : _this._strings['004bf6c9a40003140292e97330236c53'] /* Action */, + renderer : function(v) { return String.format('{0}', v); }, + width : 100, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'ipaddr', + header : _this._strings['a12a3079e14ced46e69ba52b8a90b21a'] /* IP */, + renderer : function(v) { return String.format('{0}', v); }, + width : 100, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'on_table', + header : _this._strings['2c92a9a6a5dbf570825e62eabcdecd8d'] /* Affected */, + hidden : (function() { + return typeof(Pman.Tab.AdminLogEvents.hide_cols) == 'undefined' ? + false : + ((Pman.Tab.AdminLogEvents.hide_cols.indexOf('on_table') > -1) ? true : false); + })(), + renderer : function(v, x, r) { + return v ? String.format('{0}({1})', v, r.data.on_id) : ''; + }, + width : 100, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'remarks', + header : _this._strings['231bc72756b5e6de492aaaa1577f61b1'] /* Remarks */, + renderer : function(v) { return String.format('{0}', v, Roo.util.Format.htmlEncode(v)); }, + width : 300, + xns : Roo.grid, + '|xns' : 'Roo.grid' } - }, - items : [ - - ] - + ] + } } ] - - }, - '|xns' : 'Roo', - region : 'center', - title : _this._strings['87f9f735a1d36793ceaecd4e47124b63'], - xns : Roo, - xtype : 'NestedLayoutPanel', - items : [ - - ] - + } }; } });