| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- /**
- * Loads a grid of System Events
- *
- * @class MODx.grid.SystemEvent
- * @extends MODx.grid.Grid
- * @param {Object} config An object of options.
- * @xtype modx-grid-system-event
- */
- MODx.grid.SystemEvent = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- title: _('system_events')
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'system/event/getlist'
- }
- ,fields: ['id','name','service','groupname','plugins']
- ,autosave: true
- ,paging: true
- ,clicksToEdit: 2
- ,grouping: true
- ,groupBy: 'groupname'
- ,singleText: _('system_event')
- ,pluralText: _('system_events')
- ,columns: [{
- header: _('name')
- ,dataIndex: 'name'
- },{
- header: _('system_events.service')
- ,dataIndex: 'service'
- ,renderer: this.renderServiceField.createDelegate(this,[this],true)
- },{
- header: _('system_events.plugins')
- ,dataIndex: 'plugins'
- ,width: 150
- ,renderer: this.renderPluginsField.createDelegate(this,[this],true)
- },{
- header: _('system_events.groupname')
- ,dataIndex: 'groupname'
- ,width: 150
- ,hidden: true
- }]
- ,tbar: [{
- text: _('system_events.create')
- ,scope: this
- ,cls:'primary-button'
- ,handler: {
- xtype: 'modx-window-events-create-update'
- ,url: config.url || MODx.config.connector_url
- ,blankValues: true
- ,isUpdate: false
- }
- },'->',{
- xtype: 'textfield'
- ,name: 'filter_key'
- ,id: 'modx-filter-event'
- ,cls: 'x-form-filter'
- ,emptyText: _('system_events.search_by_name')+'...'
- ,listeners: {
- 'change': {fn: this.filterByName, scope: this}
- ,'render': {fn: function(cmp) {
- new Ext.KeyMap(cmp.getEl(), {
- key: Ext.EventObject.ENTER
- ,fn: this.blur
- ,scope: cmp
- });
- },scope:this}
- }
- },{
- xtype: 'button'
- ,cls: 'x-form-filter-clear'
- ,text: _('filter_clear')
- ,listeners: {
- 'click': {fn: this.clearFilter, scope: this},
- 'mouseout': { fn: function(evt){
- this.removeClass('x-btn-focus');
- }
- }
- }
- }]
- });
- MODx.grid.SystemEvent.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.grid.SystemEvent,MODx.grid.Grid,{
- getMenu: function(btn, e) {
- var m = [];
- if (this.menu.record.service == 6) { /* user defined */
- m.push({
- text: _('system_events.remove')
- ,handler: this.removeEvent
- });
- }
- return m;
- }
- ,filterByName: function(tf,newValue,oldValue) {
- this.getStore().baseParams.query = newValue;
- this.getBottomToolbar().changePage(1);
- this.refresh();
- return true;
- }
- ,clearFilter: function() {
- Ext.getCmp('modx-filter-event').reset();
- this.getStore().baseParams = this.initialConfig.baseParams;
- this.getStore().baseParams.query = '';
- this.getBottomToolbar().changePage(1);
- this.refresh();
- }
- ,removeEvent: function(btn, e) {
- MODx.msg.confirm({
- title: _('system_events.remove')
- ,text: _('system_events.remove_confirm', { name: this.menu.record.name })
- ,url: this.config.url
- ,params: {
- action: 'system/event/remove'
- ,name: this.menu.record.name
- }
- ,listeners: {
- 'success': { fn: this.refresh ,scope: this }
- }
- });
- }
- ,renderServiceField: function(v,md,rec,ri,ci,s,g) {
- return _('system_events.service_' + v);
- }
- ,renderPluginsField: function(v,md,rec,ri,ci,s,g) {
- var output = [];
- Ext.each(v, function(elem) {
- if (!elem) { return; }
- output.push(elem.name);
- });
- return output.join(', ');
- }
- });
- Ext.reg('modx-grid-system-event',MODx.grid.SystemEvent);
- MODx.window.CreateUpdateEvent = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- title: _('system_events.create')
- ,width: 450
- ,autoHeight: true
- ,url: config.url
- ,action: 'system/event/create'
- ,fields: [{
- xtype: 'hidden'
- ,name: 'service'
- ,value: 6 /* user defined */
- },{
- xtype: 'textfield'
- ,fieldLabel: _('name')
- ,name: 'name'
- ,id: 'modx-se-name'
- ,allowBlank: false
- ,maxLength: 50
- ,anchor: '100%'
- },{
- xtype: 'label'
- ,forId: 'modx-se-name'
- ,html: _('system_events.name_desc')
- ,cls: 'desc-under'
- },{
- xtype: 'modx-combo-event-groups'
- ,fieldLabel: _('system_events.groupname')
- ,name: 'groupname'
- ,id: 'modx-se-groupname'
- ,anchor: '100%'
- },{
- xtype: 'label'
- ,forId: 'modx-se-groupname'
- ,html: _('system_events.groupname_desc')
- ,cls: 'desc-under'
- }]
- ,keys: []
- });
- MODx.window.CreateUpdateEvent.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.window.CreateUpdateEvent,MODx.Window);
- Ext.reg('modx-window-events-create-update',MODx.window.CreateUpdateEvent);
- MODx.combo.SystemEventGroups = function(config) {
- config = config || {};
- Ext.applyIf(config, {
- name: 'groupname'
- ,hiddenName: 'groupname'
- ,displayField: 'name'
- ,valueField: 'name'
- ,fields: ['name']
- ,forceSelection: false
- ,typeAhead: true
- ,editable: true
- ,allowBlank: false
- ,autocomplete: true
- ,pageSize: 10
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'system/event/groupList'
- ,combo: true
- }
- });
- MODx.combo.SystemEventGroups.superclass.constructor.call(this, config);
- };
- Ext.extend(MODx.combo.SystemEventGroups, MODx.combo.ComboBox);
- Ext.reg('modx-combo-event-groups', MODx.combo.SystemEventGroups);
|