Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /home/palandch/public_html/manager/assets/modext/widgets/core/ |
Ext.namespace('MODx.combo'); /* fixes combobox value loading issue */ Ext.override(Ext.form.ComboBox,{loaded:false,setValue:Ext.form.ComboBox.prototype.setValue.createSequence(function(v){var a=this.store.find(this.valueField,v);if(v&&v!==0&&this.mode=='remote'&&a==-1&&!this.loaded){var p={};p[this.valueField]=v;this.loaded=true;this.store.load({scope:this,params:p,callback:function(){this.setValue(v);this.collapse()}})}})}); MODx.combo.ComboBox = function(config,getStore) { config = config || {}; Ext.applyIf(config,{ displayField: 'name' ,valueField: 'id' ,triggerAction: 'all' ,fields: ['id','name'] ,baseParams: { action: 'getList' } ,width: 150 ,listWidth: 300 ,editable: false ,resizable: true ,typeAhead: false ,forceSelection: true ,minChars: 3 ,cls: 'modx-combo' }); Ext.applyIf(config,{ store: new Ext.data.JsonStore({ url: config.connector || config.url ,root: 'results' ,totalProperty: 'total' ,fields: config.fields ,errorReader: MODx.util.JSONReader ,baseParams: config.baseParams || {} ,remoteSort: config.remoteSort || false ,autoDestroy: true }) }); if (getStore === true) { config.store.load(); return config.store; } MODx.combo.ComboBox.superclass.constructor.call(this,config); this.config = config; return this; }; Ext.extend(MODx.combo.ComboBox,Ext.form.ComboBox); Ext.reg('modx-combo',MODx.combo.ComboBox); Ext.util.Format.comboRenderer = function (combo,val) { return function (v,md,rec,ri,ci,s) { if (!s) return v; if (!combo.findRecord) return v; var record = combo.findRecord(combo.valueField, v); return record ? record.get(combo.displayField) : val; } }; /** @deprecated MODX 2.2 */ MODx.combo.Renderer = function(combo) { var loaded = false; return (function(v) { var idx,rec; if (!combo.store) return v; if (!loaded) { if (combo.store.proxy !== undefined && combo.store.proxy !== null) { combo.store.load(); } loaded = true; } var v2 = combo.getValue(); idx = combo.store.find(combo.valueField,v2 ? v2 : v); rec = combo.store.getAt(idx); return (rec === undefined || rec === null ? (v2 ? v2 : v) : rec.get(combo.displayField)); }); }; MODx.combo.Boolean = function(config) { config = config || {}; Ext.applyIf(config,{ store: new Ext.data.SimpleStore({ fields: ['d','v'] ,data: [[_('yes'),true],[_('no'),false]] }) ,displayField: 'd' ,valueField: 'v' ,mode: 'local' ,triggerAction: 'all' ,editable: false ,selectOnFocus: false ,preventRender: true ,forceSelection: true ,enableKeyEvents: true }); MODx.combo.Boolean.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Boolean,MODx.combo.ComboBox); Ext.reg('combo-boolean',MODx.combo.Boolean); Ext.reg('modx-combo-boolean',MODx.combo.Boolean); MODx.util.PasswordField = function(config) { config = config || {}; delete config.xtype; Ext.applyIf(config,{ xtype: 'textfield' ,inputType: 'password' }); MODx.util.PasswordField.superclass.constructor.call(this,config); }; Ext.extend(MODx.util.PasswordField,Ext.form.TextField); Ext.reg('text-password',MODx.util.PasswordField); Ext.reg('modx-text-password',MODx.util.PasswordField); MODx.combo.User = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'user' ,hiddenName: 'user' ,displayField: 'username' ,valueField: 'id' ,fields: ['username','id'] ,pageSize: 20 ,url: MODx.config.connectors_url+'security/user.php' ,typeAhead: true ,editable: true }); MODx.combo.User.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.User,MODx.combo.ComboBox); Ext.reg('modx-combo-user',MODx.combo.User); MODx.combo.UserGroup = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'group' ,hiddenName: 'group' ,displayField: 'name' ,valueField: 'id' ,fields: ['name','id','description'] ,listWidth: 300 ,pageSize: 20 ,url: MODx.config.connectors_url+'security/group.php' ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><span style="font-weight: bold">{name}</span>' ,'<br />{description}</div></tpl>') }); MODx.combo.UserGroup.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.UserGroup,MODx.combo.ComboBox); Ext.reg('modx-combo-usergroup',MODx.combo.UserGroup); MODx.combo.UserGroupRole = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'role' ,hiddenName: 'role' ,displayField: 'name' ,valueField: 'id' ,fields: ['name','id'] ,pageSize: 20 ,url: MODx.config.connectors_url+'security/role.php' }); MODx.combo.UserGroupRole.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.UserGroupRole,MODx.combo.ComboBox); Ext.reg('modx-combo-usergrouprole',MODx.combo.UserGroupRole); MODx.combo.ResourceGroup = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'resourcegroup' ,hiddenName: 'resourcegroup' ,displayField: 'name' ,valueField: 'id' ,fields: ['name','id'] ,pageSize: 20 ,url: MODx.config.connectors_url+'security/resourcegroup.php' }); MODx.combo.ResourceGroup.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.ResourceGroup,MODx.combo.ComboBox); Ext.reg('modx-combo-resourcegroup',MODx.combo.ResourceGroup); MODx.combo.Context = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'context' ,hiddenName: 'context' ,displayField: 'key' ,valueField: 'key' ,fields: ['key'] ,pageSize: 20 ,url: MODx.config.connectors_url+'context/index.php' }); MODx.combo.Context.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Context,MODx.combo.ComboBox); Ext.reg('modx-combo-context',MODx.combo.Context); MODx.combo.Policy = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'policy' ,hiddenName: 'policy' ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name','permissions'] ,allowBlank: false ,editable: false ,pageSize: 20 ,url: MODx.config.connectors_url+'security/access/policy.php' }); MODx.combo.Policy.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Policy,MODx.combo.ComboBox); Ext.reg('modx-combo-policy',MODx.combo.Policy); MODx.combo.Template = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'template' ,hiddenName: 'template' ,displayField: 'templatename' ,valueField: 'id' ,pageSize: 20 ,fields: ['id','templatename','description','category_name'] ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><span style="font-weight: bold">{templatename}</span>' ,'<tpl if="category_name"> - <span style="font-style:italic">{category_name}</span></tpl>' ,'<br />{description}</div></tpl>') ,url: MODx.config.connectors_url+'element/template.php' ,listWidth: 350 ,allowBlank: true }); MODx.combo.Template.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Template,MODx.combo.ComboBox); Ext.reg('modx-combo-template',MODx.combo.Template); MODx.combo.Category = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'category' ,hiddenName: 'category' ,displayField: 'name' ,valueField: 'id' ,mode: 'remote' ,fields: ['id','category','parent','name'] ,forceSelection: true ,typeAhead: false ,allowBlank: true ,editable: false ,enableKeyEvents: true ,pageSize: 20 ,url: MODx.config.connectors_url+'element/category.php' ,baseParams: { action: 'getList' ,showNone: true } }); MODx.combo.Category.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Category,MODx.combo.ComboBox,{ _onblur: function(t,e) { var v = this.getRawValue(); this.setRawValue(v); this.setValue(v,true); } }); Ext.reg('modx-combo-category',MODx.combo.Category); MODx.combo.Language = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'language' ,hiddenName: 'language' ,displayField: 'name' ,valueField: 'name' ,fields: ['name'] ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,pageSize: 20 ,url: MODx.config.connectors_url+'system/language.php' }); MODx.combo.Language.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Language,MODx.combo.ComboBox); Ext.reg('modx-combo-language',MODx.combo.Language); MODx.combo.Charset = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'charset' ,hiddenName: 'charset' ,displayField: 'text' ,valueField: 'value' ,fields: ['value','text'] ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,url: MODx.config.connectors_url+'system/charset.php' }); MODx.combo.Charset.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Charset,MODx.combo.ComboBox); Ext.reg('modx-combo-charset',MODx.combo.Charset); MODx.combo.RTE = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'rte' ,hiddenName: 'rte' ,displayField: 'value' ,valueField: 'value' ,fields: ['value'] ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,url: MODx.config.connectors_url+'system/rte.php' }); MODx.combo.RTE.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.RTE,MODx.combo.ComboBox); Ext.reg('modx-combo-rte',MODx.combo.RTE); MODx.combo.Role = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'role' ,hiddenName: 'role' ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,pageSize: 20 ,url: MODx.config.connectors_url+'security/role.php' ,baseParams: { action: 'getList', addNone: true } }); MODx.combo.Role.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Role,MODx.combo.ComboBox); Ext.reg('modx-combo-role',MODx.combo.Role); MODx.combo.ContentType = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'content_type' ,hiddenName: 'content_type' ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,pageSize: 20 ,url: MODx.config.connectors_url+'system/contenttype.php' ,baseParams: { action: 'getList' } }); MODx.combo.ContentType.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.ContentType,MODx.combo.ComboBox); Ext.reg('modx-combo-content-type',MODx.combo.ContentType); MODx.combo.ContentDisposition = function(config) { config = config || {}; Ext.applyIf(config,{ store: new Ext.data.SimpleStore({ fields: ['d','v'] ,data: [[_('inline'),0],[_('attachment'),1]] }) ,name: 'content_dispo' ,hiddenName: 'content_dispo' ,displayField: 'd' ,valueField: 'v' ,mode: 'local' ,triggerAction: 'all' ,editable: false ,pageSize: 20 ,selectOnFocus: false ,preventRender: true }); MODx.combo.ContentDisposition.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.ContentDisposition,Ext.form.ComboBox); Ext.reg('modx-combo-content-disposition',MODx.combo.ContentDisposition); MODx.combo.ClassMap = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'class' ,hiddenName: 'class' ,url: MODx.config.connectors_url+'system/classmap.php' ,displayField: 'class' ,valueField: 'class' ,fields: ['class'] ,editable: false ,pageSize: 20 }); MODx.combo.ClassMap.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.ClassMap,MODx.combo.ComboBox); Ext.reg('modx-combo-class-map',MODx.combo.ClassMap); MODx.combo.ClassDerivatives = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'class' ,hiddenName: 'class' ,url: MODx.config.connectors_url+'system/derivatives.php' ,baseParams: { action: 'getList' ,skip: 'modXMLRPCResource' ,'class': 'modResource' } ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name'] ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,pageSize: 20 }); MODx.combo.ClassDerivatives.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.ClassDerivatives,MODx.combo.ComboBox); Ext.reg('modx-combo-class-derivatives',MODx.combo.ClassDerivatives); MODx.combo.Object = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'object' ,hiddenName: 'object' ,url: MODx.config.connectors_url+'workspace/builder/index.php' ,baseParams: { action: 'getAssocObject' ,class_key: 'modResource' } ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name'] ,pageSize: 10 ,editable: false }); MODx.combo.Object.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Object,MODx.combo.ComboBox); Ext.reg('modx-combo-object',MODx.combo.Object); MODx.combo.Namespace = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'namespace' ,hiddenName: 'namespace' ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,pageSize: 20 ,url: MODx.config.connectors_url+'workspace/namespace.php' ,fields: ['name'] ,displayField: 'name' ,valueField: 'name' }); MODx.combo.Namespace.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox); Ext.reg('modx-combo-namespace',MODx.combo.Namespace); MODx.combo.Browser = function(config) { config = config || {}; Ext.applyIf(config,{ width: 300 ,triggerAction: 'all' ,source: config.source || 1 }); MODx.combo.Browser.superclass.constructor.call(this,config); this.config = config; }; Ext.extend(MODx.combo.Browser,Ext.form.TriggerField,{ browser: null ,onTriggerClick : function(btn){ if (this.disabled){ return false; } if (this.browser === null) { this.browser = MODx.load({ xtype: 'modx-browser' ,id: Ext.id() ,multiple: true ,source: this.config.source || 1 ,hideFiles: this.config.hideFiles || false ,rootVisible: this.config.rootVisible || false ,allowedFileTypes: this.config.allowedFileTypes || '' ,wctx: this.config.wctx || 'web' ,openTo: this.config.openTo || '' ,rootId: this.config.rootId || '/' ,hideSourceCombo: this.config.hideSourceCombo || false ,listeners: { 'select': {fn: function(data) { this.setValue(data.relativeUrl); this.fireEvent('select',data); },scope:this} } }); } this.browser.show(btn); return true; } ,onDestroy: function(){ MODx.combo.Browser.superclass.onDestroy.call(this); } }); Ext.reg('modx-combo-browser',MODx.combo.Browser); MODx.combo.Country = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'country' ,hiddenName: 'country' ,url: MODx.config.connectors_url+'system/country.php' ,displayField: 'value' ,valueField: 'value' ,fields: ['value'] ,editable: true ,value: 0 ,typeAhead: true }); MODx.combo.Country.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Country,MODx.combo.ComboBox); Ext.reg('modx-combo-country',MODx.combo.Country); MODx.combo.PropertySet = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'propertyset' ,hiddenName: 'propertyset' ,url: MODx.config.connectors_url+'element/propertyset.php' ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name'] ,editable: false ,value: 0 ,pageSize: 20 }); MODx.combo.PropertySet.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.PropertySet,MODx.combo.ComboBox); Ext.reg('modx-combo-property-set',MODx.combo.PropertySet); MODx.ChangeParentField = function(config) { config = config || {}; Ext.applyIf(config,{ triggerAction: 'all' ,editable: false ,readOnly: false ,formpanel: 'modx-panel-resource' }); MODx.ChangeParentField.superclass.constructor.call(this,config); this.config = config; this.on('click',this.onTriggerClick,this); this.addEvents({ end: true }); this.on('end',this.end,this); }; Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{ oldValue: false ,oldDisplayValue: false ,end: function(p) { var t = Ext.getCmp('modx-resource-tree'); if (!t) return; p.d = p.d || p.v; t.removeListener('click',this.handleChangeParent,this); t.on('click',t._handleClick,t); t.disableHref = false; MODx.debug('Setting parent to: '+p.v); Ext.getCmp('modx-resource-parent-hidden').setValue(p.v); this.setValue(p.d); this.oldValue = false; Ext.getCmp(this.config.formpanel).fireEvent('fieldChange'); } ,onTriggerClick: function() { if (this.disabled) { return false; } if (this.oldValue) { this.fireEvent('end',{ v: this.oldValue ,d: this.oldDisplayValue }); return false; } MODx.debug('onTriggerClick'); var t = Ext.getCmp('modx-resource-tree'); if (!t) { MODx.debug('no tree found, trying to activate'); var tp = Ext.getCmp('modx-leftbar-tabpanel'); if (tp) { tp.on('tabchange',function(tbp,tab) { if (tab.id == 'modx-resource-tree-ct') { this.disableTreeClick(); } },this); tp.activate('modx-resource-tree-ct'); } else { MODx.debug('no tabpanel'); } return false; } this.disableTreeClick(); } ,disableTreeClick: function() { MODx.debug('Disabling tree click'); t = Ext.getCmp('modx-resource-tree'); if (!t) { MODx.debug('No tree found in disableTreeClick!'); return false; } this.oldDisplayValue = this.getValue(); this.oldValue = Ext.getCmp('modx-resource-parent-hidden').getValue(); this.setValue(_('resource_parent_select_node')); t.expand(); t.removeListener('click',t._handleClick); t.on('click',this.handleChangeParent,this); t.disableHref = true; return true;} ,handleChangeParent: function(node,e) { var t = Ext.getCmp('modx-resource-tree'); if (!t) { return false; } t.disableHref = true; var id = node.id.split('_'); id = id[1]; if (id == MODx.request.id) { MODx.msg.alert('',_('resource_err_own_parent')); return false; } var ctxf = Ext.getCmp('modx-resource-context-key'); if (ctxf) { var ctxv = ctxf.getValue(); if (node.attributes && node.attributes.ctx != ctxv) { ctxf.setValue(node.attributes.ctx); } } this.fireEvent('end',{ v: node.attributes.type != 'modContext' ? id : node.attributes.pk ,d: Ext.util.Format.stripTags(node.text) }); e.preventDefault(); e.stopEvent(); return true; } }); Ext.reg('modx-field-parent-change',MODx.ChangeParentField); MODx.combo.TVWidget = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'widget' ,hiddenName: 'widget' ,displayField: 'name' ,valueField: 'value' ,fields: ['value','name'] ,editable: false ,url: MODx.config.connectors_url+'element/tv/renders.php' ,baseParams: { action: 'getOutputs' } ,value: 'default' }); MODx.combo.TVWidget.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.TVWidget,MODx.combo.ComboBox); Ext.reg('modx-combo-tv-widget',MODx.combo.TVWidget); MODx.combo.TVInputType = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'type' ,hiddenName: 'type' ,displayField: 'name' ,valueField: 'value' ,editable: false ,fields: ['value','name'] ,url: MODx.config.connectors_url+'element/tv/renders.php' ,baseParams: { action: 'getInputs' } ,value: 'text' }); MODx.combo.TVInputType.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.TVInputType,MODx.combo.ComboBox); Ext.reg('modx-combo-tv-input-type',MODx.combo.TVInputType); MODx.combo.Action = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'action' ,hiddenName: 'action' ,displayField: 'controller' ,valueField: 'id' ,fields: ['id','controller','namespace'] ,pageSize: 20 ,url: MODx.config.connectors_url+'system/action.php' ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><tpl if="namespace">{namespace} - </tpl>{controller}</div></tpl>') }); MODx.combo.Action.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Action,MODx.combo.ComboBox); Ext.reg('modx-combo-action',MODx.combo.Action); MODx.combo.Dashboard = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'dashboard' ,hiddenName: 'dashboard' ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name','description'] ,listWidth: 400 ,pageSize: 20 ,url: MODx.config.connectors_url+'system/dashboard.php' ,tpl: new Ext.XTemplate('<tpl for=".">' ,'<div class="x-combo-list-item">' ,'<h4 class="modx-combo-title">{name}</h4>' ,'<p class="modx-combo-desc">{description}</p>' ,'</div></tpl>') }); MODx.combo.Dashboard.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Dashboard,MODx.combo.ComboBox); Ext.reg('modx-combo-dashboard',MODx.combo.Dashboard); MODx.combo.MediaSource = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'source' ,hiddenName: 'source' ,displayField: 'name' ,valueField: 'id' ,fields: ['id','name','description'] ,listWidth: 400 ,pageSize: 20 ,url: MODx.config.connectors_url+'source/index.php' ,tpl: new Ext.XTemplate('<tpl for=".">' ,'<div class="x-combo-list-item">' ,'<h4 class="modx-combo-title">{name}</h4>' ,'<p class="modx-combo-desc">{description}</p>' ,'</div></tpl>') }); MODx.combo.MediaSource.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.MediaSource,MODx.combo.ComboBox); Ext.reg('modx-combo-source',MODx.combo.MediaSource); MODx.combo.MediaSourceType = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'class_key' ,hiddenName: 'class_key' ,displayField: 'name' ,valueField: 'class' ,fields: ['id','class','name','description'] ,listWidth: 400 ,pageSize: 20 ,url: MODx.config.connectors_url+'source/type.php' ,tpl: new Ext.XTemplate('<tpl for=".">' ,'<div class="x-combo-list-item">' ,'<h4 class="modx-combo-title">{name}</h4>' ,'<p class="modx-combo-desc">{description}</p>' ,'</div></tpl>') }); MODx.combo.MediaSourceType.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.MediaSourceType,MODx.combo.ComboBox); Ext.reg('modx-combo-source-type',MODx.combo.MediaSourceType); MODx.combo.Authority = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'authority' ,hiddenName: 'authority' ,forceSelection: true ,typeAhead: false ,editable: false ,allowBlank: false ,listWidth: 300 ,pageSize: 20 ,url: MODx.config.connectors_url+'security/role.php' ,baseParams: { action: 'getAuthorityList', addNone: true } }); MODx.combo.Authority.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.Authority,MODx.combo.ComboBox); Ext.reg('modx-combo-authority',MODx.combo.Authority);