| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103 |
- Ext.namespace('MODx.combo');
- /* disable shadows for the combo-list globally, saves a few dom nodes as it's not used anyways */
- Ext.form.ComboBox.prototype.shadow = false;
- /* replaces the default img tag for the combo trigger with a div to make the use of iconfonts with :before possible */
- Ext.override(Ext.form.TriggerField, {
- // this is the exact method from the source code, just the triggerConfig is modified to not use an img tag
- // We cannot override the prototype Ext.form.TriggerField.prototype.triggerConfig because we loose the option to add a custom triggerClass
- onRender: function(ct, position){
- this.doc = Ext.isIE ? Ext.getBody() : Ext.getDoc();
- Ext.form.TriggerField.superclass.onRender.call(this, ct, position);
- this.wrap = this.el.wrap({cls: 'x-form-field-wrap x-form-field-trigger-wrap'});
- this.trigger = this.wrap.createChild(this.triggerConfig ||
- {tag: 'div', cls: 'x-form-trigger ' + (this.triggerClass || '')});
- this.initTrigger();
- if(!this.width){
- this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());
- }
- this.resizeEl = this.positionEl = this.wrap;
- }
- });
- /* store the original onLoad method to have acces to it in the override */
- var originalComboBoxOnLoad = Ext.form.ComboBox.prototype.onLoad;
- /* 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 (typeof v !== 'undefined' && v !== null && 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()
- }
- })
- }
- })
- // this sets the width of combobox dropdown lists automatically to the width of the combobox element
- // and thus prevents the sometimes unnecessary wide dropdowns
- ,onLoad: function() {
- var ret = originalComboBoxOnLoad.apply(this,arguments);
- // true flag on getWidth() to ignore border and padding
- var maxwidth = Math.max(this.minListWidth || 0, this.wrap.getWidth(true));
- this.list.setWidth(maxwidth);
- return ret;
- }
- });
- 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'
- ,tries: 0
- });
- 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
- ,listeners: {
- 'loadexception': {fn: function(o,trans,resp) {
- var status = _('code') + ': ' + resp.status + ' ' + resp.statusText + '<br/>';
- MODx.msg.alert(_('error'), status + resp.responseText);
- }}
- }
- })
- });
- if (getStore === true) {
- config.store.load();
- return config.store;
- }
- MODx.combo.ComboBox.superclass.constructor.call(this,config);
- this.config = config;
- this.addEvents({
- 'loaded': true
- });
- // remove the custom open class on collapse
- this.on('collapse', function() {
- this.wrap.removeClass('x-trigger-wrap-open');
- });
- this.store.on('load', function() {
- // Workaround to let the combobox know the store is loaded (to help hide/display the pagination if required)
- this.fireEvent('loaded', this);
- this.loaded = true;
- }, this, {
- single: true
- });
- return this;
- };
- Ext.extend(MODx.combo.ComboBox,Ext.form.ComboBox, {
- expand : function(){
- if(this.isExpanded() || !this.hasFocus){
- return;
- }
- // unfortunately there is no default indicator wether a combo is open or not, so we add a class here
- this.wrap.addClass('x-trigger-wrap-open');
- if (this.mode == 'remote' && !this.loaded && this.tries < 4) {
- // Store not yet loaded, let's wait a little bit
- this.tries += 1;
- Ext.defer(this.expand, 250, this);
- return false;
- }
- this.tries = 0;
- if(this.title || this.pageSize){
- this.assetHeight = 0;
- if(this.title){
- this.assetHeight += this.header.getHeight();
- }
- if(this.pageSize < this.store.getTotalCount()){
- this.assetHeight += this.footer.getHeight();
- } else {
- this.list.setHeight(this.list.getHeight() - this.footer.getHeight());
- this.pageTb.hide();
- }
- }
- if(this.bufferSize){
- this.doResize(this.bufferSize);
- delete this.bufferSize;
- }
- this.list.alignTo.apply(this.list, [this.el].concat(this.listAlign));
- // zindex can change, re-check it and set it if necessary
- this.list.setZIndex(this.getZIndex());
- this.list.show();
- if(Ext.isGecko2){
- this.innerList.setOverflow('auto'); // necessary for FF 2.0/Mac
- }
- this.mon(Ext.getDoc(), {
- scope: this,
- mousewheel: this.collapseIf,
- mousedown: this.collapseIf
- });
- this.fireEvent('expand', this);
- }
- });
- 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.connector_url
- ,baseParams: {
- action: 'security/user/getlist'
- }
- ,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.connector_url
- ,baseParams: {
- action: 'security/group/getlist'
- }
- ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><span style="font-weight: bold">{name:htmlEncode}</span>'
- ,'<br />{description:htmlEncode}</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.connector_url
- ,baseParams: {
- action: 'security/role/getlist'
- }
- });
- 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.EventGroup = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- name: 'group'
- ,hiddenName: 'group'
- ,displayField: 'name'
- ,valueField: 'name'
- ,fields: ['name']
- ,pageSize: 20
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'system/event/grouplist'
- }
- ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><span style="font-weight: bold">{name:htmlEncode}</span>','</div></tpl>')
- });
- MODx.combo.EventGroup.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.combo.EventGroup,MODx.combo.ComboBox);
- Ext.reg('modx-combo-eventgroup',MODx.combo.EventGroup);
- 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.connector_url
- ,baseParams: {
- action: 'security/resourcegroup/getlist'
- }
- });
- 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', 'name']
- ,pageSize: 20
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'context/getlist',
- exclude: config.exclude || ''
- }
- ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><span style="font-weight: bold">{name:htmlEncode}</span> <span style="font-style: italic; font-size: small;">({key:htmlEncode})</span></div></tpl>')
- });
- 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.connector_url
- ,baseParams: {
- action: 'security/access/policy/getlist'
- }
- });
- 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:htmlEncode}</span>'
- ,'<tpl if="category_name"> - <span style="font-style:italic">{category_name:htmlEncode}</span></tpl>'
- ,'<br />{description:htmlEncode()}</div></tpl>')
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'element/template/getlist'
- ,combo: 1
- }
- // ,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.connector_url
- ,baseParams: {
- action: 'element/category/getlist'
- ,showNone: true
- ,limit: 0
- }
- });
- 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']
- ,typeAhead: true
- ,minChars: 1
- ,editable: true
- ,allowBlank: true
- // ,pageSize: 20
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'system/language/getlist'
- }
- });
- 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.connector_url
- ,baseParams: {
- action: 'system/charset/getlist'
- }
- });
- 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.connector_url
- ,baseParams: {
- action: 'system/rte/getlist'
- }
- });
- 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.connector_url
- ,baseParams: {
- action: 'security/role/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.connector_url
- ,baseParams: {
- action: 'system/contenttype/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,MODx.combo.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.connector_url
- ,baseParams: {
- action: 'system/classmap/getlist'
- }
- ,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.connector_url
- ,baseParams: {
- action: 'system/derivatives/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.connector_url
- ,baseParams: {
- action: 'workspace/builder/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'
- ,typeAhead: true
- ,minChars: 1
- ,queryParam: 'search'
- ,editable: true
- ,allowBlank: true
- ,preselectValue: false
- // ,listWidth: 300
- ,pageSize: 20
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'workspace/namespace/getlist'
- }
- ,fields: ['name']
- ,displayField: 'name'
- ,valueField: 'name'
- });
- MODx.combo.Namespace.superclass.constructor.call(this,config);
- if (config.preselectValue !== false) {
- this.store.on('load', this.preselectFirstValue, this, {single: true});
- this.store.load();
- }
- };
- Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox, {
- preselectFirstValue: function(r) {
- var item;
- if (this.config.preselectValue == '') {
- item = r.getAt(0);
- } else {
- var found = r.find('name', this.config.preselectValue);
- if (found != -1) {
- item = r.getAt(found);
- } else {
- item = r.getAt(0);
- }
- }
- if (item) {
- this.setValue(item.data.name);
- this.fireEvent('select', this, item);
- }
- }
- });
- Ext.reg('modx-combo-namespace',MODx.combo.Namespace);
- MODx.combo.Browser = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- width: 400
- ,triggerAction: 'all'
- ,triggerClass: 'x-form-file-trigger'
- ,source: config.source || MODx.config.default_media_source
- });
- 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'
- ,closeAction: 'close'
- ,id: Ext.id()
- ,multiple: true
- ,source: this.config.source || MODx.config.default_media_source
- ,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.connector_url
- ,baseParams: {
- action: 'system/country/getlist'
- }
- ,displayField: 'country'
- ,valueField: 'iso'
- ,fields: [
- 'iso',
- 'country',
- 'value' // Deprecated (available for BC)
- ]
- ,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.connector_url
- ,baseParams: {
- action: 'element/propertyset/getlist'
- }
- ,displayField: 'name'
- ,valueField: 'id'
- ,fields: ['id','name']
- ,editable: false
- ,pageSize: 20
- ,width: 300
- });
- 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'
- ,parentcmp: 'modx-resource-parent-hidden'
- ,contextcmp: 'modx-resource-context-key'
- ,currentid: MODx.request.id
- });
- 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(this.config.parentcmp).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(this.config.parentcmp).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 == this.config.currentid) {
- MODx.msg.alert('',_('resource_err_own_parent'));
- return false;
- }
- var ctxf = Ext.getCmp(this.config.contextcmp);
- 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.connector_url
- ,baseParams: {
- action: 'element/tv/renders/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.connector_url
- ,baseParams: {
- action: 'element/tv/renders/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.connector_url
- ,baseParams: {
- action: 'system/action/getlist'
- }
- ,tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"><tpl if="namespace">{namespace:htmlEncode} - </tpl>{controller:htmlEncode}</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.connector_url
- ,baseParams: {
- action: 'system/dashboard/getlist'
- }
- ,tpl: new Ext.XTemplate('<tpl for=".">'
- ,'<div class="x-combo-list-item">'
- ,'<h4 class="modx-combo-title">{name:htmlEncode}</h4>'
- ,'<p class="modx-combo-desc">{description:htmlEncode}</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.connector_url
- ,baseParams: {
- action: 'source/getlist'
- }
- ,tpl: new Ext.XTemplate('<tpl for=".">'
- ,'<div class="x-combo-list-item">'
- ,'<h4 class="modx-combo-title">{name:htmlEncode}</h4>'
- ,'<p class="modx-combo-desc">{description:htmlEncode}</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.connector_url
- ,baseParams: {
- action: 'source/type/getlist'
- }
- ,tpl: new Ext.XTemplate('<tpl for=".">'
- ,'<div class="x-combo-list-item">'
- ,'<h4 class="modx-combo-title">{name:htmlEncode}</h4>'
- ,'<p class="modx-combo-desc">{description:htmlEncode}</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.connector_url
- ,baseParams: {
- action: 'security/role/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);
- MODx.combo.ManagerTheme = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- name: 'theme'
- ,hiddenName: 'theme'
- ,displayField: 'theme'
- ,valueField: 'theme'
- ,fields: ['theme']
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'workspace/theme/getlist'
- }
- ,typeAhead: false
- ,editable: false
- });
- MODx.combo.ManagerTheme.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.combo.ManagerTheme,MODx.combo.ComboBox);
- Ext.reg('modx-combo-manager-theme',MODx.combo.ManagerTheme);
- MODx.combo.SettingKey = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- name: 'key'
- ,hiddenName: 'key'
- ,displayField: 'key'
- ,valueField: 'key'
- ,fields: ['key']
- ,url: MODx.config.connector_url
- ,baseParams: {
- action: 'system/settings/getlist'
- }
- ,typeAhead: false
- ,triggerAction: 'all'
- ,editable: true
- ,forceSelection: false
- ,queryParam: 'key'
- ,pageSize: 20
- });
- MODx.combo.SettingKey.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.combo.SettingKey,MODx.combo.ComboBox);
- Ext.reg('modx-combo-setting-key',MODx.combo.SettingKey);
|