modx.grid.manager.log.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. /**
  2. * Loads a grid of Manager Logs.
  3. *
  4. * @class MODx.grid.ManagerLog
  5. * @extends MODx.grid.Grid
  6. * @param {Object} config An object of options.
  7. * @xtype modx-grid-manager-log
  8. */
  9. MODx.grid.ManagerLog = function(config) {
  10. config = config || {};
  11. Ext.applyIf(config,{
  12. title: _('manager_log')
  13. ,id: 'modx-grid-manager-log'
  14. ,url: MODx.config.connector_url
  15. ,baseParams: {
  16. action: 'system/log/getlist'
  17. }
  18. ,fields: ['id','user','username','occurred','action','classKey','item','name','menu']
  19. ,autosave: false
  20. ,paging: true
  21. ,remoteSort: true
  22. ,columns: [{
  23. header: _('occurred')
  24. ,dataIndex: 'occurred'
  25. ,width: 125
  26. ,sortable: true
  27. },{
  28. header: _('user')
  29. ,dataIndex: 'username'
  30. ,width: 125
  31. ,editable: false
  32. ,sortable: true
  33. },{
  34. header: _('action')
  35. ,dataIndex: 'action'
  36. ,width: 125
  37. ,sortable: true
  38. },{
  39. header: _('object')
  40. ,dataIndex: 'name'
  41. ,width: 300
  42. ,renderer: Ext.util.Format.htmlEncode
  43. }]
  44. ,tbar: [{
  45. xtype: 'button'
  46. ,text: _('filter_clear')
  47. ,cls: 'primary-button'
  48. ,scope: this
  49. ,handler: function() {
  50. var fp = Ext.getCmp(this.config.formpanel);
  51. if (fp) {
  52. fp.getForm().reset();
  53. fp.filter();
  54. }
  55. }
  56. },'->',{
  57. xtype: 'button'
  58. ,text: _('mgrlog_clear')
  59. ,scope: this
  60. ,handler: function() {
  61. var fp = Ext.getCmp(this.config.formpanel);
  62. if (fp) {
  63. fp.clearLog();
  64. }
  65. }
  66. }]
  67. });
  68. MODx.grid.ManagerLog.superclass.constructor.call(this,config);
  69. };
  70. Ext.extend(MODx.grid.ManagerLog,MODx.grid.Grid);
  71. Ext.reg('modx-grid-manager-log',MODx.grid.ManagerLog);
  72. /**
  73. * Loads the Manager Log filter panel.
  74. *
  75. * @class MODx.panel.ManagerLog
  76. * @extends MODx.FormPanel
  77. * @constructor
  78. * @param {Object} config An object of options.
  79. * @xtype panel-manager-log
  80. */
  81. MODx.panel.ManagerLog = function(config) {
  82. config = config || {};
  83. Ext.applyIf(config,{
  84. id: 'modx-panel-manager-log'
  85. ,cls: 'container'
  86. ,defaults: { collapsible: false ,autoHeight: true }
  87. ,items: [{
  88. html: _('manager_log')
  89. ,xtype: 'modx-header'
  90. ,id: 'manager-log-header'
  91. },MODx.getPageStructure([{
  92. title: _('mgrlog_query')
  93. ,layout: 'form'
  94. ,defaults: { border: false ,msgTarget: 'side' }
  95. ,items: [{
  96. html: '<p>'+_('mgrlog_query_msg')+'</p>'
  97. ,xtype: 'modx-description'
  98. },{
  99. xtype: 'panel'
  100. ,border: false
  101. ,cls:'main-wrapper'
  102. ,layout: 'form'
  103. ,items: [{
  104. layout: 'column'
  105. ,border: false
  106. ,defaults: {
  107. layout: 'form'
  108. ,labelAlign: 'top'
  109. ,anchor: '100%'
  110. ,border: false
  111. }
  112. ,items: [{
  113. columnWidth: .5
  114. ,items: [{
  115. xtype: 'modx-combo-user'
  116. ,fieldLabel: _('user')
  117. ,name: 'user'
  118. ,anchor: '100%'
  119. ,listeners: {
  120. 'select': {fn: this.filter, scope: this}
  121. }
  122. },{
  123. xtype: 'textfield'
  124. ,fieldLabel: _('action')
  125. ,name: 'actionType'
  126. ,anchor: '100%'
  127. ,listeners: {
  128. 'change': {fn: this.filter, scope: this}
  129. ,'render': {fn:this._addEnterKeyHandler}
  130. }
  131. },{
  132. xtype: 'textfield'
  133. ,fieldLabel: _('class_key')
  134. ,name: 'classKey'
  135. ,anchor: '100%'
  136. ,listeners: {
  137. 'change': {fn: this.filter, scope: this}
  138. ,'render': {fn:this._addEnterKeyHandler}
  139. }
  140. }]
  141. },{
  142. columnWidth: .5
  143. ,items: [{
  144. xtype: 'datefield'
  145. ,fieldLabel: _('date_start')
  146. ,name: 'dateStart'
  147. ,allowBlank: true
  148. ,anchor: '100%'
  149. ,listeners: {
  150. 'select': {fn: this.filter, scope: this}
  151. ,'render': {fn:this._addEnterKeyHandler}
  152. }
  153. },{
  154. xtype: 'datefield'
  155. ,fieldLabel: _('date_end')
  156. ,name: 'dateEnd'
  157. ,allowBlank: true
  158. ,anchor: '100%'
  159. ,listeners: {
  160. 'select': {fn: this.filter, scope: this}
  161. ,'render': {fn:this._addEnterKeyHandler}
  162. }
  163. },{
  164. xtype: 'textfield'
  165. ,fieldLabel: _('id')
  166. ,name: 'item'
  167. ,anchor: '100%'
  168. ,listeners: {
  169. 'change': {fn: this.filter, scope: this}
  170. ,'render': {fn:this._addEnterKeyHandler}
  171. }
  172. }]
  173. }]
  174. }]
  175. },MODx.PanelSpacer,{
  176. xtype: 'modx-grid-manager-log'
  177. ,cls:'main-wrapper'
  178. ,preventRender: true
  179. ,formpanel: 'modx-panel-manager-log'
  180. }]
  181. }])]
  182. });
  183. MODx.panel.ManagerLog.superclass.constructor.call(this,config);
  184. };
  185. Ext.extend(MODx.panel.ManagerLog,MODx.FormPanel,{
  186. filter: function(tf,newValue,oldValue) {
  187. var p = this.getForm().getValues();
  188. var g = Ext.getCmp('modx-grid-manager-log');
  189. p.action = 'system/log/getList';
  190. g.getStore().baseParams = p;
  191. g.getStore().load({
  192. params: p
  193. ,start: 0
  194. ,limit: 20
  195. });
  196. g.getBottomToolbar().changePage(1);
  197. }
  198. ,_addEnterKeyHandler: function() {
  199. this.getEl().addKeyListener(Ext.EventObject.ENTER,function() {
  200. this.fireEvent('change');
  201. },this);
  202. }
  203. ,clearLog: function(btn,e) {
  204. MODx.msg.confirm({
  205. title: _('warning')
  206. ,text: _('mgrlog_clear_confirm')
  207. ,url: MODx.config.connector_url
  208. ,params: {
  209. action: 'system/log/truncate'
  210. }
  211. ,listeners: {
  212. 'success': {fn:function() {
  213. Ext.getCmp('modx-grid-manager-log').refresh();
  214. },scope:this}
  215. }
  216. });
  217. }
  218. });
  219. Ext.reg('modx-panel-manager-log',MODx.panel.ManagerLog);