From: <fxp...@us...> - 2011-10-17 11:51:07
|
Revision: 8288 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=8288&view=rev Author: fxprunayre Date: 2011-10-17 11:50:57 +0000 (Mon, 17 Oct 2011) Log Message: ----------- Add mini JS for apps which does not need the mapviewer. #632 Modified Paths: -------------- trunk/web-client/pom.xml trunk/web-client/src/main/resources/apps/js/GeoNetwork-mini.js trunk/web-client/src/main/resources/apps/search/js/App-mini.js Added Paths: ----------- trunk/web-client/src/main/resources/apps/js/GeoNetwork-mini-nomap.js Modified: trunk/web-client/pom.xml =================================================================== --- trunk/web-client/pom.xml 2011-10-17 06:41:49 UTC (rev 8287) +++ trunk/web-client/pom.xml 2011-10-17 11:50:57 UTC (rev 8288) @@ -81,7 +81,7 @@ <nomunge>true</nomunge> <jswarn>${minify.verbose}</jswarn> <excludes> - <exclude>src/main/resources/apps/js/GeoNetwork-mini.js</exclude> + <exclude>src/main/resources/apps/js/GeoNetwork-mini*.js</exclude> <exclude>src/main/resources/apps/search/js/App-mini.js</exclude> <exclude>**/GeoExt/examples/*.js</exclude> <exclude>**/ext/**/*.js</exclude> @@ -90,7 +90,7 @@ </excludes> <aggregations> <aggregation> - <output>src/main/resources/apps/js/GeoNetwork-mini.js</output> + <output>src/main/resources/apps/js/GeoNetwork-mini-nomap.js</output> <includes> <include>${project.build.directory}/classes/apps/js/ext-ux/TwinTriggerComboBox/TwinTriggerComboBox.js</include> <include>${project.build.directory}/classes/apps/js/ext-ux/Rating/RatingItem.js</include> @@ -354,11 +354,17 @@ <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/widgets/OGCServiceQuickRegister.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/ExtentMap.js</include> + <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/Control/ZoomWheel.js</include> + <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/Control/ExtentBox.js</include> + </includes> + </aggregation> + <aggregation> + <output>src/main/resources/apps/js/GeoNetwork-mini.js</output> + <includes> + <include>GeoNetwork-mini-nomap.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/core/OGCUtil.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/core/CatalogueInterface.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/core/WMCManager.js</include> - <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/Control/ExtentBox.js</include> - <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/Control/ZoomWheel.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/widgets/tree/WMSListGenerator.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/widgets/tree/WMSTreeGenerator.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/widgets/wms/BrowserPanel.js</include> @@ -382,7 +388,7 @@ <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/windows/LayerStyles.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/windows/WmsLayerMetadata.js</include> <include>${project.build.directory}/classes/apps/js/GeoNetwork/lib/GeoNetwork/map/windows/WMSTime.js</include> - + </includes> </aggregation> <aggregation> Added: trunk/web-client/src/main/resources/apps/js/GeoNetwork-mini-nomap.js =================================================================== --- trunk/web-client/src/main/resources/apps/js/GeoNetwork-mini-nomap.js (rev 0) +++ trunk/web-client/src/main/resources/apps/js/GeoNetwork-mini-nomap.js 2011-10-17 11:50:57 UTC (rev 8288) @@ -0,0 +1,16934 @@ +Ext.namespace("Ext.ux.form"); +Ext.ux.form.TwinTriggerComboBox=function(config){Ext.ux.form.TwinTriggerComboBox.superclass.constructor.apply(this,arguments) +}; +Ext.extend(Ext.ux.form.TwinTriggerComboBox,Ext.form.ComboBox,{trigger1Class:"x-form-clear-trigger",trigger2Class:"",trigger3Class:"x-form-trigger3-trigger",hideTrigger1:true,tooltipType:"qtip",initComponent:function(){Ext.ux.form.TwinTriggerComboBox.superclass.initComponent.call(this); +this.addEvents({clear:true,trigger3:true}); +this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger3Class}]} +},getTrigger:function(index){return this.triggers[index] +},initTrigger:function(){var ts=this.trigger.select(".x-form-trigger",true); +var triggerField=this; +ts.each(function(t,all,index){t.hide=function(){var w=triggerField.wrap.getWidth(); +this.dom.style.display="none"; +triggerField.el.setWidth(w-triggerField.trigger.getWidth()) +}; +t.show=function(){var w=triggerField.wrap.getWidth(); +this.dom.style.display=""; +triggerField.el.setWidth(w-triggerField.trigger.getWidth()) +}; +var triggerIndex="Trigger"+(index+1); +if(this["hide"+triggerIndex]){t.dom.style.display="none" +}t.on("click",this["on"+triggerIndex+"Click"],this,{preventDefault:true}); +t.addClassOnOver("x-form-trigger-over"); +t.addClassOnClick("x-form-trigger-click") +},this); +this.triggers=ts.elements; +if(this.trigger3TipConfig){var config={target:this.getTrigger(2)}; +for(var i in this.helpTipConfig){config[i]=this.helpTipConfig[i] +}var tip=new Ext.ToolTip(config) +}if(this.trigger3TipConfig){if(typeof this.trigger3TipConfig=="object"){Ext.QuickTips.register(Ext.apply({target:this.getTrigger(2)},this.trigger3TipConfig)) +}else{this.getTrigger(2).dom[this.tooltipType]=this.trigger3TipConfig +}}},onTrigger1Click:function(){this.clearValue(); +this.triggerBlur.defer(50,this) +},onTrigger2Click:function(){this.onTriggerClick() +},onTrigger3Click:function(){this.fireEvent("trigger3Click",this) +},onSelect:function(record,index){Ext.ux.form.TwinTriggerComboBox.superclass.onSelect.apply(this,[record,index]); +this.triggers[0].show() +},clearValue:function(){Ext.ux.form.TwinTriggerComboBox.superclass.clearValue.call(this); +this.triggers[0].hide(); +this.fireEvent("clear",this) +},insert:function(index,data){this.reset(); +var rec=new this.store.recordType(data); +rec.id=rec.data.id; +this.store.insert(index,rec); +this.setValue(rec.data.id); +this.fireEvent("select",this,rec,index) +}}); +Ext.reg("twintriggercombo",Ext.ux.form.TwinTriggerComboBox);/* + * Ext Core Library $version
http://extjs.com/
Copyright(c) 2006-2009, $author.

