diff --git a/core/lexicon/en/default.inc.php b/core/lexicon/en/default.inc.php
index a100c928cae..4bcaabefaaf 100644
--- a/core/lexicon/en/default.inc.php
+++ b/core/lexicon/en/default.inc.php
@@ -322,6 +322,7 @@
$_lang['per_page'] = 'Per Page';
$_lang['permissions'] = 'Permissions';
$_lang['permission_denied'] = 'Permission denied!';
+$_lang['permission_denied_processor'] = 'Permission \'[[+permission]]\' required for \'[[+action]]\'!';
$_lang['permission_denied_msg'] = 'You do not have the proper access policy permissions to view this page. If you feel this is in error, please contact your systems administrator.';
$_lang['please_wait'] = 'Please wait...';
$_lang['plugin'] = 'Plugin';
diff --git a/core/model/modx/modprocessor.class.php b/core/model/modx/modprocessor.class.php
index fd54a1c5bee..28d5aea26ef 100644
--- a/core/model/modx/modprocessor.class.php
+++ b/core/model/modx/modprocessor.class.php
@@ -31,6 +31,11 @@ abstract class modProcessor {
* @var array $properties
*/
public $properties = array();
+ /**
+ * The Permission to use when checking against
+ * @var string $permission
+ */
+ public $permission = '';
/**
* Creates a modProcessor object.
@@ -163,7 +168,10 @@ abstract public function process();
*/
public function run() {
if (!$this->checkPermissions()) {
- $o = $this->failure($this->modx->lexicon('permission_denied'));
+ $o = $this->failure($this->modx->lexicon('permission_denied_processor', array(
+ 'action' => preg_replace('/[^\w\-_\/]+/i', '', $this->getProperty('action')),
+ 'permission' => ($this->permission != '') ? $this->permission : '- unknown -'
+ )));
} else {
$topics = $this->getLanguageTopics();
foreach ($topics as $topic) {
@@ -390,8 +398,6 @@ abstract class modObjectProcessor extends modProcessor {
public $classKey;
/** @var string $primaryKeyField The primary key field to grab the object by */
public $primaryKeyField = 'id';
- /** @var string $permission The Permission to use when checking against */
- public $permission = '';
/** @var array $languageTopics An array of language topics to load */
public $languageTopics = array();
diff --git a/manager/assets/modext/modx.jsgrps-min.js b/manager/assets/modext/modx.jsgrps-min.js
index 326612707ca..5e9378f4f60 100644
--- a/manager/assets/modext/modx.jsgrps-min.js
+++ b/manager/assets/modext/modx.jsgrps-min.js
@@ -1,2 +1,2 @@
-Ext.onReady(function(){if("en"==MODx.config.manager_language)return!1;Date.dayNames=[_("sunday"),_("monday"),_("tuesday"),_("wednesday"),_("thursday"),_("friday"),_("saturday")],Date.monthNames=[_("january"),_("february"),_("march"),_("april"),_("may"),_("june"),_("july"),_("august"),_("september"),_("october"),_("november"),_("december")],Ext.apply(Ext.grid.GridView.prototype,{sortAscText:_("ext_sortasc"),sortDescText:_("ext_sortdesc"),lockText:_("ext_column_lock"),unlockText:_("ext_column_unlock"),columnsText:_("ext_columns"),emptyText:_("ext_emptymsg")}),Ext.apply(Ext.DatePicker.prototype,{todayText:_("today"),todayTip:_("ext_today_tip"),minText:_("ext_mindate"),maxText:_("ext_maxdate"),monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:_("ext_nextmonth"),prevText:_("ext_prevmonth"),monthYearText:_("ext_choosemonth")}),Ext.MessageBox.buttonText={yes:_("yes"),no:_("no"),ok:_("ok"),cancel:_("cancel")},Ext.apply(Ext.PagingToolbar.prototype,{afterPageText:_("ext_afterpage"),beforePageText:_("ext_beforepage"),displayMsg:_("ext_displaying"),emptyMsg:_("ext_emptymsg"),firstText:_("ext_first"),prevText:_("ext_prev"),nextText:_("ext_next"),lastText:_("ext_last"),refreshText:_("ext_refresh")}),Ext.apply(Ext.Updater.prototype,{text:_("loading")}),Ext.apply(Ext.LoadMask.prototype,{msg:_("loading")}),Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:_("ext_splittip")}),Ext.apply(Ext.form.BasicForm.prototype,{waitTitle:_("please_wait")}),Ext.apply(Ext.form.ComboBox.prototype,{loadingText:_("loading")}),Ext.apply(Ext.form.Field.prototype,{invalidText:_("ext_invalidfield")}),Ext.apply(Ext.form.TextField.prototype,{minLengthText:_("ext_minlenfield"),maxLengthText:_("ext_maxlenfield"),invalidText:_("ext_invalidfield"),blankText:_("field_required")}),Ext.apply(Ext.form.NumberField.prototype,{minText:_("ext_minvalfield"),maxText:_("ext_maxvalfield"),nanText:_("ext_nanfield")}),Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:_("disabled"),disabledDatesText:_("disabled"),minText:_("ext_datemin"),maxText:_("ext_datemax"),invalidText:_("ext_dateinv")}),Ext.apply(Ext.form.VTypes,{emailText:_("ext_inv_email"),urlText:_("ext_inv_url"),alphaText:_("ext_inv_alpha"),alphanumText:_("ext_inv_alphanum")}),Ext.apply(Ext.grid.GroupingView.prototype,{emptyGroupText:_("ext_emptygroup"),groupByText:_("ext_groupby"),showGroupsText:_("ext_showgroups")}),Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:_("name"),valueText:_("value")}),Ext.apply(Ext.form.CheckboxGroup.prototype,{blankText:_("ext_checkboxinv")}),Ext.apply(Ext.form.RadioGroup.prototype,{blankText:_("ext_checkboxinv")}),Ext.apply(Ext.form.TimeField.prototype,{minText:_("ext_timemin"),maxText:_("ext_timemax"),invalidText:_("ext_timeinv")})}),Ext.namespace("MODx.util.Progress"),MODx.util.JSONReader=function(config){config=config||{},Ext.applyIf(config,{successProperty:"success",totalProperty:"total",root:"data"}),MODx.util.JSONReader.superclass.constructor.call(this,config,["id","msg"])},Ext.extend(MODx.util.JSONReader,Ext.data.JsonReader),Ext.reg("modx-json-reader",MODx.util.JSONReader),MODx.util.Progress={id:0,time:function(v,id,msg){msg=msg||_("saving"),MODx.util.Progress.id===id&&v<11&&Ext.MessageBox.updateProgress(v/10,msg)},reset:function(){MODx.util.Progress.id=MODx.util.Progress.id+1}},MODx.LockMask=function(config){config=config||{},Ext.applyIf(config,{msg:_("locked"),msgCls:"modx-lockmask"}),MODx.LockMask.superclass.constructor.call(this,config.el,config)},Ext.extend(MODx.LockMask,Ext.LoadMask,{locked:!1,toggle:function(){this.locked?(this.hide(),this.locked=!1):(this.show(),this.locked=!0)},lock:function(){this.locked=!0,this.show()},unlock:function(){this.locked=!1,this.hide()}}),Ext.reg("modx-lockmask",MODx.LockMask),Ext.override(Ext.form.BasicForm,{clearDirty:function(nodeToRecurse){(nodeToRecurse=nodeToRecurse||this).items.each(function(f){f.getValue&&(f.items?this.clearDirty(f):f.originalValue!=f.getValue()&&(f.originalValue=f.getValue()))},this)}}),MODx.StaticTextField=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticTextField.superclass.onRender.apply(this,arguments)}}),Ext.reg("statictextfield",MODx.StaticTextField),MODx.StaticBoolean=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(tf){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticBoolean.superclass.onRender.apply(this,arguments),this.on("change",this.onChange,this)},setValue:function(v){v=1===v?(this.addClass("green"),_("yes")):(this.addClass("red"),_("no")),MODx.StaticBoolean.superclass.setValue.apply(this,arguments)}}),Ext.reg("staticboolean",MODx.StaticBoolean),MODx.util.safeHtml=function(input,allowedTags,allowedAttributes){var strip=function(input,allowedTags,allowedAttributes){return input.replace(tags,function($0,$1){return-1")?$0:""}).replace(attributes,function($0,$1){return-1
")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),allowedAttributes=(((allowedAttributes||"href,class")+"").toLowerCase().match(/[a-z\-,]*/g)||[]).join("").concat(",");var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,attributes=/([a-z][a-z0-9]*)\s*=\s*".*?"/gi;for(input=input.replace(/|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/href(\s*?=\s*?(["'])javascript:.*?\2|\s*?=\s*?javascript:.*?(?![^> ]))/gi,'href="javascript:void(0)"');input.length!==(input=strip(input,allowedTags,allowedAttributes)).length;);return input.replace(/on([a-z][a-z0-9]*\s*=)/gi,"on$1")},Ext.override(Ext.form.Checkbox,{setBoxLabel:function(boxLabel){this.boxLabel=boxLabel,this.rendered&&this.wrap.child(".x-form-cb-label").update(boxLabel)}}),Array.prototype.in_array=function(p_val){for(var i=0,l=this.length;i',elbowMarkup=n.attributes.pseudoroot?'':'',buf=['','
',this.indentMarkup,"",elbowMarkup,iconMarkup,cb?'
':"/>"):"",'
',renderer(a)," ",'',""].join("");!0!==bulkRender&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())?this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,buf):this.wrap=Ext.DomHelper.insertHtml("beforeEnd",targetNode,buf),this.elNode=this.wrap.childNodes[0],this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0],this.ecNode=cs[1],this.iconNode=cs[2];var index=3;cb&&(this.checkbox=cs[3],this.checkbox.defaultChecked=this.checkbox.checked,index++),this.anchor=cs[index],this.textNode=cs[index].firstChild},renderItemText:function(item){return Ext.util.Format.htmlEncode(item.text)},getChildIndent:function(){if(!this.childIndent){for(var buf=[],p=this.node;p;)(!p.isRoot||p.isRoot&&p.ownerTree.rootVisible)&&!p.attributes.pseudoroot&&(p.isLast()?buf.unshift('
'):buf.unshift('
')),p=p.parentNode;this.childIndent=buf.join("")}return this.childIndent}}),Ext.override(Ext.form.Action.Submit,{handleResponse:function(response){var m=Ext.decode(response.responseText);if(this.form.errorReader){var rs=this.form.errorReader.read(response),errors=[];if(rs.records)for(var i=0,len=rs.records.length;i';document.getElementById("flashcopier").innerHTML=divinfo}}},Ext.util.Format.trimCommas=function(s){var len=(s=s.replace(",,",",")).length;return","==s.substr(len-1,1)&&(s=s.substring(0,len-1)),","==s.substr(0,1)&&(s=s.substring(1)),","==s&&(s=""),s},Ext.ns("Ext.ux.grid"),"function"!=typeof RegExp.escape&&(RegExp.escape=function(s){return"string"!=typeof s?s:s.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g,"\\$1")}),Ext.ux.grid.RowActions=function(a){Ext.apply(this,a),this.addEvents("beforeaction","action","beforegroupaction","groupaction"),Ext.ux.grid.RowActions.superclass.constructor.call(this)},Ext.extend(Ext.ux.grid.RowActions,Ext.util.Observable,{actionEvent:"click",autoWidth:!0,dataIndex:"",editable:!1,header:"",isColumn:!0,keepSelection:!1,menuDisabled:!0,sortable:!1,tplGroup:' ux-action-right {cls}" style="{style}" qtip="{qtip}">{text}
',tplRow:'ux-row-action-text" style="{hide}{style}" qtip="{qtip}">{text}
',hideMode:"visibility",widthIntercept:4,widthSlope:21,init:function(g){this.grid=g,this.id=this.id||Ext.id();var h=g.getColumnModel().lookup;delete h[void 0],(h[this.id]=this).tpl||(this.tpl=this.processActions(this.actions)),this.autoWidth&&(this.width=this.widthSlope*this.actions.length+this.widthIntercept,this.fixed=!0);var i=g.getView(),j={scope:this};j[this.actionEvent]=this.onClick,g.afterRender=g.afterRender.createSequence(function(){i.mainBody.on(j),g.on("destroy",this.purgeListeners,this)},this),this.renderer||(this.renderer=function(a,b,c,d,e,f){return b.css+=(b.css?" ":"")+"ux-row-action-cell",this.tpl.apply(this.getData(a,b,c,d,e,f))}.createDelegate(this)),i.groupTextTpl&&this.groupActions&&(i.interceptMouse=i.interceptMouse.createInterceptor(function(e){if(e.getTarget(".ux-grow-action-item"))return!1}),i.groupTextTpl=''+i.groupTextTpl+"
"+this.processActions(this.groupActions,this.tplGroup).apply()),!0===this.keepSelection&&(g.processEvent=g.processEvent.createInterceptor(function(a,e){if("mousedown"===a)return!this.getAction(e)},this))},getData:function(a,b,c,d,e,f){return c.data||{}},processActions:function(b,c){var d=[];Ext.each(b,function(a,i){a.iconCls&&"function"==typeof(a.callback||a.cb)&&(this.callbacks=this.callbacks||{},this.callbacks[a.iconCls]=a.callback||a.cb);var o={cls:a.iconIndex?"{"+a.iconIndex+"}":a.iconCls?a.iconCls:"",qtip:a.qtipIndex?"{"+a.qtipIndex+"}":a.tooltip||a.qtip?a.tooltip||a.qtip:"",text:a.textIndex?"{"+a.textIndex+"}":a.text?a.text:"",hide:a.hideIndex?''+("display"===this.hideMode?"display:none":"visibility:hidden")+";":a.hide?"display"===this.hideMode?"display:none":"visibility:hidden;":"",align:a.align||"right",style:a.style?a.style:""};d.push(o)},this);var e=new Ext.XTemplate(c||this.tplRow);return new Ext.XTemplate(e.apply({actions:d}))},getAction:function(e){var a=!1,t=e.getTarget(".ux-row-action-item");return t&&(a=t.className.replace(/ux-row-action-item /,""))&&(a=(a=a.replace(/ ux-row-action-text/,"")).trim()),a},onClick:function(e,a){var b=this.grid.getView(),c=e.getTarget(".x-grid3-row"),d=b.findCellIndex(a.parentNode.parentNode),f=this.getAction(e);if(!1!==c&&!1!==d&&!1!==f){var g=this.grid.store.getAt(c.rowIndex);if(this.callbacks&&"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,g,f,c.rowIndex,d),!0!==this.eventsSuspended&&!1===this.fireEvent("beforeaction",this.grid,g,f,c.rowIndex,d))return;!0!==this.eventsSuspended&&this.fireEvent("action",this.grid,g,f,c.rowIndex,d)}if(t=e.getTarget(".ux-grow-action-item"),t){var j,h=b.findGroup(a),i=h?h.id.replace(/ext-gen[0-9]+-gp-/,""):null;if(i){var k=new RegExp(RegExp.escape(i));j=(j=this.grid.store.queryBy(function(r){return r._groupId.match(k)}))?j.items:[]}if(f=t.className.replace(/ux-grow-action-item (ux-action-right )*/,""),"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,j,f,i),!0!==this.eventsSuspended&&!1===this.fireEvent("beforegroupaction",this.grid,j,f,i))return!1;this.fireEvent("groupaction",this.grid,j,f,i)}}}),Ext.reg("rowactions",Ext.ux.grid.RowActions),Ext.SwitchButton=Ext.extend(Ext.Component,{initComponent:function(){Ext.SwitchButton.superclass.initComponent.call(this);var mc=new Ext.util.MixedCollection;mc.addAll(this.items),this.items=mc,this.addEvents("change"),this.handler&&this.on("change",this.handler,this.scope||this)},onRender:function(ct,position){var el=document.createElement("table");el.cellSpacing=0,el.className="x-rbtn",el.id=this.id;var row=document.createElement("tr");el.appendChild(document.createElement("tbody")).appendChild(row);var count=this.items.length,last=count-1;this.activeItem=this.items.get(this.activeItem);for(var i=0;idata.rowIndex&&this.rowPosition<0&&rindex--,rindexdata.rowIndex&&1','{value}
',""),MODx.grid||(MODx.grid={}),MODx.grid.ComboColumn=Ext.extend(Ext.grid.Column,{gridId:void 0,constructor:function(cfg){MODx.grid.ComboColumn.superclass.constructor.call(this,cfg),this.renderer=this.editor&&this.editor.triggerAction?MODx.grid.ComboBoxRenderer(this.editor,this.gridId):function(value){return value}}}),Ext.grid.Column.types.combocolumn=MODx.grid.ComboColumn,MODx.grid.ComboBoxRenderer=function(combo,gridId){return function(value){return 0==combo.store.getCount()&&gridId?(combo.store.on("load",function(){var grid=Ext.getCmp(gridId);grid&&grid.getView().refresh()},this,{single:!0}),value):function(value){var idx=combo.store.find(combo.valueField,value),rec=combo.store.getAt(idx);return rec?rec.get(combo.displayField):value}(value)}},Ext.Button.buttonTemplate=new Ext.Template(''),Ext.Button.buttonTemplate.compile(),Ext.TabPanel.prototype.itemTpl=new Ext.Template('','{text}'),Ext.TabPanel.prototype.itemTpl.disableFormats=!0,Ext.TabPanel.prototype.itemTpl.compile(),Ext.override(Ext.form.TimeField,{initDate:"2/1/2008"}),Ext.ns("Ext.ux.form"),Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{dateValidator:null,defaultAutoCreate:{tag:"input",type:"hidden"},dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",otherToNow:!0,timePosition:"right",timeValidator:null,timeWidth:100,dateFormat:"m/d/y",timeFormat:"g:i A",maxDateValue:"",minDateValue:"",timeIncrement:15,maxTimeValue:null,minTimeValue:null,disabledDates:null,hideTime:!1,initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this),this.hasOwnProperty("offset_time")&&!isNaN(this.offset_time)||(this.offset_time=0);var dateConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.dateValidator,disabledDates:this.disabledDates||null,disabledDays:this.disabledDays||[],showToday:this.showToday||!0,maxValue:this.maxDateValue||"",minValue:this.minDateValue||"",startDay:this.startDay||0,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig);this.df=new Ext.form.DateField(dateConfig),delete(this.df.ownerCt=this).dateFormat,delete this.disabledDates,delete this.disabledDays,delete this.maxDateValue,delete this.minDateValue,delete this.startDay;var timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.timeValidator,increment:this.timeIncrement||15,maxValue:this.maxTimeValue||null,minValue:this.minTimeValue||null,hidden:this.hideTime,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig),delete(this.tf.ownerCt=this).timeFormat,delete this.maxTimeValue,delete this.minTimeValue,delete this.timeIncrement,this.relayEvents(this.df,["focus","specialkey","invalid","valid"]),this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]),this.on("specialkey",this.onSpecialKey,this)},onRender:function(ct,position){if(!this.isRendered){var t;if(Ext.ux.form.DateTime.superclass.onRender.call(this,ct,position),t="below"===this.timePosition||"bellow"===this.timePosition?Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},!0):Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},!0),this.tableEl=t,this.wrap=t.wrap({cls:"x-form-field-wrap x-datetime-wrap"}),this.wrap.on("mousedown",this.onMouseDown,this,{delay:10}),this.df.render(t.child("td.ux-datetime-date")),this.tf.render(t.child("td.ux-datetime-time")),this.df.el.swallowEvent(["keydown","keypress"]),this.tf.el.swallowEvent(["keydown","keypress"]),"side"===this.msgTarget){var elp=this.el.findParent(".x-form-element",10,!0);elp&&(this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"}));var o={errorIcon:this.errorIcon,msgTarget:"side",alignErrorIcon:this.alignErrorIcon.createDelegate(this)};Ext.apply(this.df,o),Ext.apply(this.tf,o)}this.el.dom.name=this.hiddenName||this.name||this.id,this.df.el.dom.removeAttribute("name"),this.tf.el.dom.removeAttribute("name"),this.isRendered=!0,this.updateHidden()}},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0])},initDateValue:function(){this.dateValue=this.otherToNow?new Date:new Date(1970,0,1,0,0,0)},clearInvalid:function(){this.df.clearInvalid(),this.tf.clearInvalid()},markInvalid:function(msg){this.df.markInvalid(msg),this.tf.markInvalid(msg)},beforeDestroy:function(){this.isRendered&&(this.wrap.removeAllListeners(),this.wrap.remove(),this.tableEl.remove(),this.df.destroy(),this.tf.destroy())},disable:function(){return this.isRendered&&(this.df.disabled=this.disabled,this.df.onDisable(),this.tf.onDisable()),this.disabled=!0,this.df.disabled=!0,this.tf.disabled=!0,this.fireEvent("disable",this),this},enable:function(){return this.rendered&&(this.df.onEnable(),this.tf.onEnable()),this.disabled=!1,this.df.disabled=!1,this.tf.disabled=!1,this.fireEvent("enable",this),this},focus:function(){this.df.focus()},getPositionEl:function(){return this.wrap},getResizeEl:function(){return this.wrap},getValue:function(){return this.dateValue?new Date(this.dateValue):""},isValid:function(){return this.df.isValid()&&this.tf.isValid()},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible()},onBlur:function(f){this.wrapClick&&(f.focus(),this.wrapClick=!1),f===this.df?this.updateDate():this.updateTime(),this.updateHidden(),this.validate(),function(){if(!this.df.hasFocus&&!this.tf.hasFocus){var v=this.getValue();String(v)!==String(this.startValue)&&this.fireEvent("change",this,v,this.startValue),this.hasFocus=!1,this.fireEvent("blur",this)}}.defer(100,this)},onFocus:function(){this.hasFocus||(this.hasFocus=!0,this.startValue=this.getValue(),this.fireEvent("focus",this))},onMouseDown:function(e){this.disabled||(this.wrapClick="td"===e.target.nodeName.toLowerCase())},onSpecialKey:function(t,e){var key=e.getKey();key===e.TAB&&(t!==this.df||e.shiftKey||(e.stopEvent(),this.tf.focus()),t===this.tf&&e.shiftKey&&(e.stopEvent(),this.df.focus()),this.updateValue()),key===e.ENTER&&this.updateValue()},reset:function(){this.df.setValue(this.originalValue),this.tf.setValue(this.originalValue)},setDate:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.df.setValue(date)},setTime:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.tf.setValue(date)},setSize:function(w,h){w&&("below"===this.timePosition?(this.df.setSize(w,h),this.tf.setSize(w,h),Ext.isIE&&(this.df.el.up("td").setWidth(w),this.tf.el.up("td").setWidth(w))):(this.df.setSize(w-this.timeWidth-4,h),this.tf.setSize(this.timeWidth,h),Ext.isIE&&(this.df.el.up("td").setWidth(w-this.timeWidth-4),this.tf.el.up("td").setWidth(this.timeWidth))))},setValue:function(val){if(val||!0!==this.emptyToNow){if(!val)return this.setDate(""),this.setTime(""),void this.updateValue();var da;"number"==typeof val?val=new Date(val):"string"==typeof val&&this.hiddenFormat&&(val=Date.parseDate(val,this.hiddenFormat)),(val=val||new Date(1970,0,1,0,0,0))instanceof Date?(this.setDate(val),this.setTime(val),this.dateValue=new Date(Ext.isIE?val.getTime():val)):(da=val.split(this.dtSeparator),this.setDate(da[0]),da[1]&&(da[2]&&(da[1]+=da[2]),this.setTime(da[1]))),this.updateValue()}else this.setValue(new Date)},setVisible:function(visible){return visible?(this.df.show(),this.tf.show()):(this.df.hide(),this.tf.hide()),this},show:function(){return this.setVisible(!0)},hide:function(){return this.setVisible(!1)},updateDate:function(){var d=this.df.getValue();d?(this.dateValue instanceof Date||(this.initDateValue(),this.tf.getValue()||this.setTime(this.dateValue)),this.dateValue.setMonth(0),this.dateValue.setFullYear(d.getFullYear()),this.dateValue.setMonth(d.getMonth(),d.getDate())):(this.dateValue="",this.setTime(""))},updateTime:function(){var t=this.tf.getValue();!t||t instanceof Date||(t=Date.parseDate(t,this.tf.format)),t&&!this.df.getValue()&&(this.initDateValue(),this.setDate(this.dateValue)),this.dateValue instanceof Date&&(t?(this.dateValue.setHours(t.getHours()),this.dateValue.setMinutes(t.getMinutes()),this.dateValue.setSeconds(t.getSeconds())):(this.dateValue.setHours(0),this.dateValue.setMinutes(0),this.dateValue.setSeconds(0)))},updateHidden:function(){if(this.isRendered){var value="";this.dateValue instanceof Date&&(value=this.dateValue.add(Date.MINUTE,0-60*new Number(this.offset_time)).format(this.hiddenFormat)),this.el.dom.value=value}},updateValue:function(){this.updateDate(),this.updateTime(),this.updateHidden()},validate:function(){return this.df.validate()&&this.tf.validate()},renderer:function(field){var format=field.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;format+=" "+(field.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat);return function(val){return Ext.util.Format.date(val,format)}}}),Ext.reg("xdatetime",Ext.ux.form.DateTime),Ext.namespace("Ext.ux.Utils"),Ext.ux.Utils.EventQueue=function(handler,scope){if(!handler)throw"Handler is required.";this.handler=handler,this.scope=scope||window,this.queue=[],this.is_processing=!1,this.postEvent=function(event,data){data=data||null,this.queue.push({event:event,data:data}),this.is_processing||this.process()},this.flushEventQueue=function(){this.queue=[]},this.process=function(){for(;0 ").compile()},createForm:function(){this.form=Ext.DomHelper.append(this.body,{tag:"form",method:"post",action:this.url,style:"position: absolute; left: -100px; top: -100px; width: 100px; height: 100px; clear: both;"})},createProgressBar:function(){this.progress_bar=this.add(new Ext.ProgressBar({x:0,y:0,anchor:"0",value:0,text:this.i18n.progress_waiting_text}))},createGrid:function(){var store=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},Ext.ux.UploadDialog.FileRecord),sortInfo:{field:"state",direction:"DESC"},pruneModifiedRecords:!0}),cm=new Ext.grid.ColumnModel([{header:this.i18n.state_col_title,width:this.i18n.state_col_width,resizable:!1,dataIndex:"state",sortable:!0,renderer:this.renderStateCell.createDelegate(this)},{header:this.i18n.filename_col_title,width:this.i18n.filename_col_width,dataIndex:"filename",sortable:!0,renderer:this.renderFilenameCell.createDelegate(this)},{header:this.i18n.note_col_title,width:this.i18n.note_col_width,dataIndex:"note",sortable:!0,renderer:this.renderNoteCell.createDelegate(this)}]);this.grid_panel=new Ext.grid.GridPanel({ds:store,cm:cm,layout:"fit",height:this.height-100,region:"center",x:0,y:22,border:!0,viewConfig:{autoFill:!0,forceFit:!0},bbar:new Ext.Toolbar}),this.grid_panel.on("render",this.onGridRender,this),this.add(this.grid_panel),this.grid_panel.getSelectionModel().on("selectionchange",this.onGridSelectionChange,this)},fillToolbar:function(){var tb=this.grid_panel.getBottomToolbar();tb.x_buttons={},tb.x_buttons.add=tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({input_name:this.post_var_name,text:this.i18n.add_btn_text,tooltip:this.i18n.add_btn_tip,iconCls:"ext-ux-uploaddialog-addbtn",handler:this.onAddButtonFileSelected,scope:this})),tb.x_buttons.remove=tb.addButton({text:this.i18n.remove_btn_text,tooltip:this.i18n.remove_btn_tip,iconCls:"ext-ux-uploaddialog-removebtn",handler:this.onRemoveButtonClick,scope:this}),tb.x_buttons.reset=tb.addButton({text:this.i18n.reset_btn_text,tooltip:this.i18n.reset_btn_tip,iconCls:"ext-ux-uploaddialog-resetbtn",handler:this.onResetButtonClick,scope:this}),tb.x_buttons.upload=tb.addButton({text:this.i18n.upload_btn_start_text,tooltip:this.i18n.upload_btn_start_tip,iconCls:"ext-ux-uploaddialog-uploadstartbtn",handler:this.onUploadButtonClick,scope:this}),tb.x_buttons.close=tb.addButton({text:this.i18n.close_btn_text,tooltip:this.i18n.close_btn_tip,handler:this.onCloseButtonClick,scope:this})},renderStateCell:function(data,cell,record,row_index,column_index,store){return this.state_tpl.apply({state:data})},renderFilenameCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},renderNoteCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},getFileExtension:function(filename){var result=null,parts=filename.split(".");return 1((?:.|\n)*)<\/pre>$/i);filter&&(rt=filter[1]),json_response=Ext.util.JSON.decode(rt)}catch(e){}var data={record:options.record,response:json_response};"success"in json_response&&json_response.success?this.fsa.postEvent("file-upload-success",data):this.fsa.postEvent("file-upload-error",data)},onAjaxFailure:function(response,options){var data={record:options.record,response:{success:!1,error:this.i18n.note_upload_failed}};this.fsa.postEvent("file-upload-failed",data)},startUpload:function(){this.fsa.postEvent("start-upload")},stopUpload:function(){this.fsa.postEvent("stop-upload")},getUrl:function(){return this.url},setUrl:function(url){this.url=url},getBaseParams:function(){return this.base_params},setBaseParams:function(params){this.base_params=params},getUploadAutostart:function(){return this.upload_autostart},setUploadAutostart:function(value){this.upload_autostart=value},getMakeReload:function(){return this.Make_Reload},setMakeReload:function(value){this.Make_Reload=value},getAllowCloseOnUpload:function(){return this.allow_close_on_upload},setAllowCloseOnUpload:function(value){this.allow_close_on_upload},getResetOnHide:function(){return this.reset_on_hide},setResetOnHide:function(value){this.reset_on_hide=value},getPermittedExtensions:function(){return this.permitted_extensions},setPermittedExtensions:function(value){this.permitted_extensions=value},isUploading:function(){return this.is_uploading},isNotEmptyQueue:function(){return 0=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(store,records,options){var q=options.params[this.queryParam]||store.baseParams[this.queryParam]||"",isValuesQuery=options.params[this.queryValuesIndicator]||store.baseParams[this.queryValuesIndicator];if(this.removeValuesFromStore&&this.store.each(function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)},this),isValuesQuery){var params=q.split(this.queryValuesDelimiter);Ext.each(params,function(p){this.remoteLookup.remove(p);var rec=this.findRecord(this.valueField,p);rec&&this.addRecord(rec)},this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())}""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,function(r){if("object"==typeof r&&r[this.valueField]===q){if(this.remoteLookup.remove(r),records.length&&records[0].get(this.valueField)===q)return void this.addRecord(records[0]);var rec=this.createRecord(r);return this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),void function(){this.isExpanded()&&this.collapse()}.defer(10,this)}},this);var toAdd=[];if(""===q)Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)},this);else{var re=new RegExp(Ext.escapeRe(q)+".*","i");Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)},this)}this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;if(o.clearCurrentFocus().collapse(),o.navigateItemsWithTab)this.focus();else{o.el.dom.focus();(function(){this.onLnkFocus(),o.currentFocus=this}).defer(10,this)}},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(ct,position){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,ct,position);var el=this.el;el&&el.remove(),this.el=el=ct.createChild({tag:"li"},ct.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);var cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"===btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(dir){var el=this.el["left"==dir?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){var actionDestroy=function(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()};return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields)if(this.config.fields.hasOwnProperty(i)){var f=this.config.fields[i];f.xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f)}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "].indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id:id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,function(e){"yes"===e&&Ext.callback(el.handler,this)},el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j'+_("file_err_filter")+"",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update(''+_("data_err_load")+"
")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn,targs=this.getTemplateArgs();targs.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,targs,!0):this.template.append(ct,targs,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,0]],triggerConfig:{tag:"button",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off","aria-label":_("search")},minChars:1,displayField:"name",valueField:"_action",width:259,maxWidth:437,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','","",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"modDocument":return"file";case"modSymLink":return"files-o";case"modWebLink":return"link";case"modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label?values.label:_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"search/search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){if(!this.list){var cls="x-combo-list",listParent=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:listParent,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(listParent)});var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='{'+this.displayField+"}
"),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()},this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()},this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px"))}},onTypeAhead:function(){},onSelect:function(record,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();var target="?a="+record.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},toggle:function(hide){var uberbar=Ext.get(this.container.id);uberbar.hasClass("visible")||hide?(this.blurBar(),uberbar.removeClass("visible")):(uberbar.addClass("visible"),this.focusBar())},hideBar:function(){this.toggle(!0)},focusBar:function(){this.selectText(),this.animate()},blurBar:function(){this.animate(!0)},animate:function(blur){var to=blur?this.width:this.maxWidth;this.wrap.setWidth(to,!0),this.el.setWidth(to-this.getTriggerWidth(),!0)},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()}),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,errorHandlingTabs:[],errorHandlingIgnoreTabs:[],submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,a]),this.fireEvent("success",{form:f,result:a.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);var lastActiveEle=Ext.state.Manager.get("curFocus");if(lastActiveEle&&""!=lastActiveEle){Ext.state.Manager.clear("curFocus");var initFocus=document.getElementById(lastActiveEle);initFocus&&initFocus.focus()}}}),!0)},failure:function(o){if(this.warnUnsavedChanges=!0,-1!==this.getForm().baseParams.action.indexOf("/create")){var btn=Ext.getCmp("modx-abtn-save");btn&&btn.enable()}this.fireEvent("failureSubmit")},focusFirstField:function(){if(0mainTabs.initialConfig.items.length&&mainTabs.items.keys.forEach(function(key){mainTabs.items.map[key].hasOwnProperty("id")&&-1===this.errorHandlingIgnoreTabs.indexOf(mainTabs.items.map[key].id)&&-1===searchTabs.indexOf(mainTabs.items.map[key].id)&&searchTabs.push(mainTabs.items.map[key].id)},this);for(var i=0;i",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:'",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var newInstance=srcInstance.constructor();for(var i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data).hasOwnProperty("trail")&&data.trail.unshift(this.root);this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(e){for(var target=e.getTarget(),index=1,parent=target.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;0";MODx.msg.alert(_("error"),status+resp.responseText)}}}})}),!0===getStore?(config.store.load(),config.store):(MODx.combo.ComboBox.superclass.constructor.call(this,config),this.config=config,this.addEvents({loaded:!0}),this.on("collapse",function(){this.wrap.removeClass("x-trigger-wrap-open")}),this.store.on("load",function(){this.fireEvent("loaded",this),this.loaded=!0,this.isExpanded()&&this.pageSize{name:htmlEncode}',"
{description:htmlEncode}
")}),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('{name:htmlEncode}',"
")}),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('{name:htmlEncode} ({key:htmlEncode})
')}),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:!1,editable:!1,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('{templatename:htmlEncode}',' - {category_name:htmlEncode}',"
{description:htmlEncode()}
"),url:MODx.config.connector_url,baseParams:{action:"element/template/getlist",combo:1},allowBlank:!0}),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:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"element/category/getlist",showNone:!0,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,!0)}}),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:!0,minChars:1,editable:!0,allowBlank:!0,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"security/role/getlist",addNone:!0}}),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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),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:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!1}),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:!0,minChars:1,queryParam:"search",editable:!0,allowBlank:!0,preselectValue:!1,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),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),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);item=-1!=found?r.getAt(found):r.getAt(0)}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){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},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"],editable:!0,value:0,typeAhead:!0}),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:!1,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:!1,readOnly:!1,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:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()},this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(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=!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var t=Ext.getCmp("modx-resource-tree");if(!t)return!1;t.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);if(ctxf){var ctxv=ctxf.getValue();node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)}return this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),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:!1,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:!1,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('{namespace:htmlEncode} - {controller:htmlEncode}
')}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"system/dashboard/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"source/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"source/type/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"security/role/getAuthorityList",addNone:!0}}),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:!1,editable:!1}),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:!1,triggerAction:"all",editable:!0,forceSelection:!1,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),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'};Ext.applyIf(config.groupingConfig,groupingConfig),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})}if(config.tbar)for(var ix=0;ix":"")+data.msg},this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg)}},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(r){if(this.fireEvent("afterRemoveRow",r)){var rx=this.getSelectionModel().getSelected();this.getStore().remove(rx)}},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){if(e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),this.getMenu){var m=this.getMenu(g,ri,e);m&&m.length&&0 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i '},beforeExpand:function(record,body,rowIndex){return!1!==this.fireEvent("beforeexpand",this,record,body,rowIndex)&&(this.tpl&&this.lazyRender&&(body.innerHTML=this.getBodyContent(record,rowIndex)),!0)},toggleRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row)),this[Ext.fly(row).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](row)},expandRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",row);this.beforeExpand(record,body,row.rowIndex)&&(this.state[record.id]=!0,Ext.fly(row).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded"),this.fireEvent("expand",this,record,body,row.rowIndex))},collapseRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.fly(row).child("tr:nth(1) div.x-grid3-row-body",!0);!1!==this.fireEvent("beforecollapse",this,record,body,row.rowIndex)&&(this.state[record.id]=!1,Ext.fly(row).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed"),this.fireEvent("collapse",this,record,body,row.rowIndex))}}),Ext.preg("rowexpander",Ext.ux.grid.RowExpander),Ext.grid.RowExpander=Ext.ux.grid.RowExpander,Ext.ns("Ext.ux.grid"),Ext.ux.grid.CheckColumn=function(a){Ext.apply(this,a),this.id||(this.id=Ext.id()),this.renderer=this.renderer.createDelegate(this)},Ext.ux.grid.CheckColumn.prototype={init:function(b){this.grid=b,this.grid.on("render",function(){this.grid.getView().mainBody.on("mousedown",this.onMouseDown,this)},this),this.grid.on("destroy",this.onDestroy,this)},onMouseDown:function(e,t){if(this.grid.fireEvent("rowclick"),t.className&&-1!=t.className.indexOf("x-grid3-cc-"+this.id)){e.stopEvent();var a=this.grid.getView().findRowIndex(t),b=this.grid.store.getAt(a);b.set(this.dataIndex,!b.data[this.dataIndex]),this.grid.fireEvent("afteredit")}},renderer:function(v,p,a){return p.css+=" x-grid3-check-col-td",'
'},onDestroy:function(){var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)}},Ext.preg("checkcolumn",Ext.ux.grid.CheckColumn),Ext.grid.CheckColumn=Ext.ux.grid.CheckColumn,Ext.grid.PropertyColumnModel=function(a,b){var g=Ext.grid,f=Ext.form;this.grid=a,g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:!0,dataIndex:"name",id:"name",menuDisabled:!0},{header:this.valueText,width:50,resizable:!1,dataIndex:"value",id:"value",menuDisabled:!0}]),this.store=b;var c=new f.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]},getValue:function(){return"true"==this.el.dom.value}});this.editors={date:new g.GridEditor(new f.DateField({selectOnFocus:!0})),string:new g.GridEditor(new f.TextField({selectOnFocus:!0})),number:new g.GridEditor(new f.NumberField({selectOnFocus:!0,style:"text-align:left;"})),boolean:new g.GridEditor(c)},this.renderCellDelegate=this.renderCell.createDelegate(this),this.renderPropDelegate=this.renderProp.createDelegate(this)},Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return a?"true":"false"},isCellEditable:function(a,b){return 1==a},getRenderer:function(a){return 1==a?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(v){return this.getPropertyName(v)},renderCell:function(a){var b=a;return Ext.isDate(a)?b=this.renderDate(a):"boolean"==typeof a&&(b=this.renderBool(a)),Ext.util.Format.htmlEncode(b)},getPropertyName:function(a){var b=this.grid.propertyNames;return b&&b[a]?b[a]:a},getCellEditor:function(a,b){var p=this.store.getProperty(b),n=p.data.name,val=p.data.value;return this.grid.customEditors[n]?this.grid.customEditors[n]:Ext.isDate(val)?this.editors.date:"number"==typeof val?this.editors.number:"boolean"==typeof val?this.editors.boolean:this.editors.string},destroy:function(){for(var a in Ext.grid.PropertyColumnModel.superclass.destroy.call(this),this.editors)Ext.destroy(a)}}),MODx.Console=function(config){config=config||{},Ext.Updater.defaults.showLoadIndicator=!1,Ext.applyIf(config,{title:_("console"),modal:!Ext.isIE,closeAction:"hide",resizable:!1,collapsible:!1,closable:!0,maximizable:!0,autoScroll:!0,height:400,width:600,refreshRate:2,cls:"modx-window modx-console",items:[{itemId:"header",cls:"modx-console-text",html:_("console_running"),border:!1},{xtype:"panel",itemId:"body",cls:"x-panel-bwrap modx-console-text"}],buttons:[{text:_("console_download_output"),handler:this.download,scope:this},{text:_("ok"),cls:"primary-button",itemId:"okBtn",disabled:!0,scope:this,handler:this.hideConsole}],keys:[{key:Ext.EventObject.S,ctrl:!0,fn:this.download,scope:this},{key:Ext.EventObject.ENTER,fn:this.hideConsole,scope:this}]}),MODx.Console.superclass.constructor.call(this,config),this.config=config,this.addEvents({shutdown:!0,complete:!0}),this.on("show",this.init,this),this.on("hide",function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fireEvent("shutdown"),this.destroy()}),this.on("complete",this.onComplete,this)},Ext.extend(MODx.Console,Ext.Window,{mgr:null,running:!1,init:function(){Ext.Msg.hide(),this.fbar.setDisabled(!0),this.keyMap.setDisabled(!0),this.getComponent("body").el.dom.innerHTML="",this.provider=new Ext.direct.PollingProvider({type:"polling",url:MODx.config.connector_url,interval:1e3,baseParams:{action:"system/console",register:this.config.register||"",topic:this.config.topic||"",clear:!1,show_filename:this.config.show_filename||0,format:this.config.format||"html_log"}}),Ext.Direct.addProvider(this.provider),Ext.Direct.on("message",this.onMessage,this)},onMessage:function(e,p){var out=this.getComponent("body");out&&(out.el.insertHtml("beforeEnd",e.data),e.data="",out.el.scroll("b",out.el.getHeight(),!0)),e.complete&&this.fireEvent("complete"),delete e},onComplete:function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fbar.setDisabled(!1),this.keyMap.setDisabled(!1)},download:function(){var c=this.getComponent("body").getEl().dom.innerHTML||" ";MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"system/downloadoutput",data:c},listeners:{success:{fn:function(r){location.href=MODx.config.connector_url+"?action=system/downloadOutput&HTTP_MODAUTH="+MODx.siteId+"&download="+r.message},scope:this}}})},setRegister:function(register,topic){this.config.register=register,this.config.topic=topic},hideConsole:function(){this.hide()}}),Ext.reg("modx-console",MODx.Console),Ext.namespace("MODx.portal"),Ext.ux.Portal=Ext.extend(Ext.Panel,{layout:"column",cls:"x-portal",defaultType:"portalcolumn",initComponent:function(){Ext.ux.Portal.superclass.initComponent.call(this),this.addEvents({validatedrop:!0,beforedragover:!0,dragover:!0,beforedrop:!0,drop:!0})},initEvents:function(){Ext.ux.Portal.superclass.initEvents.call(this),this.dd=new Ext.ux.Portal.DropZone(this,this.dropConfig)},beforeDestroy:function(){this.dd&&this.dd.unreg(),Ext.ux.Portal.superclass.beforeDestroy.call(this)}}),Ext.reg("portal",Ext.ux.Portal),Ext.ux.Portal.DropZone=function(a,b){this.portal=a,Ext.dd.ScrollManager.register(a.body),Ext.ux.Portal.DropZone.superclass.constructor.call(this,a.bwrap.dom,b),a.body.ddScrollConfig=this.ddScrollConfig},Ext.extend(Ext.ux.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:!0,increment:200},createEvent:function(a,e,b,d,c,f){return{portal:this.portal,panel:b.panel,columnIndex:d,column:c,position:f,data:b,source:a,rawEvent:e,status:this.dropAllowed}},notifyOver:function(a,e,b){var d=e.getXY(),portal=this.portal,px=a.proxy;this.grid||(this.grid=this.getGrid());var f=portal.body.dom.clientWidth;this.lastCW?this.lastCW!=f&&(this.lastCW=f,portal.doLayout(),this.grid=this.getGrid()):this.lastCW=f;for(var g=0,xs=this.grid.columnX,cmatch=!1,i=xs.length;gd[1]){match=!0;break}}pos=(match&&p?pos:c.items.getCount())+(overSelf?-1:0);var j=this.createEvent(a,e,b,g,c,pos);return!1!==portal.fireEvent("validatedrop",j)&&!1!==portal.fireEvent("beforedragover",j)&&(px.getProxy().setWidth("auto"),p?px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null):px.moveProxy(c.el.dom,null),this.lastPos={c:c,col:g,p:!!(overSelf||match&&p)&&pos},this.scrollPos=portal.body.getScroll(),portal.fireEvent("dragover",j)),j.status},notifyOut:function(){delete this.grid},notifyDrop:function(a,e,b){if(delete this.grid,this.lastPos){var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p,f=this.createEvent(a,e,b,col,c,!1!==pos?pos:c.items.getCount());if(!1!==this.portal.fireEvent("validatedrop",f)&&!1!==this.portal.fireEvent("beforedrop",f)){a.proxy.getProxy().remove(),a.panel.el.dom.parentNode.removeChild(a.panel.el.dom),!1!==pos?(c==a.panel.ownerCt&&c.items.items.indexOf(a.panel)<=pos&&pos++,c.insert(pos,a.panel)):c.add(a.panel),c.doLayout(),this.portal.fireEvent("drop",f);var g=this.scrollPos.top;if(g){var d=this.portal.body.dom;setTimeout(function(){d.scrollTop=g},10)}}delete this.lastPos}},getGrid:function(){var a=this.portal.bwrap.getBox();return a.columnX=[],this.portal.items.each(function(c){a.columnX.push({x:c.el.getX(),w:c.el.getWidth()})}),a},unreg:function(){Ext.ux.Portal.DropZone.superclass.unreg.call(this)}}),MODx.portal.Column=Ext.extend(Ext.Container,{layout:"anchor",defaultType:"portlet",cls:"x-portal-column",style:"padding:10px;",columnWidth:1,defaults:{collapsible:!0,autoHeight:!0,titleCollapse:!0,draggable:!0,style:"padding: 5px 0;",bodyStyle:"padding: 15px;"}}),Ext.reg("portalcolumn",MODx.portal.Column),MODx.portal.Portlet=Ext.extend(Ext.Panel,{anchor:Ext.isSafari?"98%":"100%",frame:!0,collapsible:!0,draggable:!0,cls:"x-portlet",stateful:!1,layout:"form"}),Ext.reg("portlet",MODx.portal.Portlet),MODx.window.DuplicateResource=function(config){config=config||{},this.ident=config.ident||"dupres"+Ext.id(),Ext.applyIf(config,{title:config.pagetitle?_("duplicate")+" "+config.pagetitle:_("duplication_options"),id:this.ident}),MODx.window.DuplicateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateResource,MODx.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record))return!(this.fp.getForm().baseParams={action:"resource/updateduplicate",prefixDuplicate:!0,id:this.config.resource});var items=[];items.push({xtype:"textfield",id:"modx-"+this.ident+"-name",fieldLabel:_("resource_name_new"),name:"name",anchor:"100%",value:""}),this.config.hasChildren&&items.push({xtype:"xcheckbox",boxLabel:_("duplicate_children")+" ("+this.config.childCount+")",hideLabel:!0,name:"duplicate_children",id:"modx-"+this.ident+"-duplicate-children",checked:!0,listeners:{check:{fn:function(cb,checked){checked?this.fp.getForm().findField("modx-"+this.ident+"-name").disable():this.fp.getForm().findField("modx-"+this.ident+"-name").enable()},scope:this}}});var pov=MODx.config.default_duplicate_publish_option||"preserve";items.push({xtype:"fieldset",title:_("publishing_options"),items:[{xtype:"radiogroup",hideLabel:!0,columns:1,value:pov,items:[{boxLabel:_("po_make_all_unpub"),hideLabel:!0,name:"published_mode",inputValue:"unpublish"},{boxLabel:_("po_make_all_pub"),hideLabel:!0,name:"published_mode",inputValue:"publish"},{boxLabel:_("po_preserve"),hideLabel:!0,name:"published_mode",inputValue:"preserve"}]}]}),this.fp=this.createForm({url:this.config.url||MODx.config.connector_url,baseParams:this.config.baseParams||{action:"resource/duplicate",id:this.config.resource,prefixDuplicate:!0},labelWidth:125,defaultType:"textfield",autoHeight:!0,items:items}),this.renderForm()}}),Ext.reg("modx-window-resource-duplicate",MODx.window.DuplicateResource),MODx.window.DuplicateElement=function(config){config=config||{},this.ident=config.ident||"dupeel-"+Ext.id();var flds=[{xtype:"hidden",name:"id",id:"modx-"+this.ident+"-id"},{xtype:"hidden",name:"source",id:"modx-"+this.ident+"-source"},{xtype:"textfield",fieldLabel:_("element_name_new"),name:"template"==config.record.type?"templatename":"name",id:"modx-"+this.ident+"-name",anchor:"100%",enableKeyEvents:!0,listeners:{afterRender:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}},keyup:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}}}}];"tv"==config.record.type&&(flds.push({xtype:"textfield",fieldLabel:_("element_caption_new"),name:"caption",id:"modx-"+this.ident+"-caption",anchor:"100%"}),flds.push({xtype:"xcheckbox",fieldLabel:_("element_duplicate_values"),labelSeparator:"",name:"duplicateValues",id:"modx-"+this.ident+"-duplicate-values",anchor:"100%",inputValue:1,checked:!1})),!0===config.record.static&&flds.push({xtype:"textfield",fieldLabel:_("static_file"),name:"static_file",id:"modx-"+this.ident+"-static_file",anchor:"100%"}),Ext.applyIf(config,{title:_("element_duplicate"),url:MODx.config.connector_url,action:"element/"+config.record.type+"/duplicate",width:600,fields:flds,labelWidth:150}),MODx.window.DuplicateElement.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateElement,MODx.Window,{setStaticElementsPath:function(f){if(!0===this.config.record.static){var category=this.config.record.category;if("number"!=typeof category){0"+_("session_logging_out")+"
",xtype:"modx-description"},{xtype:"textfield",id:"modx-"+this.ident+"-username",fieldLabel:_("username"),name:"username",anchor:"100%"},{xtype:"textfield",inputType:"password",id:"modx-"+this.ident+"-password",fieldLabel:_("password"),name:"password",anchor:"100%"},{xtype:"hidden",name:"rememberme",value:1}],buttons:[{text:_("logout"),scope:this,handler:function(){location.href="?logout=1"}},{text:_("login"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.Login.superclass.constructor.call(this,config),this.on("success",this.onLogin,this)},Ext.extend(MODx.window.Login,MODx.Window,{onLogin:function(o){var r=o.a.result;r.object&&r.object.token&&(Ext.Ajax.defaultHeaders={modAuth:r.object.token},Ext.Ajax.extraParams={HTTP_MODAUTH:r.object.token},MODx.siteId=r.object.token,MODx.msg.status({message:_("session_extended")}))}}),Ext.reg("modx-window-login",MODx.window.Login),function(window){"use strict";var CanvasPrototype=window.HTMLCanvasElement&&window.HTMLCanvasElement.prototype,hasBlobConstructor=window.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),hasArrayBufferViewSupport=hasBlobConstructor&&window.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dataURLtoBlob=(hasBlobConstructor||BlobBuilder)&&window.atob&&window.ArrayBuffer&&window.Uint8Array&&function(dataURI){var byteString,arrayBuffer,intArray,i,mimeString,bb;for(byteString=0<=dataURI.split(",")[0].indexOf("base64")?atob(dataURI.split(",")[1]):decodeURIComponent(dataURI.split(",")[1]),arrayBuffer=new ArrayBuffer(byteString.length),intArray=new Uint8Array(arrayBuffer),i=0;i>2,enc2=(3&byte1)<<4|byte2>>4;isNaN(byte2)?enc3=enc4=64:(enc3=(15&byte2)<<2|byte3>>6,enc4=isNaN(byte3)?64:63&byte3),outStr+=b64.charAt(enc1)+b64.charAt(enc2)+b64.charAt(enc3)+b64.charAt(enc4)}return outStr}};function _emit(target,fn,name,res,ext){var evt={type:name.type||name,target:target,result:res};_extend(evt,ext),fn(evt)}function _hasSupportReadAs(method){return FileReader&&!!FileReader.prototype["readAs"+method]}function _readAs(file,fn,method,encoding){if(api.isBlob(file)&&_hasSupportReadAs(method)){var Reader=new FileReader;_on(Reader,_readerEvents,function _fn(evt){var type=evt.type;"progress"==type?_emit(file,fn,evt,evt.target.result,{loaded:evt.loaded,total:evt.total}):"loadend"==type?(_off(Reader,_readerEvents,_fn),Reader=null):_emit(file,fn,evt,evt.target.result)});try{encoding?Reader["readAs"+method](file,encoding):Reader["readAs"+method](file)}catch(err){_emit(file,fn,"error",void 0,{error:err.toString()})}}else _emit(file,fn,"error",void 0,{error:"filreader_not_support_"+method})}function _isEntry(item){return item&&(item.isFile||item.isDirectory)}function _getAsEntry(item){var entry;return item.getAsEntry?entry=item.getAsEntry():item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry()),entry}function isInputFile(el){return _rinput.test(el&&el.tagName)}function _getDataTransfer(evt){return(evt.originalEvent||evt||"").dataTransfer||{}}api.addInfoReader(/^image/,function(file,callback){if(!file.__dimensions){var defer=file.__dimensions=api.defer();api.readAsImage(file,function(evt){var img=evt.target;defer.resolve("load"!=evt.type&&"error",{width:img.width,height:img.height}),img.src=api.EMPTY_PNG,img=null})}file.__dimensions.then(callback)}),api.event.dnd=function(el,onHover,onDrop){var _id,_type;onDrop||(onDrop=onHover,onHover=api.F),FileReader?(_on(el,"dragenter dragleave dragover",onHover.ff=onHover.ff||function(evt){for(var types=_getDataTransfer(evt).types,i=types&&types.length,debounceTrigger=!1;i--;)if(~types[i].indexOf("File")){evt.preventDefault(),_type!==evt.type&&("dragleave"!=(_type=evt.type)&&onHover.call(evt.currentTarget,!0,evt),debounceTrigger=!0);break}debounceTrigger&&(clearTimeout(_id),_id=setTimeout(function(){onHover.call(evt.currentTarget,"dragleave"!=_type,evt)},50))}),_on(el,"drop",onDrop.ff=onDrop.ff||function(evt){evt.preventDefault(),_type=0,onHover.call(evt.currentTarget,!1,evt),api.getDropFiles(evt,function(files,all){onDrop.call(evt.currentTarget,files,all,evt)})})):api.log("Drag'n'Drop -- not supported")},api.event.dnd.off=function(el,onHover,onDrop){_off(el,"dragenter dragleave dragover",onHover.ff),_off(el,"drop",onDrop.ff)},jQuery&&!jQuery.fn.dnd&&(jQuery.fn.dnd=function(onHover,onDrop){return this.each(function(){api.event.dnd(this,onHover,onDrop)})},jQuery.fn.offdnd=function(onHover,onDrop){return this.each(function(){api.event.dnd.off(this,onHover,onDrop)})}),window.FileAPI=_extend(api,window.FileAPI),api.log("FileAPI: "+api.version),api.log("protocol: "+window.location.protocol),api.log("doctype: ["+doctype.name+"] "+doctype.publicId+" "+doctype.systemId),_each(document.getElementsByTagName("meta"),function(meta){/x-ua-compatible/i.test(meta.getAttribute("http-equiv"))&&api.log("meta.http-equiv: "+meta.getAttribute("content"))});try{_supportConsoleLog=!!console.log,_supportConsoleLogApply=!!console.log.apply}catch(err){}api.flashUrl||(api.flashUrl=api.staticPath+"FileAPI.flash.swf"),api.flashImageUrl||(api.flashImageUrl=api.staticPath+"FileAPI.flash.image.swf"),api.flashWebcamUrl||(api.flashWebcamUrl=api.staticPath+"FileAPI.flash.camera.swf")}(window),function(api,document,undef){"use strict";var min=Math.min,round=Math.round,getCanvas=function(){return document.createElement("canvas")},support=!1,exifOrientation={8:270,3:180,6:90,7:270,4:180,5:90};try{support=-1params.maxWidth||img.height>params.maxHeight)&&ImgTrans.resize(params.maxWidth,params.maxHeight,"max"),params.crop){var crop=params.crop;ImgTrans.crop(0|crop.x,0|crop.y,crop.w||crop.width,crop.h||crop.height)}void 0===params.rotate&&autoOrientation&&(params.rotate="auto"),ImgTrans.set({type:ImgTrans.matrix.type||params.type||file.type||"image/png"}),isFn||ImgTrans.set({deg:params.rotate,overlay:params.overlay,filter:params.filter,quality:params.quality||1}),queue.inc(),ImgTrans.toData(function(err,image){err?queue.fail():(images[name]=image,queue.next())})}})}file.width?_transform(!1,file):api.getInfo(file,_transform)},api.each(["TOP","CENTER","BOTTOM"],function(x,i){api.each(["LEFT","CENTER","RIGHT"],function(y,j){Image[x+"_"+y]=3*i+j,Image[y+"_"+x]=3*i+j})}),Image.toCanvas=function(el){var canvas=document.createElement("canvas");return canvas.width=el.videoWidth||el.width,canvas.height=el.videoHeight||el.height,canvas.getContext("2d").drawImage(el,0,0),canvas},Image.fromDataURL=function(dataURL,size,callback){var img=api.newImage(dataURL);api.extend(img,size),callback(img)},Image.applyFilter=function(canvas,filter,doneFn){"function"==typeof filter?filter(canvas,doneFn):window.Caman&&window.Caman("IMG"==canvas.tagName?Image.toCanvas(canvas):canvas,function(){"string"==typeof filter?this[filter]():api.each(filter,function(val,method){this[method](val)},this),this.render(doneFn)})},api.renderImageToCanvas=function(canvas,img,sx,sy,sw,sh,dx,dy,dw,dh){try{return canvas.getContext("2d").drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh)}catch(ex){throw api.log("renderImageToCanvas failed"),ex}},api.support.canvas=api.support.transform=support,api.Image=Image}(FileAPI,document),function(factory){"use strict";!function(loadImage){if(!window.navigator||!window.navigator.platform||!/iP(hone|od|ad)/.test(window.navigator.platform))return;var originalRenderMethod=loadImage.renderImageToCanvas;loadImage.detectSubsampling=function(img){var canvas,context;return 1048576>1;return py/naturalHeight||1},loadImage.renderImageToCanvas=function(canvas,img,sourceX,sourceY,sourceWidth,sourceHeight,destX,destY,destWidth,destHeight){if("image/jpeg"===img._type){var subsampled,vertSquashRatio,tileX,tileY,context=canvas.getContext("2d"),tmpCanvas=document.createElement("canvas"),tmpContext=tmpCanvas.getContext("2d");if(tmpCanvas.width=1024,tmpCanvas.height=1024,context.save(),(subsampled=loadImage.detectSubsampling(img))&&(sourceX/=2,sourceY/=2,sourceWidth/=2,sourceHeight/=2),vertSquashRatio=loadImage.detectVerticalSquash(img,subsampled),subsampled||1!==vertSquashRatio){for(sourceY*=vertSquashRatio,destWidth=Math.ceil(1024*destWidth/sourceWidth),destHeight=Math.ceil(1024*destHeight/sourceHeight/vertSquashRatio),tileY=destY=0;tileY'+(jsonp&&options.url.indexOf("=?")<0?'':"")+"";var form=xhr.getElementsByTagName("form")[0],transport=xhr.getElementsByTagName("iframe")[0];form.appendChild(data),api.log(form.parentNode.innerHTML),document.body.appendChild(xhr),_this.xhr.node=xhr,_this.readyState=2;try{form.submit()}catch(err){api.log("iframe.error: "+err)}form=null}else{if(url=url.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void api.log("Error: already aborted");if(xhr=_this.xhr=api.getXHR(),data.params&&(url+=(url.indexOf("?")<0?"?":"&")+data.params.join("&")),xhr.open("POST",url,!0),api.withCredentials&&(xhr.withCredentials="true"),options.headers&&options.headers["X-Requested-With"]||xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),api.each(options.headers,function(val,key){xhr.setRequestHeader(key,val)}),options._chunked){xhr.upload&&xhr.upload.addEventListener("progress",api.throttle(function(evt){data.retry||options.progress({type:evt.type,total:data.size,loaded:data.start+evt.loaded,totalSize:data.size},_this,options)},100),!1),xhr.onreadystatechange=function(){var lkb=parseInt(xhr.getResponseHeader("X-Last-Known-Byte"),10);if(_this.status=xhr.status,_this.statusText=xhr.statusText,_this.readyState=xhr.readyState,4==xhr.readyState){for(var k in _xhrResponsePostfix)_this["response"+k]=xhr["response"+k];if(xhr.onreadystatechange=null,!xhr.status||0 js).ping:",[evt.status,evt.savedStatus],evt.error):"log"===type?api.log("(flash -> js).log:",evt.target):type in flash&&setTimeout(function(){api.log("FlashAPI.event."+evt.type+":",evt),flash[type](evt)},1)},mouseenter:function(evt){var node=flash.getInput(evt.flashId);if(node){flash.cmd(evt,"multiple",null!=node.getAttribute("multiple"));var accept=[],exts={};_each((node.getAttribute("accept")||"").split(/,\s*/),function(mime){api.accept[mime]&&_each(api.accept[mime].split(" "),function(ext){exts[ext]=1})}),_each(exts,function(i,ext){accept.push(ext)}),flash.cmd(evt,"accept",accept.length?accept.join(",")+","+accept.join(",").toUpperCase():"*")}},get:function(id){return document[id]||window[id]||document.embeds[id]},getInput:function(id){if(!api.multiFlash)return flash.curInp;try{var node=flash.getWrapper(flash.get(id));if(node)return node.getElementsByTagName("input")[0]}catch(e){api.log('[err] Can not find "input" by flashId:',id,e)}},select:function(evt){var event,inp=flash.getInput(evt.flashId),uid=api.uid(inp),files=evt.target.files;_each(files,function(file){api.checkFileObj(file)}),_files[uid]=files,document.createEvent?((event=document.createEvent("Event")).files=files,event.initEvent("change",!0,!0),inp.dispatchEvent(event)):jQuery?jQuery(inp).trigger({type:"change",files:files}):((event=document.createEventObject()).files=files,inp.fireEvent("onchange",event))},cmd:function(id,name,data,last){try{return api.log("(js -> flash)."+name+":",data),flash.get(id.flashId||id).cmd(name,data)}catch(err){api.log("(js -> flash).onError:",err.toString()),last||setTimeout(function(){flash.cmd(id,name,data,!0)},50)}},patch:function(){api.flashEngine=!0,_inherit(api,{getFiles:function(input,filter,callback){if(callback)return api.filterFiles(api.getFiles(input),filter,callback),null;var files=api.isArray(input)?input:_files[api.uid(input.target||input.srcElement||input)];return files?(filter&&(filter=api.getFilesFilter(filter),files=api.filter(files,function(file){return filter.test(file.name)})),files):this.parent.apply(this,arguments)},getInfo:function(file,fn){if(_isHtmlFile(file))this.parent.apply(this,arguments);else if(file.isShot)fn(null,file.info={width:file.width,height:file.height});else{if(!file.__info){var defer=file.__info=api.defer();flash.cmd(file,"getFileInfo",{id:file.id,callback:_wrap(function _(err,info){_unwrap(_),defer.resolve(err,file.info=info)})})}file.__info.then(fn)}}}),api.support.transform=!0,api.Image&&_inherit(api.Image.prototype,{get:function(fn,scaleMode){return this.set({scaleMode:scaleMode||"noScale"}),this.parent(fn)},_load:function(file,fn){if(api.log("FlashAPI.Image._load:",file),_isHtmlFile(file))this.parent.apply(this,arguments);else{var _this=this;api.getInfo(file,function(err){fn.call(_this,err,file)})}},_apply:function(file,fn){if(api.log("FlashAPI.Image._apply:",file),_isHtmlFile(file))this.parent.apply(this,arguments);else{var m=this.getMatrix(file.info),doneFn=fn;flash.cmd(file,"imageTransform",{id:file.id,matrix:m,callback:_wrap(function _(err,base64){api.log("FlashAPI.Image._apply.callback:",err),_unwrap(_),err?doneFn(err):api.support.html5||api.support.dataURI&&!(3e4 "+fileId),_this.xhr={headers:{},abort:function(){flash.cmd(flashId,"abort",{id:fileId})},getResponseHeader:function(name){return this.headers[name]},getAllResponseHeaders:function(){return this.headers}};var queue=api.queue(function(){flash.cmd(flashId,"upload",{url:_getUrl(options.url.replace(/([a-z]+)=(\?)&?/i,"")),data:data,files:fileId?files:null,headers:options.headers||{},callback:_wrap(function upload(evt){var type=evt.type,result=evt.result;api.log("FlashAPI.upload."+type),"progress"==type?(evt.loaded=Math.min(evt.loaded,evt.total),evt.lengthComputable=!0,options.progress(evt)):"complete"==type?(_unwrap(upload),"string"==typeof result&&(_this.responseText=result.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),_this.end(evt.status||200)):"abort"!=type&&"error"!=type||(_this.end(evt.status||0,evt.message),_unwrap(upload))})})});_each(files,function(file){queue.inc(),api.getInfo(file,queue.next)}),queue.check()}})}};function _makeFlashHTML(opts){return('').replace(/#(\w+)#/gi,function(a,name){return opts[name]})}function _css(el,css){var key,val;if(el&&el.style)for(key in css){"number"==typeof(val=css[key])&&(val+="px");try{el.style[key]=val}catch(e){}}}function _inherit(obj,methods){_each(methods,function(fn,name){var prev=obj[name];obj[name]=function(){return this.parent=prev,fn.apply(this,arguments)}})}function _isHtmlFile(file){return file&&!file.flashId}function _wrap(fn){var id=fn.wid=api.uid();return flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{flash._fn[fn.wid]=null,delete flash._fn[fn.wid]}catch(e){}}function _getUrl(url,params){if(!_rhttp.test(url)){if(/^\.\//.test(url)||"/"!=url.charAt(0)){var path=location.pathname;url=((path=path.substr(0,path.lastIndexOf("/")))+"/"+url).replace("/./","/")}"//"!=url.substr(0,2)&&(url="//"+location.host+url),_rhttp.test(url)||(url=location.protocol+url)}return params&&(url+=(/\?/.test(url)?"&":"?")+params),url}function _makeFlashImage(opts,base64,fn){var key,flashId=api.uid(),el=document.createElement("div"),attempts=10;for(key in opts)el.setAttribute(key,opts[key]),el[key]=opts[key];_css(el,opts),opts.width="100%",opts.height="100%",el.innerHTML=_makeFlashHTML(api.extend({id:flashId,src:_getUrl(api.flashImageUrl,"r="+api.uid()),wmode:"opaque",flashvars:"scale="+opts.scale+"&callback="+_wrap(function _(){return _unwrap(_),0<--attempts&&function(){try{var img=flash.get(flashId);img.setImage(base64)}catch(e){api.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',e)}}(),!0})},opts)),fn(!1,el),el=null}api.Flash=flash,api.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(err,img){api.support.dataURI=!(1!=img.width||1!=img.height),flash.init()})}()}(window,window.jQuery,FileAPI),function(window,jQuery,api){"use strict";var _each=api.each,_cameraQueue=[];!api.support.flash||!api.media||api.support.media&&api.html5||function(){function _wrap(fn){var id=fn.wid=api.uid();return api.Flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{api.Flash._fn[fn.wid]=null,delete api.Flash._fn[fn.wid]}catch(e){}}var flash=api.Flash;api.extend(api.Flash,{patchCamera:function(){api.Camera.fallback=function(el,options,callback){var camId=api.uid();api.log("FlashAPI.Camera.publish: "+camId),flash.publish(el,camId,api.extend(options,{camera:!0,onEvent:_wrap(function _(evt){"camera"===evt.type&&(_unwrap(_),evt.error?(api.log("FlashAPI.Camera.publish.error: "+evt.error),callback(evt.error)):(api.log("FlashAPI.Camera.publish.success: "+camId),callback(null)))})}))},_each(_cameraQueue,function(args){api.Camera.fallback.apply(api.Camera,args)}),_cameraQueue=[],api.extend(api.Camera.prototype,{_id:function(){return this.video.id},start:function(callback){var _this=this;flash.cmd(this._id(),"camera.on",{callback:_wrap(function _(evt){_unwrap(_),evt.error?(api.log("FlashAPI.camera.on.error: "+evt.error),callback(evt.error,_this)):(api.log("FlashAPI.camera.on.success: "+_this._id()),_this._active=!0,callback(null,_this))})})},stop:function(){this._active=!1,flash.cmd(this._id(),"camera.off")},shot:function(){api.log("FlashAPI.Camera.shot:",this._id());var shot=api.Flash.cmd(this._id(),"shot",{});return shot.type="image/png",shot.flashId=this._id(),shot.isShot=!0,new api.Camera.Shot(shot)}})}}),api.Camera.fallback=function(){_cameraQueue.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}),function(){var maxFileSize=parseInt(MODx.config.upload_maxsize,10),permittedFileTypes=MODx.config.upload_files.toLowerCase().split(",");FileAPI.debug=!1,FileAPI.staticPath=MODx.config.manager_url+"assets/fileapi/";var api_humanFileSize=function(bytes,si){var thresh=si?1e3:1024;if(bytes'+Ext.util.Format.htmlEncode(value)+"
"}},{header:_("upload.columns.state"),id:"state",width:100,renderer:function(value,meta,record){if(!record.get("permitted")||record.get("uploaded"))return''+record.get("message")+"
";var id=Ext.id();return function(){record.progressbar=new Ext.ProgressBar({renderTo:id,value:0,text:"0 / "+record.get("size")})}.defer(25),''}}],getMenu:function(){return[{text:_("upload.contextmenu.remove_entry"),handler:this.removeFile}]}}),MODx.util.MultiUploadDialog.FilesGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.util.MultiUploadDialog.FilesGrid,MODx.grid.LocalGrid,{removeFile:function(){var selected=this.getSelectionModel().getSelections();this.getStore().remove(selected)}}),Ext.reg("multiupload-grid-files",MODx.util.MultiUploadDialog.FilesGrid),MODx.util.MultiUploadDialog.Dialog=function(config){this.filesGridId=Ext.id(),config=config||{},Ext.applyIf(config,{permitted_extensions:permittedFileTypes,autoHeight:!0,width:600,closeAction:"hide",layout:"anchor",listeners:{show:{fn:this.onShow},hide:{fn:this.onHide}},items:[{xtype:"multiupload-grid-files",id:this.filesGridId,anchor:"100%"}],buttons:[{xtype:"multiupload-browse-btn",text:_("upload.buttons.choose"),cls:"primary-button",listeners:{click:{scope:this,fn:function(btn,ev){var files=FileAPI.getFiles(ev);this.addFiles(files),btn.reset()}}}},{xtype:"splitbutton",text:_("upload.buttons.clear"),listeners:{click:{scope:this,fn:this.clearStore}},menu:new Ext.menu.Menu({items:[{text:_("upload.clear_list.all"),listeners:{click:{scope:this,fn:this.clearStore}}},{text:_("upload.clear_list.notpermitted"),listeners:{click:{scope:this,fn:this.clearNotPermittedItems}}}]})},{xtype:"button",text:_("upload.buttons.upload"),cls:"primary-button",listeners:{click:{scope:this,fn:this.startUpload}}},{xtype:"button",text:_("upload.buttons.close"),listeners:{click:{scope:this,fn:this.hideDialog}}}]}),MODx.util.MultiUploadDialog.Dialog.superclass.constructor.call(this,config)};var originalWindowOnShow=Ext.Window.prototype.onShow,originalWindowOnHide=Ext.Window.prototype.onHide;Ext.extend(MODx.util.MultiUploadDialog.Dialog,Ext.Window,{addFiles:function(files){var store=Ext.getCmp(this.filesGridId).getStore(),dialog=this;FileAPI.each(files,function(file){var permitted=!0,message="";api_isFileSizePermitted(file.size)||(message=_("upload.notpermitted.filesize",{size:api_humanFileSize(file.size),max:api_humanFileSize(maxFileSize)}),permitted=!1),dialog.isFileTypePermitted(file.name)||(message=_("upload.notpermitted.extension",{ext:api_getFileExtension(file.name)}),permitted=!1);var data={name:file.name,size:api_humanFileSize(file.size),file:file,permitted:permitted,message:message,uploaded:!1},p=new store.recordType(data);store.insert(0,p)})},startUpload:function(){var dialog=this,files=[],params=Ext.apply(this.base_params,{HTTP_MODAUTH:MODx.siteId});Ext.getCmp(this.filesGridId).getStore().each(function(){var file=this.get("file");this.get("permitted")&&!this.get("uploaded")&&(file.record=this,files.push(file))});FileAPI.upload({url:this.url,data:params,files:{file:files},fileprogress:function(evt,file){file.record.progressbar.updateProgress(evt.loaded/evt.total,_("upload.upload_progress",{loaded:api_humanFileSize(evt.loaded),total:file.record.get("size")}),!0)},filecomplete:function(err,xhr,file,options){if(err)401!==xhr.status&&MODx.msg.alert(_("upload.msg.title.error"),err);else{var resp=Ext.util.JSON.decode(xhr.response);resp.success?(file.record.set("uploaded",!0),file.record.set("message",_("upload.upload.success"))):(file.record.set("permitted",!1),file.record.set("message",resp.message))}},complete:function(err,xhr){dialog.fireEvent("uploadsuccess")}})},removeEntry:function(record){Ext.getCmp(this.filesGridId).getStore().remove(record)},clearStore:function(){Ext.getCmp(this.filesGridId).getStore().removeAll()},clearNotPermittedItems:function(){var store=Ext.getCmp(this.filesGridId).getStore(),notPermitted=store.query("permitted",!1);store.remove(notPermitted.getRange())},hideDialog:function(){this.hide()},onDDrag:function(ev){ev&&ev.preventDefault()},onDDrop:function(ev){ev&&ev.preventDefault();var dialog=this;FileAPI.getDropFiles(ev.browserEvent,function(files){files.length&&dialog.addFiles(files)})},onShow:function(){var ret=originalWindowOnShow.apply(this,arguments);return Ext.getCmp(this.filesGridId).getStore().removeAll(),this.isDDSet||(this.el.on("dragenter",this.onDDrag,this),this.el.on("dragover",this.onDDrag,this),this.el.on("dragleave",this.onDDrag,this),this.el.on("drop",this.onDDrop,this),this.isDDSet=!0),ret},onHide:function(){var ret=originalWindowOnHide.apply(this,arguments);return this.el.un("dragenter",this.onDDrag,this),this.el.un("dragover",this.onDDrag,this),this.el.un("dragleave",this.onDDrag,this),this.el.un("drop",this.onDDrop,this),this.isDDSet=!1,ret},setBaseParams:function(params){this.base_params=params,this.setTitle(_("upload.title.destination_path",{path:this.base_params.path}))},isFileTypePermitted:function(filename){var ext=api_getFileExtension(filename);return-1"+node.attributes.text+"",target:this}),node:node,handler:function(btn,evt){evt.stopPropagation(evt),node.getOwnerTree().handleDirectCreateClick(node)},iconCls:"icon-plus-square",renderTo:elId,listeners:{mouseover:function(button,e){button.tooltip.onTargetOver(e)},mouseout:function(button,e){button.tooltip.onTargetOut(e)}}})}},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll();var handled=!1;if(!Ext.isEmpty(node.attributes.treeHandler)||node.isRoot&&!Ext.isEmpty(node.childNodes[0].attributes.treeHandler)){var h=Ext.getCmp(node.isRoot?node.childNodes[0].attributes.treeHandler:node.attributes.treeHandler);h&&(node.isRoot&&(node.attributes.type="root"),m=h.getMenu(this,node,e),handled=!0)}handled||(this.getMenu?m=this.getMenu(node,e):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items)),m&&0s[i].length&&(f=!0):s.splice(i,1);f||s.push(p)}}else for(s=s.remove(p),i=0;i',id:"modx-iprops-container"}]}],modps:[]}),MODx.window.InsertElement.superclass.constructor.call(this,config),this.on("show",function(){this.center(),this.mask=new Ext.LoadMask(Ext.get("modx-iprops-container"),{msg:_("loading")}),this.mask.show()},this)},Ext.extend(MODx.window.InsertElement,MODx.Window,{changePropertySet:function(cb){var fp=Ext.getCmp("modx-iprops-fp");fp&&fp.destroy();var resourceCmp=Ext.get("modx-resource-id"),resourceId=null!==resourceCmp?resourceCmp.getValue():0;Ext.getCmp("modx-dise-proplist").getUpdater().update({url:MODx.config.connector_url,params:{action:"element/getinsertproperties",classKey:this.config.record.classKey,pk:this.config.record.pk,resourceId:resourceId,propertySet:cb.getValue()},scripts:!0,callback:this.onPropFormLoad,scope:this}),this.modps=[],this.mask.show()},createStore:function(data){return new Ext.data.SimpleStore({fields:["v","d"],data:data})},onPropFormLoad:function(el,s,r){this.mask.hide();var vs=Ext.decode(r.responseText);if(!vs||vs.length<=0)return!1;for(var i=0;i]+)>)/gi,"")))}},_handleDrop:function(e){var dropNode=e.dropNode,targetParent=e.target;if(null!==targetParent.findChild("id",dropNode.attributes.id))return!1;if("modContext"==dropNode.attributes.type&&(1";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record.pagetitle)+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target,function(){Ext.isSafari?w.setPosition(null,30):w.center()},this)},scope:this}}})},_getModContextMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&m.push({text:_("edit_context"),handler:function(){var at=this.cm.activeNode.attributes;this.loadAction("a=context/update&key="+at.pk)}}),m.push({text:_("context_refresh"),handler:function(){this.refreshNode(this.cm.activeNode.id,!0)}}),ui.hasClass("pnewdoc")&&(m.push("-"),this._getCreateMenus(m,"0",ui)),ui.hasClass("pnew")&&m.push({text:_("context_duplicate"),handler:this.duplicateContext}),ui.hasClass("pdelete")&&(m.push("-"),m.push({text:_("context_remove"),handler:this.removeContext})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),m},overviewResource:function(){this.loadAction("a=resource/data")},quickUpdateResource:function(itm,e){this.quickUpdate(itm,e,itm.classKey)},editResource:function(){this.loadAction("a=resource/update")},_getModResourceMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pview")&&m.push({text:_("resource_overview"),handler:this.overviewResource}),ui.hasClass("pedit")&&m.push({text:_("resource_edit"),handler:this.editResource}),ui.hasClass("pqupdate")&&m.push({text:_("quick_update_resource"),classKey:a.classKey,handler:this.quickUpdateResource}),ui.hasClass("pduplicate")&&m.push({text:_("resource_duplicate"),handler:this.duplicateResource}),m.push({text:_("resource_refresh"),handler:this.refreshResource,scope:this}),ui.hasClass("pnew")&&(m.push("-"),this._getCreateMenus(m,null,ui)),ui.hasClass("psave")&&(m.push("-"),ui.hasClass("ppublish")&&ui.hasClass("unpublished")?m.push({text:_("resource_publish"),handler:this.publishDocument}):ui.hasClass("punpublish")&&m.push({text:_("resource_unpublish"),handler:this.unpublishDocument}),ui.hasClass("pundelete")&&ui.hasClass("deleted")?m.push({text:_("resource_undelete"),handler:this.undeleteDocument}):ui.hasClass("pdelete")&&!ui.hasClass("deleted")&&m.push({text:_("resource_delete"),handler:this.deleteDocument})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),ui.hasClass("pview")&&""!=a.preview_url&&(m.push("-"),m.push({text:_("resource_view"),handler:this.preview})),m},refreshResource:function(){this.refreshNode(this.cm.activeNode.id)},createResourceHere:function(itm){var at=this.cm.activeNode.attributes,p=itm.usePk?itm.usePk:at.pk;this.loadAction("a=resource/create&class_key="+itm.classKey+"&parent="+p+(at.ctx?"&context_key="+at.ctx:""))},createResource:function(itm,e){var at=this.cm.activeNode.attributes,p=itm.usePk?itm.usePk:at.pk;this.quickCreate(itm,e,itm.classKey,at.ctx,p)},_getCreateMenus:function(m,pk,ui){var types=MODx.config.resource_classes,o=this.fireEvent("loadCreateMenus",types);Ext.isObject(o)&&Ext.apply(types,o);var coreTypes=["modDocument","modWebLink","modSymLink","modStaticResource"],ct=[],qct=[];for(var k in types)(-1==coreTypes.indexOf(k)||ui.hasClass("pnew_"+k))&&(ct.push({text:types[k].text_create_here,classKey:k,usePk:pk||!1,handler:this.createResourceHere,scope:this}),ui&&ui.hasClass("pqcreate")&&qct.push({text:types[k].text_create,classKey:k,handler:this.createResource,scope:this}));return m.push({text:_("create"),handler:function(){return!1},menu:{items:ct}}),ui&&ui.hasClass("pqcreate")&&m.push({text:_("quick_create"),handler:function(){return!1},menu:{items:qct}}),m},_handleDrag:function(dropEvent){var encNodes=Ext.encode(function simplifyNodes(node){for(var resultNode={},kids=node.childNodes,len=kids.length,i=0;i*',description:"[[*pagetitle]]
"+_("resource_pagetitle_help"),anchor:"100%",allowBlank:!1},{xtype:"textfield",name:"longtitle",id:"modx-"+this.ident+"-longtitle",fieldLabel:_("resource_longtitle"),description:"[[*longtitle]]
"+_("resource_longtitle_help"),anchor:"100%"},{xtype:"textarea",name:"description",id:"modx-"+this.ident+"-description",fieldLabel:_("resource_description"),description:"[[*description]]
"+_("resource_description_help"),anchor:"100%",grow:!1,height:50},{xtype:"textarea",name:"introtext",id:"modx-"+this.ident+"-introtext",fieldLabel:_("resource_summary"),description:"[[*introtext]]
"+_("resource_summary_help"),anchor:"100%",height:50}]},{columnWidth:.4,border:!1,layout:"form",items:[{xtype:"modx-combo-template",name:"template",id:"modx-"+this.ident+"-template",fieldLabel:_("resource_template"),description:"[[*template]]
"+_("resource_template_help"),editable:!1,anchor:"100%",baseParams:{action:"element/template/getList",combo:"1",limit:0},value:MODx.config.default_template},{xtype:"textfield",name:"alias",id:"modx-"+this.ident+"-alias",fieldLabel:_("resource_alias"),description:"[[*alias]]
"+_("resource_alias_help"),anchor:"100%"},{xtype:"textfield",name:"menutitle",id:"modx-"+this.ident+"-menutitle",fieldLabel:_("resource_menutitle"),description:"[[*menutitle]]
"+_("resource_menutitle_help"),anchor:"100%"},{xtype:"textfield",fieldLabel:_("resource_link_attributes"),description:"[[*link_attributes]]
"+_("resource_link_attributes_help"),name:"link_attributes",id:"modx-"+this.ident+"-attributes",maxLength:255,anchor:"100%"},{xtype:"xcheckbox",boxLabel:_("resource_hide_from_menus"),description:"[[*hidemenu]]
"+_("resource_hide_from_menus_help"),hideLabel:!0,name:"hidemenu",id:"modx-"+this.ident+"-hidemenu",inputValue:1,checked:"1"==MODx.config.hidemenu_default?1:0},{xtype:"xcheckbox",name:"published",id:"modx-"+this.ident+"-published",boxLabel:_("resource_published"),description:"[[*published]]
"+_("resource_published_help"),hideLabel:!0,inputValue:1,checked:"1"==MODx.config.publish_default?1:0}]}]},MODx.getQRContentField(this.ident,config.record.class_key)]},{id:"modx-"+this.ident+"-settings",title:_("settings"),layout:"form",cls:"modx-panel",autoHeight:!0,forceLayout:!0,labelWidth:100,defaults:{autoHeight:!0,border:!1},items:MODx.getQRSettings(this.ident,config.record)}]}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateResource,MODx.Window),Ext.reg("modx-window-quick-create-modResource",MODx.window.QuickCreateResource),MODx.window.QuickUpdateResource=function(config){config=config||{},this.ident=config.ident||"qur"+Ext.id(),Ext.applyIf(config,{title:_("quick_update_resource"),id:this.ident,action:"resource/update",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateResource,MODx.window.QuickCreateResource),Ext.reg("modx-window-quick-update-modResource",MODx.window.QuickUpdateResource),MODx.getQRContentField=function(id,cls){id=id||"qur",cls=cls||"modDocument";Ext.getBody().getViewSize();var o={};switch(cls){case"modSymLink":o={xtype:"textfield",fieldLabel:_("symlink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255};break;case"modWebLink":o={xtype:"textfield",fieldLabel:_("weblink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"http://"};break;case"modStaticResource":o={xtype:"modx-combo-browser",browserEl:"modx-browser",prependPath:!1,prependUrl:!1,fieldLabel:_("static_resource"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"",listeners:{select:{fn:function(data){"/"==data.url.substring(0,1)&&Ext.getCmp("modx-"+id+"-content").setValue(data.url.substring(1))},scope:this}}};break;case"modResource":case"modDocument":default:o={xtype:"textarea",name:"content",id:"modx-"+id+"-content",fieldLabel:_("content"),labelSeparator:"",anchor:"100%",style:"min-height: 200px",grow:!0}}return o},MODx.getQRSettings=function(id,va){return[{layout:"column",border:!1,anchor:"100%",defaults:{labelSeparator:"",labelAlign:"top",border:!1,layout:"form"},items:[{columnWidth:.5,items:[{xtype:"hidden",name:"parent",id:"modx-"+(id=id||"qur")+"-parent",value:va.parent},{xtype:"hidden",name:"context_key",id:"modx-"+id+"-context_key",value:va.context_key},{xtype:"hidden",name:"class_key",id:"modx-"+id+"-class_key",value:va.class_key},{xtype:"hidden",name:"publishedon",id:"modx-"+id+"-publishedon",value:va.publishedon},{xtype:"modx-field-parent-change",fieldLabel:_("resource_parent"),description:"[[*parent]]
"+_("resource_parent_help"),name:"parent-cmb",id:"modx-"+id+"-parent-change",value:va.parent||0,anchor:"100%",parentcmp:"modx-"+id+"-parent",contextcmp:"modx-"+id+"-context_key",currentid:va.id},{xtype:"modx-combo-class-derivatives",fieldLabel:_("resource_type"),description:"[[*class_key]]
",name:"class_key",hiddenName:"class_key",id:"modx-"+id+"-class-key",anchor:"100%",value:null!=va.class_key?va.class_key:"modDocument"},{xtype:"modx-combo-content-type",fieldLabel:_("resource_content_type"),description:"[[*content_type]]
"+_("resource_content_type_help"),name:"content_type",hiddenName:"content_type",id:"modx-"+id+"-type",anchor:"100%",value:null!=va.content_type?va.content_type:MODx.config.default_content_type||1},{xtype:"modx-combo-content-disposition",fieldLabel:_("resource_contentdispo"),description:"[[*content_dispo]]
"+_("resource_contentdispo_help"),name:"content_dispo",hiddenName:"content_dispo",id:"modx-"+id+"-dispo",anchor:"100%",value:null!=va.content_dispo?va.content_dispo:0},{xtype:"numberfield",fieldLabel:_("resource_menuindex"),description:"[[*menuindex]]
"+_("resource_menuindex_help"),name:"menuindex",id:"modx-"+id+"-menuindex",width:75,value:va.menuindex||0}]},{columnWidth:.5,items:[{xtype:"xdatetime",fieldLabel:_("resource_publishedon"),description:"[[*publishedon]]
"+_("resource_publishedon_help"),name:"publishedon",id:"modx-"+id+"-publishedon",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.publishedon},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_publishdate"),description:"[[*pub_date]]
"+_("resource_publishdate_help"),name:"pub_date",id:"modx-"+id+"-pub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.pub_date},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_unpublishdate"),description:"[[*unpub_date]]
"+_("resource_unpublishdate_help"),name:"unpub_date",id:"modx-"+id+"-unpub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.unpub_date},{xtype:"xcheckbox",boxLabel:_("resource_folder"),description:_("resource_folder_help"),hideLabel:!0,name:"isfolder",id:"modx-"+id+"-isfolder",inputValue:1,checked:null!=va.isfolder&&va.isfolder},{xtype:"xcheckbox",boxLabel:_("resource_richtext"),description:_("resource_richtext_help"),hideLabel:!0,name:"richtext",id:"modx-"+id+"-richtext",inputValue:1,checked:void 0!==va.richtext?va.richtext?1:0:"1"==MODx.config.richtext_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_searchable"),description:_("resource_searchable_help"),hideLabel:!0,name:"searchable",id:"modx-"+id+"-searchable",inputValue:1,checked:null!=va.searchable?va.searchable:"1"==MODx.config.search_default?1:0,listeners:{check:{fn:MODx.handleQUCB}}},{xtype:"xcheckbox",boxLabel:_("resource_cacheable"),description:_("resource_cacheable_help"),hideLabel:!0,name:"cacheable",id:"modx-"+id+"-cacheable",inputValue:1,checked:null!=va.cacheable?va.cacheable:"1"==MODx.config.cache_default?1:0},{xtype:"xcheckbox",name:"clearCache",id:"modx-"+id+"-clearcache",boxLabel:_("clear_cache_on_save"),description:_("clear_cache_on_save_msg"),hideLabel:!0,inputValue:1,checked:!0},{xtype:"xcheckbox",boxLabel:_("deleted"),description:_("resource_delete"),hideLabel:!0,name:"deleted",id:"modx-"+id+"-deleted",inputValue:1,checked:null!=va.deleted?va.deleted:0},{xtype:"xcheckbox",boxLabel:_("resource_alias_visible"),description:_("resource_alias_visible_help"),hideLabel:!0,name:"alias_visible",id:"modx-"+id+"-alias-visible",inputValue:1,checked:null!=va.alias_visible?va.alias_visible:1},{xtype:"xcheckbox",boxLabel:_("resource_uri_override"),description:_("resource_uri_override_help"),hideLabel:!0,name:"uri_override",id:"modx-"+id+"-uri-override",value:1,checked:!!parseInt(va.uri_override),listeners:{check:{fn:MODx.handleFreezeUri}}},{xtype:"textfield",fieldLabel:_("resource_uri"),description:"[[*uri]]
"+_("resource_uri_help"),name:"uri",id:"modx-"+id+"-uri",maxLength:255,anchor:"100%",value:va.uri||"",hidden:!va.uri_override}]}]}]},MODx.handleQUCB=function(cb){var h=Ext.getCmp(cb.id+"-hd");cb.checked&&h?(cb.setValue(1),h.setValue(1)):h&&(cb.setValue(0),h.setValue(0))},MODx.handleFreezeUri=function(cb){var uri=Ext.getCmp(cb.id.replace("-override",""));if(!uri)return!1;cb.checked?uri.show():uri.hide()},Ext.override(Ext.tree.AsyncTreeNode,{listeners:{click:{fn:function(){return console.log("Clicked me!",arguments),!1},scope:this}}}),MODx.tree.Element=function(config){config=config||{},Ext.applyIf(config,{rootVisible:!1,enableDD:!Ext.isEmpty(MODx.config.enable_dragdrop),ddGroup:"modx-treedrop-elements-dd",title:"",url:MODx.config.connector_url,action:"element/getnodes",sortAction:"element/sort",useDefaultToolbar:!1,baseParams:{currentElement:MODx.request.id||0,currentAction:MODx.request.a||0},tbar:[{cls:"tree-new-template",tooltip:{text:_("new")+" "+_("template")},handler:function(){this.redirect("?a=element/template/create")},scope:this,hidden:!MODx.perm.new_template},{cls:"tree-new-tv",tooltip:{text:_("new")+" "+_("tv")},handler:function(){this.redirect("?a=element/tv/create")},scope:this,hidden:!MODx.perm.new_tv},{cls:"tree-new-chunk",tooltip:{text:_("new")+" "+_("chunk")},handler:function(){this.redirect("?a=element/chunk/create")},scope:this,hidden:!MODx.perm.new_chunk},{cls:"tree-new-snippet",tooltip:{text:_("new")+" "+_("snippet")},handler:function(){this.redirect("?a=element/snippet/create")},scope:this,hidden:!MODx.perm.new_snippet},{cls:"tree-new-plugin",tooltip:{text:_("new")+" "+_("plugin")},handler:function(){this.redirect("?a=element/plugin/create")},scope:this,hidden:!MODx.perm.new_plugin},{cls:"tree-new-category",tooltip:{text:_("new_category")},handler:function(){this.createCategory(null,{target:this.getEl()})},scope:this,hidden:!MODx.perm.new_category}]}),MODx.tree.Element.superclass.constructor.call(this,config),this.on("afterSort",this.afterSort)},Ext.extend(MODx.tree.Element,MODx.tree.Tree,{forms:{},windows:{},stores:{},createCategory:function(n,e){var r={};this.cm.activeNode&&this.cm.activeNode.attributes.data&&(r.parent=this.cm.activeNode.attributes.data.id),MODx.load({xtype:"modx-window-category-create",record:r,listeners:{success:{fn:function(){var node=this.cm.activeNode?this.cm.activeNode.id:"n_category",self=-1!==node.indexOf("_category_");this.refreshNode(node,self)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameCategory:function(itm,e){var r=this.cm.activeNode.attributes.data;MODx.load({xtype:"modx-window-category-rename",record:r,listeners:{success:{fn:function(r){var c=r.a.result.object,n=this.cm.activeNode;n.setText(c.category+" ("+c.id+")"),Ext.get(n.getUI().getEl()).frame(),n.attributes.data.id=c.id,n.attributes.data.category=c.category},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeCategory:function(itm,e){var id=this.cm.activeNode.attributes.data.id;MODx.msg.confirm({title:_("warning"),text:_("category_confirm_delete"),url:MODx.config.connector_url,params:{action:"element/category/remove",id:id},listeners:{success:{fn:function(){this.cm.activeNode.remove()},scope:this}}})},duplicateElement:function(itm,e,id,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:id},listeners:{success:{fn:function(results){var r={id:id,type:type,name:_("duplicate_of",{name:this.cm.activeNode.attributes.name}),caption:_("duplicate_of",{name:this.cm.activeNode.attributes.caption}),category:results.object.category,source:results.object.source,static:results.object.static,static_file:results.object.static_file};MODx.load({xtype:"modx-window-element-duplicate",record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},removeElement:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.msg.confirm({title:_("warning"),text:_("remove_this_confirm",{type:_(oar[0]),name:this.cm.activeNode.attributes.name}),url:MODx.config.connector_url,params:{action:"element/"+oar[0]+"/remove",id:oar[2]},listeners:{success:{fn:function(){this.cm.activeNode.remove(),MODx.request.a=="element/"+oar[0]+"/update"&&MODx.request.id==oar[2]&&MODx.loadPage("welcome")},scope:this}}})},activatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/plugin/activate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},deactivatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/plugin/deactivate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},quickCreate:function(itm,e,type){var r={category:this.cm.activeNode.attributes.pk||""},w=MODx.load({xtype:"modx-window-quick-create-"+type,record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id,!0)},scope:this},hide:{fn:function(){this.destroy()}}}});w.setValues(r),w.show(e.target)},quickUpdate:function(itm,e,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:this.cm.activeNode.attributes.pk},listeners:{success:{fn:function(r){var nameField="template"==type?"templatename":"name",w=MODx.load({xtype:"modx-window-quick-update-"+type,record:r.object,listeners:{success:{fn:function(r){this.refreshNode(this.cm.activeNode.id);var newTitle=''+Ext.util.Format.htmlEncode(r.f.findField(nameField).getValue())+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record[nameField])+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target)},scope:this}}})},_createElement:function(itm,e,t){var oar=this.cm.activeNode.id.substr(2).split("_"),type="type"==oar[0]?oar[1]:oar[0],cat_id="type"==oar[0]?0:"category"==oar[1]?oar[2]:oar[3],a="element/"+type+"/create";return this.redirect("?a="+a+"&category="+cat_id),this.cm.hide(),!1},afterSort:function(o){var tn=o.event.target.attributes;if("category"==tn.type){var dn=o.event.dropNode.attributes;"n_category"!=tn.id&&"category"==dn.type?o.event.target.expand():(this.refreshNode(o.event.target.attributes.id,!0),this.refreshNode("n_type_"+o.event.dropNode.attributes.type,!0))}},_handleDrop:function(e){var target=e.target;return"above"!=e.point&&"below"!=e.point&&(("modCategory"==target.attributes.classKey||"root"==target.attributes.classKey)&&(!!this.isCorrectType(e.dropNode,target)&&("category"==target.attributes.type&&"append"==e.point||0"+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&(m.push({text:_("edit_"+a.type),type:a.type,pk:a.pk,handler:function(itm,e){MODx.loadPage("element/"+itm.type+"/update","id="+itm.pk)}}),m.push({text:_("quick_update_"+a.type),type:a.type,handler:function(itm,e){this.quickUpdate(itm,e,itm.type)}}),"modPlugin"==a.classKey&&(a.active?m.push({text:_("plugin_deactivate"),type:a.type,handler:this.deactivatePlugin}):m.push({text:_("plugin_activate"),type:a.type,handler:this.activatePlugin}))),ui.hasClass("pnew")&&m.push({text:_("duplicate_"+a.type),pk:a.pk,type:a.type,handler:function(itm,e){this.duplicateElement(itm,e,itm.pk,itm.type)}}),ui.hasClass("pdelete")&&m.push({text:_("remove_"+a.type),handler:this.removeElement}),m.push("-"),ui.hasClass("pnew")&&m.push({text:_("add_to_category_"+a.type),handler:this._createElement}),ui.hasClass("pnewcat")&&m.push({text:_("new_category"),handler:this.createCategory}),m},_getCategoryMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pnewcat")&&m.push({text:_("category_create"),handler:this.createCategory}),ui.hasClass("peditcat")&&m.push({text:_("category_rename"),handler:this.renameCategory}),2",{cls:"x-btn-icon icon-file_manager",tooltip:{text:_("modx_browser")},handler:this.loadFileManager,scope:this,hidden:!(MODx.perm.file_manager&&!MODx.browserOpen)}],tbarCfg:{id:config.id+"-tbar"}}),MODx.tree.Directory.superclass.constructor.call(this,config),this.addEvents({beforeUpload:!0,afterUpload:!0,afterQuickCreate:!0,afterRename:!0,afterRemove:!0,fileBrowserSelect:!0,changeSource:!0,afterSort:!0}),this.on("click",function(n,e){n.select(),this.cm.activeNode=n},this),this.on("render",function(){var el=Ext.get(this.config.id);el.createChild({tag:"div",id:this.config.id+"_tb"}),el.createChild({tag:"div",id:this.config.id+"_filter"}),this.addSourceToolbar()},this),this.on("show",function(){if(!this.config.hideSourceCombo)try{this.sourceCombo.show()}catch(e){}},this),this._init(),this.on("afterrender",this.showRefresh,this),this.on("afterSort",this._handleAfterDrop,this)},Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{windows:{},getRootMenu:function(node){var menu=[];return MODx.perm.directory_create&&menu.push({text:_("file_folder_create"),handler:this.createDirectory,scope:this}),MODx.perm.file_create&&menu.push({text:_("file_create"),handler:this.createFile,scope:this}),MODx.perm.file_upload&&menu.push({text:_("upload_files"),handler:this.uploadFiles,scope:this}),node.ownerTree.el.hasClass("pupdate")&&menu.push(["-",{text:_("update"),handler:function(){MODx.loadPage("source/update","id="+node.ownerTree.source)}}]),menu},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll(),node.isRoot?m=this.getRootMenu(node):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items),m&&0]+)>)/gi,"")))}targetNode.reload(!0)},_handleDrag:function(dropEvent){var from=dropEvent.dropNode.attributes.id,to=dropEvent.target.attributes.id;MODx.Ajax.request({url:this.config.url,params:{source:this.config.baseParams.source,from:from,to:to,action:this.config.sortAction||"browser/directory/sort",point:dropEvent.point},listeners:{success:{fn:function(r){var el=dropEvent.dropNode.getUI().getTextEl();el&&Ext.get(el).frame(),this.fireEvent("afterSort",{event:dropEvent,result:r})},scope:this},failure:{fn:function(r){return MODx.form.Handler.errorJSON(r),this.refresh(),!1},scope:this}}})},getPath:function(node){var path,p,a;if(node!==this.root){for(p=node.parentNode,a=[node.text];p&&p!==this.root;)a.unshift(p.text),p=p.parentNode;a.unshift(this.root.attributes.path||""),path=a.join(this.pathSeparator)}else path=node.attributes.path||"";return(path=path.replace(/^[\/\.]*/,""))+"/"},editFile:function(itm,e){MODx.loadPage("system/file/edit","file="+this.cm.activeNode.attributes.id+"&source="+this.config.source)},quickUpdateFile:function(itm,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/get",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(response){var r={file:node.attributes.id,name:node.text,path:node.attributes.pathRelative,source:this.getSource(),content:response.object.content};MODx.load({xtype:"modx-window-file-quick-update",record:r,listeners:{hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},createFile:function(itm,e){var active=this.cm.activeNode,dir=active&&active.attributes&&(active.isRoot||"dir"==active.attributes.type)?active.attributes.id:"";MODx.loadPage("system/file/create","directory="+dir+"&source="+this.getSource())},quickCreateFile:function(itm,e){var r={directory:this.cm.activeNode.attributes.id,source:this.getSource()};MODx.load({xtype:"modx-window-file-quick-create",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterQuickCreate"),this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},browser:null,loadFileManager:function(btn,e){var refresh=!1;null===this.browser?this.browser=MODx.load({xtype:"modx-browser",hideFiles:MODx.config.modx_browser_tree_hide_files,rootId:"/",wctx:MODx.ctx,source:this.config.baseParams.source,listeners:{select:{fn:function(data){this.fireEvent("fileBrowserSelect",data)},scope:this}}}):refresh=!0,this.browser&&(this.browser.setSource(this.config.baseParams.source),refresh&&this.browser.win.tree.refresh(),this.browser.show())},renameNode:function(field,nv,ov){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/rename",new_name:nv,old_name:ov,file:this.treeEditor.editNode.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshActiveNode()},scope:this}}})},renameDirectory:function(item,e){var node=this.cm.activeNode,r={old_name:node.text,name:node.text,path:node.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-directory-rename",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameFile:function(item,e){var node=this.cm.activeNode,r={old_name:node.text,name:node.text,path:node.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-file-rename",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshParentNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},createDirectory:function(item,e){var node=!(!this.cm||!this.cm.activeNode)&&this.cm.activeNode,r={parent:node&&"dir"==node.attributes.type?node.attributes.pathRelative:"/",source:this.getSource()};MODx.load({xtype:"modx-window-directory-create",record:r,listeners:{success:{fn:function(){var parent=Ext.getCmp("folder-parent").getValue();this.cm.activeNode&&"constructor"===this.cm.activeNode.constructor.name||""===parent||"/"===parent?this.refresh():this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e?e.target:Ext.getBody())},chmodDirectory:function(item,e){var node=this.cm.activeNode,r={dir:node.attributes.path,mode:node.attributes.perms,source:this.getSource()};MODx.load({xtype:"modx-window-directory-chmod",record:r,listeners:{success:{fn:this.refreshActiveNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeDirectory:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_folder_remove_confirm"),url:MODx.config.connector_url,params:{action:"browser/directory/remove",dir:node.attributes.path,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},removeFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_confirm_remove"),url:MODx.config.connector_url,params:{action:"browser/file/remove",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},_afterRemove:function(){this.fireEvent("afterRemove"),this.refreshParentNode(),this.cm.activeNode=null},unpackFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_download_unzip")+" "+node.attributes.id,url:MODx.config.connectors_url,params:{action:"browser/file/unpack",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource(),path:node.attributes.directory},listeners:{success:{fn:this.refreshParentNode,scope:this}}})},downloadFile:function(item,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/download",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){Ext.isEmpty(r.object.url)||(location.href=MODx.config.connector_url+"?action=browser/file/download&download=1&file="+node.attributes.id+"&HTTP_MODAUTH="+MODx.siteId+"&source="+this.getSource()+"&wctx="+MODx.ctx)},scope:this}}})},copyRelativePath:function(item,e){var node=this.cm.activeNode,dummyRelativePathInput=document.createElement("input");document.body.appendChild(dummyRelativePathInput),dummyRelativePathInput.setAttribute("value",node.attributes.pathRelative),dummyRelativePathInput.select(),document.execCommand("copy"),document.body.removeChild(dummyRelativePathInput)},getSource:function(){return this.config.baseParams.source},uploadFiles:function(btn,e){this.uploader||(this.uploader=new MODx.util.MultiUploadDialog.Dialog({url:MODx.config.connector_url,base_params:{action:"browser/file/upload",wctx:MODx.ctx||"",source:this.getSource()},cls:"ext-ux-uploaddialog-dialog modx-upload-window"}),this.uploader.on("show",this.beforeUpload,this),this.uploader.on("uploadsuccess",this.uploadSuccess,this),this.uploader.on("uploaderror",this.uploadError,this),this.uploader.on("uploadfailed",this.uploadFailed,this)),this.uploader.base_params.source=this.getSource(),this.uploader.show(btn)},uploadError:function(dlg,file,data,rec){},uploadFailed:function(dlg,file,rec){},uploadSuccess:function(){if(this.cm.activeNode){var node=this.cm.activeNode;if(node.isLeaf){var pn=node.isLeaf()?node.parentNode:node;pn?pn.reload():this.refreshActiveNode(),this.fireEvent("afterUpload",node)}else this.refreshActiveNode()}else this.refresh(),this.fireEvent("afterUpload")},beforeUpload:function(){var path=this.config.openTo||this.config.rootId||"/";this.cm.activeNode&&(path=this.getPath(this.cm.activeNode),this.cm.activeNode.isLeaf()&&(path=this.getPath(this.cm.activeNode.parentNode))),this.uploader.setBaseParams({action:"browser/file/upload",path:path,wctx:MODx.ctx||"",source:this.getSource()}),this.fireEvent("beforeUpload",this.cm.activeNode)}}),Ext.reg("modx-tree-directory",MODx.tree.Directory),MODx.window.CreateDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_create"),url:MODx.config.connector_url,action:"browser/directory/create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("file_folder_parent"),id:"folder-parent",name:"parent",xtype:"textfield",anchor:"100%"}]}),MODx.window.CreateDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.CreateDirectory,MODx.Window),Ext.reg("modx-window-directory-create",MODx.window.CreateDirectory),MODx.window.ChmodDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_chmod"),url:MODx.config.connector_url,action:"browser/directory/chmod",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{name:"dir",fieldLabel:_("name"),xtype:"statictextfield",anchor:"100%",submitValue:!0},{fieldLabel:_("mode"),name:"mode",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.ChmodDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.ChmodDirectory,MODx.Window),Ext.reg("modx-window-directory-chmod",MODx.window.ChmodDirectory),MODx.window.RenameDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"browser/directory/rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.RenameDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameDirectory,MODx.Window),Ext.reg("modx-window-directory-rename",MODx.window.RenameDirectory),MODx.window.RenameFile=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"browser/file/rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{name:"dir",xtype:"hidden"}]}),MODx.window.RenameFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameFile,MODx.Window),Ext.reg("modx-window-file-rename",MODx.window.RenameFile),MODx.window.QuickUpdateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_update"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"browser/file/update",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{xtype:"hidden",name:"file"},{fieldLabel:_("name"),name:"name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}],buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateFile,MODx.Window),Ext.reg("modx-window-file-quick-update",MODx.window.QuickUpdateFile),MODx.window.QuickCreateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_create"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"browser/file/create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("directory"),name:"directory",submitValue:!0,xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateFile,MODx.Window),Ext.reg("modx-window-file-quick-create",MODx.window.QuickCreateFile),MODx.panel.FileTree=function(config){config=config||{},Ext.applyIf(config,{_treePrefix:"source-tree-",autoHeight:!0,defaults:{autoHeight:!0,border:!1}}),MODx.panel.FileTree.superclass.constructor.call(this,config),this.on("render",this.getSourceList,this)},Ext.extend(MODx.panel.FileTree,Ext.Container,{getSourceList:function(){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"source/getList",limit:0},listeners:{success:{fn:function(data){this.onSourceListReceived(data.results)},scope:this},failure:{fn:function(data){return 0")}},formatData:function(data){var size;return data.shortName=Ext.util.Format.ellipsis(data.name,18),data.sizeString=0!=data.size?(size=data.size)<1024?size+" bytes":Math.round(10*size/1024)/10+" KB":0,data.imageSizeString=0!=data.preview?data.image_width+"x"+data.image_height+"px":0,data.imageSizeString="xpx"===data.imageSizeString?0:data.imageSizeString,data.dateString=Ext.isEmpty(data.lastmod)?0:new Date(data.lastmod).format(MODx.config.manager_date_format+" "+MODx.config.manager_time_format),this.lookup[data.name]=data},_initTemplates:function(){this.templates.thumb=new Ext.XTemplate('','','
','

',"
","
{shortName:htmlEncode}","
",""),this.templates.thumb.compile(),this.templates.list=new Ext.XTemplate('','',' ',' {name:htmlEncode}',' ',' {sizeString}'," ",' ',' {imageSizeString}'," "," ","
",""),this.templates.list.compile(),this.templates.details=new Ext.XTemplate('','
',' ',' ",'

',"
"," ",' ',' ','

',"
"," ",' '," "+_("file_name")+":"," {name:htmlEncode}",' '," "+_("file_size")+":"," {sizeString}"," ",' '," "+_("image_size")+":"," {imageSizeString}"," ",' '," "+_("last_modified")+":"," {dateString}"," ","
"," ","
"),this.templates.details.compile()}}),Ext.reg("modx-browser-view",MODx.browser.View),MODx.browser.Window=function(config){config=config||{},this.ident=Ext.id(),MODx.browserOpen=!0,this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{title:_("modx_browser")+" ("+(MODx.ctx?MODx.ctx:"web")+")",cls:"modx-browser modx-browser-window",layout:"border",minWidth:500,minHeight:300,width:"90%",height:.9*Ext.getBody().getViewSize().height,modal:!1,closeAction:"hide",border:!1,items:[{id:this.ident+"-browser-tree",cls:"modx-browser-tree",region:"west",width:250,height:"100%",items:this.tree,autoScroll:!0,split:!0,border:!1},{id:this.ident+"-browser-view",cls:"modx-browser-view-ct",region:"center",autoScroll:!0,border:!1,items:this.view,tbar:this.getToolbar(),bbar:this.getPathbar()},{id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",region:"east",split:!0,border:!1,width:250}],buttons:[{id:this.ident+"-cancel-btn",text:_("cancel"),handler:this.close,scope:this},{id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",handler:this.onSelect,scope:this}],keys:{key:27,handler:this.hide,scope:this}}),MODx.browser.Window.superclass.constructor.call(this,config),this.config=config,this.addEvents({select:!0})},Ext.extend(MODx.browser.Window,Ext.Window,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var field=el.getEl().dom;if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()}else field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;this.hide(this.config.animEl||null,function(){if(selNode&&callback){var data=lookup[selNode.id];Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data)}},scope)},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-window",MODx.browser.Window),MODx.Media=function(config){config=config||{},this.ident=config.ident||Ext.id(),MODx.browserOpen=!0,this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{cls:"modx-browser modx-browser-panel container",layout:"border",width:"98%",height:"95%",items:[{region:"west",width:250,items:this.tree,id:this.ident+"-browser-tree",cls:"modx-browser-tree",autoScroll:!0,split:!0},{region:"center",layout:"fit",items:this.view,id:this.ident+"-browser-view",cls:"modx-browser-view-ct",autoScroll:!0,border:!1,tbar:this.getToolbar(),bbar:this.getPathbar()},{region:"east",width:250,id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",split:!0}]}),MODx.Media.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Media,Ext.Container,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var field=el.getEl().dom;if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()}else field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-media-view",MODx.Media),MODx.browser.RTE=function(config){config=config||{},this.ident=config.ident||Ext.id(),MODx.browserOpen=!0,Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{title:_("modx_browser"),cls:"modx-browser modx-browser-rte",layout:"border",renderTo:document.body,id:this.ident+"-viewport",onSelect:MODx.onBrowserReturn||function(data){},items:[{id:this.ident+"-browser-tree",cls:"modx-browser-tree",region:"west",width:250,height:"100%",split:!0,items:this.tree,autoScroll:!0},{id:this.ident+"-browser-view",cls:"modx-browser-view-ct",region:"center",autoScroll:!0,width:450,items:this.view,tbar:this.getToolbar(),bbar:this.getPathbar()},{id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",region:"east",split:!0,width:200,minWidth:200,maxWidth:300},{id:this.ident+"-south",cls:"modx-browser-rte-buttons",region:"south",split:!1,bbar:["->",{xtype:"button",id:this.ident+"-cancel-btn",text:_("cancel"),minWidth:75,handler:this.onCancel,scope:this},{xtype:"button",id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",minWidth:75,handler:this.onSelect,scope:this}]}]}),MODx.browser.RTE.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.browser.RTE,Ext.Viewport,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var field=el.getEl().dom;if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()}else field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;callback&&(data=selNode?lookup[selNode.id]:null,Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data),window.top.opener&&(window.top.close(),window.top.opener.focus()))},onCancel:function(){var callback=this.config.onSelect||this.onSelectHandler,scope=this.config.scope;Ext.callback(callback,scope||this,[null]),this.fireEvent("select",null),window.top.opener&&(window.top.close(),window.top.opener.focus())},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-rte",MODx.browser.RTE),Ext.apply(Ext,{isFirebug:window.console&&window.console.firebug}),MODx.Layout=function(config){config=config||{},Ext.BLANK_IMAGE_URL=MODx.config.manager_url+"assets/ext3/resources/images/default/s.gif",Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},MODx.siteId=config.auth,MODx.expandHelp=!!+MODx.config.inline_help;var sp=new MODx.HttpProvider;Ext.state.Manager.setProvider(sp),sp.initState(MODx.defaultState),config.showTree=!1,Ext.applyIf(config,{layout:"border",id:"modx-layout",stateSave:!0,items:this.buildLayout(config)}),MODx.Layout.superclass.constructor.call(this,config),this.config=config,this.addEvents({afterLayout:!0,loadKeyMap:!0,loadTabs:!0}),this.loadKeys(),config.showTree||(Ext.getCmp("modx-leftbar-tabs").collapse(!1),Ext.get("modx-leftbar").hide(),Ext.get("modx-leftbar-tabs-xcollapsed").setStyle("display","none")),this.fireEvent("afterLayout")},Ext.extend(MODx.Layout,Ext.Viewport,{buildLayout:function(config){var items=[],north=this.getNorth(config),west=this.getWest(config),center=this.getCenter(config),south=this.getSouth(config),east=this.getEast(config);return north&&Ext.isObject(north)&&items.push(north),west&&Ext.isObject(west)&&items.push(west),center&&Ext.isObject(center)&&items.push(center),south&&Ext.isObject(south)&&items.push(south),east&&Ext.isObject(east)&&items.push(east),items},getNorth:function(config){return{xtype:"box",region:"north",applyTo:"modx-header"}},getWest:function(config){var tabs=[];MODx.perm.resource_tree&&(tabs.push({title:_("resources"),xtype:"modx-tree-resource",id:"modx-resource-tree"}),config.showTree=!0),MODx.perm.element_tree&&(tabs.push({title:_("elements"),xtype:"modx-tree-element",id:"modx-tree-element"}),config.showTree=!0),MODx.perm.file_tree&&(tabs.push({title:_("files"),xtype:"modx-panel-filetree",id:"modx-file-tree"}),config.showTree=!0);return{region:"west",applyTo:"modx-leftbar",id:"modx-leftbar-tabs",split:!0,width:310,minSize:288,autoScroll:!0,unstyled:!0,collapseMode:"mini",useSplitTips:!0,monitorResize:!0,layout:"anchor",items:[{xtype:"modx-tabs",plain:!0,defaults:{autoScroll:!0,fitToFrame:!0},id:"modx-leftbar-tabpanel",border:!1,anchor:"100%",activeTab:0,stateful:!0,stateEvents:["tabchange"],getState:function(){return{activeTab:this.items.indexOf(this.getActiveTab())}},items:tabs}],getState:function(){return{collapsed:this.collapsed,width:this.width}},listeners:{beforestatesave:this.onBeforeSaveState,scope:this}}},getCenter:function(config){return{region:"center",applyTo:"modx-content",padding:"0 1px 0 0",bodyStyle:"background-color:transparent;",id:"modx-content",border:!1,autoScroll:!0}},getSouth:function(config){},getEast:function(config){},getLeftBar:function(){var nav=Ext.getCmp("modx-leftbar-tabpanel");return nav||null},addToLeftBar:function(items){var nav=this.getLeftBar();nav&&items&&(nav.add(items),this.onAfterLeftBarAdded(nav,items))},onAfterLeftBarAdded:function(nav,items){},loadKeys:function(){Ext.KeyMap.prototype.stopEvent=!0;var k=new Ext.KeyMap(Ext.get(document));k.addBinding({key:Ext.EventObject.H,ctrl:!0,shift:!0,fn:this.toggleLeftbar,scope:this,stopEvent:!0}),k.addBinding({key:Ext.EventObject.N,ctrl:!0,shift:!0,fn:function(){var t=Ext.getCmp("modx-resource-tree");t&&t.quickCreate(document,{},"modDocument","web",0)},stopEvent:!0}),k.addBinding({key:Ext.EventObject.U,ctrl:!0,shift:!0,alt:!1,fn:MODx.clearCache,scope:this,stopEvent:!0}),this.fireEvent("loadKeyMap",{keymap:k})},refreshTrees:function(){var t;(t=Ext.getCmp("modx-resource-tree"))&&t.rendered&&t.refresh(),(t=Ext.getCmp("modx-tree-element"))&&t.rendered&&t.refresh(),(t=Ext.getCmp("modx-file-tree"))&&t.rendered&&t.items.each(function(tree,idx){tree.refresh()})},leftbarVisible:!0,toggleLeftbar:function(){this.leftbarVisible?this.hideLeftbar(!0):this.showLeftbar(!0),this.leftbarVisible=!this.leftbarVisible},hideLeftbar:function(anim,state){Ext.getCmp("modx-leftbar-tabs").collapse(anim),Ext.isBoolean(state)&&(this.stateSave=state)},showLeftbar:function(anim){Ext.getCmp("modx-leftbar-tabs").expand(anim)},onBeforeSaveState:function(component,state){var collapsed=state.collapsed;if(collapsed&&!this.stateSave)return!(this.stateSave=!0);if(!collapsed){var wrap=Ext.get("modx-leftbar").down("div");wrap.isVisible()||(wrap.setVisible(!0),Ext.getCmp("modx-leftbar-tabpanel").expand(!0))}}}),MODx.LayoutMgr=function(){var _activeMenu="menu0";return{loadPage:function(action,parameters){var parts=[];action&&(!isNaN(parseInt(action))||"?"!=action.substr(0,1)&&"index.php?"!=action.substr(0,"index.php?".length)?parts.push("?a="+action):parts.push(action)),parameters&&parts.push(parameters);var url=parts.join("&");if(MODx.fireEvent("beforeLoadPage",url)){var e=window.event,middleMouseButtonClick=e&&(4===e.button||2===e.which),keyboardKeyPressed=e&&(1===e.button||!0===e.ctrlKey||!0===e.metaKey||!0===e.shiftKey);if(middleMouseButtonClick||keyboardKeyPressed)return window.open(url);location.href=url}return!1},changeMenu:function(a,sm){if(sm===_activeMenu)return!1;Ext.get(sm).addClass("active");var om=Ext.get(_activeMenu);return om&&om.removeClass("active"),_activeMenu=sm,!1}}}(),MODx.loadPage=MODx.LayoutMgr.loadPage,MODx.showDashboard=MODx.LayoutMgr.showDashboard,MODx.hideDashboard=MODx.LayoutMgr.hideDashboard,MODx.changeMenu=MODx.LayoutMgr.changeMenu;
+Ext.onReady(function(){return"en"!=MODx.config.manager_language&&(Date.dayNames=[_("sunday"),_("monday"),_("tuesday"),_("wednesday"),_("thursday"),_("friday"),_("saturday")],Date.monthNames=[_("january"),_("february"),_("march"),_("april"),_("may"),_("june"),_("july"),_("august"),_("september"),_("october"),_("november"),_("december")],Ext.apply(Ext.grid.GridView.prototype,{sortAscText:_("ext_sortasc"),sortDescText:_("ext_sortdesc"),lockText:_("ext_column_lock"),unlockText:_("ext_column_unlock"),columnsText:_("ext_columns"),emptyText:_("ext_emptymsg")}),Ext.apply(Ext.DatePicker.prototype,{todayText:_("today"),todayTip:_("ext_today_tip"),minText:_("ext_mindate"),maxText:_("ext_maxdate"),monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:_("ext_nextmonth"),prevText:_("ext_prevmonth"),monthYearText:_("ext_choosemonth")}),Ext.MessageBox.buttonText={yes:_("yes"),no:_("no"),ok:_("ok"),cancel:_("cancel")},Ext.apply(Ext.PagingToolbar.prototype,{afterPageText:_("ext_afterpage"),beforePageText:_("ext_beforepage"),displayMsg:_("ext_displaying"),emptyMsg:_("ext_emptymsg"),firstText:_("ext_first"),prevText:_("ext_prev"),nextText:_("ext_next"),lastText:_("ext_last"),refreshText:_("ext_refresh")}),Ext.apply(Ext.Updater.prototype,{text:_("loading")}),Ext.apply(Ext.LoadMask.prototype,{msg:_("loading")}),Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:_("ext_splittip")}),Ext.apply(Ext.form.BasicForm.prototype,{waitTitle:_("please_wait")}),Ext.apply(Ext.form.ComboBox.prototype,{loadingText:_("loading")}),Ext.apply(Ext.form.Field.prototype,{invalidText:_("ext_invalidfield")}),Ext.apply(Ext.form.TextField.prototype,{minLengthText:_("ext_minlenfield"),maxLengthText:_("ext_maxlenfield"),invalidText:_("ext_invalidfield"),blankText:_("field_required")}),Ext.apply(Ext.form.NumberField.prototype,{minText:_("ext_minvalfield"),maxText:_("ext_maxvalfield"),nanText:_("ext_nanfield")}),Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:_("disabled"),disabledDatesText:_("disabled"),minText:_("ext_datemin"),maxText:_("ext_datemax"),invalidText:_("ext_dateinv")}),Ext.apply(Ext.form.VTypes,{emailText:_("ext_inv_email"),urlText:_("ext_inv_url"),alphaText:_("ext_inv_alpha"),alphanumText:_("ext_inv_alphanum")}),Ext.apply(Ext.grid.GroupingView.prototype,{emptyGroupText:_("ext_emptygroup"),groupByText:_("ext_groupby"),showGroupsText:_("ext_showgroups")}),Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:_("name"),valueText:_("value")}),Ext.apply(Ext.form.CheckboxGroup.prototype,{blankText:_("ext_checkboxinv")}),Ext.apply(Ext.form.RadioGroup.prototype,{blankText:_("ext_checkboxinv")}),void Ext.apply(Ext.form.TimeField.prototype,{minText:_("ext_timemin"),maxText:_("ext_timemax"),invalidText:_("ext_timeinv")}))}),Ext.namespace("MODx.util.Progress"),MODx.util.JSONReader=function(config){config=config||{},Ext.applyIf(config,{successProperty:"success",totalProperty:"total",root:"data"}),MODx.util.JSONReader.superclass.constructor.call(this,config,["id","msg"])},Ext.extend(MODx.util.JSONReader,Ext.data.JsonReader),Ext.reg("modx-json-reader",MODx.util.JSONReader),MODx.util.Progress={id:0,time:function(v,id,msg){msg=msg||_("saving"),MODx.util.Progress.id===id&&v<11&&Ext.MessageBox.updateProgress(v/10,msg)},reset:function(){MODx.util.Progress.id=MODx.util.Progress.id+1}},MODx.LockMask=function(config){config=config||{},Ext.applyIf(config,{msg:_("locked"),msgCls:"modx-lockmask"}),MODx.LockMask.superclass.constructor.call(this,config.el,config)},Ext.extend(MODx.LockMask,Ext.LoadMask,{locked:!1,toggle:function(){this.locked?(this.hide(),this.locked=!1):(this.show(),this.locked=!0)},lock:function(){this.locked=!0,this.show()},unlock:function(){this.locked=!1,this.hide()}}),Ext.reg("modx-lockmask",MODx.LockMask),Ext.override(Ext.form.BasicForm,{clearDirty:function(nodeToRecurse){(nodeToRecurse=nodeToRecurse||this).items.each(function(f){f.getValue&&(f.items?this.clearDirty(f):f.originalValue!=f.getValue()&&(f.originalValue=f.getValue()))},this)}}),MODx.StaticTextField=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticTextField.superclass.onRender.apply(this,arguments)}}),Ext.reg("statictextfield",MODx.StaticTextField),MODx.StaticBoolean=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(tf){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticBoolean.superclass.onRender.apply(this,arguments),this.on("change",this.onChange,this)},setValue:function(v){v=1===v?(this.addClass("green"),_("yes")):(this.addClass("red"),_("no")),MODx.StaticBoolean.superclass.setValue.apply(this,arguments)}}),Ext.reg("staticboolean",MODx.StaticBoolean),MODx.util.safeHtml=function(input,allowedTags,allowedAttributes){allowedTags=(((allowedTags||"
")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),allowedAttributes=(((allowedAttributes||"href,class")+"").toLowerCase().match(/[a-z\-,]*/g)||[]).join("").concat(",");var length,tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,attributes=/([a-z][a-z0-9]*)\s*=\s*".*?"/gi;for(input=input.replace(/|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/href(\s*?=\s*?(["'])javascript:.*?\2|\s*?=\s*?javascript:.*?(?![^> ]))/gi,'href="javascript:void(0)"');length=input.length,input=function(input,allowedTags,allowedAttributes){return input.replace(tags,function($0,$1){return-1")?$0:""}).replace(attributes,function($0,$1){return-1',elbowMarkup=n.attributes.pseudoroot?'':'',index=['",'',""].join("");!0!==bulkRender&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())?this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,index):this.wrap=Ext.DomHelper.insertHtml("beforeEnd",cs,index),this.elNode=this.wrap.childNodes[0],this.ctNode=this.wrap.childNodes[1];cs=this.elNode.childNodes;this.indentNode=cs[0],this.ecNode=cs[1],this.iconNode=cs[2];index=3;cb&&(this.checkbox=cs[3],this.checkbox.defaultChecked=this.checkbox.checked,index++),this.anchor=cs[index],this.textNode=cs[index].firstChild},renderItemText:function(item){return Ext.util.Format.htmlEncode(item.text)},getChildIndent:function(){if(!this.childIndent){for(var buf=[],p=this.node;p;)(!p.isRoot||p.isRoot&&p.ownerTree.rootVisible)&&!p.attributes.pseudoroot&&(p.isLast()?buf.unshift('
'):buf.unshift('
')),p=p.parentNode;this.childIndent=buf.join("")}return this.childIndent}}),Ext.override(Ext.form.Action.Submit,{handleResponse:function(response){var m=Ext.decode(response.responseText);if(this.form.errorReader){var rs=this.form.errorReader.read(response),errors=[];if(rs.records)for(var i=0,len=rs.records.length;i',document.getElementById("flashcopier").innerHTML=divinfo)}},Ext.util.Format.trimCommas=function(s){var len=(s=s.replace(",,",",")).length;return","==s.substr(len-1,1)&&(s=s.substring(0,len-1)),","==s.substr(0,1)&&(s=s.substring(1)),","==s&&(s=""),s},Ext.ns("Ext.ux.grid"),"function"!=typeof RegExp.escape&&(RegExp.escape=function(s){return"string"!=typeof s?s:s.replace(/([.*+?\^=!:${}()|\[\]\/\\])/g,"\\$1")}),Ext.ux.grid.RowActions=function(a){Ext.apply(this,a),this.addEvents("beforeaction","action","beforegroupaction","groupaction"),Ext.ux.grid.RowActions.superclass.constructor.call(this)},Ext.extend(Ext.ux.grid.RowActions,Ext.util.Observable,{actionEvent:"click",autoWidth:!0,dataIndex:"",editable:!1,header:"",isColumn:!0,keepSelection:!1,menuDisabled:!0,sortable:!1,tplGroup:' ux-action-right {cls}" style="{style}" qtip="{qtip}">{text}
',tplRow:'ux-row-action-text" style="{hide}{style}" qtip="{qtip}">{text}
',hideMode:"visibility",widthIntercept:4,widthSlope:21,init:function(g){this.grid=g,this.id=this.id||Ext.id();var h=g.getColumnModel().lookup;delete h[void 0],(h[this.id]=this).tpl||(this.tpl=this.processActions(this.actions)),this.autoWidth&&(this.width=this.widthSlope*this.actions.length+this.widthIntercept,this.fixed=!0);var i=g.getView(),j={scope:this};j[this.actionEvent]=this.onClick,g.afterRender=g.afterRender.createSequence(function(){i.mainBody.on(j),g.on("destroy",this.purgeListeners,this)},this),this.renderer||(this.renderer=function(a,b,c,d,e,f){return b.css+=(b.css?" ":"")+"ux-row-action-cell",this.tpl.apply(this.getData(a,b,c,d,e,f))}.createDelegate(this)),i.groupTextTpl&&this.groupActions&&(i.interceptMouse=i.interceptMouse.createInterceptor(function(e){if(e.getTarget(".ux-grow-action-item"))return!1}),i.groupTextTpl=''+i.groupTextTpl+"
"+this.processActions(this.groupActions,this.tplGroup).apply()),!0===this.keepSelection&&(g.processEvent=g.processEvent.createInterceptor(function(a,e){if("mousedown"===a)return!this.getAction(e)},this))},getData:function(a,b,c,d,e,f){return c.data||{}},processActions:function(b,e){var d=[];Ext.each(b,function(o,i){o.iconCls&&"function"==typeof(o.callback||o.cb)&&(this.callbacks=this.callbacks||{},this.callbacks[o.iconCls]=o.callback||o.cb);o={cls:o.iconIndex?"{"+o.iconIndex+"}":o.iconCls||"",qtip:o.qtipIndex?"{"+o.qtipIndex+"}":o.tooltip||o.qtip?o.tooltip||o.qtip:"",text:o.textIndex?"{"+o.textIndex+"}":o.text||"",hide:o.hideIndex?''+("display"===this.hideMode?"display:none":"visibility:hidden")+";":o.hide?"display"===this.hideMode?"display:none":"visibility:hidden;":"",align:o.align||"right",style:o.style||""};d.push(o)},this);e=new Ext.XTemplate(e||this.tplRow);return new Ext.XTemplate(e.apply({actions:d}))},getAction:function(t){var a=!1,t=t.getTarget(".ux-row-action-item");return t&&(a=(a=t.className.replace(/ux-row-action-item /,""))&&(a=a.replace(/ ux-row-action-text/,"")).trim()),a},onClick:function(e,i){var b=this.grid.getView(),c=e.getTarget(".x-grid3-row"),d=b.findCellIndex(i.parentNode.parentNode),f=this.getAction(e);if(!1!==c&&!1!==d&&!1!==f){var g=this.grid.store.getAt(c.rowIndex);if(this.callbacks&&"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,g,f,c.rowIndex,d),!0!==this.eventsSuspended&&!1===this.fireEvent("beforeaction",this.grid,g,f,c.rowIndex,d))return;!0!==this.eventsSuspended&&this.fireEvent("action",this.grid,g,f,c.rowIndex,d)}if(t=e.getTarget(".ux-grow-action-item"),t){var k,j,i=b.findGroup(i),i=i?i.id.replace(/ext-gen[0-9]+-gp-/,""):null;if(i&&(k=new RegExp(RegExp.escape(i)),j=(j=this.grid.store.queryBy(function(r){return r._groupId.match(k)}))?j.items:[]),f=t.className.replace(/ux-grow-action-item (ux-action-right )*/,""),"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,j,f,i),!0!==this.eventsSuspended&&!1===this.fireEvent("beforegroupaction",this.grid,j,f,i))return!1;this.fireEvent("groupaction",this.grid,j,f,i)}}}),Ext.reg("rowactions",Ext.ux.grid.RowActions),Ext.SwitchButton=Ext.extend(Ext.Component,{initComponent:function(){Ext.SwitchButton.superclass.initComponent.call(this);var mc=new Ext.util.MixedCollection;mc.addAll(this.items),this.items=mc,this.addEvents("change"),this.handler&&this.on("change",this.handler,this.scope||this)},onRender:function(ct,position){var el=document.createElement("table");el.cellSpacing=0,el.className="x-rbtn",el.id=this.id;var row=document.createElement("tr");el.appendChild(document.createElement("tbody")).appendChild(row);var count=this.items.length,last=count-1;this.activeItem=this.items.get(this.activeItem);for(var i=0;idata.rowIndex&&this.rowPosition<0&&rindex--,rindexdata.rowIndex&&1','{value}
',""),MODx.grid||(MODx.grid={}),MODx.grid.ComboColumn=Ext.extend(Ext.grid.Column,{gridId:void 0,constructor:function(cfg){MODx.grid.ComboColumn.superclass.constructor.call(this,cfg),this.renderer=this.editor&&this.editor.triggerAction?MODx.grid.ComboBoxRenderer(this.editor,this.gridId):function(value){return value}}}),Ext.grid.Column.types.combocolumn=MODx.grid.ComboColumn,MODx.grid.ComboBoxRenderer=function(combo,gridId){return function(value){return 0==combo.store.getCount()&&gridId?(combo.store.on("load",function(){var grid=Ext.getCmp(gridId);grid&&grid.getView().refresh()},this,{single:!0}),value):function(value){var rec=combo.store.find(combo.valueField,value),rec=combo.store.getAt(rec);return rec?rec.get(combo.displayField):value}(value)}},Ext.Button.buttonTemplate=new Ext.Template(''),Ext.Button.buttonTemplate.compile(),Ext.TabPanel.prototype.itemTpl=new Ext.Template('','{text}'),Ext.TabPanel.prototype.itemTpl.disableFormats=!0,Ext.TabPanel.prototype.itemTpl.compile(),Ext.override(Ext.form.TimeField,{initDate:"2/1/2008"}),Ext.ns("Ext.ux.form"),Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{dateValidator:null,defaultAutoCreate:{tag:"input",type:"hidden"},dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",otherToNow:!0,timePosition:"right",timeValidator:null,timeWidth:100,dateFormat:"m/d/y",timeFormat:"g:i A",maxDateValue:"",minDateValue:"",timeIncrement:15,maxTimeValue:null,minTimeValue:null,disabledDates:null,hideTime:!1,initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this),this.hasOwnProperty("offset_time")&&!isNaN(this.offset_time)||(this.offset_time=0);var timeConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.dateValidator,disabledDates:this.disabledDates||null,disabledDays:this.disabledDays||[],showToday:this.showToday||!0,maxValue:this.maxDateValue||"",minValue:this.minDateValue||"",startDay:this.startDay||0,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig);this.df=new Ext.form.DateField(timeConfig),delete(this.df.ownerCt=this).dateFormat,delete this.disabledDates,delete this.disabledDays,delete this.maxDateValue,delete this.minDateValue,delete this.startDay;timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.timeValidator,increment:this.timeIncrement||15,maxValue:this.maxTimeValue||null,minValue:this.minTimeValue||null,hidden:this.hideTime,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig),delete(this.tf.ownerCt=this).timeFormat,delete this.maxTimeValue,delete this.minTimeValue,delete this.timeIncrement,this.relayEvents(this.df,["focus","specialkey","invalid","valid"]),this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]),this.on("specialkey",this.onSpecialKey,this)},onRender:function(o,position){this.isRendered||(Ext.ux.form.DateTime.superclass.onRender.call(this,o,position),o="below"===this.timePosition||"bellow"===this.timePosition?Ext.DomHelper.append(o,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},!0):Ext.DomHelper.append(o,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},!0),this.tableEl=o,this.wrap=o.wrap({cls:"x-form-field-wrap x-datetime-wrap"}),this.wrap.on("mousedown",this.onMouseDown,this,{delay:10}),this.df.render(o.child("td.ux-datetime-date")),this.tf.render(o.child("td.ux-datetime-time")),this.df.el.swallowEvent(["keydown","keypress"]),this.tf.el.swallowEvent(["keydown","keypress"]),"side"===this.msgTarget&&((o=this.el.findParent(".x-form-element",10,!0))&&(this.errorIcon=o.createChild({cls:"x-form-invalid-icon"})),o={errorIcon:this.errorIcon,msgTarget:"side",alignErrorIcon:this.alignErrorIcon.createDelegate(this)},Ext.apply(this.df,o),Ext.apply(this.tf,o)),this.el.dom.name=this.hiddenName||this.name||this.id,this.df.el.dom.removeAttribute("name"),this.tf.el.dom.removeAttribute("name"),this.isRendered=!0,this.updateHidden())},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0])},initDateValue:function(){this.dateValue=this.otherToNow?new Date:new Date(1970,0,1,0,0,0)},clearInvalid:function(){this.df.clearInvalid(),this.tf.clearInvalid()},markInvalid:function(msg){this.df.markInvalid(msg),this.tf.markInvalid(msg)},beforeDestroy:function(){this.isRendered&&(this.wrap.removeAllListeners(),this.wrap.remove(),this.tableEl.remove(),this.df.destroy(),this.tf.destroy())},disable:function(){return this.isRendered&&(this.df.disabled=this.disabled,this.df.onDisable(),this.tf.onDisable()),this.disabled=!0,this.df.disabled=!0,this.tf.disabled=!0,this.fireEvent("disable",this),this},enable:function(){return this.rendered&&(this.df.onEnable(),this.tf.onEnable()),this.disabled=!1,this.df.disabled=!1,this.tf.disabled=!1,this.fireEvent("enable",this),this},focus:function(){this.df.focus()},getPositionEl:function(){return this.wrap},getResizeEl:function(){return this.wrap},getValue:function(){return this.dateValue?new Date(this.dateValue):""},isValid:function(){return this.df.isValid()&&this.tf.isValid()},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible()},onBlur:function(f){this.wrapClick&&(f.focus(),this.wrapClick=!1),f===this.df?this.updateDate():this.updateTime(),this.updateHidden(),this.validate(),function(){var v;this.df.hasFocus||this.tf.hasFocus||(v=this.getValue(),String(v)!==String(this.startValue)&&this.fireEvent("change",this,v,this.startValue),this.hasFocus=!1,this.fireEvent("blur",this))}.defer(100,this)},onFocus:function(){this.hasFocus||(this.hasFocus=!0,this.startValue=this.getValue(),this.fireEvent("focus",this))},onMouseDown:function(e){this.disabled||(this.wrapClick="td"===e.target.nodeName.toLowerCase())},onSpecialKey:function(t,e){var key=e.getKey();key===e.TAB&&(t!==this.df||e.shiftKey||(e.stopEvent(),this.tf.focus()),t===this.tf&&e.shiftKey&&(e.stopEvent(),this.df.focus()),this.updateValue()),key===e.ENTER&&this.updateValue()},reset:function(){this.df.setValue(this.originalValue),this.tf.setValue(this.originalValue)},setDate:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.df.setValue(date)},setTime:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.tf.setValue(date)},setSize:function(w,h){w&&("below"===this.timePosition?(this.df.setSize(w,h),this.tf.setSize(w,h),Ext.isIE&&(this.df.el.up("td").setWidth(w),this.tf.el.up("td").setWidth(w))):(this.df.setSize(w-this.timeWidth-4,h),this.tf.setSize(this.timeWidth,h),Ext.isIE&&(this.df.el.up("td").setWidth(w-this.timeWidth-4),this.tf.el.up("td").setWidth(this.timeWidth))))},setValue:function(da){if(da||!0!==this.emptyToNow){if(!da)return this.setDate(""),this.setTime(""),void this.updateValue();"number"==typeof da?da=new Date(da):"string"==typeof da&&this.hiddenFormat&&(da=Date.parseDate(da,this.hiddenFormat)),(da=da||new Date(1970,0,1,0,0,0))instanceof Date?(this.setDate(da),this.setTime(da),this.dateValue=new Date(Ext.isIE?da.getTime():da)):(da=da.split(this.dtSeparator),this.setDate(da[0]),da[1]&&(da[2]&&(da[1]+=da[2]),this.setTime(da[1]))),this.updateValue()}else this.setValue(new Date)},setVisible:function(visible){return visible?(this.df.show(),this.tf.show()):(this.df.hide(),this.tf.hide()),this},show:function(){return this.setVisible(!0)},hide:function(){return this.setVisible(!1)},updateDate:function(){var d=this.df.getValue();d?(this.dateValue instanceof Date||(this.initDateValue(),this.tf.getValue()||this.setTime(this.dateValue)),this.dateValue.setMonth(0),this.dateValue.setFullYear(d.getFullYear()),this.dateValue.setMonth(d.getMonth(),d.getDate())):(this.dateValue="",this.setTime(""))},updateTime:function(){var t=this.tf.getValue();!t||t instanceof Date||(t=Date.parseDate(t,this.tf.format)),t&&!this.df.getValue()&&(this.initDateValue(),this.setDate(this.dateValue)),this.dateValue instanceof Date&&(t?(this.dateValue.setHours(t.getHours()),this.dateValue.setMinutes(t.getMinutes()),this.dateValue.setSeconds(t.getSeconds())):(this.dateValue.setHours(0),this.dateValue.setMinutes(0),this.dateValue.setSeconds(0)))},updateHidden:function(){var value;this.isRendered&&(value="",this.dateValue instanceof Date&&(value=this.dateValue.add(Date.MINUTE,0-60*new Number(this.offset_time)).format(this.hiddenFormat)),this.el.dom.value=value)},updateValue:function(){this.updateDate(),this.updateTime(),this.updateHidden()},validate:function(){return this.df.validate()&&this.tf.validate()},renderer:function(field){var format=field.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;format+=" "+(field.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat);return function(val){return Ext.util.Format.date(val,format)}}}),Ext.reg("xdatetime",Ext.ux.form.DateTime),Ext.namespace("Ext.ux.Utils"),Ext.ux.Utils.EventQueue=function(handler,scope){if(!handler)throw"Handler is required.";this.handler=handler,this.scope=scope||window,this.queue=[],this.is_processing=!1,this.postEvent=function(event,data){data=data||null,this.queue.push({event:event,data:data}),this.is_processing||this.process()},this.flushEventQueue=function(){this.queue=[]},this.process=function(){for(;0 ").compile()},createForm:function(){this.form=Ext.DomHelper.append(this.body,{tag:"form",method:"post",action:this.url,style:"position: absolute; left: -100px; top: -100px; width: 100px; height: 100px; clear: both;"})},createProgressBar:function(){this.progress_bar=this.add(new Ext.ProgressBar({x:0,y:0,anchor:"0",value:0,text:this.i18n.progress_waiting_text}))},createGrid:function(){var store=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},Ext.ux.UploadDialog.FileRecord),sortInfo:{field:"state",direction:"DESC"},pruneModifiedRecords:!0}),cm=new Ext.grid.ColumnModel([{header:this.i18n.state_col_title,width:this.i18n.state_col_width,resizable:!1,dataIndex:"state",sortable:!0,renderer:this.renderStateCell.createDelegate(this)},{header:this.i18n.filename_col_title,width:this.i18n.filename_col_width,dataIndex:"filename",sortable:!0,renderer:this.renderFilenameCell.createDelegate(this)},{header:this.i18n.note_col_title,width:this.i18n.note_col_width,dataIndex:"note",sortable:!0,renderer:this.renderNoteCell.createDelegate(this)}]);this.grid_panel=new Ext.grid.GridPanel({ds:store,cm:cm,layout:"fit",height:this.height-100,region:"center",x:0,y:22,border:!0,viewConfig:{autoFill:!0,forceFit:!0},bbar:new Ext.Toolbar}),this.grid_panel.on("render",this.onGridRender,this),this.add(this.grid_panel),this.grid_panel.getSelectionModel().on("selectionchange",this.onGridSelectionChange,this)},fillToolbar:function(){var tb=this.grid_panel.getBottomToolbar();tb.x_buttons={},tb.x_buttons.add=tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({input_name:this.post_var_name,text:this.i18n.add_btn_text,tooltip:this.i18n.add_btn_tip,iconCls:"ext-ux-uploaddialog-addbtn",handler:this.onAddButtonFileSelected,scope:this})),tb.x_buttons.remove=tb.addButton({text:this.i18n.remove_btn_text,tooltip:this.i18n.remove_btn_tip,iconCls:"ext-ux-uploaddialog-removebtn",handler:this.onRemoveButtonClick,scope:this}),tb.x_buttons.reset=tb.addButton({text:this.i18n.reset_btn_text,tooltip:this.i18n.reset_btn_tip,iconCls:"ext-ux-uploaddialog-resetbtn",handler:this.onResetButtonClick,scope:this}),tb.x_buttons.upload=tb.addButton({text:this.i18n.upload_btn_start_text,tooltip:this.i18n.upload_btn_start_tip,iconCls:"ext-ux-uploaddialog-uploadstartbtn",handler:this.onUploadButtonClick,scope:this}),tb.x_buttons.close=tb.addButton({text:this.i18n.close_btn_text,tooltip:this.i18n.close_btn_tip,handler:this.onCloseButtonClick,scope:this})},renderStateCell:function(data,cell,record,row_index,column_index,store){return this.state_tpl.apply({state:data})},renderFilenameCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},renderNoteCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},getFileExtension:function(parts){var result=null,parts=parts.split(".");return 1((?:.|\n)*)<\/pre>$/i);filter&&(rt=filter[1]),json_response=Ext.util.JSON.decode(rt)}catch(e){}data={record:data.record,response:json_response};"success"in json_response&&json_response.success?this.fsa.postEvent("file-upload-success",data):this.fsa.postEvent("file-upload-error",data)},onAjaxFailure:function(response,data){data={record:data.record,response:{success:!1,error:this.i18n.note_upload_failed}};this.fsa.postEvent("file-upload-failed",data)},startUpload:function(){this.fsa.postEvent("start-upload")},stopUpload:function(){this.fsa.postEvent("stop-upload")},getUrl:function(){return this.url},setUrl:function(url){this.url=url},getBaseParams:function(){return this.base_params},setBaseParams:function(params){this.base_params=params},getUploadAutostart:function(){return this.upload_autostart},setUploadAutostart:function(value){this.upload_autostart=value},getMakeReload:function(){return this.Make_Reload},setMakeReload:function(value){this.Make_Reload=value},getAllowCloseOnUpload:function(){return this.allow_close_on_upload},setAllowCloseOnUpload:function(value){this.allow_close_on_upload},getResetOnHide:function(){return this.reset_on_hide},setResetOnHide:function(value){this.reset_on_hide=value},getPermittedExtensions:function(){return this.permitted_extensions},setPermittedExtensions:function(value){this.permitted_extensions=value},isUploading:function(){return this.is_uploading},isNotEmptyQueue:function(){return 0=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(params,records,options){var q=options.params[this.queryParam]||params.baseParams[this.queryParam]||"",params=options.params[this.queryValuesIndicator]||params.baseParams[this.queryValuesIndicator];this.removeValuesFromStore&&this.store.each(function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)},this),params&&(params=q.split(this.queryValuesDelimiter),Ext.each(params,function(rec){this.remoteLookup.remove(rec);rec=this.findRecord(this.valueField,rec);rec&&this.addRecord(rec)},this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())),""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,function(rec){"object"==typeof rec&&rec[this.valueField]===q&&(this.remoteLookup.remove(rec),records.length&&records[0].get(this.valueField)===q?this.addRecord(records[0]):(rec=this.createRecord(rec),this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),function(){this.isExpanded()&&this.collapse()}.defer(10,this)))},this);var re,toAdd=[];""===q?Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)},this):(re=new RegExp(Ext.escapeRe(q)+".*","i"),Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)},this)),this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;o.clearCurrentFocus().collapse(),o.navigateItemsWithTab?this.focus():(o.el.dom.focus(),function(){this.onLnkFocus(),o.currentFocus=this}.defer(10,this))},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(cfg,el){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,cfg,el);el=this.el;el&&el.remove(),this.el=el=cfg.createChild({tag:"li"},cfg.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"==btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(el){el=this.el["left"==el?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){function actionDestroy(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()}return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields){var f;this.config.fields.hasOwnProperty(i)&&((f=this.config.fields[i]).xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f))}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "].indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id:id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,function(e){"yes"===e&&Ext.callback(el.handler,this)},el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j'+_("file_err_filter")+"",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update(''+_("data_err_load")+"
")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn=this.getTemplateArgs();btn.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,btn,!0):this.template.append(ct,btn,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,0]],triggerConfig:{tag:"button",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off","aria-label":_("search")},minChars:1,displayField:"name",valueField:"_action",width:259,maxWidth:437,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','","",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"modDocument":return"file";case"modSymLink":return"files-o";case"modWebLink":return"link";case"modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label||_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"search/search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){var cls,lw;this.list||(cls="x-combo-list",lw=Ext.getDom(this.getListParent()||Ext.getBody()),this.list=new Ext.Layer({parentEl:lw,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(lw)}),lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth),this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='{'+this.displayField+"}
"),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()},this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()},this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")))},onTypeAhead:function(){},onSelect:function(target,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();target="?a="+target.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},toggle:function(hide){var uberbar=Ext.get(this.container.id);uberbar.hasClass("visible")||hide?(this.blurBar(),uberbar.removeClass("visible")):(uberbar.addClass("visible"),this.focusBar())},hideBar:function(){this.toggle(!0)},focusBar:function(){this.selectText(),this.animate()},blurBar:function(){this.animate(!0)},animate:function(to){to=to?this.width:this.maxWidth;this.wrap.setWidth(to,!0),this.el.setWidth(to-this.getTriggerWidth(),!0)},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()}),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,errorHandlingTabs:[],errorHandlingIgnoreTabs:[],submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,initFocus){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,initFocus]),this.fireEvent("success",{form:f,result:initFocus.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);initFocus=Ext.state.Manager.get("curFocus");initFocus&&""!=initFocus&&(Ext.state.Manager.clear("curFocus"),(initFocus=document.getElementById(initFocus))&&initFocus.focus())}}),!0)},failure:function(o){var btn;this.warnUnsavedChanges=!0,-1===this.getForm().baseParams.action.indexOf("/create")||(btn=Ext.getCmp("modx-abtn-save"))&&btn.enable(),this.fireEvent("failureSubmit")},focusFirstField:function(){var fld;0mainTabs.initialConfig.items.length&&mainTabs.items.keys.forEach(function(key){mainTabs.items.map[key].hasOwnProperty("id")&&-1===this.errorHandlingIgnoreTabs.indexOf(mainTabs.items.map[key].id)&&-1===searchTabs.indexOf(mainTabs.items.map[key].id)&&searchTabs.push(mainTabs.items.map[key].id)},this);for(var errFld,i=0;i",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:'",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var i,newInstance=srcInstance.constructor();for(i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data).hasOwnProperty("trail")&&data.trail.unshift(this.root),this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(panel){for(var last=panel.getTarget(),index=1,parent=last.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;0{name:htmlEncode}',"
{description:htmlEncode}
")}),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('{name:htmlEncode}',"
")}),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('{name:htmlEncode} ({key:htmlEncode})
')}),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:!1,editable:!1,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('{templatename:htmlEncode}',' - {category_name:htmlEncode}',"
{description:htmlEncode()}
"),url:MODx.config.connector_url,baseParams:{action:"element/template/getlist",combo:1},allowBlank:!0}),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:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"element/category/getlist",showNone:!0,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,!0)}}),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:!0,minChars:1,editable:!0,allowBlank:!0,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"security/role/getlist",addNone:!0}}),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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),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:!1,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:!0,typeAhead:!1,editable:!1,allowBlank:!1,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:!1}),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:!0,minChars:1,queryParam:"search",editable:!0,allowBlank:!0,preselectValue:!1,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),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),this.store.load())},Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox,{preselectFirstValue:function(item){var found;(item=""!=this.config.preselectValue&&-1!=(found=item.find("name",this.config.preselectValue))?item.getAt(found):item.getAt(0))&&(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){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},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"],editable:!0,value:0,typeAhead:!0}),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:!1,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:!1,readOnly:!1,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:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()},this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(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=!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var ctxv=Ext.getCmp("modx-resource-tree");if(!ctxv)return!1;ctxv.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);return ctxf&&(ctxv=ctxf.getValue(),node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)),this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),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:!1,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:!1,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('{namespace:htmlEncode} - {controller:htmlEncode}
')}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"system/dashboard/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"source/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"source/type/getlist"},tpl:new Ext.XTemplate('','','
{name:htmlEncode}
','
{description:htmlEncode}
',"
")}),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:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"security/role/getAuthorityList",addNone:!0}}),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:!1,editable:!1}),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:!1,triggerAction:"all",editable:!0,forceSelection:!1,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),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'},Ext.applyIf(config.groupingConfig,groupingConfig),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})),config.tbar)for(var ix=0;ix":"")+data.msg},this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg))},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(rx){this.fireEvent("afterRemoveRow",rx)&&(rx=this.getSelectionModel().getSelected(),this.getStore().remove(rx))},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){var m;e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),!this.getMenu||(m=this.getMenu(g,ri,e))&&m.length&&0 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i '},beforeExpand:function(record,body,rowIndex){return!1!==this.fireEvent("beforeexpand",this,record,body,rowIndex)&&(this.tpl&&this.lazyRender&&(body.innerHTML=this.getBodyContent(record,rowIndex)),!0)},toggleRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row)),this[Ext.fly(row).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](row)},expandRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",row);this.beforeExpand(record,body,row.rowIndex)&&(this.state[record.id]=!0,Ext.fly(row).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded"),this.fireEvent("expand",this,record,body,row.rowIndex))},collapseRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.fly(row).child("tr:nth(1) div.x-grid3-row-body",!0);!1!==this.fireEvent("beforecollapse",this,record,body,row.rowIndex)&&(this.state[record.id]=!1,Ext.fly(row).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed"),this.fireEvent("collapse",this,record,body,row.rowIndex))}}),Ext.preg("rowexpander",Ext.ux.grid.RowExpander),Ext.grid.RowExpander=Ext.ux.grid.RowExpander,Ext.ns("Ext.ux.grid"),Ext.ux.grid.CheckColumn=function(a){Ext.apply(this,a),this.id||(this.id=Ext.id()),this.renderer=this.renderer.createDelegate(this)},Ext.ux.grid.CheckColumn.prototype={init:function(b){this.grid=b,this.grid.on("render",function(){this.grid.getView().mainBody.on("mousedown",this.onMouseDown,this)},this),this.grid.on("destroy",this.onDestroy,this)},onMouseDown:function(e,b){this.grid.fireEvent("rowclick"),b.className&&-1!=b.className.indexOf("x-grid3-cc-"+this.id)&&(e.stopEvent(),b=this.grid.getView().findRowIndex(b),(b=this.grid.store.getAt(b)).set(this.dataIndex,!b.data[this.dataIndex]),this.grid.fireEvent("afteredit"))},renderer:function(v,p,a){return p.css+=" x-grid3-check-col-td",'
'},onDestroy:function(){var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)}},Ext.preg("checkcolumn",Ext.ux.grid.CheckColumn),Ext.grid.CheckColumn=Ext.ux.grid.CheckColumn,Ext.grid.PropertyColumnModel=function(a,c){var g=Ext.grid,f=Ext.form;this.grid=a,g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:!0,dataIndex:"name",id:"name",menuDisabled:!0},{header:this.valueText,width:50,resizable:!1,dataIndex:"value",id:"value",menuDisabled:!0}]),this.store=c;c=new f.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]},getValue:function(){return"true"==this.el.dom.value}});this.editors={date:new g.GridEditor(new f.DateField({selectOnFocus:!0})),string:new g.GridEditor(new f.TextField({selectOnFocus:!0})),number:new g.GridEditor(new f.NumberField({selectOnFocus:!0,style:"text-align:left;"})),boolean:new g.GridEditor(c)},this.renderCellDelegate=this.renderCell.createDelegate(this),this.renderPropDelegate=this.renderProp.createDelegate(this)},Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return a?"true":"false"},isCellEditable:function(a,b){return 1==a},getRenderer:function(a){return 1==a?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(v){return this.getPropertyName(v)},renderCell:function(a){var b=a;return Ext.isDate(a)?b=this.renderDate(a):"boolean"==typeof a&&(b=this.renderBool(a)),Ext.util.Format.htmlEncode(b)},getPropertyName:function(a){var b=this.grid.propertyNames;return b&&b[a]?b[a]:a},getCellEditor:function(a,n){var val=this.store.getProperty(n),n=val.data.name,val=val.data.value;return this.grid.customEditors[n]||(Ext.isDate(val)?this.editors.date:"number"==typeof val?this.editors.number:"boolean"==typeof val?this.editors.boolean:this.editors.string)},destroy:function(){for(var a in Ext.grid.PropertyColumnModel.superclass.destroy.call(this),this.editors)Ext.destroy(a)}}),MODx.Console=function(config){config=config||{},Ext.Updater.defaults.showLoadIndicator=!1,Ext.applyIf(config,{title:_("console"),modal:!Ext.isIE,closeAction:"hide",resizable:!1,collapsible:!1,closable:!0,maximizable:!0,autoScroll:!0,height:400,width:600,refreshRate:2,cls:"modx-window modx-console",items:[{itemId:"header",cls:"modx-console-text",html:_("console_running"),border:!1},{xtype:"panel",itemId:"body",cls:"x-panel-bwrap modx-console-text"}],buttons:[{text:_("console_download_output"),handler:this.download,scope:this},{text:_("ok"),cls:"primary-button",itemId:"okBtn",disabled:!0,scope:this,handler:this.hideConsole}],keys:[{key:Ext.EventObject.S,ctrl:!0,fn:this.download,scope:this},{key:Ext.EventObject.ENTER,fn:this.hideConsole,scope:this}]}),MODx.Console.superclass.constructor.call(this,config),this.config=config,this.addEvents({shutdown:!0,complete:!0}),this.on("show",this.init,this),this.on("hide",function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fireEvent("shutdown"),this.destroy()}),this.on("complete",this.onComplete,this)},Ext.extend(MODx.Console,Ext.Window,{mgr:null,running:!1,init:function(){Ext.Msg.hide(),this.fbar.setDisabled(!0),this.keyMap.setDisabled(!0),this.getComponent("body").el.dom.innerHTML="",this.provider=new Ext.direct.PollingProvider({type:"polling",url:MODx.config.connector_url,interval:1e3,baseParams:{action:"system/console",register:this.config.register||"",topic:this.config.topic||"",clear:!1,show_filename:this.config.show_filename||0,format:this.config.format||"html_log"}}),Ext.Direct.addProvider(this.provider),Ext.Direct.on("message",this.onMessage,this)},onMessage:function(e,p){var out=this.getComponent("body");out&&(out.el.insertHtml("beforeEnd",e.data),e.data="",out.el.scroll("b",out.el.getHeight(),!0)),e.complete&&this.fireEvent("complete"),delete e},onComplete:function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fbar.setDisabled(!1),this.keyMap.setDisabled(!1)},download:function(){var c=this.getComponent("body").getEl().dom.innerHTML||" ";MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"system/downloadoutput",data:c},listeners:{success:{fn:function(r){location.href=MODx.config.connector_url+"?action=system/downloadOutput&HTTP_MODAUTH="+MODx.siteId+"&download="+r.message},scope:this}}})},setRegister:function(register,topic){this.config.register=register,this.config.topic=topic},hideConsole:function(){this.hide()}}),Ext.reg("modx-console",MODx.Console),Ext.namespace("MODx.portal"),Ext.ux.Portal=Ext.extend(Ext.Panel,{layout:"column",cls:"x-portal",defaultType:"portalcolumn",initComponent:function(){Ext.ux.Portal.superclass.initComponent.call(this),this.addEvents({validatedrop:!0,beforedragover:!0,dragover:!0,beforedrop:!0,drop:!0})},initEvents:function(){Ext.ux.Portal.superclass.initEvents.call(this),this.dd=new Ext.ux.Portal.DropZone(this,this.dropConfig)},beforeDestroy:function(){this.dd&&this.dd.unreg(),Ext.ux.Portal.superclass.beforeDestroy.call(this)}}),Ext.reg("portal",Ext.ux.Portal),Ext.ux.Portal.DropZone=function(a,b){this.portal=a,Ext.dd.ScrollManager.register(a.body),Ext.ux.Portal.DropZone.superclass.constructor.call(this,a.bwrap.dom,b),a.body.ddScrollConfig=this.ddScrollConfig},Ext.extend(Ext.ux.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:!0,increment:200},createEvent:function(a,e,b,d,c,f){return{portal:this.portal,panel:b.panel,columnIndex:d,column:c,position:f,data:b,source:a,rawEvent:e,status:this.dropAllowed}},notifyOver:function(a,e,j){var d=e.getXY(),portal=this.portal,px=a.proxy;this.grid||(this.grid=this.getGrid());var c=portal.body.dom.clientWidth;this.lastCW?this.lastCW!=c&&(this.lastCW=c,portal.doLayout(),this.grid=this.getGrid()):this.lastCW=c;for(var g=0,xs=this.grid.columnX,cmatch=!1,i=xs.length;gd[1]){match=!0;break}}pos=(match&&p?pos:c.items.getCount())+(overSelf?-1:0);j=this.createEvent(a,e,j,g,c,pos);return!1!==portal.fireEvent("validatedrop",j)&&!1!==portal.fireEvent("beforedragover",j)&&(px.getProxy().setWidth("auto"),p?px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null):px.moveProxy(c.el.dom,null),this.lastPos={c:c,col:g,p:!!(overSelf||match&&p)&&pos},this.scrollPos=portal.body.getScroll(),portal.fireEvent("dragover",j)),j.status},notifyOut:function(){delete this.grid},notifyDrop:function(a,e,b){var c,pos,f,g,d;delete this.grid,this.lastPos&&(c=this.lastPos.c,f=this.lastPos.col,pos=this.lastPos.p,f=this.createEvent(a,e,b,f,c,!1!==pos?pos:c.items.getCount()),!1!==this.portal.fireEvent("validatedrop",f)&&!1!==this.portal.fireEvent("beforedrop",f)&&(a.proxy.getProxy().remove(),a.panel.el.dom.parentNode.removeChild(a.panel.el.dom),!1!==pos?(c==a.panel.ownerCt&&c.items.items.indexOf(a.panel)<=pos&&pos++,c.insert(pos,a.panel)):c.add(a.panel),c.doLayout(),this.portal.fireEvent("drop",f),(g=this.scrollPos.top)&&(d=this.portal.body.dom,setTimeout(function(){d.scrollTop=g},10))),delete this.lastPos)},getGrid:function(){var a=this.portal.bwrap.getBox();return a.columnX=[],this.portal.items.each(function(c){a.columnX.push({x:c.el.getX(),w:c.el.getWidth()})}),a},unreg:function(){Ext.ux.Portal.DropZone.superclass.unreg.call(this)}}),MODx.portal.Column=Ext.extend(Ext.Container,{layout:"anchor",defaultType:"portlet",cls:"x-portal-column",style:"padding:10px;",columnWidth:1,defaults:{collapsible:!0,autoHeight:!0,titleCollapse:!0,draggable:!0,style:"padding: 5px 0;",bodyStyle:"padding: 15px;"}}),Ext.reg("portalcolumn",MODx.portal.Column),MODx.portal.Portlet=Ext.extend(Ext.Panel,{anchor:Ext.isSafari?"98%":"100%",frame:!0,collapsible:!0,draggable:!0,cls:"x-portlet",stateful:!1,layout:"form"}),Ext.reg("portlet",MODx.portal.Portlet),MODx.window.DuplicateResource=function(config){config=config||{},this.ident=config.ident||"dupres"+Ext.id(),Ext.applyIf(config,{title:config.pagetitle?_("duplicate")+" "+config.pagetitle:_("duplication_options"),id:this.ident}),MODx.window.DuplicateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateResource,MODx.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record))return!(this.fp.getForm().baseParams={action:"resource/updateduplicate",prefixDuplicate:!0,id:this.config.resource});var items=[];items.push({xtype:"textfield",id:"modx-"+this.ident+"-name",fieldLabel:_("resource_name_new"),name:"name",anchor:"100%",value:""}),this.config.hasChildren&&items.push({xtype:"xcheckbox",boxLabel:_("duplicate_children")+" ("+this.config.childCount+")",hideLabel:!0,name:"duplicate_children",id:"modx-"+this.ident+"-duplicate-children",checked:!0,listeners:{check:{fn:function(cb,checked){checked?this.fp.getForm().findField("modx-"+this.ident+"-name").disable():this.fp.getForm().findField("modx-"+this.ident+"-name").enable()},scope:this}}});var pov=MODx.config.default_duplicate_publish_option||"preserve";items.push({xtype:"fieldset",title:_("publishing_options"),items:[{xtype:"radiogroup",hideLabel:!0,columns:1,value:pov,items:[{boxLabel:_("po_make_all_unpub"),hideLabel:!0,name:"published_mode",inputValue:"unpublish"},{boxLabel:_("po_make_all_pub"),hideLabel:!0,name:"published_mode",inputValue:"publish"},{boxLabel:_("po_preserve"),hideLabel:!0,name:"published_mode",inputValue:"preserve"}]}]}),this.fp=this.createForm({url:this.config.url||MODx.config.connector_url,baseParams:this.config.baseParams||{action:"resource/duplicate",id:this.config.resource,prefixDuplicate:!0},labelWidth:125,defaultType:"textfield",autoHeight:!0,items:items}),this.renderForm()}}),Ext.reg("modx-window-resource-duplicate",MODx.window.DuplicateResource),MODx.window.DuplicateElement=function(config){config=config||{},this.ident=config.ident||"dupeel-"+Ext.id();var flds=[{xtype:"hidden",name:"id",id:"modx-"+this.ident+"-id"},{xtype:"hidden",name:"source",id:"modx-"+this.ident+"-source"},{xtype:"textfield",fieldLabel:_("element_name_new"),name:"template"==config.record.type?"templatename":"name",id:"modx-"+this.ident+"-name",anchor:"100%",enableKeyEvents:!0,listeners:{afterRender:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}},keyup:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}}}}];"tv"==config.record.type&&(flds.push({xtype:"textfield",fieldLabel:_("element_caption_new"),name:"caption",id:"modx-"+this.ident+"-caption",anchor:"100%"}),flds.push({xtype:"xcheckbox",fieldLabel:_("element_duplicate_values"),labelSeparator:"",name:"duplicateValues",id:"modx-"+this.ident+"-duplicate-values",anchor:"100%",inputValue:1,checked:!1})),!0===config.record.static&&flds.push({xtype:"textfield",fieldLabel:_("static_file"),name:"static_file",id:"modx-"+this.ident+"-static_file",anchor:"100%"}),Ext.applyIf(config,{title:_("element_duplicate"),url:MODx.config.connector_url,action:"element/"+config.record.type+"/duplicate",width:600,fields:flds,labelWidth:150}),MODx.window.DuplicateElement.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateElement,MODx.Window,{setStaticElementsPath:function(f){var category,path;!0===this.config.record.static&&("number"!=typeof(category=this.config.record.category)?(0"+_("session_logging_out")+"",xtype:"modx-description"},{xtype:"textfield",id:"modx-"+this.ident+"-username",fieldLabel:_("username"),name:"username",anchor:"100%"},{xtype:"textfield",inputType:"password",id:"modx-"+this.ident+"-password",fieldLabel:_("password"),name:"password",anchor:"100%"},{xtype:"hidden",name:"rememberme",value:1}],buttons:[{text:_("logout"),scope:this,handler:function(){location.href="?logout=1"}},{text:_("login"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.Login.superclass.constructor.call(this,config),this.on("success",this.onLogin,this)},Ext.extend(MODx.window.Login,MODx.Window,{onLogin:function(r){r=r.a.result;r.object&&r.object.token&&(Ext.Ajax.defaultHeaders={modAuth:r.object.token},Ext.Ajax.extraParams={HTTP_MODAUTH:r.object.token},MODx.siteId=r.object.token,MODx.msg.status({message:_("session_extended")}))}}),Ext.reg("modx-window-login",MODx.window.Login),function(window){"use strict";var CanvasPrototype=window.HTMLCanvasElement&&window.HTMLCanvasElement.prototype,hasBlobConstructor=window.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),hasArrayBufferViewSupport=hasBlobConstructor&&window.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dataURLtoBlob=(hasBlobConstructor||BlobBuilder)&&window.atob&&window.ArrayBuffer&&window.Uint8Array&&function(bb){for(var mimeString,byteString=(0<=bb.split(",")[0].indexOf("base64")?atob:decodeURIComponent)(bb.split(",")[1]),arrayBuffer=new ArrayBuffer(byteString.length),intArray=new Uint8Array(arrayBuffer),i=0;i>2,enc2=(3&enc2)<<4|byte2>>4;isNaN(byte2)?enc3=enc4=64:(enc3=(15&byte2)<<2|byte3>>6,enc4=isNaN(byte3)?64:63&byte3),outStr+=b64.charAt(enc1)+b64.charAt(enc2)+b64.charAt(enc3)+b64.charAt(enc4)}return outStr}};function _emit(target,fn,name,evt,ext){evt={type:name.type||name,target:target,result:evt};_extend(evt,ext),fn(evt)}function _hasSupportReadAs(method){return FileReader&&FileReader.prototype["readAs"+method]}function _readAs(file,fn,method,encoding){if(api.isBlob(file)&&_hasSupportReadAs(method)){var Reader=new FileReader;_on(Reader,_readerEvents,function _fn(evt){var type=evt.type;"progress"==type?_emit(file,fn,evt,evt.target.result,{loaded:evt.loaded,total:evt.total}):"loadend"==type?(_off(Reader,_readerEvents,_fn),Reader=null):_emit(file,fn,evt,evt.target.result)});try{encoding?Reader["readAs"+method](file,encoding):Reader["readAs"+method](file)}catch(err){_emit(file,fn,"error",void 0,{error:err.toString()})}}else _emit(file,fn,"error",void 0,{error:"filreader_not_support_"+method})}function _isEntry(item){return item&&(item.isFile||item.isDirectory)}function _getAsEntry(item){var entry;return item.getAsEntry?entry=item.getAsEntry():item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry()),entry}function isInputFile(el){return _rinput.test(el&&el.tagName)}function _getDataTransfer(evt){return(evt.originalEvent||evt||"").dataTransfer||{}}api.addInfoReader(/^image/,function(file,callback){var defer;file.__dimensions||(defer=file.__dimensions=api.defer(),api.readAsImage(file,function(evt){var img=evt.target;defer.resolve("load"!=evt.type&&"error",{width:img.width,height:img.height}),img.src=api.EMPTY_PNG,img=null})),file.__dimensions.then(callback)}),api.event.dnd=function(el,onHover,onDrop){var _id,_type;onDrop||(onDrop=onHover,onHover=api.F),FileReader?(_on(el,"dragenter dragleave dragover",onHover.ff=onHover.ff||function(evt){for(var types=_getDataTransfer(evt).types,i=types&&types.length,debounceTrigger=!1;i--;)if(~types[i].indexOf("File")){evt.preventDefault(),_type!==evt.type&&("dragleave"!=(_type=evt.type)&&onHover.call(evt.currentTarget,!0,evt),debounceTrigger=!0);break}debounceTrigger&&(clearTimeout(_id),_id=setTimeout(function(){onHover.call(evt.currentTarget,"dragleave"!=_type,evt)},50))}),_on(el,"drop",onDrop.ff=onDrop.ff||function(evt){evt.preventDefault(),_type=0,onHover.call(evt.currentTarget,!1,evt),api.getDropFiles(evt,function(files,all){onDrop.call(evt.currentTarget,files,all,evt)})})):api.log("Drag'n'Drop -- not supported")},api.event.dnd.off=function(el,onHover,onDrop){_off(el,"dragenter dragleave dragover",onHover.ff),_off(el,"drop",onDrop.ff)},jQuery&&!jQuery.fn.dnd&&(jQuery.fn.dnd=function(onHover,onDrop){return this.each(function(){api.event.dnd(this,onHover,onDrop)})},jQuery.fn.offdnd=function(onHover,onDrop){return this.each(function(){api.event.dnd.off(this,onHover,onDrop)})}),window.FileAPI=_extend(api,window.FileAPI),api.log("FileAPI: "+api.version),api.log("protocol: "+window.location.protocol),api.log("doctype: ["+doctype.name+"] "+doctype.publicId+" "+doctype.systemId),_each(document.getElementsByTagName("meta"),function(meta){/x-ua-compatible/i.test(meta.getAttribute("http-equiv"))&&api.log("meta.http-equiv: "+meta.getAttribute("content"))});try{_supportConsoleLog=!!console.log,_supportConsoleLogApply=!!console.log.apply}catch(err){}api.flashUrl||(api.flashUrl=api.staticPath+"FileAPI.flash.swf"),api.flashImageUrl||(api.flashImageUrl=api.staticPath+"FileAPI.flash.image.swf"),api.flashWebcamUrl||(api.flashWebcamUrl=api.staticPath+"FileAPI.flash.camera.swf")}(window),function(api,document){"use strict";function getCanvas(){return document.createElement("canvas")}var min=Math.min,round=Math.round,support=!1,exifOrientation={8:270,3:180,6:90,7:270,4:180,5:90};try{support=-1params.maxWidth||img.height>params.maxHeight)&&ImgTrans.resize(params.maxWidth,params.maxHeight,"max"),params.crop&&(crop=params.crop,ImgTrans.crop(0|crop.x,0|crop.y,crop.w||crop.width,crop.h||crop.height)),void 0===params.rotate&&autoOrientation&&(params.rotate="auto"),ImgTrans.set({type:ImgTrans.matrix.type||params.type||file.type||"image/png"}),isFn||ImgTrans.set({deg:params.rotate,overlay:params.overlay,filter:params.filter,quality:params.quality||1}),queue.inc(),ImgTrans.toData(function(err,image){err?queue.fail():(images[name]=image,queue.next())}))})}file.width?_transform(!1,file):api.getInfo(file,_transform)},api.each(["TOP","CENTER","BOTTOM"],function(x,i){api.each(["LEFT","CENTER","RIGHT"],function(y,j){Image[x+"_"+y]=3*i+j,Image[y+"_"+x]=3*i+j})}),Image.toCanvas=function(el){var canvas=document.createElement("canvas");return canvas.width=el.videoWidth||el.width,canvas.height=el.videoHeight||el.height,canvas.getContext("2d").drawImage(el,0,0),canvas},Image.fromDataURL=function(img,size,callback){img=api.newImage(img);api.extend(img,size),callback(img)},Image.applyFilter=function(canvas,filter,doneFn){"function"==typeof filter?filter(canvas,doneFn):window.Caman&&window.Caman("IMG"==canvas.tagName?Image.toCanvas(canvas):canvas,function(){"string"==typeof filter?this[filter]():api.each(filter,function(val,method){this[method](val)},this),this.render(doneFn)})},api.renderImageToCanvas=function(canvas,img,sx,sy,sw,sh,dx,dy,dw,dh){try{return canvas.getContext("2d").drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh)}catch(ex){throw api.log("renderImageToCanvas failed"),ex}},api.support.canvas=api.support.transform=support,api.Image=Image}(FileAPI,document),function(){"use strict";!function(loadImage){"use strict";if(!window.navigator||!window.navigator.platform||!/iP(hone|od|ad)/.test(window.navigator.platform))return;var originalRenderMethod=loadImage.renderImageToCanvas;loadImage.detectSubsampling=function(img){var canvas,context;if(img.width*img.height>1024*1024){canvas=document.createElement("canvas");canvas.width=canvas.height=1;context=canvas.getContext("2d");context.drawImage(img,-img.width+1,0);return context.getImageData(0,0,1,1).data[3]===0}return false},loadImage.detectVerticalSquash=function(img,subsampled){var naturalHeight=img.naturalHeight||img.height,canvas=document.createElement("canvas"),context=canvas.getContext("2d"),data,sy,ey,py,alpha;if(subsampled)naturalHeight/=2;canvas.width=1;canvas.height=naturalHeight;context.drawImage(img,0,0);data=context.getImageData(0,0,1,naturalHeight).data;sy=0;ey=naturalHeight;py=naturalHeight;while(py>sy){alpha=data[(py-1)*4+3];if(alpha===0)ey=py;else sy=py;py=ey+sy>>1}return py/naturalHeight||1},loadImage.renderImageToCanvas=function(canvas,img,sourceX,sourceY,sourceWidth,sourceHeight,destX,destY,destWidth,destHeight){if(img._type==="image/jpeg"){var context=canvas.getContext("2d"),tmpCanvas=document.createElement("canvas"),tileSize=1024,tmpContext=tmpCanvas.getContext("2d"),subsampled,vertSquashRatio,tileX,tileY;tmpCanvas.width=tileSize;tmpCanvas.height=tileSize;context.save();subsampled=loadImage.detectSubsampling(img);if(subsampled){sourceX/=2;sourceY/=2;sourceWidth/=2;sourceHeight/=2}vertSquashRatio=loadImage.detectVerticalSquash(img,subsampled);if(subsampled||vertSquashRatio!==1){sourceY*=vertSquashRatio;destWidth=Math.ceil(tileSize*destWidth/sourceWidth);destHeight=Math.ceil(tileSize*destHeight/sourceHeight/vertSquashRatio);destY=0;tileY=0;while(tileY'+(slice&&options.url.indexOf("=?")<0?'':"")+"";var form=xhr.getElementsByTagName("form")[0],transport=xhr.getElementsByTagName("iframe")[0];form.appendChild(data),api.log(form.parentNode.innerHTML),document.body.appendChild(xhr),_this.xhr.node=xhr,_this.readyState=2;try{form.submit()}catch(err){api.log("iframe.error: "+err)}form=null}else url=url.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted?api.log("Error: already aborted"):(xhr=_this.xhr=api.getXHR(),data.params&&(url+=(url.indexOf("?")<0?"?":"&")+data.params.join("&")),xhr.open("POST",url,!0),api.withCredentials&&(xhr.withCredentials="true"),options.headers&&options.headers["X-Requested-With"]||xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),api.each(options.headers,function(val,key){xhr.setRequestHeader(key,val)}),options._chunked?(xhr.upload&&xhr.upload.addEventListener("progress",api.throttle(function(evt){data.retry||options.progress({type:evt.type,total:data.size,loaded:data.start+evt.loaded,totalSize:data.size},_this,options)},100),!1),xhr.onreadystatechange=function(){var delay,lkb=parseInt(xhr.getResponseHeader("X-Last-Known-Byte"),10);if(_this.status=xhr.status,_this.statusText=xhr.statusText,_this.readyState=xhr.readyState,4==xhr.readyState){for(var k in _xhrResponsePostfix)_this["response"+k]=xhr["response"+k];xhr.onreadystatechange=null,!xhr.status||0').replace(/#(\w+)#/gi,function(a,name){return opts[name]})}function _css(el,css){var key,val;if(el&&el.style)for(key in css){"number"==typeof(val=css[key])&&(val+="px");try{el.style[key]=val}catch(e){}}}function _inherit(obj,methods){_each(methods,function(fn,name){var prev=obj[name];obj[name]=function(){return this.parent=prev,fn.apply(this,arguments)}})}function _isHtmlFile(file){return file&&!file.flashId}function _wrap(fn){var id=fn.wid=api.uid();return flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{flash._fn[fn.wid]=null,delete flash._fn[fn.wid]}catch(e){}}function _getUrl(url,params){var path;return _rhttp.test(url)||(!/^\.\//.test(url)&&"/"==url.charAt(0)||(url=((path=(path=location.pathname).substr(0,path.lastIndexOf("/")))+"/"+url).replace("/./","/")),"//"!=url.substr(0,2)&&(url="//"+location.host+url),_rhttp.test(url)||(url=location.protocol+url)),params&&(url+=(/\?/.test(url)?"&":"?")+params),url}function _makeFlashImage(opts,base64,fn){var key,flashId=api.uid(),el=document.createElement("div"),attempts=10;for(key in opts)el.setAttribute(key,opts[key]),el[key]=opts[key];_css(el,opts),opts.width="100%",opts.height="100%",el.innerHTML=_makeFlashHTML(api.extend({id:flashId,src:_getUrl(api.flashImageUrl,"r="+api.uid()),wmode:"opaque",flashvars:"scale="+opts.scale+"&callback="+_wrap(function _(){return _unwrap(_),0<--attempts&&function(){try{flash.get(flashId).setImage(base64)}catch(e){api.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',e)}}(),!0})},opts)),fn(!1,el),el=null}api.support.flash=function(){var mime=navigator.mimeTypes,has=!1;if(navigator.plugins&&"object"==typeof navigator.plugins["Shockwave Flash"])has=navigator.plugins["Shockwave Flash"].description&&!(mime&&mime["application/x-shockwave-flash"]&&!mime["application/x-shockwave-flash"].enabledPlugin);else try{has=!(!window.ActiveXObject||!new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(er){api.log("Flash -- does not supported.")}return has&&/^file:/i.test(location)&&api.log("[warn] Flash does not work on `file:` protocol."),has}(),api.support.flash&&(!api.html5||!api.support.html5||api.cors&&!api.support.cors||api.media&&!api.support.media)&&(_attr=api.uid(),_retry=0,_files={},_rhttp=/^https?:/i,flash={_fn:{},init:function(){var child=document.body&&document.body.firstChild;if(child)do{if(1==child.nodeType){api.log("FlashAPI.state: awaiting");var dummy=document.createElement("div");return dummy.id="_"+_attr,_css(dummy,{top:1,right:1,width:5,height:5,position:"absolute",zIndex:"2147483647"}),child.parentNode.insertBefore(dummy,child),void flash.publish(dummy,_attr)}}while(child=child.nextSibling);_retry<10&&setTimeout(flash.init,50*++_retry)},publish:function(el,id,opts){opts=opts||{},el.innerHTML=_makeFlashHTML({id:id,src:_getUrl(api.flashUrl,"r="+api.version),wmode:opts.camera?"":"transparent",flashvars:"callback="+(opts.onEvent||"FileAPI.Flash.onEvent")+"&flashId="+id+"&storeKey="+navigator.userAgent.match(/\d/gi).join("")+"_"+api.version+(flash.isReady||(api.pingUrl?"&ping="+api.pingUrl:""))+"&timeout="+api.flashAbortTimeout+(opts.camera?"&useCamera="+_getUrl(api.flashWebcamUrl):"")+"&debug="+(api.debug?"1":"")})},ready:function(){api.log("FlashAPI.state: ready"),flash.ready=api.F,flash.isReady=!0,flash.patch(),flash.patchCamera&&flash.patchCamera(),api.event.on(document,"mouseover",flash.mouseover),api.event.on(document,"click",function(evt){flash.mouseover(evt)&&(evt.preventDefault?evt.preventDefault():evt.returnValue=!0)})},getEl:function(){return document.getElementById("_"+_attr)},getWrapper:function(node){do{if(/js-fileapi-wrapper/.test(node.className))return node}while((node=node.parentNode)&&node!==document.body)},mouseover:function(box){var target=api.event.fix(box).target;if(/input/i.test(target.nodeName)&&"file"==target.type&&!target.disabled){var dummy=target.getAttribute(_attr),box=flash.getWrapper(target);if(api.multiFlash){if("i"==dummy||"r"==dummy)return!1;if("p"!=dummy){target.setAttribute(_attr,"i");dummy=document.createElement("div");if(!box)return void api.log("[err] FlashAPI.mouseover: js-fileapi-wrapper not found");_css(dummy,{top:0,left:0,width:target.offsetWidth,height:target.offsetHeight,zIndex:"2147483647",position:"absolute"}),box.appendChild(dummy),flash.publish(dummy,api.uid()),target.setAttribute(_attr,"p")}return!0}box&&(box=function(docEl){var box=docEl.getBoundingClientRect(),body=document.body,docEl=(docEl&&docEl.ownerDocument).documentElement;return{top:box.top+(window.pageYOffset||docEl.scrollTop)-(docEl.clientTop||body.clientTop||0),left:box.left+(window.pageXOffset||docEl.scrollLeft)-(docEl.clientLeft||body.clientLeft||0),width:box.right-box.left,height:box.bottom-box.top}}(box),_css(flash.getEl(),box),flash.curInp=target)}else/object|embed/i.test(target.nodeName)||_css(flash.getEl(),{top:1,left:1,width:5,height:5})},onEvent:function(evt){var type=evt.type;if("ready"==type){try{flash.getInput(evt.flashId).setAttribute(_attr,"r")}catch(e){}return flash.ready(),setTimeout(function(){flash.mouseenter(evt)},50),!0}"ping"===type?api.log("(flash -> js).ping:",[evt.status,evt.savedStatus],evt.error):"log"===type?api.log("(flash -> js).log:",evt.target):type in flash&&setTimeout(function(){api.log("FlashAPI.event."+evt.type+":",evt),flash[type](evt)},1)},mouseenter:function(evt){var accept,exts,node=flash.getInput(evt.flashId);node&&(flash.cmd(evt,"multiple",null!=node.getAttribute("multiple")),accept=[],exts={},_each((node.getAttribute("accept")||"").split(/,\s*/),function(mime){api.accept[mime]&&_each(api.accept[mime].split(" "),function(ext){exts[ext]=1})}),_each(exts,function(i,ext){accept.push(ext)}),flash.cmd(evt,"accept",accept.length?accept.join(",")+","+accept.join(",").toUpperCase():"*"))},get:function(id){return document[id]||window[id]||document.embeds[id]},getInput:function(id){if(!api.multiFlash)return flash.curInp;try{var node=flash.getWrapper(flash.get(id));if(node)return node.getElementsByTagName("input")[0]}catch(e){api.log('[err] Can not find "input" by flashId:',id,e)}},select:function(files){var event,inp=flash.getInput(files.flashId),uid=api.uid(inp),files=files.target.files;_each(files,function(file){api.checkFileObj(file)}),_files[uid]=files,document.createEvent?((event=document.createEvent("Event")).files=files,event.initEvent("change",!0,!0),inp.dispatchEvent(event)):jQuery?jQuery(inp).trigger({type:"change",files:files}):((event=document.createEventObject()).files=files,inp.fireEvent("onchange",event))},cmd:function(id,name,data,last){try{return api.log("(js -> flash)."+name+":",data),flash.get(id.flashId||id).cmd(name,data)}catch(err){api.log("(js -> flash).onError:",err.toString()),last||setTimeout(function(){flash.cmd(id,name,data,!0)},50)}},patch:function(){api.flashEngine=!0,_inherit(api,{getFiles:function(files,filter,callback){if(callback)return api.filterFiles(api.getFiles(files),filter,callback),null;files=api.isArray(files)?files:_files[api.uid(files.target||files.srcElement||files)];return files?(filter&&(filter=api.getFilesFilter(filter),files=api.filter(files,function(file){return filter.test(file.name)})),files):this.parent.apply(this,arguments)},getInfo:function(file,fn){var defer;_isHtmlFile(file)?this.parent.apply(this,arguments):file.isShot?fn(null,file.info={width:file.width,height:file.height}):(file.__info||(defer=file.__info=api.defer(),flash.cmd(file,"getFileInfo",{id:file.id,callback:_wrap(function _(err,info){_unwrap(_),defer.resolve(err,file.info=info)})})),file.__info.then(fn))}}),api.support.transform=!0,api.Image&&_inherit(api.Image.prototype,{get:function(fn,scaleMode){return this.set({scaleMode:scaleMode||"noScale"}),this.parent(fn)},_load:function(file,fn){var _this;api.log("FlashAPI.Image._load:",file),_isHtmlFile(file)?this.parent.apply(this,arguments):(_this=this,api.getInfo(file,function(err){fn.call(_this,err,file)}))},_apply:function(file,fn){var m,doneFn;api.log("FlashAPI.Image._apply:",file),_isHtmlFile(file)?this.parent.apply(this,arguments):(m=this.getMatrix(file.info),doneFn=fn,flash.cmd(file,"imageTransform",{id:file.id,matrix:m,callback:_wrap(function _(err,base64){api.log("FlashAPI.Image._apply.callback:",err),_unwrap(_),err?doneFn(err):api.support.html5||api.support.dataURI&&!(3e4 "+fileId),_this.xhr={headers:{},abort:function(){flash.cmd(flashId,"abort",{id:fileId})},getResponseHeader:function(name){return this.headers[name]},getAllResponseHeaders:function(){return this.headers}};var queue=api.queue(function(){flash.cmd(flashId,"upload",{url:_getUrl(options.url.replace(/([a-z]+)=(\?)&?/i,"")),data:data,files:fileId?files:null,headers:options.headers||{},callback:_wrap(function upload(evt){var type=evt.type,result=evt.result;api.log("FlashAPI.upload."+type),"progress"==type?(evt.loaded=Math.min(evt.loaded,evt.total),evt.lengthComputable=!0,options.progress(evt)):"complete"==type?(_unwrap(upload),"string"==typeof result&&(_this.responseText=result.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),_this.end(evt.status||200)):"abort"!=type&&"error"!=type||(_this.end(evt.status||0,evt.message),_unwrap(upload))})})});_each(files,function(file){queue.inc(),api.getInfo(file,queue.next)}),queue.check()}})}},api.Flash=flash,api.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(err,img){api.support.dataURI=!(1!=img.width||1!=img.height),flash.init()}))}(window,window.jQuery,FileAPI),function(api){"use strict";var flash,_each=api.each,_cameraQueue=[];function _wrap(fn){var id=fn.wid=api.uid();return api.Flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{api.Flash._fn[fn.wid]=null,delete api.Flash._fn[fn.wid]}catch(e){}}!api.support.flash||!api.media||api.support.media&&api.html5||(flash=api.Flash,api.extend(api.Flash,{patchCamera:function(){api.Camera.fallback=function(el,options,callback){var camId=api.uid();api.log("FlashAPI.Camera.publish: "+camId),flash.publish(el,camId,api.extend(options,{camera:!0,onEvent:_wrap(function _(evt){"camera"===evt.type&&(_unwrap(_),evt.error?(api.log("FlashAPI.Camera.publish.error: "+evt.error),callback(evt.error)):(api.log("FlashAPI.Camera.publish.success: "+camId),callback(null)))})}))},_each(_cameraQueue,function(args){api.Camera.fallback.apply(api.Camera,args)}),_cameraQueue=[],api.extend(api.Camera.prototype,{_id:function(){return this.video.id},start:function(callback){var _this=this;flash.cmd(this._id(),"camera.on",{callback:_wrap(function _(evt){_unwrap(_),evt.error?(api.log("FlashAPI.camera.on.error: "+evt.error),callback(evt.error,_this)):(api.log("FlashAPI.camera.on.success: "+_this._id()),_this._active=!0,callback(null,_this))})})},stop:function(){this._active=!1,flash.cmd(this._id(),"camera.off")},shot:function(){api.log("FlashAPI.Camera.shot:",this._id());var shot=api.Flash.cmd(this._id(),"shot",{});return shot.type="image/png",shot.flashId=this._id(),shot.isShot=!0,new api.Camera.Shot(shot)}})}}),api.Camera.fallback=function(){_cameraQueue.push(arguments)})}((window,window.jQuery,FileAPI)),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}),function(){var maxFileSize=parseInt(MODx.config.upload_maxsize,10),permittedFileTypes=MODx.config.upload_files.toLowerCase().split(",");FileAPI.debug=!1,FileAPI.staticPath=MODx.config.manager_url+"assets/fileapi/";var api_humanFileSize=function(bytes,units){var thresh=units?1e3:1024;if(bytes'+Ext.util.Format.htmlEncode(value)+"
"}},{header:_("upload.columns.state"),id:"state",width:100,renderer:function(value,meta,record){if(!record.get("permitted")||record.get("uploaded"))return''+record.get("message")+"
";var id=Ext.id();return function(){record.progressbar=new Ext.ProgressBar({renderTo:id,value:0,text:"0 / "+record.get("size")})}.defer(25),''}}],getMenu:function(){return[{text:_("upload.contextmenu.remove_entry"),handler:this.removeFile}]}}),MODx.util.MultiUploadDialog.FilesGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.util.MultiUploadDialog.FilesGrid,MODx.grid.LocalGrid,{removeFile:function(){var selected=this.getSelectionModel().getSelections();this.getStore().remove(selected)}}),Ext.reg("multiupload-grid-files",MODx.util.MultiUploadDialog.FilesGrid),MODx.util.MultiUploadDialog.Dialog=function(config){this.filesGridId=Ext.id(),config=config||{},Ext.applyIf(config,{permitted_extensions:permittedFileTypes,autoHeight:!0,width:600,closeAction:"hide",layout:"anchor",listeners:{show:{fn:this.onShow},hide:{fn:this.onHide}},items:[{xtype:"multiupload-grid-files",id:this.filesGridId,anchor:"100%"}],buttons:[{xtype:"multiupload-browse-btn",text:_("upload.buttons.choose"),cls:"primary-button",listeners:{click:{scope:this,fn:function(btn,files){files=FileAPI.getFiles(files);this.addFiles(files),btn.reset()}}}},{xtype:"splitbutton",text:_("upload.buttons.clear"),listeners:{click:{scope:this,fn:this.clearStore}},menu:new Ext.menu.Menu({items:[{text:_("upload.clear_list.all"),listeners:{click:{scope:this,fn:this.clearStore}}},{text:_("upload.clear_list.notpermitted"),listeners:{click:{scope:this,fn:this.clearNotPermittedItems}}}]})},{xtype:"button",text:_("upload.buttons.upload"),cls:"primary-button",listeners:{click:{scope:this,fn:this.startUpload}}},{xtype:"button",text:_("upload.buttons.close"),listeners:{click:{scope:this,fn:this.hideDialog}}}]}),MODx.util.MultiUploadDialog.Dialog.superclass.constructor.call(this,config)};var originalWindowOnShow=Ext.Window.prototype.onShow,originalWindowOnHide=Ext.Window.prototype.onHide;Ext.extend(MODx.util.MultiUploadDialog.Dialog,Ext.Window,{addFiles:function(files){var store=Ext.getCmp(this.filesGridId).getStore(),dialog=this;FileAPI.each(files,function(file){var permitted=!0,p="";api_isFileSizePermitted(file.size)||(p=_("upload.notpermitted.filesize",{size:api_humanFileSize(file.size),max:api_humanFileSize(maxFileSize)}),permitted=!1),dialog.isFileTypePermitted(file.name)||(p=_("upload.notpermitted.extension",{ext:api_getFileExtension(file.name)}),permitted=!1);p={name:file.name,size:api_humanFileSize(file.size),file:file,permitted:permitted,message:p,uploaded:!1},p=new store.recordType(p);store.insert(0,p)})},startUpload:function(){var dialog=this,files=[],params=Ext.apply(this.base_params,{HTTP_MODAUTH:MODx.siteId});Ext.getCmp(this.filesGridId).getStore().each(function(){var file=this.get("file");this.get("permitted")&&!this.get("uploaded")&&(file.record=this,files.push(file))});FileAPI.upload({url:this.url,data:params,files:{file:files},fileprogress:function(evt,file){file.record.progressbar.updateProgress(evt.loaded/evt.total,_("upload.upload_progress",{loaded:api_humanFileSize(evt.loaded),total:file.record.get("size")}),!0)},filecomplete:function(err,resp,file,options){err?401!==resp.status&&MODx.msg.alert(_("upload.msg.title.error"),err):(resp=Ext.util.JSON.decode(resp.response)).success?(file.record.set("uploaded",!0),file.record.set("message",_("upload.upload.success"))):(file.record.set("permitted",!1),file.record.set("message",resp.message))},complete:function(err,xhr){dialog.fireEvent("uploadsuccess")}})},removeEntry:function(record){Ext.getCmp(this.filesGridId).getStore().remove(record)},clearStore:function(){Ext.getCmp(this.filesGridId).getStore().removeAll()},clearNotPermittedItems:function(){var store=Ext.getCmp(this.filesGridId).getStore(),notPermitted=store.query("permitted",!1);store.remove(notPermitted.getRange())},hideDialog:function(){this.hide()},onDDrag:function(ev){ev&&ev.preventDefault()},onDDrop:function(ev){ev&&ev.preventDefault();var dialog=this;FileAPI.getDropFiles(ev.browserEvent,function(files){files.length&&dialog.addFiles(files)})},onShow:function(){var ret=originalWindowOnShow.apply(this,arguments);return Ext.getCmp(this.filesGridId).getStore().removeAll(),this.isDDSet||(this.el.on("dragenter",this.onDDrag,this),this.el.on("dragover",this.onDDrag,this),this.el.on("dragleave",this.onDDrag,this),this.el.on("drop",this.onDDrop,this),this.isDDSet=!0),ret},onHide:function(){var ret=originalWindowOnHide.apply(this,arguments);return this.el.un("dragenter",this.onDDrag,this),this.el.un("dragover",this.onDDrag,this),this.el.un("dragleave",this.onDDrag,this),this.el.un("drop",this.onDDrop,this),this.isDDSet=!1,ret},setBaseParams:function(params){this.base_params=params,this.setTitle(_("upload.title.destination_path",{path:this.base_params.path}))},isFileTypePermitted:function(ext){ext=api_getFileExtension(ext);return-1"+node.attributes.text+"",target:this}),node:node,handler:function(btn,evt){evt.stopPropagation(evt),node.getOwnerTree().handleDirectCreateClick(node)},iconCls:"icon-plus-square",renderTo:elId,listeners:{mouseover:function(button,e){button.tooltip.onTargetOver(e)},mouseout:function(button,e){button.tooltip.onTargetOut(e)}}}))},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll();var h,handled=!1;Ext.isEmpty(node.attributes.treeHandler)&&(!node.isRoot||Ext.isEmpty(node.childNodes[0].attributes.treeHandler))||(h=Ext.getCmp((node.isRoot?node.childNodes[0]:node).attributes.treeHandler))&&(node.isRoot&&(node.attributes.type="root"),m=h.getMenu(this,node,e),handled=!0),handled||(this.getMenu?m=this.getMenu(node,e):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items)),m&&0s[i].length&&(f=!0):s.splice(i,1);f||s.push(p)}}else for(s=s.remove(p),i=0;i',id:"modx-iprops-container"}]}],modps:[]}),MODx.window.InsertElement.superclass.constructor.call(this,config),this.on("show",function(){this.center(),this.mask=new Ext.LoadMask(Ext.get("modx-iprops-container"),{msg:_("loading")}),this.mask.show()},this)},Ext.extend(MODx.window.InsertElement,MODx.Window,{changePropertySet:function(cb){var resourceId=Ext.getCmp("modx-iprops-fp");resourceId&&resourceId.destroy();resourceId=Ext.get("modx-resource-id"),resourceId=null!==resourceId?resourceId.getValue():0;Ext.getCmp("modx-dise-proplist").getUpdater().update({url:MODx.config.connector_url,params:{action:"element/getinsertproperties",classKey:this.config.record.classKey,pk:this.config.record.pk,resourceId:resourceId,propertySet:cb.getValue()},scripts:!0,callback:this.onPropFormLoad,scope:this}),this.modps=[],this.mask.show()},createStore:function(data){return new Ext.data.SimpleStore({fields:["v","d"],data:data})},onPropFormLoad:function(el,s,r){this.mask.hide();var vs=Ext.decode(r.responseText);if(!vs||vs.length<=0)return!1;for(var i=0;i]+)>)/gi,""))))},_handleDrop:function(e){var dropNode=e.dropNode,targetParent=e.target;if(null!==targetParent.findChild("id",dropNode.attributes.id))return!1;if("modContext"==dropNode.attributes.type&&(1'+newTitle.f.findField("pagetitle").getValue()+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record.pagetitle)+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target,function(){Ext.isSafari?w.setPosition(null,30):w.center()},this)},scope:this}}})},_getModContextMenu:function(m){var a=m.attributes,ui=m.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&m.push({text:_("edit_context"),handler:function(){var at=this.cm.activeNode.attributes;this.loadAction("a=context/update&key="+at.pk)}}),m.push({text:_("context_refresh"),handler:function(){this.refreshNode(this.cm.activeNode.id,!0)}}),ui.hasClass("pnewdoc")&&(m.push("-"),this._getCreateMenus(m,"0",ui)),ui.hasClass("pnew")&&m.push({text:_("context_duplicate"),handler:this.duplicateContext}),ui.hasClass("pdelete")&&(m.push("-"),m.push({text:_("context_remove"),handler:this.removeContext})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),m},overviewResource:function(){this.loadAction("a=resource/data")},quickUpdateResource:function(itm,e){this.quickUpdate(itm,e,itm.classKey)},editResource:function(){this.loadAction("a=resource/update")},_getModResourceMenu:function(m){var a=m.attributes,ui=m.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pview")&&m.push({text:_("resource_overview"),handler:this.overviewResource}),ui.hasClass("pedit")&&m.push({text:_("resource_edit"),handler:this.editResource}),ui.hasClass("pqupdate")&&m.push({text:_("quick_update_resource"),classKey:a.classKey,handler:this.quickUpdateResource}),ui.hasClass("pduplicate")&&m.push({text:_("resource_duplicate"),handler:this.duplicateResource}),m.push({text:_("resource_refresh"),handler:this.refreshResource,scope:this}),ui.hasClass("pnew")&&(m.push("-"),this._getCreateMenus(m,null,ui)),ui.hasClass("psave")&&(m.push("-"),ui.hasClass("ppublish")&&ui.hasClass("unpublished")?m.push({text:_("resource_publish"),handler:this.publishDocument}):ui.hasClass("punpublish")&&m.push({text:_("resource_unpublish"),handler:this.unpublishDocument}),ui.hasClass("pundelete")&&ui.hasClass("deleted")?m.push({text:_("resource_undelete"),handler:this.undeleteDocument}):ui.hasClass("pdelete")&&!ui.hasClass("deleted")&&m.push({text:_("resource_delete"),handler:this.deleteDocument})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),ui.hasClass("pview")&&""!=a.preview_url&&(m.push("-"),m.push({text:_("resource_view"),handler:this.preview})),m},refreshResource:function(){this.refreshNode(this.cm.activeNode.id)},createResourceHere:function(itm){var at=this.cm.activeNode.attributes,p=itm.usePk||at.pk;this.loadAction("a=resource/create&class_key="+itm.classKey+"&parent="+p+(at.ctx?"&context_key="+at.ctx:""))},createResource:function(itm,e){var at=this.cm.activeNode.attributes,p=itm.usePk||at.pk;this.quickCreate(itm,e,itm.classKey,at.ctx,p)},_getCreateMenus:function(m,pk,ui){var types=MODx.config.resource_classes,o=this.fireEvent("loadCreateMenus",types);Ext.isObject(o)&&Ext.apply(types,o);var k,coreTypes=["modDocument","modWebLink","modSymLink","modStaticResource"],ct=[],qct=[];for(k in types)-1!=coreTypes.indexOf(k)&&!ui.hasClass("pnew_"+k)||(ct.push({text:types[k].text_create_here,classKey:k,usePk:pk||!1,handler:this.createResourceHere,scope:this}),ui&&ui.hasClass("pqcreate")&&qct.push({text:types[k].text_create,classKey:k,handler:this.createResource,scope:this}));return m.push({text:_("create"),handler:function(){return!1},menu:{items:ct}}),ui&&ui.hasClass("pqcreate")&&m.push({text:_("quick_create"),handler:function(){return!1},menu:{items:qct}}),m},_handleDrag:function(dropEvent){var encNodes=Ext.encode(function simplifyNodes(node){for(var resultNode={},kids=node.childNodes,len=kids.length,i=0;i*',description:"[[*pagetitle]]
"+_("resource_pagetitle_help"),anchor:"100%",allowBlank:!1},{xtype:"textfield",name:"longtitle",id:"modx-"+this.ident+"-longtitle",fieldLabel:_("resource_longtitle"),description:"[[*longtitle]]
"+_("resource_longtitle_help"),anchor:"100%"},{xtype:"textarea",name:"description",id:"modx-"+this.ident+"-description",fieldLabel:_("resource_description"),description:"[[*description]]
"+_("resource_description_help"),anchor:"100%",grow:!1,height:50},{xtype:"textarea",name:"introtext",id:"modx-"+this.ident+"-introtext",fieldLabel:_("resource_summary"),description:"[[*introtext]]
"+_("resource_summary_help"),anchor:"100%",height:50}]},{columnWidth:.4,border:!1,layout:"form",items:[{xtype:"modx-combo-template",name:"template",id:"modx-"+this.ident+"-template",fieldLabel:_("resource_template"),description:"[[*template]]
"+_("resource_template_help"),editable:!1,anchor:"100%",baseParams:{action:"element/template/getList",combo:"1",limit:0},value:MODx.config.default_template},{xtype:"textfield",name:"alias",id:"modx-"+this.ident+"-alias",fieldLabel:_("resource_alias"),description:"[[*alias]]
"+_("resource_alias_help"),anchor:"100%"},{xtype:"textfield",name:"menutitle",id:"modx-"+this.ident+"-menutitle",fieldLabel:_("resource_menutitle"),description:"[[*menutitle]]
"+_("resource_menutitle_help"),anchor:"100%"},{xtype:"textfield",fieldLabel:_("resource_link_attributes"),description:"[[*link_attributes]]
"+_("resource_link_attributes_help"),name:"link_attributes",id:"modx-"+this.ident+"-attributes",maxLength:255,anchor:"100%"},{xtype:"xcheckbox",boxLabel:_("resource_hide_from_menus"),description:"[[*hidemenu]]
"+_("resource_hide_from_menus_help"),hideLabel:!0,name:"hidemenu",id:"modx-"+this.ident+"-hidemenu",inputValue:1,checked:"1"==MODx.config.hidemenu_default?1:0},{xtype:"xcheckbox",name:"published",id:"modx-"+this.ident+"-published",boxLabel:_("resource_published"),description:"[[*published]]
"+_("resource_published_help"),hideLabel:!0,inputValue:1,checked:"1"==MODx.config.publish_default?1:0}]}]},MODx.getQRContentField(this.ident,config.record.class_key)]},{id:"modx-"+this.ident+"-settings",title:_("settings"),layout:"form",cls:"modx-panel",autoHeight:!0,forceLayout:!0,labelWidth:100,defaults:{autoHeight:!0,border:!1},items:MODx.getQRSettings(this.ident,config.record)}]}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateResource,MODx.Window),Ext.reg("modx-window-quick-create-modResource",MODx.window.QuickCreateResource),MODx.window.QuickUpdateResource=function(config){config=config||{},this.ident=config.ident||"qur"+Ext.id(),Ext.applyIf(config,{title:_("quick_update_resource"),id:this.ident,action:"resource/update",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateResource,MODx.window.QuickCreateResource),Ext.reg("modx-window-quick-update-modResource",MODx.window.QuickUpdateResource),MODx.getQRContentField=function(id,cls){id=id||"qur",cls=cls||"modDocument";Ext.getBody().getViewSize();var o={};switch(cls){case"modSymLink":o={xtype:"textfield",fieldLabel:_("symlink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255};break;case"modWebLink":o={xtype:"textfield",fieldLabel:_("weblink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"http://"};break;case"modStaticResource":o={xtype:"modx-combo-browser",browserEl:"modx-browser",prependPath:!1,prependUrl:!1,fieldLabel:_("static_resource"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"",listeners:{select:{fn:function(data){"/"==data.url.substring(0,1)&&Ext.getCmp("modx-"+id+"-content").setValue(data.url.substring(1))},scope:this}}};break;case"modResource":case"modDocument":default:o={xtype:"textarea",name:"content",id:"modx-"+id+"-content",fieldLabel:_("content"),labelSeparator:"",anchor:"100%",style:"min-height: 200px",grow:!0}}return o},MODx.getQRSettings=function(id,va){return[{layout:"column",border:!1,anchor:"100%",defaults:{labelSeparator:"",labelAlign:"top",border:!1,layout:"form"},items:[{columnWidth:.5,items:[{xtype:"hidden",name:"parent",id:"modx-"+(id=id||"qur")+"-parent",value:va.parent},{xtype:"hidden",name:"context_key",id:"modx-"+id+"-context_key",value:va.context_key},{xtype:"hidden",name:"class_key",id:"modx-"+id+"-class_key",value:va.class_key},{xtype:"hidden",name:"publishedon",id:"modx-"+id+"-publishedon",value:va.publishedon},{xtype:"modx-field-parent-change",fieldLabel:_("resource_parent"),description:"[[*parent]]
"+_("resource_parent_help"),name:"parent-cmb",id:"modx-"+id+"-parent-change",value:va.parent||0,anchor:"100%",parentcmp:"modx-"+id+"-parent",contextcmp:"modx-"+id+"-context_key",currentid:va.id},{xtype:"modx-combo-class-derivatives",fieldLabel:_("resource_type"),description:"[[*class_key]]
",name:"class_key",hiddenName:"class_key",id:"modx-"+id+"-class-key",anchor:"100%",value:null!=va.class_key?va.class_key:"modDocument"},{xtype:"modx-combo-content-type",fieldLabel:_("resource_content_type"),description:"[[*content_type]]
"+_("resource_content_type_help"),name:"content_type",hiddenName:"content_type",id:"modx-"+id+"-type",anchor:"100%",value:null!=va.content_type?va.content_type:MODx.config.default_content_type||1},{xtype:"modx-combo-content-disposition",fieldLabel:_("resource_contentdispo"),description:"[[*content_dispo]]
"+_("resource_contentdispo_help"),name:"content_dispo",hiddenName:"content_dispo",id:"modx-"+id+"-dispo",anchor:"100%",value:null!=va.content_dispo?va.content_dispo:0},{xtype:"numberfield",fieldLabel:_("resource_menuindex"),description:"[[*menuindex]]
"+_("resource_menuindex_help"),name:"menuindex",id:"modx-"+id+"-menuindex",width:75,value:va.menuindex||0}]},{columnWidth:.5,items:[{xtype:"xdatetime",fieldLabel:_("resource_publishedon"),description:"[[*publishedon]]
"+_("resource_publishedon_help"),name:"publishedon",id:"modx-"+id+"-publishedon",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.publishedon},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_publishdate"),description:"[[*pub_date]]
"+_("resource_publishdate_help"),name:"pub_date",id:"modx-"+id+"-pub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.pub_date},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_unpublishdate"),description:"[[*unpub_date]]
"+_("resource_unpublishdate_help"),name:"unpub_date",id:"modx-"+id+"-unpub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.unpub_date},{xtype:"xcheckbox",boxLabel:_("resource_folder"),description:_("resource_folder_help"),hideLabel:!0,name:"isfolder",id:"modx-"+id+"-isfolder",inputValue:1,checked:null!=va.isfolder&&va.isfolder},{xtype:"xcheckbox",boxLabel:_("resource_richtext"),description:_("resource_richtext_help"),hideLabel:!0,name:"richtext",id:"modx-"+id+"-richtext",inputValue:1,checked:void 0!==va.richtext?va.richtext?1:0:"1"==MODx.config.richtext_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_searchable"),description:_("resource_searchable_help"),hideLabel:!0,name:"searchable",id:"modx-"+id+"-searchable",inputValue:1,checked:null!=va.searchable?va.searchable:"1"==MODx.config.search_default?1:0,listeners:{check:{fn:MODx.handleQUCB}}},{xtype:"xcheckbox",boxLabel:_("resource_cacheable"),description:_("resource_cacheable_help"),hideLabel:!0,name:"cacheable",id:"modx-"+id+"-cacheable",inputValue:1,checked:null!=va.cacheable?va.cacheable:"1"==MODx.config.cache_default?1:0},{xtype:"xcheckbox",name:"clearCache",id:"modx-"+id+"-clearcache",boxLabel:_("clear_cache_on_save"),description:_("clear_cache_on_save_msg"),hideLabel:!0,inputValue:1,checked:!0},{xtype:"xcheckbox",boxLabel:_("deleted"),description:_("resource_delete"),hideLabel:!0,name:"deleted",id:"modx-"+id+"-deleted",inputValue:1,checked:null!=va.deleted?va.deleted:0},{xtype:"xcheckbox",boxLabel:_("resource_alias_visible"),description:_("resource_alias_visible_help"),hideLabel:!0,name:"alias_visible",id:"modx-"+id+"-alias-visible",inputValue:1,checked:null!=va.alias_visible?va.alias_visible:1},{xtype:"xcheckbox",boxLabel:_("resource_uri_override"),description:_("resource_uri_override_help"),hideLabel:!0,name:"uri_override",id:"modx-"+id+"-uri-override",value:1,checked:!!parseInt(va.uri_override),listeners:{check:{fn:MODx.handleFreezeUri}}},{xtype:"textfield",fieldLabel:_("resource_uri"),description:"[[*uri]]
"+_("resource_uri_help"),name:"uri",id:"modx-"+id+"-uri",maxLength:255,anchor:"100%",value:va.uri||"",hidden:!va.uri_override}]}]}]},MODx.handleQUCB=function(cb){var h=Ext.getCmp(cb.id+"-hd");cb.checked&&h?(cb.setValue(1),h.setValue(1)):h&&(cb.setValue(0),h.setValue(0))},MODx.handleFreezeUri=function(cb){var uri=Ext.getCmp(cb.id.replace("-override",""));if(!uri)return!1;cb.checked?uri.show():uri.hide()},Ext.override(Ext.tree.AsyncTreeNode,{listeners:{click:{fn:function(){return console.log("Clicked me!",arguments),!1},scope:this}}}),MODx.tree.Element=function(config){config=config||{},Ext.applyIf(config,{rootVisible:!1,enableDD:!Ext.isEmpty(MODx.config.enable_dragdrop),ddGroup:"modx-treedrop-elements-dd",title:"",url:MODx.config.connector_url,action:"element/getnodes",sortAction:"element/sort",useDefaultToolbar:!1,baseParams:{currentElement:MODx.request.id||0,currentAction:MODx.request.a||0},tbar:[{cls:"tree-new-template",tooltip:{text:_("new")+" "+_("template")},handler:function(){this.redirect("?a=element/template/create")},scope:this,hidden:!MODx.perm.new_template},{cls:"tree-new-tv",tooltip:{text:_("new")+" "+_("tv")},handler:function(){this.redirect("?a=element/tv/create")},scope:this,hidden:!MODx.perm.new_tv},{cls:"tree-new-chunk",tooltip:{text:_("new")+" "+_("chunk")},handler:function(){this.redirect("?a=element/chunk/create")},scope:this,hidden:!MODx.perm.new_chunk},{cls:"tree-new-snippet",tooltip:{text:_("new")+" "+_("snippet")},handler:function(){this.redirect("?a=element/snippet/create")},scope:this,hidden:!MODx.perm.new_snippet},{cls:"tree-new-plugin",tooltip:{text:_("new")+" "+_("plugin")},handler:function(){this.redirect("?a=element/plugin/create")},scope:this,hidden:!MODx.perm.new_plugin},{cls:"tree-new-category",tooltip:{text:_("new_category")},handler:function(){this.createCategory(null,{target:this.getEl()})},scope:this,hidden:!MODx.perm.new_category}]}),MODx.tree.Element.superclass.constructor.call(this,config),this.on("afterSort",this.afterSort)},Ext.extend(MODx.tree.Element,MODx.tree.Tree,{forms:{},windows:{},stores:{},createCategory:function(n,e){var r={};this.cm.activeNode&&this.cm.activeNode.attributes.data&&(r.parent=this.cm.activeNode.attributes.data.id),MODx.load({xtype:"modx-window-category-create",record:r,listeners:{success:{fn:function(){var node=this.cm.activeNode?this.cm.activeNode.id:"n_category",self=-1!==node.indexOf("_category_");this.refreshNode(node,self)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameCategory:function(itm,e){var r=this.cm.activeNode.attributes.data;MODx.load({xtype:"modx-window-category-rename",record:r,listeners:{success:{fn:function(n){var c=n.a.result.object,n=this.cm.activeNode;n.setText(c.category+" ("+c.id+")"),Ext.get(n.getUI().getEl()).frame(),n.attributes.data.id=c.id,n.attributes.data.category=c.category},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeCategory:function(itm,e){var id=this.cm.activeNode.attributes.data.id;MODx.msg.confirm({title:_("warning"),text:_("category_confirm_delete"),url:MODx.config.connector_url,params:{action:"element/category/remove",id:id},listeners:{success:{fn:function(){this.cm.activeNode.remove()},scope:this}}})},duplicateElement:function(itm,e,id,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:id},listeners:{success:{fn:function(r){r={id:id,type:type,name:_("duplicate_of",{name:this.cm.activeNode.attributes.name}),caption:_("duplicate_of",{name:this.cm.activeNode.attributes.caption}),category:r.object.category,source:r.object.source,static:r.object.static,static_file:r.object.static_file};MODx.load({xtype:"modx-window-element-duplicate",record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},removeElement:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.msg.confirm({title:_("warning"),text:_("remove_this_confirm",{type:_(oar[0]),name:this.cm.activeNode.attributes.name}),url:MODx.config.connector_url,params:{action:"element/"+oar[0]+"/remove",id:oar[2]},listeners:{success:{fn:function(){this.cm.activeNode.remove(),MODx.request.a=="element/"+oar[0]+"/update"&&MODx.request.id==oar[2]&&MODx.loadPage("welcome")},scope:this}}})},activatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/plugin/activate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},deactivatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/plugin/deactivate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},quickCreate:function(itm,e,w){var r={category:this.cm.activeNode.attributes.pk||""},w=MODx.load({xtype:"modx-window-quick-create-"+w,record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id,!0)},scope:this},hide:{fn:function(){this.destroy()}}}});w.setValues(r),w.show(e.target)},quickUpdate:function(itm,e,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:this.cm.activeNode.attributes.pk},listeners:{success:{fn:function(r){var nameField="template"==type?"templatename":"name",w=MODx.load({xtype:"modx-window-quick-update-"+type,record:r.object,listeners:{success:{fn:function(newTitle){this.refreshNode(this.cm.activeNode.id);newTitle=''+Ext.util.Format.htmlEncode(newTitle.f.findField(nameField).getValue())+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record[nameField])+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target)},scope:this}}})},_createElement:function(itm,e,t){var cat_id=this.cm.activeNode.id.substr(2).split("_"),a="type"==cat_id[0]?cat_id[1]:cat_id[0],cat_id="type"==cat_id[0]?0:"category"==cat_id[1]?cat_id[2]:cat_id[3],a="element/"+a+"/create";return this.redirect("?a="+a+"&category="+cat_id),this.cm.hide(),!1},afterSort:function(o){var dn,tn=o.event.target.attributes;"category"==tn.type&&(dn=o.event.dropNode.attributes,"n_category"!=tn.id&&"category"==dn.type?o.event.target.expand():(this.refreshNode(o.event.target.attributes.id,!0),this.refreshNode("n_type_"+o.event.dropNode.attributes.type,!0)))},_handleDrop:function(e){var target=e.target;return"above"!=e.point&&"below"!=e.point&&(("modCategory"==target.attributes.classKey||"root"==target.attributes.classKey)&&(!!this.isCorrectType(e.dropNode,target)&&("category"==target.attributes.type&&"append"==e.point||0"+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&(m.push({text:_("edit_"+a.type),type:a.type,pk:a.pk,handler:function(itm,e){MODx.loadPage("element/"+itm.type+"/update","id="+itm.pk)}}),m.push({text:_("quick_update_"+a.type),type:a.type,handler:function(itm,e){this.quickUpdate(itm,e,itm.type)}}),"modPlugin"==a.classKey&&(a.active?m.push({text:_("plugin_deactivate"),type:a.type,handler:this.deactivatePlugin}):m.push({text:_("plugin_activate"),type:a.type,handler:this.activatePlugin}))),ui.hasClass("pnew")&&m.push({text:_("duplicate_"+a.type),pk:a.pk,type:a.type,handler:function(itm,e){this.duplicateElement(itm,e,itm.pk,itm.type)}}),ui.hasClass("pdelete")&&m.push({text:_("remove_"+a.type),handler:this.removeElement}),m.push("-"),ui.hasClass("pnew")&&m.push({text:_("add_to_category_"+a.type),handler:this._createElement}),ui.hasClass("pnewcat")&&m.push({text:_("new_category"),handler:this.createCategory}),m},_getCategoryMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pnewcat")&&m.push({text:_("category_create"),handler:this.createCategory}),ui.hasClass("peditcat")&&m.push({text:_("category_rename"),handler:this.renameCategory}),2",{cls:"x-btn-icon icon-file_manager",tooltip:{text:_("modx_browser")},handler:this.loadFileManager,scope:this,hidden:!(MODx.perm.file_manager&&!MODx.browserOpen)}],tbarCfg:{id:config.id+"-tbar"}}),MODx.tree.Directory.superclass.constructor.call(this,config),this.addEvents({beforeUpload:!0,afterUpload:!0,afterQuickCreate:!0,afterRename:!0,afterRemove:!0,fileBrowserSelect:!0,changeSource:!0,afterSort:!0}),this.on("click",function(n,e){n.select(),this.cm.activeNode=n},this),this.on("render",function(){var el=Ext.get(this.config.id);el.createChild({tag:"div",id:this.config.id+"_tb"}),el.createChild({tag:"div",id:this.config.id+"_filter"}),this.addSourceToolbar()},this),this.on("show",function(){if(!this.config.hideSourceCombo)try{this.sourceCombo.show()}catch(e){}},this),this._init(),this.on("afterrender",this.showRefresh,this),this.on("afterSort",this._handleAfterDrop,this)},Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{windows:{},getRootMenu:function(node){var menu=[];return MODx.perm.directory_create&&menu.push({text:_("file_folder_create"),handler:this.createDirectory,scope:this}),MODx.perm.file_create&&menu.push({text:_("file_create"),handler:this.createFile,scope:this}),MODx.perm.file_upload&&menu.push({text:_("upload_files"),handler:this.uploadFiles,scope:this}),node.ownerTree.el.hasClass("pupdate")&&menu.push(["-",{text:_("update"),handler:function(){MODx.loadPage("source/update","id="+node.ownerTree.source)}}]),menu},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll(),node.isRoot?m=this.getRootMenu(node):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items),m&&0]+)>)/gi,"")))),targetNode.reload(!0)},_handleDrag:function(dropEvent){var from=dropEvent.dropNode.attributes.id,to=dropEvent.target.attributes.id;MODx.Ajax.request({url:this.config.url,params:{source:this.config.baseParams.source,from:from,to:to,action:this.config.sortAction||"browser/directory/sort",point:dropEvent.point},listeners:{success:{fn:function(r){var el=dropEvent.dropNode.getUI().getTextEl();el&&Ext.get(el).frame(),this.fireEvent("afterSort",{event:dropEvent,result:r})},scope:this},failure:{fn:function(r){return MODx.form.Handler.errorJSON(r),this.refresh(),!1},scope:this}}})},getPath:function(node){var path,p,a;if(node!==this.root){for(p=node.parentNode,a=[node.text];p&&p!==this.root;)a.unshift(p.text),p=p.parentNode;a.unshift(this.root.attributes.path||""),path=a.join(this.pathSeparator)}else path=node.attributes.path||"";return(path=path.replace(/^[\/\.]*/,""))+"/"},editFile:function(itm,e){MODx.loadPage("system/file/edit","file="+this.cm.activeNode.attributes.id+"&source="+this.config.source)},quickUpdateFile:function(itm,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/get",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){r={file:node.attributes.id,name:node.text,path:node.attributes.pathRelative,source:this.getSource(),content:r.object.content};MODx.load({xtype:"modx-window-file-quick-update",record:r,listeners:{hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},createFile:function(itm,e){var dir=this.cm.activeNode,dir=dir&&dir.attributes&&(dir.isRoot||"dir"==dir.attributes.type)?dir.attributes.id:"";MODx.loadPage("system/file/create","directory="+dir+"&source="+this.getSource())},quickCreateFile:function(itm,e){var r={directory:this.cm.activeNode.attributes.id,source:this.getSource()};MODx.load({xtype:"modx-window-file-quick-create",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterQuickCreate"),this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},browser:null,loadFileManager:function(btn,e){var refresh=!1;null===this.browser?this.browser=MODx.load({xtype:"modx-browser",hideFiles:MODx.config.modx_browser_tree_hide_files,rootId:"/",wctx:MODx.ctx,source:this.config.baseParams.source,listeners:{select:{fn:function(data){this.fireEvent("fileBrowserSelect",data)},scope:this}}}):refresh=!0,this.browser&&(this.browser.setSource(this.config.baseParams.source),refresh&&this.browser.win.tree.refresh(),this.browser.show())},renameNode:function(field,nv,ov){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/rename",new_name:nv,old_name:ov,file:this.treeEditor.editNode.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshActiveNode()},scope:this}}})},renameDirectory:function(item,e){var r=this.cm.activeNode,r={old_name:r.text,name:r.text,path:r.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-directory-rename",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameFile:function(item,e){var r=this.cm.activeNode,r={old_name:r.text,name:r.text,path:r.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-file-rename",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshParentNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},createDirectory:function(item,e){var r=!(!this.cm||!this.cm.activeNode)&&this.cm.activeNode,r={parent:r&&"dir"==r.attributes.type?r.attributes.pathRelative:"/",source:this.getSource()};MODx.load({xtype:"modx-window-directory-create",record:r,listeners:{success:{fn:function(){var parent=Ext.getCmp("folder-parent").getValue();this.cm.activeNode&&"constructor"===this.cm.activeNode.constructor.name||""===parent||"/"===parent?this.refresh():this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e?e.target:Ext.getBody())},chmodDirectory:function(item,e){var r=this.cm.activeNode,r={dir:r.attributes.path,mode:r.attributes.perms,source:this.getSource()};MODx.load({xtype:"modx-window-directory-chmod",record:r,listeners:{success:{fn:this.refreshActiveNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeDirectory:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_folder_remove_confirm"),url:MODx.config.connector_url,params:{action:"browser/directory/remove",dir:node.attributes.path,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},removeFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_confirm_remove"),url:MODx.config.connector_url,params:{action:"browser/file/remove",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},_afterRemove:function(){this.fireEvent("afterRemove"),this.refreshParentNode(),this.cm.activeNode=null},unpackFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_download_unzip")+" "+node.attributes.id,url:MODx.config.connectors_url,params:{action:"browser/file/unpack",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource(),path:node.attributes.directory},listeners:{success:{fn:this.refreshParentNode,scope:this}}})},downloadFile:function(item,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"browser/file/download",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){Ext.isEmpty(r.object.url)||(location.href=MODx.config.connector_url+"?action=browser/file/download&download=1&file="+node.attributes.id+"&HTTP_MODAUTH="+MODx.siteId+"&source="+this.getSource()+"&wctx="+MODx.ctx)},scope:this}}})},copyRelativePath:function(item,e){var node=this.cm.activeNode,dummyRelativePathInput=document.createElement("input");document.body.appendChild(dummyRelativePathInput),dummyRelativePathInput.setAttribute("value",node.attributes.pathRelative),dummyRelativePathInput.select(),document.execCommand("copy"),document.body.removeChild(dummyRelativePathInput)},getSource:function(){return this.config.baseParams.source},uploadFiles:function(btn,e){this.uploader||(this.uploader=new MODx.util.MultiUploadDialog.Dialog({url:MODx.config.connector_url,base_params:{action:"browser/file/upload",wctx:MODx.ctx||"",source:this.getSource()},cls:"ext-ux-uploaddialog-dialog modx-upload-window"}),this.uploader.on("show",this.beforeUpload,this),this.uploader.on("uploadsuccess",this.uploadSuccess,this),this.uploader.on("uploaderror",this.uploadError,this),this.uploader.on("uploadfailed",this.uploadFailed,this)),this.uploader.base_params.source=this.getSource(),this.uploader.show(btn)},uploadError:function(dlg,file,data,rec){},uploadFailed:function(dlg,file,rec){},uploadSuccess:function(){var node,pn;this.cm.activeNode?(node=this.cm.activeNode).isLeaf?((pn=node.isLeaf()?node.parentNode:node)?pn.reload():this.refreshActiveNode(),this.fireEvent("afterUpload",node)):this.refreshActiveNode():(this.refresh(),this.fireEvent("afterUpload"))},beforeUpload:function(){var path=this.config.openTo||this.config.rootId||"/";this.cm.activeNode&&(path=this.getPath(this.cm.activeNode),this.cm.activeNode.isLeaf()&&(path=this.getPath(this.cm.activeNode.parentNode))),this.uploader.setBaseParams({action:"browser/file/upload",path:path,wctx:MODx.ctx||"",source:this.getSource()}),this.fireEvent("beforeUpload",this.cm.activeNode)}}),Ext.reg("modx-tree-directory",MODx.tree.Directory),MODx.window.CreateDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_create"),url:MODx.config.connector_url,action:"browser/directory/create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("file_folder_parent"),id:"folder-parent",name:"parent",xtype:"textfield",anchor:"100%"}]}),MODx.window.CreateDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.CreateDirectory,MODx.Window),Ext.reg("modx-window-directory-create",MODx.window.CreateDirectory),MODx.window.ChmodDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_chmod"),url:MODx.config.connector_url,action:"browser/directory/chmod",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{name:"dir",fieldLabel:_("name"),xtype:"statictextfield",anchor:"100%",submitValue:!0},{fieldLabel:_("mode"),name:"mode",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.ChmodDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.ChmodDirectory,MODx.Window),Ext.reg("modx-window-directory-chmod",MODx.window.ChmodDirectory),MODx.window.RenameDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"browser/directory/rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.RenameDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameDirectory,MODx.Window),Ext.reg("modx-window-directory-rename",MODx.window.RenameDirectory),MODx.window.RenameFile=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"browser/file/rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{name:"dir",xtype:"hidden"}]}),MODx.window.RenameFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameFile,MODx.Window),Ext.reg("modx-window-file-rename",MODx.window.RenameFile),MODx.window.QuickUpdateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_update"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"browser/file/update",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{xtype:"hidden",name:"file"},{fieldLabel:_("name"),name:"name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}],buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateFile,MODx.Window),Ext.reg("modx-window-file-quick-update",MODx.window.QuickUpdateFile),MODx.window.QuickCreateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_create"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"browser/file/create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("directory"),name:"directory",submitValue:!0,xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateFile,MODx.Window),Ext.reg("modx-window-file-quick-create",MODx.window.QuickCreateFile),MODx.panel.FileTree=function(config){config=config||{},Ext.applyIf(config,{_treePrefix:"source-tree-",autoHeight:!0,defaults:{autoHeight:!0,border:!1}}),MODx.panel.FileTree.superclass.constructor.call(this,config),this.on("render",this.getSourceList,this)},Ext.extend(MODx.panel.FileTree,Ext.Container,{getSourceList:function(){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"source/getList",limit:0},listeners:{success:{fn:function(data){this.onSourceListReceived(data.results)},scope:this},failure:{fn:function(data){return 0"))},formatData:function(data){var size;return data.shortName=Ext.util.Format.ellipsis(data.name,18),data.sizeString=0!=data.size?(size=data.size)<1024?size+" bytes":Math.round(10*size/1024)/10+" KB":0,data.imageSizeString=0!=data.preview?data.image_width+"x"+data.image_height+"px":0,data.imageSizeString="xpx"===data.imageSizeString?0:data.imageSizeString,data.dateString=Ext.isEmpty(data.lastmod)?0:new Date(data.lastmod).format(MODx.config.manager_date_format+" "+MODx.config.manager_time_format),this.lookup[data.name]=data},_initTemplates:function(){this.templates.thumb=new Ext.XTemplate('','','
','

',"
","
{shortName:htmlEncode}","
",""),this.templates.thumb.compile(),this.templates.list=new Ext.XTemplate('','',' ',' {name:htmlEncode}',' ',' {sizeString}'," ",' ',' {imageSizeString}'," "," ","
",""),this.templates.list.compile(),this.templates.details=new Ext.XTemplate('','
',' ',' ",'

',"
"," ",' ',' ','

',"
"," ",' '," "+_("file_name")+":"," {name:htmlEncode}",' '," "+_("file_size")+":"," {sizeString}"," ",' '," "+_("image_size")+":"," {imageSizeString}"," ",' '," "+_("last_modified")+":"," {dateString}"," ","
"," ","
"),this.templates.details.compile()}}),Ext.reg("modx-browser-view",MODx.browser.View),MODx.browser.Window=function(config){config=config||{},this.ident=Ext.id(),MODx.browserOpen=!0,this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{title:_("modx_browser")+" ("+(MODx.ctx||"web")+")",cls:"modx-browser modx-browser-window",layout:"border",minWidth:500,minHeight:300,width:"90%",height:.9*Ext.getBody().getViewSize().height,modal:!1,closeAction:"hide",border:!1,items:[{id:this.ident+"-browser-tree",cls:"modx-browser-tree",region:"west",width:250,height:"100%",items:this.tree,autoScroll:!0,split:!0,border:!1},{id:this.ident+"-browser-view",cls:"modx-browser-view-ct",region:"center",autoScroll:!0,border:!1,items:this.view,tbar:this.getToolbar(),bbar:this.getPathbar()},{id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",region:"east",split:!0,border:!1,width:250}],buttons:[{id:this.ident+"-cancel-btn",text:_("cancel"),handler:this.close,scope:this},{id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",handler:this.onSelect,scope:this}],keys:{key:27,handler:this.hide,scope:this}}),MODx.browser.Window.superclass.constructor.call(this,config),this.config=config,this.addEvents({select:!0})},Ext.extend(MODx.browser.Window,Ext.Window,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var selRange,field=el.getEl().dom;field.createTextRange?((selRange=field.createTextRange()).collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()):field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;this.hide(this.config.animEl||null,function(){var data;selNode&&callback&&(data=lookup[selNode.id],Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data))},scope)},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-window",MODx.browser.Window),MODx.Media=function(config){config=config||{},this.ident=config.ident||Ext.id(),MODx.browserOpen=!0,this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{cls:"modx-browser modx-browser-panel container",layout:"border",width:"98%",height:"95%",items:[{region:"west",width:250,items:this.tree,id:this.ident+"-browser-tree",cls:"modx-browser-tree",autoScroll:!0,split:!0},{region:"center",layout:"fit",items:this.view,id:this.ident+"-browser-view",cls:"modx-browser-view-ct",autoScroll:!0,border:!1,tbar:this.getToolbar(),bbar:this.getPathbar()},{region:"east",width:250,id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",split:!0}]}),MODx.Media.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Media,Ext.Container,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var selRange,field=el.getEl().dom;field.createTextRange?((selRange=field.createTextRange()).collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()):field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-media-view",MODx.Media),MODx.browser.RTE=function(config){config=config||{},this.ident=config.ident||Ext.id(),MODx.browserOpen=!0,Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},this.tree=MODx.load({xtype:"modx-tree-directory",onUpload:function(){this.view.run()},scope:this,source:config.source||MODx.config.default_media_source,hideFiles:config.hideFiles||MODx.config.modx_browser_tree_hide_files,hideTooltips:config.hideTooltips||MODx.config.modx_browser_tree_hide_tooltips||!0,openTo:config.openTo||"",ident:this.ident,rootId:config.rootId||"/",rootName:_("files"),rootVisible:null==config.rootVisible||!Ext.isEmpty(config.rootId),id:this.ident+"-tree",hideSourceCombo:config.hideSourceCombo||!1,useDefaultToolbar:!1,listeners:{afterUpload:{fn:function(){this.view.run()},scope:this},afterQuickCreate:{fn:function(){this.view.run()},scope:this},afterRename:{fn:function(){this.view.run()},scope:this},afterRemove:{fn:function(){this.view.run()},scope:this},changeSource:{fn:function(s){this.config.source=s,this.view.config.source=s,this.view.baseParams.source=s,this.view.dir="/",this.view.run()},scope:this},afterrender:{fn:function(tree){tree.root.expand()},scope:this},beforeclick:{fn:function(node,e){if(node.leaf)return this.view.select(this.view.store.indexOfId("/"+node.attributes.url)),this.view.dir!==node.parentNode.id&&this.load(node.parentNode.id),!1;this.load(node.id)},scope:this}}}),this.view=MODx.load({xtype:"modx-browser-view",onSelect:{fn:this.onSelect,scope:this},source:config.source||MODx.config.default_media_source,allowedFileTypes:config.allowedFileTypes||"",wctx:config.wctx||"web",openTo:config.openTo||"",ident:this.ident,id:this.ident+"-view",tree:this.tree}),Ext.applyIf(config,{title:_("modx_browser"),cls:"modx-browser modx-browser-rte",layout:"border",renderTo:document.body,id:this.ident+"-viewport",onSelect:MODx.onBrowserReturn||function(data){},items:[{id:this.ident+"-browser-tree",cls:"modx-browser-tree",region:"west",width:250,height:"100%",split:!0,items:this.tree,autoScroll:!0},{id:this.ident+"-browser-view",cls:"modx-browser-view-ct",region:"center",autoScroll:!0,width:450,items:this.view,tbar:this.getToolbar(),bbar:this.getPathbar()},{id:this.ident+"-img-detail-panel",cls:"modx-browser-details-ct",region:"east",split:!0,width:200,minWidth:200,maxWidth:300},{id:this.ident+"-south",cls:"modx-browser-rte-buttons",region:"south",split:!1,bbar:["->",{xtype:"button",id:this.ident+"-cancel-btn",text:_("cancel"),minWidth:75,handler:this.onCancel,scope:this},{xtype:"button",id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",minWidth:75,handler:this.onSelect,scope:this}]}]}),MODx.browser.RTE.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.browser.RTE,Ext.Viewport,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var selRange,field=el.getEl().dom;field.createTextRange?((selRange=field.createTextRange()).collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()):field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;callback&&(data=selNode?lookup[selNode.id]:null,Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data),window.top.opener&&(window.top.close(),window.top.opener.focus()))},onCancel:function(){var callback=this.config.onSelect||this.onSelectHandler,scope=this.config.scope;Ext.callback(callback,scope||this,[null]),this.fireEvent("select",null),window.top.opener&&(window.top.close(),window.top.opener.focus())},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-rte",MODx.browser.RTE),Ext.apply(Ext,{isFirebug:window.console&&window.console.firebug}),MODx.Layout=function(config){config=config||{},Ext.BLANK_IMAGE_URL=MODx.config.manager_url+"assets/ext3/resources/images/default/s.gif",Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},MODx.siteId=config.auth,MODx.expandHelp=!!+MODx.config.inline_help;var sp=new MODx.HttpProvider;Ext.state.Manager.setProvider(sp),sp.initState(MODx.defaultState),config.showTree=!1,Ext.applyIf(config,{layout:"border",id:"modx-layout",stateSave:!0,items:this.buildLayout(config)}),MODx.Layout.superclass.constructor.call(this,config),this.config=config,this.addEvents({afterLayout:!0,loadKeyMap:!0,loadTabs:!0}),this.loadKeys(),config.showTree||(Ext.getCmp("modx-leftbar-tabs").collapse(!1),Ext.get("modx-leftbar").hide(),Ext.get("modx-leftbar-tabs-xcollapsed").setStyle("display","none")),this.fireEvent("afterLayout")},Ext.extend(MODx.Layout,Ext.Viewport,{buildLayout:function(east){var items=[],north=this.getNorth(east),west=this.getWest(east),center=this.getCenter(east),south=this.getSouth(east),east=this.getEast(east);return north&&Ext.isObject(north)&&items.push(north),west&&Ext.isObject(west)&&items.push(west),center&&Ext.isObject(center)&&items.push(center),south&&Ext.isObject(south)&&items.push(south),east&&Ext.isObject(east)&&items.push(east),items},getNorth:function(config){return{xtype:"box",region:"north",applyTo:"modx-header"}},getWest:function(config){var tabs=[];MODx.perm.resource_tree&&(tabs.push({title:_("resources"),xtype:"modx-tree-resource",id:"modx-resource-tree"}),config.showTree=!0),MODx.perm.element_tree&&(tabs.push({title:_("elements"),xtype:"modx-tree-element",id:"modx-tree-element"}),config.showTree=!0),MODx.perm.file_tree&&(tabs.push({title:_("files"),xtype:"modx-panel-filetree",id:"modx-file-tree"}),config.showTree=!0);return{region:"west",applyTo:"modx-leftbar",id:"modx-leftbar-tabs",split:!0,width:310,minSize:288,autoScroll:!0,unstyled:!0,collapseMode:"mini",useSplitTips:!0,monitorResize:!0,layout:"anchor",items:[{xtype:"modx-tabs",plain:!0,defaults:{autoScroll:!0,fitToFrame:!0},id:"modx-leftbar-tabpanel",border:!1,anchor:"100%",activeTab:0,stateful:!0,stateEvents:["tabchange"],getState:function(){return{activeTab:this.items.indexOf(this.getActiveTab())}},items:tabs}],getState:function(){return{collapsed:this.collapsed,width:this.width}},listeners:{beforestatesave:this.onBeforeSaveState,scope:this}}},getCenter:function(config){return{region:"center",applyTo:"modx-content",padding:"0 1px 0 0",bodyStyle:"background-color:transparent;",id:"modx-content",border:!1,autoScroll:!0}},getSouth:function(config){},getEast:function(config){},getLeftBar:function(){var nav=Ext.getCmp("modx-leftbar-tabpanel");return nav||null},addToLeftBar:function(items){var nav=this.getLeftBar();nav&&items&&(nav.add(items),this.onAfterLeftBarAdded(nav,items))},onAfterLeftBarAdded:function(nav,items){},loadKeys:function(){Ext.KeyMap.prototype.stopEvent=!0;var k=new Ext.KeyMap(Ext.get(document));k.addBinding({key:Ext.EventObject.H,ctrl:!0,shift:!0,fn:this.toggleLeftbar,scope:this,stopEvent:!0}),k.addBinding({key:Ext.EventObject.N,ctrl:!0,shift:!0,fn:function(){var t=Ext.getCmp("modx-resource-tree");t&&t.quickCreate(document,{},"modDocument","web",0)},stopEvent:!0}),k.addBinding({key:Ext.EventObject.U,ctrl:!0,shift:!0,alt:!1,fn:MODx.clearCache,scope:this,stopEvent:!0}),this.fireEvent("loadKeyMap",{keymap:k})},refreshTrees:function(){var t=Ext.getCmp("modx-resource-tree");t&&t.rendered&&t.refresh(),(t=Ext.getCmp("modx-tree-element"))&&t.rendered&&t.refresh(),(t=Ext.getCmp("modx-file-tree"))&&t.rendered&&t.items.each(function(tree,idx){tree.refresh()})},leftbarVisible:!0,toggleLeftbar:function(){this.leftbarVisible?this.hideLeftbar(!0):this.showLeftbar(!0),this.leftbarVisible=!this.leftbarVisible},hideLeftbar:function(anim,state){Ext.getCmp("modx-leftbar-tabs").collapse(anim),Ext.isBoolean(state)&&(this.stateSave=state)},showLeftbar:function(anim){Ext.getCmp("modx-leftbar-tabs").expand(anim)},onBeforeSaveState:function(component,wrap){wrap=wrap.collapsed;if(wrap&&!this.stateSave)return!(this.stateSave=!0);wrap||((wrap=Ext.get("modx-leftbar").down("div")).isVisible()||(wrap.setVisible(!0),Ext.getCmp("modx-leftbar-tabpanel").expand(!0)))}}),MODx.LayoutMgr=function(){var _activeMenu="menu0";return{loadPage:function(url,keyboardKeyPressed){var middleMouseButtonClick=[];url&&(!isNaN(parseInt(url))||"?"!=url.substr(0,1)&&"index.php?"!=url.substr(0,"index.php?".length)?middleMouseButtonClick.push("?a="+url):middleMouseButtonClick.push(url)),keyboardKeyPressed&&middleMouseButtonClick.push(keyboardKeyPressed);url=middleMouseButtonClick.join("&");if(MODx.fireEvent("beforeLoadPage",url)){keyboardKeyPressed=window.event,middleMouseButtonClick=keyboardKeyPressed&&(4===keyboardKeyPressed.button||2===keyboardKeyPressed.which),keyboardKeyPressed=keyboardKeyPressed&&(1===keyboardKeyPressed.button||!0===keyboardKeyPressed.ctrlKey||!0===keyboardKeyPressed.metaKey||!0===keyboardKeyPressed.shiftKey);if(middleMouseButtonClick||keyboardKeyPressed)return window.open(url);location.href=url}return!1},changeMenu:function(a,sm){if(sm===_activeMenu)return!1;Ext.get(sm).addClass("active");var om=Ext.get(_activeMenu);return om&&om.removeClass("active"),_activeMenu=sm,!1}}}(),MODx.loadPage=MODx.LayoutMgr.loadPage,MODx.showDashboard=MODx.LayoutMgr.showDashboard,MODx.hideDashboard=MODx.LayoutMgr.hideDashboard,MODx.changeMenu=MODx.LayoutMgr.changeMenu;
//# sourceMappingURL=modx.jsgrps-min.js.map
\ No newline at end of file
diff --git a/manager/assets/modext/widgets/core/modx.combo.js b/manager/assets/modext/widgets/core/modx.combo.js
index a8aa1ccd186..006b89a3f18 100644
--- a/manager/assets/modext/widgets/core/modx.combo.js
+++ b/manager/assets/modext/widgets/core/modx.combo.js
@@ -82,10 +82,13 @@ MODx.combo.ComboBox = function(config,getStore) {
,remoteSort: config.remoteSort || false
,autoDestroy: true
,listeners: {
- 'loadexception': {fn: function(o,trans,resp) {
- var status = _('code') + ': ' + resp.status + ' ' + resp.statusText + '
';
- MODx.msg.alert(_('error'), status + resp.responseText);
- }}
+ loadexception: {
+ fn: function (o, trans, resp) {
+ var status = _('code') + ': ' + resp.status + ' ' + resp.statusText;
+ var response = Ext.decode(resp.responseText || '[]');
+ MODx.msg.alert(_('error'), (response.message || status));
+ }
+ }
}
})
});
@@ -106,7 +109,7 @@ MODx.combo.ComboBox = function(config,getStore) {
// 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;
-
+
// Show the pagination panel if it didn't show up earlier
if (this.isExpanded() && this.pageSize < this.store.getTotalCount() && this.pageTb.hidden === true) {
this.collapse();