The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
 + */ +Ext.ns("Ext.ux"); +Ext.ux.RatingItem=Ext.extend(Ext.Component,{starWidth:16,resetValue:"",defaultConfig:{defaultSelected:-1,nbStars:5,split:1,selected:-1,showTitles:true,cls:"",disabled:false},constructor:function(element,config){Ext.apply(this,config); +Ext.applyIf(this,this.defaultConfig); +Ext.ux.RatingItem.superclass.constructor.call(this); +this.addEvents("change","reset"); +if(element==undefined){element=document.createElement("div"); +element.className=this.itemCls; +this.text=""; +for(var i=0; +i<(this.nbStars*this.split); +i++){this.text+='<input type="radio" name="rating'+this.id+'" value="'+(i+1)/this.split+'" '+((i+1)/this.split==this.defaultSelected?' checked="true"':"")+'"/>' +}element.innerHTML=this.text +}this.el=Ext.get(element); +this.init() +},onRender:function(){Ext.ux.RatingItem.superclass.onRender.apply(this,arguments) +},init:function(){var disabled=this.disabled; +this.values=[]; +this.titles=[]; +this.stars=[]; +this.container=this.el.createChild({cls:"ux-rating-container ux-rating-clearfix"+this.cls}); +if(this.canReset){this.resetEl=this.container.createChild({cls:"ux-rating-reset",cn:[{tag:"a",title:this.showTitles?(this.resetTitle||"Reset your vote"):"",html:"Reset"}]}); +this.resetEl.visibilityMode=Ext.Element.DISPLAY; +this.resetEl.hover(function(){Ext.fly(this).addClass("ux-rating-reset-hover") +},function(){Ext.fly(this).removeClass("ux-rating-reset-hover") +}); +this.resetEl.on("click",this.reset,this) +}this.radioBoxes=this.el.select("input[type=radio]"); +this.radioBoxes.each(this.initStar,this); +this.input=this.container.createChild({tag:"input",type:"hidden",name:this.name,value:this.values[this.defaultSelected]||this.resetValue}); +this.radioBoxes.remove(); +this.select(this.defaultSelected===undefined?false:this.defaultSelected); +if(disabled){this.disable() +}else{this.enable() +}},initStar:function(item,all,i){var sw=Math.floor(this.starWidth/this.split); +if(i==0){this.name=item.dom.name; +this.disabled=item.dom.disabled +}this.values[i]=item.dom.value; +this.titles[i]=item.dom.title; +if(item.dom.checked){this.defaultSelected=i +}var star=this.container.createChild({cls:"ux-rating-star"}); +var starLink=star.createChild({tag:"a",html:this.values[i],title:this.showTitles?this.titles[i]:""}); +if(this.split){var odd=(i%this.split); +star.setWidth(sw); +starLink.setStyle("margin-left","-"+(odd*sw)+"px") +}this.stars.push(star.dom) +},onStarClick:function(ev,t){if(!this.disabled){this.select(this.stars.indexOf(t)) +}},onStarOver:function(ev,t){if(!this.disabled){this.fillTo(this.stars.indexOf(t),true) +}},onStarOut:function(ev,t){if(!this.disabled){this.fillTo(this.selected,false) +}},reset:function(ev,t){this.select(-1) +},select:function(index){if(index===false||index===-1){this.value=this.resetValue; +this.title=""; +this.input.dom.value=""; +if(this.canReset){this.resetEl.setOpacity(0.5) +}this.fillNone(); +if(this.selected!==-1){this.fireEvent("change",this,this.values[index],this.stars[index]) +}this.selected=-1 +}else{if(index!==this.selected){this.selected=index; +this.value=this.values[index]; +this.title=this.titles[index]; +this.input.dom.value=this.value; +if(this.canReset){this.resetEl.setOpacity(0.99) +}this.fillTo(index,false); +this.fireEvent("change",this,this.values[index],this.stars[index]) +}}},fillTo:function(index,hover){if(index!=-1){var addClass=hover?"ux-rating-star-hover":"ux-rating-star-on"; +var removeClass=hover?"ux-rating-star-on":"ux-rating-star-hover"; +Ext.each(this.stars.slice(0,index+1),function(){Ext.fly(this).removeClass(removeClass).addClass(addClass) +}); +Ext.each(this.stars.slice(index+1),function(){Ext.fly(this).removeClass([removeClass,addClass]) +}) +}else{this.fillNone() +}},fillNone:function(){this.container.select(".ux-rating-star").removeClass(["ux-rating-star-hover","ux-rating-star-on"]) +},enable:function(){if(this.canReset){this.resetEl.show() +}this.input.dom.disabled=null; +this.disabled=false; +this.container.removeClass("ux-rating-disabled"); +this.container.on({click:this.onStarClick,mouseover:this.onStarOver,mouseout:this.onStarOut,scope:this,delegate:"div.ux-rating-star"}) +},disable:function(){if(this.canReset){this.resetEl.hide() +}this.input.dom.disabled=true; +this.disabled=true; +this.container.addClass("ux-rating-disabled"); +this.container.un({click:this.onStarClick,mouseover:this.onStarOver,mouseout:this.onStarOut,scope:this,delegate:"div.ux-rating-star"}) +},getValue:function(){return this.values[this.selected]||this.resetValue +},destroy:function(){this.disable(); +this.container.remove(); +this.radioBoxes.appendTo(this.el); +if(this.selected!==-1){this.radioBoxes.elements[this.selected].checked=true +}}}); +Ext.reg("ratingitem",Ext.ux.RatingItem);Ext.form.FileUploadField=Ext.extend(Ext.form.TextField,{buttonText:"Browse...",buttonOnly:false,buttonOffset:3,readOnly:true,autoSize:Ext.emptyFn,initComponent:function(){Ext.form.FileUploadField.superclass.initComponent.call(this); +this.addEvents("fileselected") +},onRender:function(ct,position){Ext.form.FileUploadField.superclass.onRender.call(this,ct,position); +this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-file-wrap"}); +this.el.addClass("x-form-file-text"); +this.el.dom.removeAttribute("name"); +this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:"x-form-file",tag:"input",type:"file",size:1}); +var btnCfg=Ext.applyIf(this.buttonCfg||{},{text:this.buttonText}); +this.button=new Ext.Button(Ext.apply(btnCfg,{renderTo:this.wrap,cls:"x-form-file-btn"+(btnCfg.iconCls?" x-btn-icon":"")})); +if(this.buttonOnly){this.el.hide(); +this.wrap.setWidth(this.button.getEl().getWidth()) +}this.fileInput.on("change",function(){var v=this.fileInput.dom.value; +this.setValue(v); +this.fireEvent("fileselected",this,v) +},this) +},getFileInputId:function(){return this.id+"-file" +},onResize:function(w,h){Ext.form.FileUploadField.superclass.onResize.call(this,w,h); +this.wrap.setWidth(w); +if(!this.buttonOnly){var w=this.wrap.getWidth()-this.button.getEl().getWidth()-this.buttonOffset; +this.el.setWidth(w) +}},preFocus:Ext.emptyFn,getResizeEl:function(){return this.wrap +},getPositionEl:function(){return this.wrap +},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0]) +}}); +Ext.reg("fileuploadfield",Ext.form.FileUploadField);Ext.ns("Ext.ux.form"); +Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{defaultAutoCreate:{tag:"input",type:"hidden"},timeWidth:100,dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",otherToNow:true,timePosition:"right",dateFormat:"m/d/y",timeFormat:"g:i A",initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this); +var dateConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig); +this.df=new Ext.form.DateField(dateConfig); +this.df.ownerCt=this; +delete (this.dateFormat); +var timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig); +this.tf=new Ext.form.TimeField(timeConfig); +this.tf.ownerCt=this; +delete (this.timeFormat); +this.relayEvents(this.df,["focus","specialkey","invalid","valid"]); +this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]) +},onRender:function(ct,position){if(this.isRendered){return +}Ext.ux.form.DateTime.superclass.onRender.call(this,ct,position); +var t; +if("below"===this.timePosition||"bellow"===this.timePosition){t=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"}]}]},true) +}else{t=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"}]}]},true) +}this.tableEl=t; +this.wrap=t.wrap({cls:"x-form-field-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")); +if(Ext.isIE&&Ext.isStrict){t.select("input").applyStyles({top:0}) +}this.on("specialkey",this.onSpecialKey,this); +this.df.el.swallowEvent(["keydown","keypress"]); +this.tf.el.swallowEvent(["keydown","keypress"]); +if("side"===this.msgTarget){var elp=this.el.findParent(".x-form-element",10,true); +this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"}); +this.df.errorIcon=this.errorIcon; +this.tf.errorIcon=this.errorIcon +}this.el.dom.name=this.hiddenName||this.name||this.id; +this.df.el.dom.removeAttribute("name"); +this.tf.el.dom.removeAttribute("name"); +this.isRendered=true; +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(){if(this.isRendered){this.wrap.removeAllListeners(); +this.wrap.remove(); +this.tableEl.remove(); +this.df.destroy(); +this.tf.destroy() +}},disable:function(){if(this.isRendered){this.df.disabled=this.disabled; +this.df.onDisable(); +this.tf.onDisable() +}this.disabled=true; +this.df.disabled=true; +this.tf.disabled=true; +this.fireEvent("disable",this); +return this +},enable:function(){if(this.rendered){this.df.onEnable(); +this.tf.onEnable() +}this.disabled=false; +this.df.disabled=false; +this.tf.disabled=false; +this.fireEvent("enable",this); +return 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){if(this.wrapClick){f.focus(); +this.wrapClick=false +}if(f===this.df){this.updateDate() +}else{this.updateTime() +}this.updateHidden(); +(function(){if(!this.df.hasFocus&&!this.tf.hasFocus){var v=this.getValue(); +if(String(v)!==String(this.startValue)){this.fireEvent("change",this,v,this.startValue) +}this.hasFocus=false; +this.fireEvent("blur",this) +}}).defer(100,this) +},onFocus:function(){if(!this.hasFocus){this.hasFocus=true; +this.startValue=this.getValue(); +this.fireEvent("focus",this) +}},onMouseDown:function(e){if(!this.disabled){this.wrapClick="td"===e.target.nodeName.toLowerCase() +}},onSpecialKey:function(t,e){var key=e.getKey(); +if(key===e.TAB){if(t===this.df&&!e.shiftKey){e.stopEvent(); +this.tf.focus() +}if(t===this.tf&&e.shiftKey){e.stopEvent(); +this.df.focus() +}}if(key===e.ENTER){this.updateValue() +}},setDate:function(date){this.df.setValue(date) +},setTime:function(date){this.tf.setValue(date) +},setSize:function(w,h){if(!w){return +}if("below"===this.timePosition){this.df.setSize(w,h); +this.tf.setSize(w,h); +if(Ext.isIE){this.df.el.up("td").setWidth(w); +this.tf.el.up("td").setWidth(w) +}}else{this.df.setSize(w-this.timeWidth-4,h); +this.tf.setSize(this.timeWidth,h); +if(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&&true===this.emptyToNow){this.setValue(new Date()); +return +}else{if(!val){this.setDate(""); +this.setTime(""); +this.updateValue(); +return +}}if("number"===typeof val){val=new Date(val) +}else{if("string"===typeof val&&this.hiddenFormat){val=Date.parseDate(val,this.hiddenFormat) +}}val=val?val:new Date(1970,0,1,0,0,0); +var da,time; +if(val instanceof Date){this.setDate(val); +this.setTime(val); +this.dateValue=new Date(val) +}else{da=val.split(this.dtSeparator); +this.setDate(da[0]); +if(da[1]){if(da[2]){da[1]+=da[2] +}this.setTime(da[1]) +}}this.updateValue() +},setVisible:function(visible){if(visible){this.df.show(); +this.tf.show() +}else{this.df.hide(); +this.tf.hide() +}return this +},show:function(){return this.setVisible(true) +},hide:function(){return this.setVisible(false) +},updateDate:function(){var d=this.df.getValue(); +if(d){if(!(this.dateValue instanceof Date)){this.initDateValue(); +if(!this.tf.getValue()){this.setTime(this.dateValue) +}}this.dateValue.setMonth(0); +this.dateValue.setFullYear(d.getFullYear()); +this.dateValue.setMonth(d.getMonth(),d.getDate()) +}else{this.dateValue=""; +this.setTime("") +}},updateTime:function(){var t=this.tf.getValue(); +if(t&&!(t instanceof Date)){t=Date.parseDate(t,this.tf.format) +}if(t&&!this.df.getValue()){this.initDateValue(); +this.setDate(this.dateValue) +}if(this.dateValue instanceof Date){if(t){this.dateValue.setHours(t.getHours()); +this.dateValue.setMinutes(t.getMinutes()); +this.dateValue.setSeconds(t.getSeconds()) +}else{this.dateValue.setHours(0); +this.dateValue.setMinutes(0); +this.dateValue.setSeconds(0) +}}},updateHidden:function(){if(this.isRendered){var value=this.dateValue instanceof Date?this.dateValue.format(this.hiddenFormat):""; +this.el.dom.value=value +}},updateValue:function(){this.updateDate(); +this.updateTime(); +this.updateHidden(); +return +},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); +var renderer=function(val){var retval=Ext.util.Format.date(val,format); +return retval +}; +return renderer +}}); +Ext.reg("xdatetime",Ext.ux.form.DateTime);/* + * Ext JS Library 3.3.0 + * Copyright(c) 2006-2010 Ext JS, Inc. + * lic...@ex... + * http://www.extjs.com/license + */ +Ext.ns("Ext.ux.grid"); +Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:true,expandOnDblClick:true,header:"",width:20,sortable:false,fixed:true,hideable:false,menuDisabled:true,dataIndex:"",id:"expander",lazyRender:true,enableCaching:true,constructor:function(config){Ext.apply(this,config); +this.addEvents({beforeexpand:true,expand:true,beforecollapse:true,collapse:true}); +Ext.ux.grid.RowExpander.superclass.constructor.call(this); +if(this.tpl){if(typeof this.tpl=="string"){this.tpl=new Ext.Template(this.tpl) +}this.tpl.compile() +}this.state={}; +this.bodyContent={} +},getRowClass:function(record,rowIndex,p,ds){p.cols=p.cols-1; +var content=this.bodyContent[record.id]; +if(!content&&!this.lazyRender){content=this.getBodyContent(record,rowIndex) +}if(content){p.body=content +}return this.state[record.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed" +},init:function(grid){this.grid=grid; +var view=grid.getView(); +view.getRowClass=this.getRowClass.createDelegate(this); +view.enableRowBody=true; +grid.on("render",this.onRender,this); +grid.on("destroy",this.onDestroy,this) +},onRender:function(){var grid=this.grid; +var mainBody=grid.getView().mainBody; +mainBody.on("mousedown",this.onMouseDown,this,{delegate:".x-grid3-row-expander"}); +if(this.expandOnEnter){this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{enter:this.onEnter,scope:this}) +}if(this.expandOnDblClick){grid.on("rowdblclick",this.onRowDblClick,this) +}},onDestroy:function(){if(this.keyNav){this.keyNav.disable(); +delete this.keyNav +}var mainBody=this.grid.getView().mainBody; +if(mainBody){mainBody.un("mousedown",this.onMouseDown,this) +}},onRowDblClick:function(grid,rowIdx,e){this.toggleRow(rowIdx) +},onEnter:function(e){var g=this.grid; +var sm=g.getSelectionModel(); +var sels=sm.getSelections(); +for(var i=0,len=sels.length; +i<len; +i++){var rowIdx=g.getStore().indexOf(sels[i]); +this.toggleRow(rowIdx) +}},getBodyContent:function(record,index){if(!this.enableCaching){return this.tpl.apply(record.data) +}var content=this.bodyContent[record.id]; +if(!content){content=this.tpl.apply(record.data); +this.bodyContent[record.id]=content +}return content +},onMouseDown:function(e,t){e.stopEvent(); +var row=e.getTarget(".x-grid3-row"); +this.toggleRow(row) +},renderer:function(v,p,record){p.cellAttr='rowspan="2"'; +return'<div class="x-grid3-row-expander"> </div>' +},beforeExpand:function(record,body,rowIndex){if(this.fireEvent("beforeexpand",this,record,body,rowIndex)!==false){if(this.tpl&&this.lazyRender){body.innerHTML=this.getBodyContent(record,rowIndex) +}return true +}else{return false +}},toggleRow:function(row){if(typeof row=="number"){row=this.grid.view.getRow(row) +}this[Ext.fly(row).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](row) +},expandRow:function(row){if(typeof row=="number"){row=this.grid.view.getRow(row) +}var record=this.grid.store.getAt(row.rowIndex); +var body=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",row); +if(this.beforeExpand(record,body,row.rowIndex)){this.state[record.id]=true; +Ext.fly(row).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded"); +this.fireEvent("expand",this,record,body,row.rowIndex) +}},collapseRow:function(row){if(typeof row=="number"){row=this.grid.view.getRow(row) +}var record=this.grid.store.getAt(row.rowIndex); +var body=Ext.fly(row).child("tr:nth(1) div.x-grid3-row-body",true); +if(this.fireEvent("beforecollapse",this,record,body,row.rowIndex)!==false){this.state[record.id]=false; +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;Array.prototype.contains=function(element){return this.indexOf(element)!==-1 +}; +Ext.namespace("Ext.ux"); +Ext.ux.DDView=function(config){if(!config.itemSelector){var tpl=config.tpl; +if(this.classRe.test(tpl)){config.tpl=tpl.replace(this.classRe,"class=$1x-combo-list-item $2$1") +}else{config.tpl=tpl.replace(this.tagRe,'$1 class="x-combo-list-item" $2') +}config.itemSelector=".x-combo-list-item" +}Ext.ux.DDView.superclass.constructor.call(this,Ext.apply(config,{border:false})) +}; +Ext.extend(Ext.ux.DDView,Ext.DataView,{sortDir:"ASC",isFormField:true,classRe:/class=(['"])(.*)\1/,tagRe:/(<\w*)(.*?>)/,reset:Ext.emptyFn,clearInvalid:Ext.form.Field.prototype.clearInvalid,msgTarget:"qtip",afterRender:function(){Ext.ux.DDView.superclass.afterRender.call(this); +if(this.dragGroup){this.setDraggable(this.dragGroup.split(",")) +}if(this.dropGroup){this.setDroppable(this.dropGroup.split(",")) +}if(this.deletable){this.setDeletable() +}this.isDirtyFlag=false; +this.addEvents("drop") +},validate:function(){return true +},destroy:function(){this.purgeListeners(); +this.getEl().removeAllListeners(); +this.getEl().remove(); +if(this.dragZone){if(this.dragZone.destroy){this.dragZone.destroy() +}}if(this.dropZone){if(this.dropZone.destroy){this.dropZone.destroy() +}}},getName:function(){return this.name +},setValue:function(v){if(!this.store){throw"DDView.setValue(). DDView must be constructed with a valid Store" +}var data={}; +data[this.store.reader.meta.root]=v?[].concat(v):[]; +this.store.proxy=new Ext.data.MemoryProxy(data); +this.store.load() +},getValue:function(){var result="("; +this.store.each(function(rec){result+=rec.id+"," +}); +return result.substr(0,result.length-1)+")" +},getIds:function(){var i=0,result=new Array(this.store.getCount()); +this.store.each(function(rec){result[i++]=rec.id +}); +return result +},isDirty:function(){return this.isDirtyFlag +},getTargetFromEvent:function(e){var target=e.getTarget(); +while((target!==null)&&(target.parentNode!=this.el.dom)){target=target.parentNode +}if(!target){target=this.el.dom.lastChild||this.el.dom +}return target +},getDragData:function(e){var target=this.findItemFromChild(e.getTarget()); +if(target){if(!this.isSelected(target)){delete this.ignoreNextClick; +this.onItemClick(target,this.indexOf(target),e); +this.ignoreNextClick=true +}var dragData={sourceView:this,viewNodes:[],records:[],copy:this.copy||(this.allowCopy&&e.ctrlKey)}; +if(this.getSelectionCount()==1){var i=this.getSelectedIndexes()[0]; +var n=this.getNode(i); +dragData.viewNodes.push(dragData.ddel=n); +dragData.records.push(this.store.getAt(i)); +dragData.repairXY=Ext.fly(n).getXY() +}else{dragData.ddel=document.createElement("div"); +dragData.ddel.className="multi-proxy"; +this.collectSelection(dragData) +}return dragData +}return false +},getRepairXY:function(e){return this.dragData.repairXY +},collectSelection:function(data){data.repairXY=Ext.fly(this.getSelectedNodes()[0]).getXY(); +if(this.preserveSelectionOrder===true){Ext.each(this.getSelectedIndexes(),function(i){var n=this.getNode(i); +var dragNode=n.cloneNode(true); +dragNode.id=Ext.id(); +data.ddel.appendChild(dragNode); +data.records.push(this.store.getAt(i)); +data.viewNodes.push(n) +},this) +}else{var i=0; +this.store.each(function(rec){if(this.isSelected(i)){var n=this.getNode(i); +var dragNode=n.cloneNode(true); +dragNode.id=Ext.id(); +data.ddel.appendChild(dragNode); +data.records.push(this.store.getAt(i)); +data.viewNodes.push(n) +}i++ +},this) +}},setDraggable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDraggable,this); +return +}if(this.dragZone){this.dragZone.addToGroup(ddGroup) +}else{this.dragZone=new Ext.dd.DragZone(this.getEl(),{containerScroll:true,ddGroup:ddGroup}); +if(!this.multiSelect){this.singleSelect=true +}this.dragZone.getDragData=this.getDragData.createDelegate(this); +this.dragZone.getRepairXY=this.getRepairXY; +this.dragZone.onEndDrag=this.onEndDrag +}},setDroppable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDroppable,this); +return +}if(this.dropZone){this.dropZone.addToGroup(ddGroup) +}else{this.dropZone=new Ext.dd.DropZone(this.getEl(),{owningView:this,containerScroll:true,ddGroup:ddGroup}); +this.dropZone.getTargetFromEvent=this.getTargetFromEvent.createDelegate(this); +this.dropZone.onNodeEnter=this.onNodeEnter.createDelegate(this); +this.dropZone.onNodeOver=this.onNodeOver.createDelegate(this); +this.dropZone.onNodeOut=this.onNodeOut.createDelegate(this); +this.dropZone.onNodeDrop=this.onNodeDrop.createDelegate(this) +}},getDropPoint:function(e,n,dd){if(n==this.el.dom){return"above" +}var t=Ext.lib.Dom.getY(n),b=t+n.offsetHeight; +var c=t+(b-t)/2; +var y=Ext.lib.Event.getPageY(e); +if(y<=c){return"above" +}else{return"below" +}},isValidDropPoint:function(pt,n,data){if(!data.viewNodes||(data.viewNodes.length!=1)){return true +}var d=data.viewNodes[0]; +if(d==n){return false +}if((pt=="below")&&(n.nextSibling==d)){return false +}if((pt=="above")&&(n.previousSibling==d)){return false +}return true +},onNodeEnter:function(n,dd,e,data){if(this.highlightColor&&(data.sourceView!=this)){this.el.highlight(this.highlightColor) +}return false +},onNodeOver:function(n,dd,e,data){var dragElClass=this.dropNotAllowed; +var pt=this.getDropPoint(e,n,dd); +if(this.isValidDropPoint(pt,n,data)){if(this.appendOnly||this.sortField){return"x-tree-drop-ok-below" +}if(pt){var targetElClass; +if(pt=="above"){dragElClass=n.previousSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-above"; +targetElClass="x-view-drag-insert-above" +}else{dragElClass=n.nextSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-below"; +targetElClass="x-view-drag-insert-below" +}if(this.lastInsertClass!=targetElClass){Ext.fly(n).replaceClass(this.lastInsertClass,targetElClass); +this.lastInsertClass=targetElClass +}}}return dragElClass +},onNodeOut:function(n,dd,e,data){this.removeDropIndicators(n) +},onNodeDrop:function(n,dd,e,data){if(this.fireEvent("drop",this,n,dd,e,data)===false){return false +}var pt=this.getDropPoint(e,n,dd); +var insertAt=(this.appendOnly||(n==this.el.dom))?this.store.getCount():n.viewIndex; +if(pt=="below"){insertAt++ +}if(data.sourceView==this){if(pt=="below"){if(data.viewNodes[0]==n){data.viewNodes.shift() +}}else{if(data.viewNodes[data.viewNodes.length-1]==n){data.viewNodes.pop() +}}if(!data.viewNodes.length){return false +}if(insertAt>this.store.indexOf(data.records[0])){insertAt-- +}}if(data.node instanceof Ext.tree.TreeNode){var r=data.node.getOwnerTree().recordFromNode(data.node); +if(r){data.records=[r] +}}if(!data.records){alert("Programming problem. Drag data contained no Records"); +return false +}for(var i=0; +i<data.records.length; +i++){var r=data.records[i]; +var dup=this.store.getById(r.id); +if(dup&&(dd!=this.dragZone)){if(!this.allowDup&&!this.allowTrash){Ext.fly(this.getNode(this.store.indexOf(dup))).frame("red",1); +return true +}var x=new Ext.data.Record(); +r.id=x.id; +delete x +}if(data.copy){this.store.insert(insertAt++,r.copy()) +}else{if(data.sourceView){data.sourceView.isDirtyFlag=true; +data.sourceView.store.remove(r) +}if(!this.allowTrash){this.store.insert(insertAt++,r) +}}if(this.sortField){this.store.sort(this.sortField,this.sortDir) +}this.isDirtyFlag=true +}this.dragZone.cachedTarget=null; +return true +},onEndDrag:function(data,e){var d=Ext.get(this.dragData.ddel); +if(d&&d.hasClass("multi-proxy")){d.remove() +}},removeDropIndicators:function(n){if(n){Ext.fly(n).removeClass(["x-view-drag-insert-above","x-view-drag-insert-left","x-view-drag-insert-right","x-view-drag-insert-below"]); +this.lastInsertClass="_noclass" +}},setDeletable:function(imageUrl){if(!this.singleSelect&&!this.multiSelect){this.singleSelect=true +}var c=this.getContextMenu(); +this.contextMenu.on("itemclick",function(item){switch(item.id){case"delete":this.remove(this.getSelectedIndexes()); +break +}},this); +this.contextMenu.add({icon:imageUrl||AU.resolveUrl("/images/delete.gif"),id:"delete",text:AU.getMessage("deleteItem")}) +},getContextMenu:function(){if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({id:this.id+"-contextmenu"}); +this.el.on("contextmenu",this.showContextMenu,this) +}return this.contextMenu +},disableContextMenu:function(){if(this.contextMenu){this.el.un("contextmenu",this.showContextMenu,this) +}},showContextMenu:function(e,item){item=this.findItemFromChild(e.getTarget()); +if(item){e.stopEvent(); +this.select(this.getNode(item),this.multiSelect&&e.ctrlKey,true); +this.contextMenu.showAt(e.getXY()) +}},remove:function(selectedIndices){selectedIndices=[].concat(selectedIndices); +for(var i=0; +i<selectedIndices.length; +i++){var rec=this.store.getAt(selectedIndices[i]); +this.store.remove(rec) +}},onDblClick:function(e){var item=this.findItemFromChild(e.getTarget()); +if(item){if(this.fireEvent("dblclick",this,this.indexOf(item),item,e)===false){return false +}if(this.dragGroup){var targets=Ext.dd.DragDropMgr.getRelated(this.dragZone,true); +while(targets.contains(this.dropZone)){targets.remove(this.dropZone) +}if((targets.length==1)&&(targets[0].owningView)){this.dragZone.cachedTarget=null; +var el=Ext.get(targets[0].getEl()); +var box=el.getBox(true); +targets[0].onNodeDrop(el.dom,{target:el.dom,xy:[box.x,box.y+box.height-1]},null,this.getDragData(e)) +}}}},onItemClick:function(item,index,e){if(this.ignoreNextClick){delete this.ignoreNextClick; +return +}if(this.fireEvent("beforeclick",this,index,item,e)===false){return false +}if(this.multiSelect||this.singleSelect){if(this.multiSelect&&e.shiftKey&&this.lastSelection){this.select(this.getNodes(this.indexOf(this.lastSelection),index),false) +}else{if(this.isSelected(item)&&e.ctrlKey){this.deselect(item) +}else{this.deselect(item); +this.select(item,this.multiSelect&&e.ctrlKey); +this.lastSelection=item +}}e.preventDefault() +}return true +}});Ext.ux.Multiselect=Ext.extend(Ext.form.Field,{store:null,dataFields:[],data:[],width:100,height:100,displayField:0,valueField:1,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,blankText:Ext.form.TextField.prototype.blankText,minLengthText:"Minimum {0} item(s) required",maxLengthText:"Maximum {0} item(s) allowed",copy:false,allowDup:false,allowTrash:false,legend:null,focusClass:undefined,delimiter:",",view:null,dragGroup:null,dropGroup:null,tbar:null,appendOnly:false,sortField:null,sortDir:"ASC",defaultAutoCreate:{tag:"div"},tpl:null,initComponent:function(){Ext.ux.Multiselect.superclass.initComponent.call(this); +this.addEvents({dblclick:true,click:true,change:true,drop:true}) +},onRender:function(ct,position){var fs,cls,tpl; +Ext.ux.Multiselect.superclass.onRender.call(this,ct,position); +cls="ux-mselect"; +fs=new Ext.form.FieldSet({renderTo:this.el,title:this.legend,height:this.height,width:this.width,style:"padding:1px;",tbar:this.tbar}); +if(!this.legend){fs.el.down("."+fs.headerCls).remove() +}fs.body.addClass(cls); +if(!this.tpl){tpl='<tpl for="."><div class="'+cls+"-item"; +if(Ext.isIE||Ext.isIE7){tpl+='" unselectable=on' +}else{tpl+=' x-unselectable"' +}tpl+=">{"+this.displayField+"}</div></tpl>"; +this.tpl=tpl +}if(!this.store){this.store=new Ext.data.SimpleStore({fields:this.dataFields,data:this.data}) +}this.view=new Ext.ux.DDView({multiSelect:true,store:this.store,selectedClass:cls+"-selected",tpl:this.tpl,allowDup:this.allowDup,copy:this.copy,allowTrash:this.allowTrash,dragGroup:this.dragGroup,dropGroup:this.dropGroup,itemSelector:"."+cls+"-item",isFormField:false,applyTo:fs.body,appendOnly:this.appendOnly,sortField:this.sortField,sortDir:this.sortDir}); +fs.add(this.view); +this.view.on("click",this.onViewClick,this); +this.view.on("beforeClick",this.onViewBeforeClick,this); +this.view.on("dblclick",this.onViewDblClick,this); +this.view.on("drop",function(ddView,n,dd,e,data){return this.fireEvent("drop",ddView,n,dd,e,data) +},this); +this.hiddenName=this.name; +var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name}; +if(this.isFormField){this.hiddenField=this.el.createChild(hiddenTag) +}else{this.hiddenField=Ext.get(document.body).createChild(hiddenTag) +}fs.doLayout() +},initValue:Ext.emptyFn,onViewClick:function(vw,index,node,e){var arrayIndex=this.preClickSelections.indexOf(index); +if(arrayIndex!=-1){this.preClickSelections.splice(arrayIndex,1); +this.view.clearSelections(true); +this.view.select(this.preClickSelections) +}this.fireEvent("change",this,this.getValue(),this.hiddenField.dom.value); +this.hiddenField.dom.value=this.getValue(); +this.fireEvent("click",this,e); +this.validate() +},onViewBeforeClick:function(vw,index,node,e){this.preClickSelections=this.view.getSelectedIndexes(); +if(this.disabled){return false +}},onViewDblClick:function(vw,index,node,e){return this.fireEvent("dblclick",vw,index,node,e) +},getValue:function(valueField){var returnArray=[]; +var selectionsArray=this.view.getSelectedIndexes(); +if(selectionsArray.length==0){return"" +}for(var i=0; +i<selectionsArray.length; +i++){returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField!=null)?valueField:this.valueField))) +}return returnArray.join(this.delimiter) +},setValue:function(values){var index; +var selections=[]; +this.view.clearSelections(); +this.hiddenField.dom.value=""; +if(!values||(values=="")){return +}if(!(values instanceof Array)){values=values.split(this.delimiter) +}for(var i=0; +i<values.length; +i++){index=this.view.store.indexOf(this.view.store.query(this.valueField,new RegExp("^"+values[i]+"$","i")).itemAt(0)); +selections.push(index) +}this.view.select(selections); +this.hiddenField.dom.value=this.getValue(); +this.validate() +},selectAll:function(){var selections=[]; +for(var i=0; +i<this.view.store.getCount(); +i++){selections.push(i) +}this.view.select(selections); +this.hiddenField.dom.value=this.getValue(); +this.validate() +},reset:function(){this.setValue("") +},getRawValue:function(valueField){var tmp=this.getValue(valueField); +if(tmp.length){tmp=tmp.split(this.delimiter) +}else{tmp=[] +}return tmp +},setRawValue:function(values){setValue(values) +},validateValue:function(value){if(value.length<1){if(this.allowBlank){this.clearInvalid(); +return true +}else{this.markInvalid(this.blankText); +return false +}}if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength)); +return false +}if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength)); +return false +}return true +}}); +Ext.reg("multiselect",Ext.ux.Multiselect); +Ext.ux.ItemSelector=Ext.extend(Ext.form.Field,{msWidth:200,msHeight:300,hideNavIcons:false,imagePath:"",iconUp:"up2.gif",iconDown:"down2.gif",iconLeft:"left2.gif",iconRight:"right2.gif",iconTop:"top2.gif",iconBottom:"bottom2.gif",drawUpIcon:true,drawDownIcon:true,drawLeftIcon:true,drawRightIcon:true,drawTopIcon:true,drawBotIcon:true,fromStore:null,toStore:null,fromData:null,toData:null,displayField:0,valueField:1,switchToFrom:false,fromAllowDup:false,toAllowDup:false,fromAllowTrash:false,focusClass:undefined,delimiter:",",readOnly:false,toLegend:null,fromLegend:null,toSortField:null,fromSortField:null,toSortDir:"ASC",fromSortDir:"ASC",toTBar:null,fromTBar:null,bodyStyle:null,border:false,defaultAutoCreate:{tag:"div"},fromTpl:null,toTpl:null,initComponent:function(){Ext.ux.ItemSelector.superclass.initComponent.call(this); +this.addEvents({rowdblclick:true,change:true}) +},onRender:function(ct,position){Ext.ux.ItemSelector.superclass.onRender.call(this,ct,position); +this.fromMultiselect=new Ext.ux.Multiselect({legend:this.fromLegend,delimiter:this.delimiter,allowDup:this.fromAllowDup,copy:this.fromAllowDup,allowTrash:this.fromAllowTrash,dragGroup:this.readOnly?null:"drop2-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,dataFields:this.dataFields,data:this.fromData,displayField:this.displayField,valueField:this.valueField,store:this.fromStore,isFormField:false,tbar:this.fromTBar,appendOnly:true,sortField:this.fromSortField,sortDir:this.fromSortDir,tpl:this.fromTpl}); +this.fromMultiselect.on("dblclick",this.onRowDblClick,this); +if(!this.toStore){this.toStore=new Ext.data.SimpleStore({fields:this.dataFields,data:this.toData}) +}this.toStore.on("add",this.valueChanged,this); +this.toStore.on("remove",this.valueChanged,this); +this.toStore.on("load",this.valueChanged,this); +this.toMultiselect=new Ext.ux.Multiselect({legend:this.toLegend,delimiter:this.delimiter,allowDup:this.toAllowDup,dragGroup:this.readOnly?null:"drop1-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,dataFields:this.dataFields,data:this.fromData,displayField:this.displayField,valueField:this.valueField,store:this.toStore,isFormField:false,tbar:this.toTBar,sortField:this.fromSortField,sortDir:this.fromSortDir,tpl:this.toTpl}); +this.toMultiselect.on("dblclick",this.onRowDblClick,this); +var p=new Ext.Panel({bodyStyle:this.bodyStyle,border:this.border,layout:"table",layoutConfig:{columns:3}}); +p.add(this.switchToFrom?this.toMultiselect:this.fromMultiselect); +var icons=new Ext.Panel({header:false}); +p.add(icons); +p.add(this.switchToFrom?this.fromMultiselect:this.toMultiselect); +p.render(this.el); +icons.el.down("."+icons.bwrapCls).remove(); +if(this.imagePath!=""&&this.imagePath.charAt(this.imagePath.length-1)!="/"){this.imagePath+="/" +}this.iconUp=this.imagePath+(this.iconUp||"up2.gif"); +this.iconDown=this.imagePath+(this.iconDown||"down2.gif"); +this.iconLeft=this.imagePath+(this.iconLeft||"left2.gif"); +this.iconRight=this.imagePath+(this.iconRight||"right2.gif"); +this.iconTop=this.imagePath+(this.iconTop||"top2.gif"); +this.iconBottom=this.imagePath+(this.iconBottom||"bottom2.gif"); +var el=icons.getEl(); +if(!this.toSortField){this.toTopIcon=el.createChild({tag:"img",src:this.iconTop,style:{cursor:"pointer",margin:"2px"}}); +el.createChild({tag:"br"}); +this.upIcon=el.createChild({tag:"img",src:this.iconUp,style:{cursor:"pointer",margin:"2px"}}); +el.createChild({tag:"br"}) +}this.addIcon=el.createChild({tag:"img",src:this.switchToFrom?this.iconLeft:this.iconRight,style:{cursor:"pointer",margin:"2px"}}); +el.createChild({tag:"br"}); +this.removeIcon=el.createChild({tag:"img",src:this.switchToFrom?this.iconRight:this.iconLeft,style:{cursor:"pointer",margin:"2px"}}); +el.createChild({tag:"br"}); +if(!this.toSortField){this.downIcon=el.createChild({tag:"img",src:this.iconDown,style:{cursor:"pointer",margin:"2px"}}); +el.createChild({tag:"br"}); +this.toBottomIcon=el.createChild({tag:"img",src:this.iconBottom,style:{cursor:"pointer",margin:"2px"}}) +}if(!this.readOnly){if(!this.toSortField){this.toTopIcon.on("click",this.toTop,this); +this.upIcon.on("click",this.up,this); +this.downIcon.on("click",this.down,this); +this.toBottomIcon.on("click",this.toBottom,this) +}this.addIcon.on("click",this.fromTo,this); +this.removeIcon.on("click",this.toFrom,this) +}if((!this.drawUpIcon||this.hideNavIcons)&&this.upIcon){this.upIcon.dom.style.display="none" +}if((!this.drawDownIcon||this.hideNavIcons)&&this.downIcon){this.downIcon.dom.style.display="none" +}if(!this.drawLeftIcon||this.hideNavIcons){this.addIcon.dom.style.display="none" +}if(!this.drawRightIcon||this.hideNavIcons){this.removeIcon.dom.style.display="none" +}if((!this.drawTopIcon||this.hideNavIcons)&&this.toTopIcon){this.toTopIcon.dom.style.display="none" +}if((!this.drawBotIcon||this.hideNavIcons)&&this.toBottomIcon){this.toBottomIcon.dom.style.display="none" +}var tb=p.body.first(); +this.el.setWidth(p.body.first().getWidth()); +p.body.removeClass(); +this.hiddenName=this.name; +var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name}; +this.hiddenField=this.el.createChild(hiddenTag); +this.valueChanged(this.toStore) +},initValue:Ext.emptyFn,toTop:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes(); +var records=[]; +if(selectionsArray.length>0){selectionsArray.sort(); +for(var i=0; +i<selectionsArray.length; +i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]); +records.push(record) +}selectionsArray=[]; +for(var i=records.length-1; +i>-1; +i--){record=records[i]; +this.toMultiselect.view.store.remove(record); +this.toMultiselect.view.store.insert(0,record); +selectionsArray.push(((records.length-1)-i)) +}}this.toMultiselect.view.refresh(); +this.toMultiselect.view.select(selectionsArray) +},toBottom:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes(); +var records=[]; +if(selectionsArray.length>0){selectionsArray.sort(); +for(var i=0; +i<selectionsArray.length; +i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]); +records.push(record) +}selectionsArray=[]; +for(var i=0; +i<records.length; +i++){record=records[i]; +this.toMultiselect.view.store.remove(record); +this.toMultiselect.view.store.add(record); +selectionsArray.push((this.toMultiselect.view.store.getCount())-(records.length-i)) +}}this.toMultiselect.view.refresh(); +this.toMultiselect.view.select(selectionsArray) +},up:function(){var record=null; +var selectionsArray=this.toMultiselect.view.getSelectedIndexes(); +selectionsArray.sort(); +var newSelectionsArray=[]; +if(selectionsArray.length>0){for(var i=0; +i<selectionsArray.length; +i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]); +if((selectionsArray[i]-1)>=0){this.toMultiselect.view.store.remove(record); +this.toMultiselect.view.store.insert(selectionsArray[i]-1,record); +newSelectionsArray.push(selectionsArray[i]-1) +}}this.toMultiselect.view.refresh(); +this.toMultiselect.view.select(newSelectionsArray) +}},down:function(){var record=null; +var selectionsArray=this.toMultiselect.view.getSelectedIndexes(); +selectionsArray.sort(); +selectionsArray.reverse(); +var newSelectionsArray=[]; +if(selectionsArray.length>0){for(var i=0; +i<selectionsArray.length; +i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]); +if((selectionsArray[i]+1)<this.toMultiselect.view.store.getCount()){this.toMultiselect.view.store.remove(record); +this.toMultiselect.view.store.insert(selectionsArray[i]+1,record); +newSelectionsArray.push(selectionsArray[i]+1) +}}this.toMultiselect.view.refresh(); +this.toMultiselect.view.select(newSelectionsArray) +}},fromTo:function(){var selectionsArray=this.fromMultiselect.view.getSelectedIndexes(); +var records=[]; +if(selectionsArray.length>0){for(var i=0; +i<selectionsArray.length; +i++){record=this.fromMultiselect.view.store.getAt(selectionsArray[i]); +records.push(record) +}if(!this.toAllowDup){selectionsArray=[] +}for(var i=0; +i<records.length; +i++){record=records[i]; +if(this.toAllowDup){var x=new Ext.data.Record(); +record.id=x.id; +delete x; +this.toMultiselect.view.store.add(record) +}else{if(this.fromAllowTrash){this.fromMultiselect.view.store.remove(record) +}this.toMultiselect.view.store.add(record); +selectionsArray.push((this.toMultiselect.view.store.getCount()-1)) +}}}this.toMultiselect.view.refresh(); +this.fromMultiselect.view.refresh(); +if(this.toSortField){this.toMultiselect.store.sort(this.toSortField,this.toSortDir) +}if(this.toAllowDup){this.fromMultiselect.view.select(selectionsArray) +}else{this.toMultiselect.view.select(selectionsArray) +}},toFrom:function(){var selectionsArray=this.toMultiselect.view.getSelectedIndexes(); +var records=[]; +if(selectionsArray.length>0){for(var i=0; +i<selectionsArray.length; +i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]); +records.push(record) +}selectionsArray=[]; +for(var i=0; +i<records.length; +i++){record=records[i]; +this.toMultiselect.view.store.remove(record); +if(!this.fromAllowDup){this.fromMultiselect.view.store.add(record); +selectionsArray.push((this.fromMultiselect.view.store.getCount()-1)) +}}}this.fromMultiselect.view.refresh(); +this.toMultiselect.view.refresh(); +if(this.fromSortField){this.fromMultiselect.store.sort(this.fromSortField,this.fromSortDir) +}this.fromMultiselect.view.select(selectionsArray) +},valueChanged:function(store){var record=null; +var values=[]; +for(var i=0; +i<store.getCount(); +i++){record=store.getAt(i); +values.push(record.get(this.valueField)) +}this.hiddenField.dom.value=values.join(this.delimiter); +this.fireEvent("change",this,this.getValue(),this.hiddenField.dom.value) +},getValue:function(){return this.hiddenField.dom.value +},onRowDblClick:function(vw,index,node,e){return this.fireEvent("rowdblclick",vw,index,node,e) +},reset:function(){range=this.toMultiselect.store.getRange(); +this.toMultiselect.store.removeAll(); +if(!this.fromAllowDup){this.fromMultiselect.store.add(range); +this.fromMultiselect.store.sort(this.displayField,"ASC") +}this.valueChanged(this.toMultiselect.store) +}}); +Ext.reg("itemselector",Ext.ux.ItemSelector);/* + * Ext Core Library $version
http://extjs.com/
Copyright(c) 2006-2009, $author.

The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
 + */ +Ext.ns("Ext.ux"); +Ext.ux.Lightbox=(function(){var els={},images=[],activeImage,initialized=false,selectors=[]; +return{overlayOpacity:0.85,animate:true,resizeSpeed:8,borderSize:10,labelImage:"Image",labelOf:"of",init:function(){this.resizeDuration=this.animate?((11-this.resizeSpeed)*0.15):0; +this.overlayDuration=this.animate?0.2:0; +if(!initialized){Ext.apply(this,Ext.util.Observable.prototype); +Ext.util.Observable.constructor.call(this); +this.addEvents("open","close"); +this.initMarkup(); +this.initEvents(); +initialized=true +}},initMarkup:function(){els.shim=Ext.DomHelper.append(document.body,{tag:"iframe",id:"ux-lightbox-shim"},true); +els.overlay=Ext.DomHelper.append(document.body,{id:"ux-lightbox-overlay"},true); +var lightboxTpl=new Ext.Template(this.getTemplate()); +els.lightbox=lightboxTpl.append(document.body,{},true); +var ids=["outerImageContainer","imageContainer","image","hoverNav","navPrev","navNext","loading","loadingLink","outerDataContainer","dataContainer","data","details","caption","imageNumber","bottomNav","navClose"]; +Ext.each(ids,function(id){els[id]=Ext.get("ux-lightbox-"+id) +}); +Ext.each([els.overlay,els.lightbox,els.shim],function(el){el.setVisibilityMode(Ext.Element.DISPLAY); +el.hide() +}); +var size=(this.animate?250:1)+"px"; +els.outerImageContainer.setStyle({width:size,height:size}) +},getTemplate:function(){return['<div id="ux-lightbox">','<div id="ux-lightbox-outerImageContainer">','<div id="ux-lightbox-imageContainer">','<img id="ux-lightbox-image">','<div id="ux-lightbox-hoverNav">','<a href="#" id="ux-lightbox-navPrev"></a>','<a href="#" id="ux-lightbox-navNext"></a>',"</div>",'<div id="ux-lightbox-loading">','<a id="ux-lightbox-loadingLink"></a>',"</div>","</div>","</div>",'<div id="ux-lightbox-outerDataContainer">','<div id="ux-lightbox-dataContainer">','<div id="ux-lightbox-data">','<div id="ux-lightbox-details">','<span id="ux-lightbox-caption"></span>','<span id="ux-lightbox-imageNumber"></span>',"</div>",'<div id="ux-lightbox-bottomNav">','<a href="#" id="ux-lightbox-navClose"></a>',"</div>","</div>","</div>","</div>","</div>"] +},initEvents:function(){var close=function(ev){ev.preventDefault(); +this.close() +}; +els.overlay.on("click",close,this); +els.loadingLink.on("click",close,this); +els.navClose.on("click",close,this); +els.lightbox.on("click",function(ev){if(ev.getTarget().id=="ux-lightbox"){this.close() +}},this); +els.navPrev.on("click",function(ev){ev.preventDefault(); +this.setImage(activeImage-1) +},this); +els.navNext.on("click",function(ev){ev.preventDefault(); +this.setImage(activeImage+1) +},this) +},register:function(sel,group){if(selectors.indexOf(sel)===-1){selectors.push(sel); +Ext.fly(document).on("click",function(ev){var target=ev.getTarget(sel); +if(target){ev.preventDefault(); +this.open(target,sel,group) +}},this) +}},open:function(image,sel,group){group=group||false; +this.setViewSize(); +els.overlay.fadeIn({duration:this.overlayDuration,endOpacity:this.overlayOpacity,callback:function(){images=[]; +var index=0; +if(!group){images.push([image.href,image.title]) +}else{var setItems=Ext.query(sel); +Ext.each(setItems,function(item){if(item.href){images.push([item.href,item.title]) +}}); +while(images[index][0]!=image.href){index++ +}}var pageScroll=Ext.fly(document).getScroll(); +var lightboxTop=pageScroll.top+(Ext.lib.Dom.getViewportHeight()/10); +var lightboxLeft=pageScroll.left; +els.lightbox.setStyle({top:lightboxTop+"px",left:lightboxLeft+"px"}).show(); +this.setImage(index); +this.fireEvent("open",images[index]) +},scope:this}) +},setViewSize:function(){var viewSize=this.getViewSize(); +els.overlay.setStyle({width:viewSize[0]+"px",height:viewSize[1]+"px"}); +els.shim.setStyle({width:viewSize[0]+"px",height:viewSize[1]+"px"}).show() +},setImage:function(index){activeImage=index; +this.disableKeyNav(); +if(this.animate){els.loading.show() +}els.image.hide(); +els.hoverNav.hide(); +els.navPrev.hide(); +els.navNext.hide(); +els.dataContainer.setOpacity(0.0001); +els.imageNumber.hide(); +var preload=new Image(); +preload.onload=(function(){els.image.dom.src=images[activeImage][0]; +this.resizeImage(preload.width,preload.height) +}).createDelegate(this); +preload.src=images[activeImage][0] +},resizeImage:function(w,h){var wCur=els.outerImageContainer.getWidth(); +var hCur=els.outerImageContainer.getHeight(); +var wNew=(w+this.borderSize*2); +var hNew=(h+this.borderSize*2); +var wDiff=wCur-wNew; +var hDiff=hCur-hNew; +var afterResize=function(){els.hoverNav.setWidth(els.imageContainer.getWidth()+"px"); +els.navPrev.setHeight(h+"px"); +els.navNext.setHeight(h+"px"); +els.outerDataContainer.setWidth(wNew+"px"); +this.showImage() +}; +if(hDiff!=0||wDiff!=0){els.outerImageContainer.shift({height:hNew,width:wNew,duration:this.resizeDuration,scope:this,callback:afterResize,delay:50}) +}else{afterResize.call(this) +}},showImage:function(){els.loading.hide(); +els.image.fadeIn({duration:this.resizeDuration,scope:this,callback:function(){this.updateDetails() +}}); +this.preloadImages() +},updateDetails:function(){var detailsWidth=els.data.getWidth(true)-els.navClose.getWidth()-10; +els.details.setWidth((detailsWidth>0?detailsWidth:0)+"px"); +els.caption.update(images[activeImage][1]); +els.caption.show(); +if(images.length>1){els.imageNumber.update(this.labelImage+" "+(activeImage+1)+" "+this.labelOf+" "+images.length); +els.imageNumber.show() +}els.dataContainer.fadeIn({duration:this.resizeDuration/2,scope:this,callback:function(){var viewSize=this.getViewSize(); +els.overlay.setHeight(viewSize[1]+"px"); +this.updateNav() +}}) +},updateNav:function(){this.enableKeyNav(); +els.hoverNav.show(); +if(activeImage>0){els.navPrev.show() +}if(activeImage<(images.length-1)){els.navNext.show() +}},enableKeyNav:function(){Ext.fly(document).on("keydown",this.keyNavAction,this) +},disableKeyNav:function(){Ext.fly(document).un("keydown",this.keyNavAction,this) +},keyNavAction:function(ev){var keyCode=ev.getKey(); +if(keyCode==88||keyCode==67||keyCode==27){this.close() +}else{if(keyCode==80||keyCode==37){if(activeImage!=0){this.setImage(activeImage-1) +}}else{if(keyCode==78||keyCode==39){if(activeImage!=(images.length-1)){this.setImage(activeImage+1) +}}}}},preloadImages:function(){var next,prev; +if(images.length>activeImage+1){next=new Image(); +next.src=images[activeImage+1][0] +}if(activeImage>0){prev=new Image(); +prev.src=images[activeImage-1][0] +}},close:function(){this.disableKeyNav(); +els.lightbox.hide(); +els.overlay.fadeOut({duration:this.overlayDuration}); +els.shim.hide(); +this.fireEvent("close",activeImage) +},getViewSize:function(){return[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()] +}} +})(); +Ext.onReady(Ext.ux.Lightbox.init,Ext.ux.Lightbox);Ext.namespace("Ext.ux.form"); +Ext.ux.form.SuperBoxSelect=function(config){Ext.ux.form.SuperBoxSelect.superclass.constructor.call(this,config); +this.addEvents("beforeadditem","additem","newitem","beforeremoveitem","removeitem","clear") +}; +Ext.ux.form.SuperBoxSelect=Ext.extend(Ext.ux.form.SuperBoxSelect,Ext.form.ComboBox,{addNewDataOnBlur:false,allowAddNewData:false,allowQueryAll:true,backspaceDeletesLastItem:true,classField:null,clearBtnCls:"",clearLastQueryOnEscape:false,clearOnEscape:false,displayFieldTpl:null,extraItemCls:"",extraItemStyle:"",expandBtnCls:"",fixFocusOnTabSelect:true,forceFormValue:true,forceSameValueQuery:false,itemDelimiterKey:Ext.EventObject.ENTER,navigateItemsWithTab:true,pinList:true,preventDuplicates:true,queryFilterRe:"",queryValuesDelimiter:"|",queryValuesIndicator:"valuesqry",removeValuesFromStore:true,renderFieldBtns:true,stackItems:false,styleField:null,supressClearValueRemoveEvents:false,validationEvent:"blur",valueDelimiter:",",initComponent:function(){Ext.apply(this,{items:new Ext.util.MixedCollection(false),usedRecords:new Ext.util.MixedCollection(false),addedRecords:[],remoteLookup:[],hideTrigger:true,grow:false,resizable:false,multiSelectMode:false,preRenderValue:null,filteredQueryData:""}); +if(this.queryFilterRe){if(Ext.isString(this.queryFilterRe)){this.queryFilterRe=new RegExp(this.... [truncated message content] |