/* Copyright (c) 2022 Synology Inc. All rights reserved. */ if(!Element.prototype.matches){Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector}if(!Element.prototype.closest){Element.prototype.closest=function(b){var a=this;do{if(a.matches(b)){return a}a=a.parentElement||a.parentNode}while(a!==null&&a.nodeType===1);return null}}Ext.define("SYNO.ux.FleXcrollConfig",{statics:{ComboBox:{initList:function(){if(!this.list){var a="x-combo-list",c=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:c,shadow:this.shadow,cls:[a,this.listClass].join(" "),constrain:false,zindex:this.getZIndex(c)});var b=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(b,0);this.list.swallowEvent("mousewheel");this.assetHeight=0;if(this.syncFont!==false){this.list.setStyle("font-size",this.el.getStyle("font-size"))}if(this.title){this.header=this.list.createChild({cls:a+"-hd",html:this.title});this.assetHeight+=this.header.getHeight()}this.innerList=this.list.createChild({cls:a+"-inner"});this.mon(this.innerList,"mouseover",this.onViewOver,this);this.mon(this.innerList,"mousemove",this.onViewMove,this);this.innerList.setWidth(b-this.list.getFrameWidth("lr"));if(this.pageSize){this.footer=this.list.createChild({cls:a+"-ft"});this.pageTb=new SYNO.ux.PagingToolbar({showRefreshBtn:true,store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight()}if(!this.tpl){if(true===this.tplHtmlEncode){this.tpl='
{[Ext.util.Format.htmlEncode(values.'+this.displayField+")]}
"}else{this.tpl='
{'+this.displayField+"}
"}}this.view=new SYNO.ux.FleXcroll.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,useDefaultKeyNav:false,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+a+"-item",emptyText:this.listEmptyText,deferEmptyText:false});this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this});this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.mon(this.resizer,"resize",function(f,d,e){this.maxHeight=e-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=d;this.innerList.setWidth(d-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}this.fireEvent("listInitialized",this)}},onBeforeLoad:function(){var a=this;if(!a.hasFocus){return}a.view.getTemplateTarget().update(a.loadingText?'
'+a.loadingText+"
":"");a.restrictHeight();a.selectedIndex=-1},restrictHeight:function(){this.innerList.dom.style.height="";var b=this.view.getTemplateTarget().dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,f=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,f,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.endUpdate();this.view.updateFleXcroll()},select:function(a,d){var c=this;c.callParent(arguments);if(d!==false){var b=c.view.getNode(a);if(b){c.view.fleXcrollTo(b)}}}}}});Ext.define("SYNO.ux.FleXcroll.DataView",{extend:"Ext.DataView",autoFlexcroll:true,trackResetOnLoad:true,blockScrollBarUpdate:false,restoreSelectionState:false,useDefaultKeyNav:true,useARIA:false,constructor:function(a){if(a.useARIA===true||this.useARIA===true){this.addPlugins(SYNO.ux.DataViewARIA,a)}a.emptyText=a.emptyText||['
','
','
','
',a.customizeEmptyText||this.customizeEmptyText||_JSLIBSTR("extlang","pagenodata"),"
","
","
"].join("");this.callParent([a]);this.addClass("syno-dataview")},getTemplateTarget:function(){var a=this;a.scrollBar=a.scrollBar||a.el.createChild({tag:"div",style:"width:100%;"});return a.scrollBar},afterRender:function(){var a=this;a.callParent(arguments);this.mun(this.getTemplateTarget(),"contextmenu",this.onContextMenu,this);this.mon(this.el,"contextmenu",this.onContextMenu,this);this.initKeyNav();if(!a.autoFlexcroll){return}a.getEl().setStyle({overflow:"hidden"});a.mon(a,"resize",a.onUpdateFleXcroll,a)},initKeyNav:function(){if(!this.useDefaultKeyNav){return}this.el.set({tabIndex:0});this.el.on("click",this.el.focus,this);new Ext.KeyNav(this.el,{down:function(a){if(this.useARIA){this.onKeyRight(a)}else{this.onKeyDown(a)}},up:function(a){if(this.useARIA){this.onKeyLeft(a)}else{this.onKeyUp(a)}},left:function(a){this.onKeyLeft(a)},right:function(a){this.onKeyRight(a)},space:function(a){this.onKeySpace(a)},enter:function(a){this.onKeyEnter(a)},scope:this});this.mon(this,"beforedestroy",this.onBeforeDestroy,this);this.mon(this,"selectionchange",this.changeProtectFocus,this)},getFirstSelItemIdx:function(){return this.getSelectedIndexes()[0]},getLastSelItemIdx:function(){return this.getSelectedIndexes()[this.getSelectedIndexes().length-1]},getThumbnailRowNum:function(a){var c=a.getTemplateTarget(),b=window.getComputedStyle(a.selected.elements[0]),d=parseInt(b.width,10)+parseInt(b.marginLeft,10)+parseInt(b.marginRight,10);return Math.floor(c.getWidth()/d)},isNeedToShift:function(){var b=this,a=b.selected.elements[0];if(!a){return false}return true},selectItem:function(a,b){if(!b){this.select(a)}else{this.select(a,true,true)}this.ensureVisible(a)},selectPreItem:function(){var b=this.getFirstSelItemIdx(),a;if(!Ext.isDefined(b)){a=0}else{a=(b===0)?0:b-1}this.selectItem(a)},selectNextItem:function(){var b=this.getFirstSelItemIdx(),c=this.store.getCount()-1,a;if(!Ext.isDefined(b)){a=0}else{a=(b==c)?c:b+1}this.selectItem(a)},selectPreRowItem:function(c){var b=this.getFirstSelItemIdx(),a;if(bc){this.selectItem(b);return}this.selectItem(a)},ensureVisible:function(e){var h=this,d=h.getNode(e);if(!d||!h.autoFlexcroll){return}var b=d,g=h.el.dom,k=0,i=h.el.dom;while(b&&b!=i&&!Ext.get(b).hasClass("contentwrapper")&&!Ext.get(b).hasClass("mcontentwrapper")){k+=b.offsetTop;b=b.offsetParent}k+=parseInt(getComputedStyle(g).paddingTop,10);if(!i.fleXdata){return}i=parseInt(i.fleXdata.scrollPosition[1][0],10)||0;var j=k+d.offsetHeight,a=g.clientHeight,f=i+a;if(kf){h.setScroll(j-a,false)}}},setScroll:function(c,b){var a=this,d=a.el.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(b,c)}else{if(typeof c==="number"){d.scrollTop=c}if(typeof b==="number"){d.scrollLeft=b}}},selectRange:function(b,a){this.callParent(arguments);this.ensureVisible(a)},selectPreItemIn:function(){var b=this.last,a;a=(this.getLastSelItemIdx()===0)?0:this.getLastSelItemIdx()-1;this.selectRange(b,a);this.last=b},selectNextItemIn:function(){var b=this.last,c=this.store.getCount()-1,a;a=(this.getLastSelItemIdx()+1>c)?c:this.getLastSelItemIdx()+1;this.selectRange(b,a);this.last=b},selectPreRowItemIn:function(c){var b=this.last,a;a=(this.getLastSelItemIdx()c)?c:this.getLastSelItemIdx()+d;this.selectRange(b,a);this.last=b},changeProtectFocus:function(b,a){this.protectFocus(a.length>0)},protectFocus:function(a){if(this.rendered){this.el.dom.focusProtect=a}},onKeyUp:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this,c=a.getThumbnailRowNum(a);if(!b.shiftKey){a.selectPreRowItem(c)}else{a.selectPreRowItemIn(c)}},onKeyDown:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this,c=a.getThumbnailRowNum(a);if(!b.shiftKey){a.selectNextRowItem(c)}else{a.selectNextRowItemIn(c)}},onKeyRight:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this;if(!b.shiftKey){a.selectNextItem()}else{a.selectNextItemIn()}},onKeyLeft:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this;if(!b.shiftKey){a.selectPreItem()}else{a.selectPreItemIn()}},onKeySpace:Ext.emptyFn,onKeyEnter:Ext.emptyFn,onStoreLoad:function(a){var b=this;b[b.trackResetOnLoad?"resetScroller":"onUpdateFleXcroll"]()},autoUpdateScrollbar:function(a){this.updateScrollbar(this.getEl().dom,a)},updateFleXcroll:function(a){if(this.blockScrollBarUpdate!==true){this.autoUpdateScrollbar(a)}},onUpdateFleXcroll:function(){this.autoUpdateScrollbar(false)},onStoreClear:function(a){var b=this;b.resetScroller()},bindStore:function(a,b){var c=this;c.callParent(arguments);if(!c.autoFlexcroll){return}if(!b&&c.store){if(a!==c.store&&c.store.autoDestroy){this.store.destroy()}else{c.mun(a,"load",c.onStoreLoad,c);c.mun(a,"clear",c.onStoreClear,c);c.mun(a,"datachanged",c.onUpdateFleXcroll,c);c.mun(a,"update",c.onUpdateFleXcroll,c)}if(!a){this.store=null}}if(a){a=Ext.StoreMgr.lookup(a);c.mon(a,"load",c.onStoreLoad,c);c.mon(a,"clear",c.onStoreClear,c);c.mon(a,"datachanged",c.onUpdateFleXcroll,c);c.mon(a,"update",c.onUpdateFleXcroll,c)}},suspendUpdateScrollbar:function(){this.blockScrollBarUpdate=true},resumeUpdateScrollbar:function(){this.blockScrollBarUpdate=false},focusNode:function(c){var b=this,a=b.getNode(c);if(!b.autoFlexcroll){return}b.fleXcrollTo(a)},onBeforeDestroy:function(){this.el.un("click",this.el.focus,this)},onDestroy:function(){if(this.scrollBar){Ext.destroy(this.scrollBar);delete this.scrollBar}this.removeDelayedTask("updateScrollbarTask");this.destroyFleXcroll(this.el);this.callParent(arguments)},refresh:function(){var b=this.store.getRange();function a(){var e=this.el.child(".contentwrapper");if(!e){return}if(b.length<1&&!e.hasClass("is-empty")){e.addClass("is-empty")}else{if(b.length>=1&&e.hasClass("is-empty")){e.removeClass("is-empty")}}}if(this.restoreSelectionState!==true){this.callParent(arguments);a.call(this);return}var c=this,d=c.getSelectedItemIds();c.callParent(arguments);a.call(this);c.restoreUIState(d)},getSelectedItemIds:function(){var a,b;var c=[];a=this.getSelectedRecords();for(b=0;b','","",'
');return b},toggleSelectedItem:function(){var b=this,a=b.selected.elements,c;if(a.length!==1){return}c=a[0];this.toggleDetail(Ext.fly(c),false)},onKeyEnter:function(a){a.preventDefault();this.toggleSelectedItem()},onKeySpace:function(a){a.preventDefault();this.toggleSelectedItem()},onClick:function(d,c,b){this.callParent(arguments);var a=Ext.fly(c);if(a&&(a.hasClass("item-toggle")||a.hasClass("item-toggle-img"))){this.toggleDetail(a.parent(".item-wrap"),true)}},onDblClick:function(f,d,c){this.callParent(arguments);if(this.toggleOnDblClick){var b=Ext.fly(d),a;if(b&&!(b.hasClass(this.toggleWrapCls)||b.hasClass("item-toggle-img"))){a=b.parent(".item-wrap");this.toggleDetail(a,true)}}},toggleDetail:function(b,c){if(!b){return}var d,a;d=this.getRecord(b.dom);if(b.child(".item-toggle-expanded")){b.setARIAExpanded(false);this.doExpand(false,b,c);this.toggledItemIds.remove(d.id)}else{b.setARIAExpanded(true);this.doExpand(true,b,c);a=this.toggledItemIds.indexOf(d.id);if(a<0){this.toggledItemIds.push(d.id)}}},doExpand:function(c,d,b){var e=d.child(".item-detail");if(!e){return}e.setVisibilityMode(Ext.Element.DISPLAY);if(b){e[c?"slideIn":"slideOut"]("t",{duration:0.25,callback:this.afterAmin.createDelegate(this)})}else{e[c?"show":"hide"]()}var a=d.child("."+this.toggleWrapCls);if(!a){return}a[c?"addClass":"removeClass"]("item-toggle-expanded");if(!c){if(this.store.data.length===1&&this.singleExpanded===true){this.userExpanded=false}}if(!b){this.updateFleXcroll()}},afterAmin:function(){this.updateFleXcroll()},getSelectedItemIds:function(){var a,b;var c=[];a=this.getSelectedRecords();for(b=0;b=0;a--){e=this.store.getById(f[a]);if(e){c=this.getNode(e);b=Ext.fly(c);if(b&&!b.child(".item-toggle-expanded")){this.toggleDetail(Ext.fly(c),false)}}else{f.remove(f[a])}}this.resumeUpdateScrollbar();this.updateFleXcroll()},onUpdate:function(b,a){var c=this.getToggledItemIds();this.callParent(arguments);this.restoreUIState([],c)},refresh:function(){var a=this.getSelectedItemIds();var b=this.getToggledItemIds();this.callParent(arguments);this.restoreUIState(a,b)}});Ext.define("SYNO.ux.OperatableListView",{extend:"SYNO.ux.ExpandableListView",innerTpl:undefined,toggleWrapCls:"item-toggle",toolWrapCls:"item-tools",operator:["edit","remove"],constructor:function(a){this.userExpanded=true;this.toggledItemIds=[];this.callParent([this.fillConfig(a)]);this.addClass("syno-ux-operatable-listview")},fillConfig:function(a){Ext.apply(this,a);var b={tpl:this.createTpl(),selectedClass:"item-selected",overClass:"item-over",itemSelector:"div.item-wrap",multiSelect:true};Ext.apply(b,a);return b},createTpl:function(){this.toggleTpl="";this.toolTpl='
';Ext.each(this.operator,function(b){this.toolTpl+='
'},this);this.toolTpl+="
";if(this.innerTpl){this.toggleTpl='
'}var a=new Ext.XTemplate('','
',this.toolTpl,'
',"
",'
{title:htmlEncode}
','
{status:htmlEncode}
',"
",this.toggleTpl,"
",'","
","
",'
');return a},onClick:function(h,g,f){this.callParent(arguments);var d=Ext.fly(g),b;for(b=0;b');a.rowHolder.disableFormats=true;a.rowHolder.compile();a.rowBody=new Ext.Template('',"{cells}",(this.enableRowBody?'':""),"
{body}
");a.rowBody.disableFormats=true;a.rowBody.compile()},getStyleRowHeight:function(){return Ext.isBorderBox?(this.rowHeight+this.borderHeight):this.rowHeight},getCalculatedRowHeight:function(){return this.rowHeight+this.borderHeight},getVisibleRowCount:function(){var b=this.getCalculatedRowHeight(),a=this.scroller.dom.clientHeight;return(a<1)?0:Math.ceil(a/b)},getVisibleRows:function(){var a=this.getVisibleRowCount(),b=this.scroller.dom.scrollTop,c=(b===0?0:Math.floor(b/this.getCalculatedRowHeight())-1);return{first:Math.max(c,0),last:Math.min(c+a+2,this.ds.getCount()-1)}},doRender:function(g,l,w,a,u,C,m){var b=this.templates,f=b.cell,k=b.row,z=b.rowBody,o=u-1,v=this.getStyleRowHeight(),B=this.getVisibleRows(),d="width:"+this.getTotalWidth()+";height:"+v+"px;",F=[],y,G,h=this.getLastVisibleCol(),x={},n={tstyle:d},s,t;for(var A=0,E=l.length;A=B.first&&q<=B.last;if(e){for(var D=0;D0},syncScroll:function(){Ext.ux.grid.BufferView.superclass.syncScroll.apply(this,arguments);this.update()},update:function(){if(this.scrollDelay){if(!this.renderTask){this.renderTask=new Ext.util.DelayedTask(this.doUpdate,this)}this.renderTask.delay(this.scrollDelay)}else{this.doUpdate()}},onRemove:function(d,a,b,c){Ext.ux.grid.BufferView.superclass.onRemove.apply(this,arguments);if(c!==true){this.update()}},doUpdate:function(){if(this.getVisibleRowCount()>0){var f=this.grid,b=f.colModel,h=f.store,e=this.getColumnData(),a=this.getVisibleRows(),j;for(var d=a.first;d<=a.last;d++){if(!this.isRowRendered(d)&&(j=this.getRow(d))){var c=this.doRender(e,[h.getAt(d)],h,d,b.getColumnCount(),f.stripeRows,true);j.innerHTML=c}}this.clean()}},clean:function(){if(!this.cleanTask){this.cleanTask=new Ext.util.DelayedTask(this.doClean,this)}this.cleanTask.delay(this.cleanDelay)},doClean:function(){if(this.getVisibleRowCount()>0){var b=this.getVisibleRows();b.first-=this.cacheSize;b.last+=this.cacheSize;var c=0,d=this.getRows();if(b.first<=0){c=b.last+1}for(var a=this.ds.getCount();cb.last)&&d[c].innerHTML){d[c].innerHTML=""}}}},removeTask:function(b){var a=this[b];if(a&&a.cancel){a.cancel();this[b]=null}},destroy:function(){this.removeTask("cleanTask");this.removeTask("renderTask");Ext.ux.grid.BufferView.superclass.destroy.call(this)},layout:function(){Ext.ux.grid.BufferView.superclass.layout.call(this);this.update()}});SYNO.SDS.DefineGridView=function(a,b){Ext.define(a,{extend:b,cellSelectorDepth:5,forceFit:true,scrollOffset:0,syncScrollWithBuffer:true,splitZoneClass:"SYNO.ux.grid.GridView.SplitDragZone",cellTpl:new Ext.XTemplate('','
{value}
',""),masterTpl:new Ext.Template('
','
','
','
','
{header}
',"
",'
',"
",'
','','
{body}
',"
","
",'
 
','
 
',"
"),trackResetOnLoad:true,autoFlexcroll:true,updateScroller:function(c){var d=this,e=d.scroller.dom;if(!d.autoFlexcroll){return}d.updateScrollbar(e,c)},onDataChange:function(){var c=this;c.callParent(arguments);c.updateScroller()},onClear:function(){var c=this;c.callParent(arguments);c.updateScroller()},onUpdate:function(d,c){var e=this;e.callParent(arguments);e.updateScroller()},onAdd:function(d,c,e){var f=this;f.callParent(arguments);f.updateScroller()},onRemove:function(d,c,e,g){var f=this;f.callParent(arguments);f.updateScroller()},onLoad:function(){var c=this;c.updateScroller(c.trackResetOnLoad)},afterRender:function(){this.callParent(arguments);this.updateScroller()},fitColumns:function(g,j,h){var c=this.grid,k=this.cm,t=k.getTotalWidth(false),q=this.getGridInnerWidth(),r=q-t,d=[],s=[],l=0,o=0,u,e,p;if(q<22||r===0){return false}var n=k.getColumnCount(false);for(p=0;pq){var m=Math.max(1,(t-q)/s.length);Ext.each(s,function(i){l=Math.max(1,k.getColumnWidth(i)-m);k.setColumnWidth(i,l,true)})}else{if(t0&&f<(g.length-1)&&g[f].hidden){f=f+e}if(!g[f]||g[f].hidden){return}this.setHeaderFocus(f,true)},setHeaderFocus:function(d,g){if(this.hdTabbable===false){return}var h=this.hdFocus,c=this.cm,f,e;if(h){h.setAttribute("tabIndex",-1)}this.hdFocus=this.getHeaderCell(d)||h;if(this.hdFocus){this.hdFocus.setAttribute("tabIndex",0);if(!this.hdFocus.keyMaps){f=c.getColumnAt(d);e={left:this.focusHeaderByDir.createDelegate(this,[d,-1]),right:this.focusHeaderByDir.createDelegate(this,[d,1]),scope:this};if(Ext.isFunction(f.onHeaderSpace)){Ext.apply(e,{space:f.onHeaderSpace.createDelegate(f)})}this.hdFocus.keyMaps=new Ext.KeyNav(Ext.fly(this.hdFocus),e)}if(g){this.hdFocus.focus()}this.curHeaderFocusIdx=d}},handleHdDown:function(d,c){this.callParent(arguments);this.focusEl.focus()},onLayout:function(d,f){var c=this,e=c.scroller.dom;if(!c.autoFlexcroll){return}this.fitColumns(false);c.updateScrollbar(e)},getScrollLeft:function(){var c=this,d=c.scroller.dom;return d.fleXcroll?d.fleXdata.scrollPosition[0][0]:d.scrollLeft},getScrollTop:function(){var c=this,d=c.scroller.dom;return d.fleXcroll?d.fleXdata.scrollPosition[1][0]:d.scrollTop},setScroll:function(f,e){var c=this,d=c.scroller.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(e,f)}else{if(f){d.scrollTop=f}if(e){d.scrollLeft=e}}},getScrollState:function(){var c=this;return{left:c.getScrollLeft(),top:c.getScrollTop()}},restoreScroll:function(d){var c=this,e=c.scroller.dom;if(e.fleXcroll){e.fleXcroll.setScrollPos(d.left,d.top)}else{c.callParent(arguments)}},scrollToTop:function(){var c=this,d=c.scroller.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(0,0)}else{c.callParent(arguments)}},syncHeaderScroll:function(){var d=this,c=d.innerHd,e=d.getScrollLeft();c.scrollLeft=e;c.scrollLeft=e},syncScroll:function(){var c=this;c.syncHeaderScroll();c.grid.fireEvent("bodyscroll",c.getScrollLeft(),c.getScrollTop())},ensureVisible:function(i,f,r){var u=this,n=u.resolveCell(i,f,r);if(!n||!n.row){return null}if(!u.autoFlexcroll){u.callParent(arguments)}var t=n.row,k=n.cell,s=this.scroller.dom,m=t,j=0,q=this.el.dom;while(m&&m!=q&&!Ext.get(m).hasClass("contentwrapper")&&!Ext.get(m).hasClass("mcontentwrapper")){j+=m.offsetTop;m=m.offsetParent}q=parseInt(u.getScrollTop(),10);var g=j+t.offsetHeight,l=s.clientHeight,o=q+l;if(jo){u.setScroll(g-l,false)}}if(r!==false){var h=parseInt(k.offsetLeft,10),v=h+k.offsetWidth,e=parseInt(u.getScrollLeft(),10),d=e+s.clientWidth;if(hd){u.setScroll(false,v-s.clientWidth)}}}return u.getResolvedXY(n)},destroy:function(){this.destroyFleXcroll(this.el);this.callParent(arguments);this.un("flexcroll",this.syncScroll,this,{buffer:100})},renderHeaders:function(){var k=this.cm,l=this.templates,d=l.hcell,j={},m=k.getColumnCount(),c=this.getLastVisibleCol(),h=this.getFirstVisibleCol(),n=m-1,o=[],g,f,e;for(g=0;g','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
",""),c=['','','
{body}
',"",""].join(""),d=['',"",'{cells}',this.enableRowBody?c:"","","
"].join("");this.templates=this.templates||{};e.compile();Ext.applyIf(this.templates,{hcell:e,row:new Ext.XTemplate('
'+d+"
"),rowInner:new Ext.XTemplate(d)});this.callParent(arguments)},onColumnSplitterMoved:function(e,d,f,c){this.userResized=true;this.grid.colModel.setColumnWidth(e,d,true);this.grid.colModel.setColumnWidth(f,c,true);if(this.forceFit){this.fitColumns(true,false);this.updateAllColumnWidths()}else{this.updateColumnWidth(e,d);this.syncHeaderScroll()}this.grid.fireEvent("columnresize",e,d);this.grid.fireEvent("columnresize",f,c)}})};SYNO.SDS.DefineGridView("SYNO.ux.FleXcroll.grid.GridView","Ext.grid.GridView");SYNO.SDS.DefineGridView("SYNO.ux.FleXcroll.grid.BufferView","Ext.ux.grid.BufferView");Ext.define("SYNO.ux.grid.GridView.SplitDragZone",{extend:"Ext.grid.GridView.SplitDragZone",handleMouseDown:function(b){var h=this.view.findHeaderCell(b.getTarget());if(h&&this.allowHeaderDrag(b)){var k=this.view.fly(h).getXY(),d=k[0],i=b.getXY(),c=i[0],g=h.offsetWidth,a=false,f=false;if((c-d)<=this.hw){f=-1;a=true}else{if((d+g)-c<=this.hw){f=0}}if(f!==false){this.cm=this.grid.colModel;var j=this.view.getCellIndex(h);if(j+f<0){return}while(this.cm.isHidden(j+f)){--f;if(j+f<0){return}}if(f===0){f=1;while(this.cm.isHidden(j+f)){++f;if(j+f>this.cm.getColumnCount()-1){return}}}this.cellIndex=a?j+f:j;this.affectedIndex=a?j:j+f;this.split=h.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)&&this.cm.isResizable(this.affectedIndex)&&!this.cm.isFixed(this.affectedIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}else{if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(b)}}}},endDrag:function(f){this.marker.hide();var i=this.view,j=Math.max(this.minX,f.getPageX()),h=this.cellIndex,b=this.cm.getColumnAt(h),a=this.affectedIndex,c=this.cm.getColumnAt(a),g=j-this.startPos,d=this.dragHeadersDisabled;if(g>0){g=Math.min(g,c.width-(c.minWidth||46))}else{if(g<0){g=Math.max(g,(b.minWidth||46)-b.width)}}i.onColumnSplitterMoved(h,this.cm.getColumnWidth(h)+g,a,this.cm.getColumnWidth(a)-g);setTimeout(function(){i.headersDisabled=d},50)}});Ext.override(SYNO.ux.FleXcroll.grid.BufferView,{constructor:function(a){a=a||{};a=Ext.applyIf(a,{rowHeight:28,borderHeight:1,cacheSize:30,scrollDelay:false,forceFit:true,splitZoneClass:"SYNO.ux.grid.GridView.SplitDragZone"});this.callParent(arguments)},afterRenderUI:function(){var c=this,a=this.grid.getColumnModel(),d=a.columns||a.config,b=0;c.callParent(arguments);if(!c.autoFlexcroll){return}c.on("flexcroll",c.update,c);while(b<(d.length-1)&&d[b].hidden){b++}c.setHeaderFocus(b)},getVscrollerbarBase:function(){var a=this;if(a.scrollerbarbase){return a.scrollerbarbase}return(a.scrollerbarbase=Ext.get(a.el.child("div.scrollerbarbase")))},getContentwrapper:function(){var a=this;if(a.vscrollerbar){return a.vscrollerbar}return(a.vscrollerbar=Ext.get(a.el.child("div.contentwrapper")))},getVisibleRowCount:function(){if(!this.autoFlexcroll){this.callParent(arguments)}var c=this,b=c.getCalculatedRowHeight(),a=!Ext.isEmpty(c.getVscrollerbarBase())?c.getVscrollerbarBase().getHeight():c.scroller.dom.clientHeight;return(a<1)?0:Math.ceil(a/b)},getVisibleRows:function(){if(!this.autoFlexcroll){this.callParent(arguments)}var b=this,a=b.getVisibleRowCount(),c=!Ext.isEmpty(b.getContentwrapper())?(-1*b.getContentwrapper().getTop(true)+1):b.scroller.dom.scrollTop,d=(c===0?0:Math.floor(c/b.getCalculatedRowHeight())-1);return{first:Math.max(d,0),last:Math.min(d+a+3,b.ds.getCount()-1)}},initTemplates:function(){var d=new Ext.XTemplate('','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
",""),a=['','','
{body}
',"",""].join(""),c=['',"",'{cells}',this.enableRowBody?a:"","","
"].join("");this.templates=this.templates||{};d.compile();Ext.applyIf(this.templates,{hcell:d,row:new Ext.XTemplate('
'+c+"
"),rowInner:new Ext.XTemplate(c)});Ext.ux.grid.BufferView.superclass.initTemplates.call(this);var b=this.templates;b.rowHolder=new Ext.Template('
');b.rowHolder.disableFormats=true;b.rowHolder.compile();b.rowBody=new Ext.Template('','{cells}',(this.enableRowBody?'':""),"
{body}
");b.rowBody.disableFormats=true;b.rowBody.compile()},destroy:function(){var a=this;a.callParent(arguments);a.un("flexcroll",a.update,a)},onColumnSplitterMoved:function(c,b,d,a){this.userResized=true;this.grid.colModel.setColumnWidth(c,b,true);this.grid.colModel.setColumnWidth(d,a,true);if(this.forceFit){this.fitColumns(true,false);this.updateAllColumnWidths()}else{this.updateColumnWidth(c,b);this.syncHeaderScroll()}this.grid.fireEvent("columnresize",c,b);this.grid.fireEvent("columnresize",d,a)}});Ext.define("SYNO.ux.FleXcroll.grid.HorizontalGridView",{extend:"SYNO.ux.FleXcroll.grid.GridView",masterTpl:new Ext.Template('
','
','
','
','
{header}
','
','
',"
","
",'
',"
",'
','
{body}
','',"
","
",'
 
','
 
',"
"),scrollStep:10,useScrollStep:false,syncScrollWithBuffer:false,processEvent:function(a,f){var d=f.getTarget(),b=this.grid,c=Ext.fly(d);if(c.hasClass("scroll-control-left")){b.fireEvent("leftScroller"+a);return}if(c.hasClass("scroll-control-right")){b.fireEvent("rightScroller"+a);return}if(c.hasClass("scroll-menu-ct")){return}this.callParent(arguments)},onLayout:function(b,d){var a=this,c=a.scroller.dom;if(!a.autoFlexcroll){return}if(c.clientWidth===c.offsetWidth){a.scrollOffset=0}else{a.scrollOffset=undefined}a.updateScrollbar(c)}});Ext.ux.Spinner=Ext.extend(Ext.util.Observable,{incrementValue:1,alternateIncrementValue:5,triggerClass:"x-form-spinner-trigger",splitterClass:"x-form-spinner-splitter",alternateKey:Ext.EventObject.shiftKey,defaultValue:0,accelerate:false,constructor:function(a){Ext.ux.Spinner.superclass.constructor.call(this,a);Ext.apply(this,a);this.mimicing=false},init:function(a){this.field=a;a.afterMethod("onRender",this.doRender,this);a.afterMethod("onEnable",this.doEnable,this);a.afterMethod("onDisable",this.doDisable,this);a.afterMethod("afterRender",this.doAfterRender,this);a.afterMethod("onResize",this.doResize,this);a.afterMethod("onFocus",this.doFocus,this);a.beforeMethod("onDestroy",this.doDestroy,this)},doRender:function(b,a){var c=this.field.getEl();this.el=this.field.getEl();var d=this.field;if(!d.wrap){d.wrap=this.wrap=c.wrap({cls:"x-form-field-wrap"})}else{this.wrap=d.wrap.addClass("x-form-field-wrap")}this.trigger=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(!d.width){this.wrap.setWidth(c.getWidth()+this.trigger.getWidth())}this.splitter=this.wrap.createChild({tag:"div",cls:this.splitterClass,style:"width:13px; height:2px;"});this.splitter.setRight((Ext.isIE)?1:2).setTop(10).show();this.proxy=this.trigger.createProxy("",this.splitter,true);this.proxy.addClass("x-form-spinner-proxy");this.proxy.setStyle("left","0px");this.proxy.setSize(20,1);this.proxy.hide();this.dd=new Ext.dd.DDProxy(this.splitter.dom.id,"SpinnerDrag",{dragElId:this.proxy.id});this.initTrigger();this.initSpinner()},doAfterRender:function(){var a;if(Ext.isIE&&this.el.getY()!=(a=this.trigger.getY())){this.el.position();this.el.setY(a)}},doEnable:function(){if(this.wrap){this.wrap.removeClass(this.field.disabledClass)}},doDisable:function(){if(this.wrap){this.wrap.addClass(this.field.disabledClass);this.el.removeClass(this.field.disabledClass)}},doResize:function(a,b){if(typeof a=="number"){this.el.setWidth(a-this.trigger.getWidth())}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())},doFocus:function(){if(!this.mimicing){this.wrap.addClass("x-trigger-wrap-focus");this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});this.el.on("keydown",this.checkTab,this)}},checkTab:function(a){if(a.getKey()==a.TAB){this.triggerBlur()}},mimicBlur:function(a){if(!this.wrap.contains(a.target)&&this.field.validateBlur(a)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);this.el.un("keydown",this.checkTab,this);this.field.beforeBlur();this.wrap.removeClass("x-trigger-wrap-focus");this.field.onBlur.call(this.field)},initTrigger:function(){this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},initSpinner:function(){this.field.addEvents({spin:true,spinup:true,spindown:true});this.keyNav=new Ext.KeyNav(this.el,{up:function(a){a.preventDefault();this.onSpinUp()},down:function(a){a.preventDefault();this.onSpinDown()},pageUp:function(a){a.preventDefault();this.onSpinUpAlternate()},pageDown:function(a){a.preventDefault();this.onSpinDownAlternate()},scope:this});this.repeater=new Ext.util.ClickRepeater(this.trigger,{accelerate:this.accelerate});this.field.mon(this.repeater,"click",this.onTriggerClick,this,{preventDefault:true});this.field.mon(this.trigger,{mouseover:this.onMouseOver,mouseout:this.onMouseOut,mousemove:this.onMouseMove,mousedown:this.onMouseDown,mouseup:this.onMouseUp,scope:this,preventDefault:true});this.field.mon(this.wrap,"mousewheel",this.handleMouseWheel,this);this.dd.setXConstraint(0,0,10);this.dd.setYConstraint(1500,1500,10);this.dd.endDrag=this.endDrag.createDelegate(this);this.dd.startDrag=this.startDrag.createDelegate(this);this.dd.onDrag=this.onDrag.createDelegate(this)},onMouseOver:function(){if(this.disabled){return}var a=this.getMiddle();this.tmpHoverClass=(Ext.EventObject.getPageY()a)&&this.tmpHoverClass=="x-form-spinner-overup")||((Ext.EventObject.getPageY()0){this.onSpinUp();a.stopEvent()}else{if(b<0){this.onSpinDown();a.stopEvent()}}},startDrag:function(){this.proxy.show();this._previousY=Ext.fly(this.dd.getDragEl()).getTop()},endDrag:function(){this.proxy.hide()},onDrag:function(){if(this.disabled){return}var b=Ext.fly(this.dd.getDragEl()).getTop();var a="";if(this._previousY>b){a="Up"}if(this._previousYthis.field.maxValue){a=this.field.maxValue}return this.fixPrecision(a)},fixPrecision:function(b){var a=isNaN(b);if(!this.field.allowDecimals||this.field.decimalPrecision==-1||a||!b){return a?"":b}return parseFloat(parseFloat(b).toFixed(this.field.decimalPrecision))},doDestroy:function(){if(this.trigger){this.trigger.remove()}if(this.wrap){this.wrap.remove();delete this.field.wrap}if(this.splitter){this.splitter.remove()}if(this.dd){this.dd.unreg();this.dd=null}if(this.proxy){this.proxy.remove()}if(this.repeater){this.repeater.purgeListeners()}}});Ext.define("Ext.ux.form.SpinnerField",{extend:"Ext.form.NumberField",actionMode:"wrap",deferHeight:true,autoSize:Ext.emptyFn,onBlur:Ext.emptyFn,adjustSize:Ext.BoxComponent.prototype.adjustSize,constructor:function(c){var b=Ext.copyTo({},c,"incrementValue,alternateIncrementValue,accelerate,defaultValue,triggerClass,splitterClass");this.spinner=new Ext.ux.Spinner(b);var d=this.spinner;var a=c.plugins?(Ext.isArray(c.plugins)?c.plugins.push(d):[c.plugins,d]):d;Ext.ux.form.SpinnerField.superclass.constructor.call(this,Ext.apply(c,{plugins:a}))},getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},validateBlur:function(){return true}});Ext.define("SYNO.ux.DatePicker",{extend:Ext.DatePicker,onRender:function(a,g){var c=['','','",this.showToday?'':"",'
  
'],f=this.dayNames,e;for(e=0;e<7;e++){var h=this.startDay+e;if(h>6){h=h-7}c.push('")}c[c.length]='';for(e=0;e<42;e++){if(e%7===0&&e!==0){c[c.length]=''}c[c.length]=''}c.push("
',this.getWeekdayHeader(e),"
');var b=document.createElement("div");b.className="x-date-picker";b.innerHTML=c.join("");var k=document.createElement("li");k.className="x-menu-list-item x-menu-date-item";k.appendChild(b);a.dom.insertBefore(k,g);this.el=Ext.get(k);this.innerEl=Ext.get(b);this.eventEl=Ext.get(b.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.nextRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.monthPicker=this.innerEl.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevMonth()}else{this.update(this.activeDate.add("d",-1))}},right:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextMonth()}else{this.update(this.activeDate.add("d",1))}},up:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextYear()}else{this.update(this.activeDate.add("d",-7))}},down:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevYear()}else{this.update(this.activeDate.add("d",7))}},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();this.handleDateSelect(d);return true},scope:this});this.innerEl.unselectable();this.cells=this.innerEl.select("table.x-date-inner tbody td");this.textNodes=this.innerEl.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.innerEl.child("td.x-date-middle",true)});this.mbtn.el.child("em").addClass("x-btn-arrow");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var j=(new Date()).dateFormat(this.format);this.todayBtn=new SYNO.ux.Button({cls:"today-btn",renderTo:this.innerEl.child("td.x-date-bottom",true),text:String.format(this.todayText,j),tooltip:String.format(this.todayTip,j),handler:this.selectToday,scope:this})}this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"div.x-date-date"});this.mon(this.mbtn,"click",this.showMonthPicker,this);this.onEnable(true)},getWeekdayHeader:function(b){var a=this.dayName;return a[b].substr(0,1)},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var b=(this.el.child(".x-date-picker")||this.el).getSize();this.monthPicker.setSize(b);this.monthPicker.child("table").setSize(b);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})}},isDateSelected:function(a){return a.target.nodeName.toUpperCase()==="TD"},update:function(c,n){var f=this.activeDate,a=this.isVisible(),h=false;if(!n&&f){if(f.getMonth()==c.getMonth()&&f.getFullYear()==c.getFullYear()){h=true}}this.callParent(arguments);if(!this.rendered){return}var l=c.getTime();this.cells.each(function(i){if(i.dom.firstChild.dateValue==l){if(a&&!this.cancelFocus){Ext.fly(i.dom).focus(50)}return false}},this);if(h&&this.dateIntialized===true){return}var m=this.cells.elements,g=this.textNodes,k=c.getDaysInMonth(),b=c.getFirstDateOfMonth(),e=b.getDay()-this.startDay,j,d;if(e<0){e+=7}k+=e;j=c.getFullYear()+" "+this.monthNames[c.getMonth()];for(d=e;dthis.field.maxValue){a=this.field.minValue}return this.fixPrecision(a)},onRender:function(d,a){Ext.ux.form.TimePickerField.superclass.onRender.call(this,d,a);this.rendered=false;this.date=new Date();var c={};if(this.value){c=this._valueSplit(this.value);this.date.setHours(c.h);this.date.setMinutes(c.m);this.date.setSeconds(c.s);delete this.value}else{c={h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}var e=Ext.DomHelper.append(this.innerEl,{tag:"div"});var b=Ext.apply({},this.spinnerCfg,{renderTo:e,readOnly:this.readOnly,disabled:this.disabled,listeners:{spin:{fn:this.onSpinnerChange,scope:this},valid:{fn:this.onSpinnerChange,scope:this},afterrender:{fn:function(f){f.wrap.applyStyles("float: left; margin-right: 11px;")},single:true}}});this.hoursSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:23,cls:"first",value:c.h}));this.minutesSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:59,value:c.m}));this.secondsSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:59,value:c.s}));Ext.DomHelper.append(e,{tag:"div",cls:"x-form-clear-left"});this.rendered=true},_valueSplit:function(a){var b=a.split(":");return{h:b.length>0?b[0]:0,m:b.length>1?b[1]:0,s:b.length>2?b[2]:0}},onSpinnerChange:function(){if(!this.rendered){return}this.fireEvent("change",this,this.getRawValue())},disable:function(){Ext.ux.form.TimePickerField.superclass.disable.call(this);this.hoursSpinner.disable();this.minutesSpinner.disable();this.secondsSpinner.disable()},enable:function(){Ext.ux.form.TimePickerField.superclass.enable.call(this);this.hoursSpinner.enable();this.minutesSpinner.enable();this.secondsSpinner.enable()},setReadOnly:function(a){Ext.ux.form.TimePickerField.superclass.setReadOnly.call(this,a);this.hoursSpinner.setReadOnly(a);this.minutesSpinner.setReadOnly(a);this.secondsSpinner.setReadOnly(a)},clearInvalid:function(){Ext.ux.form.TimePickerField.superclass.clearInvalid.call(this);this.hoursSpinner.clearInvalid();this.minutesSpinner.clearInvalid();this.secondsSpinner.clearInvalid()},getRawValue:function(){if(!this.hoursSpinner){this.date=new Date();return{h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}else{return{h:this.hoursSpinner.getValue(),m:this.minutesSpinner.getValue(),s:this.secondsSpinner.getValue()}}},setRawValue:function(a){this.hoursSpinner.setValue(a.h);this.minutesSpinner.setValue(a.m);this.secondsSpinner.setValue(a.s)},isValid:function(a){return this.hoursSpinner.isValid(a)&&this.minutesSpinner.isValid(a)&&this.secondsSpinner.isValid(a)},validate:function(){return this.hoursSpinner.validate()&&this.minutesSpinner.validate()&&this.secondsSpinner.validate()},getValue:function(){var a=this.getRawValue();return String.leftPad(a.h,2,"0")+":"+String.leftPad(a.m,2,"0")+":"+String.leftPad(a.s,2,"0")},setValue:function(a){if(!this.rendered){this.value=a;return}a=this._valueSplit(a);this.setRawValue(a);this.validate()}});Ext.form.TimePickerField=Ext.ux.form.TimePickerField;Ext.reg("timepickerfield",Ext.form.TimePickerField);Ext.ns("Ext.ux.form");Ext.define("Ext.DateTimePicker",{extend:SYNO.ux.DatePicker,timeFormat:"g:i:s A",timeLabel:"time",timeWidth:150,onRender:function(b,a){Ext.DateTimePicker.superclass.onRender.apply(this,arguments);var c=Ext.get(Ext.DomQuery.selectNode("table tbody",b.dom));Ext.DomHelper.insertBefore(c.last(),{tag:"tr",children:[{tag:"td",cls:"x-date-bottom",html:this.timeLabel,style:"width:30px;"},{tag:"td",cls:"x-date-bottom ux-timefield",colspan:"2"}]},true);this.tf.render(c.child("td.ux-timefield"))},setValue:function(a){if(!this.tf){this.tf=new Ext.ux.form.TimePickerField();this.tf.ownerCt=this}this.value=this.getDateTime(a)},getDateTime:function(b){if(this.tf){var a=this.tf.getValue();b=Date.parseDate(b.format(this.dateFormat)+" "+a,this.format)}return b},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.value=this.getDateTime(new Date());this.fireEvent("select",this,this.value)}}});Ext.reg("datetimepickerfield",Ext.DateTimePicker);Ext.menu.DateTimeItem=Ext.DateTimePicker;Ext.menu.DateTimeMenu=function(a){Ext.menu.DateTimeMenu.superclass.constructor.call(this,a);this.plain=true;var b=new Ext.menu.DateTimeItem(Ext.apply({internalRender:true}),a);this.add(b);this.picker=b;this.relayEvents(b,["select"]);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)};Ext.extend(Ext.menu.DateTimeMenu,Ext.menu.Menu,{cls:"x-date-menu",beforeDestroy:function(){this.picker.destroy()},hide:function(a){if(this.picker.tf.innerList){if((Ext.EventObject.within(this.picker.tf.innerList))||(Ext.get(Ext.EventObject.getTarget())==this.picker.tf.innerList)){return false}}if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null}this.el.hide();this.hidden=true;this.fireEvent("hide",this)}if(a===true&&this.parentMenu){this.parentMenu.hide(true)}}});Ext.ux.form.DateTimeField=Ext.extend(Ext.form.DateField,{dateFormat:"Y-m-d",timeFormat:"h:i a",defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},initComponent:function(){Ext.ux.form.DateTimeField.superclass.initComponent.call(this);this.format=this.dateFormat+" "+this.timeFormat;this.afterMethod("afterRender",function(){this.getEl().applyStyles("top:0")})},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||""},onTriggerClick:function(){if(this.disabled){return}if(Ext.isEmpty(this.menu)){this.menu=new Ext.menu.DateTimeMenu()}Ext.apply(this.menu.picker,{disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,timeFormat:"h:i a",dateFormat:this.dateFormat,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});if(this.menuEvents){this.menuEvents("on")}else{this.menu.on(Ext.apply({},this.menuListeners,{scope:this}))}this.menu.picker.setValue(this.getValue());this.menu.show(this.wrap,"tr-br?")}});Ext.reg("datetimefield",Ext.ux.form.DateTimeField);Ext.define("SYNO.ux.GridPanel",{extend:"Ext.grid.GridPanel",border:false,header:false,useARIA:true,useNewStyle:true,constructor:function(a){if(this.useARIA){a=this.addPlugins(SYNO.ux.GridPanelARIA,a)}var c,b;if(Ext.isArray(a.plugins)){Ext.each(a.plugins,function(f,e){if(f instanceof SYNO.ux.plugin.StyledGrid){b=e;return}if(f instanceof SYNO.ux.plugin.GroupHeaderGrid){c=e;return}})}if(Ext.isNumber(c)){if(!Ext.isNumber(b)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}else{if(b>c){var d=a.plugins.splice(b,1)[0];a=this.insertPlugins(d,a,0)}}}else{if(!Ext.isNumber(b)&&(a.useNewStyle||this.useNewStyle)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}}SYNO.ux.GridPanel.superclass.constructor.call(this,a);this.addClass("syno-ux-gridpanel")},getView:function(){var a=this;if(!a.view){a.view=new SYNO.ux.FleXcroll.grid.GridView(a.viewConfig)}return a.view},afterRender:function(){SYNO.ux.GridPanel.superclass.afterRender.call(this);var b=Ext.getCmp(this.id+"-hctx");var a=Ext.getCmp(this.id+"-hcols-menu");if(b){b.addClass("syno-ux-grid-hd-menu")}if(a){a.addClass("syno-ux-grid-hd-menu")}},reconfigure:function(){this.fireEvent("beforereconfigure");SYNO.ux.GridPanel.superclass.reconfigure.apply(this,arguments)},mask:function(a,b){this.el.mask(a,b||"x-mask-loading");this.view.focusEl.set({tabIndex:-1});this.view.setHeaderFocusTabbable(false)},unmask:function(){this.el.unmask();this.view.focusEl.set({tabIndex:0});this.view.setHeaderFocusTabbable(true)},getAriaEl:function(){return this.view.focusEl}});Ext.reg("syno_gridpanel",SYNO.ux.GridPanel);SYNO.ux.InnerGroupingView=Ext.extend(Ext.grid.GroupingView,{onLayout:function(){SYNO.ux.InnerGroupingView.superclass.onLayout.call(this);Ext.grid.GroupingView.superclass.onLayout.call(this);var a=this.getGroups();if(a){Ext.each(a,function(b){var c=Ext.get(b.id).child(".x-grid-group-hd");if(c){c.on("mouseover",function(){c.addClass("syno-ux-grid-group-hd-over")});c.on("mouseout",function(){c.removeClass("syno-ux-grid-group-hd-over")});c.on("mousedown",function(){c.addClass("syno-ux-grid-group-hd-click")});c.on("mouseup",function(){c.removeClass("syno-ux-grid-group-hd-click")})}})}}});SYNO.SDS.DefineGridView("SYNO.ux.GroupingView","SYNO.ux.InnerGroupingView");Ext.override(SYNO.ux.GroupingView,{toggleGroup:function(e,c){var d=this;var a=Ext.get(e),f=Ext.util.Format.htmlEncode(a.id);c=Ext.isDefined(c)?c:a.hasClass("x-grid-group-collapsed");if(d.state[f]!==c){if(d.cancelEditOnToggle!==false){d.grid.stopEditing(true)}d.state[f]=c;var b=a.child(".x-grid-group-body");if(b){b[c?"slideIn":"slideOut"]("t",{duration:0.25,block:true,scope:d,callback:this.afterSlideEffect.createDelegate(this,[e,c])})}else{a[c?"removeClass":"addClass"]("x-grid-group-collapsed");this.onLayout.call(this);this.updateScroller()}}},afterSlideEffect:function(d,c){var a=Ext.get(d);var b=a.child(".x-grid-group-body");b.removeClass("x-grid3-row-over");a[c?"removeClass":"addClass"]("x-grid-group-collapsed");b[c?"show":"hide"]("display");this.onLayout.call(this);this.updateScroller()}});Ext.ns("Ext.ux.grid");Ext.ux.grid.CellActions=function(a){Ext.apply(this,a);this.addEvents("action","beforeaction");Ext.ux.grid.CellActions.superclass.constructor.call(this)};Ext.extend(Ext.ux.grid.CellActions,Ext.util.Observable,{actionEvent:"click",actionWidth:20,tpl:'
{value}
ux-cell-actions-left" style="width:{width}px">
 
{value}
',userProcessing:Ext.emptyFn,init:function(b){this.grid=b;b.afterRender=b.afterRender.createSequence(this.onRenderGrid,this);var a=this.grid.getColumnModel();Ext.each(a.config,function(e,d){if("object"===typeof e.cellActions){e.origRenderer=a.getRenderer(d);e.renderer=this.renderActions.createDelegate(this)}},this)},onRenderGrid:function(){this.view=this.grid.getView();var a={scope:this};a[this.actionEvent]=this.onClick;this.view.mainBody.on(a)},getData:function(e,a,b,f,d,c){return b.data||{}},renderActions:function(g,i,e,j,b,h){var f=this.grid.getColumnModel().config[b];var a=f.origRenderer(g,i,e,j,b,h);if(f.cellActions&&!f.actionsTpl){f.actionsTpl=this.processActions(f);f.actionsTpl.compile()}else{if(!f.cellActions){return a}}var d=this.getData.apply(this,arguments);d.value=a;d.additionalCls=this.getAdditionalCls(e);return f.actionsTpl.apply(d)},getAdditionalCls:function(a){return""},processActions:function(d){this.callbacks=this.callbacks||{};var b={align:this.align||"right",width:this.actionWidth*d.cellActions.length,padding:"left"===this.align?this.actionWidth*d.cellActions.length:0,value:"{value}",actions:[]};Ext.each(d.cellActions,function(c,e){if(c.iconCls&&"function"===typeof(c.callback||c.cb)){this.callbacks[c.iconCls]=c.callback||c.cb}var f={cls:c.iconIndex?"{"+c.iconIndex+"}":(c.iconCls?c.iconCls:""),qtip:c.qtipIndex?"{"+c.qtipIndex+"}":(c.tooltip||c.qtip?c.tooltip||c.qtip:""),style:c.style?c.style:""};f.cls+=" {additionalCls}";b.actions.push(f)},this);this.userProcessing(d,b);var a=new Ext.XTemplate(this.tpl);return new Ext.Template(a.apply(b))},onClick:function(f,g){var k=f.getTarget("div.ux-cell-action");var l=f.getTarget(".x-grid3-row");var a=this.view.findCellIndex(g.parentNode.parentNode);var h=this.grid.getColumnModel().config[a];var d,i,j,b;if(k){d=this.grid.store.getAt(l.rowIndex);i=h.dataIndex;j=d.get(i);b=k.className.replace(/ux-cell-action /,"")}if(false!==l&&false!==a&&d&&i&&b){if(this.callbacks&&"function"===typeof this.callbacks[b]){this.callbacks[b](this.grid,d,b,j,i,l.rowIndex,a)}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeaction",this.grid,d,b,j,i,l.rowIndex,a)){return}else{if(true!==this.eventsSuspended){this.fireEvent("action",this.grid,d,b,j,i,l.rowIndex,a)}}}}});Ext.reg("cellactions",Ext.ux.grid.CellActions); /* * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.DataView.LabelEditor=Ext.extend(Ext.Editor,{alignment:"tl-tl",hideEl:false,cls:"x-small-editor",shim:false,completeOnEnter:true,cancelOnEsc:true,labelSelector:"span.x-editable",constructor:function(a,b){Ext.DataView.LabelEditor.superclass.constructor.call(this,b||new Ext.form.TextField({allowBlank:false,growMin:90,growMax:240,grow:true,selectOnFocus:true}),a)},init:function(a){this.view=a;a.on("render",this.initEditor,this);this.on("complete",this.onSave,this)},initEditor:function(){this.view.on({scope:this,containerclick:this.doBlur,click:this.doBlur});this.view.getEl().on("mousedown",this.onMouseDown,this,{delegate:this.labelSelector})},doBlur:function(){if(this.editing){this.field.blur()}},onMouseDown:function(d,c){if(!d.ctrlKey&&!d.shiftKey){var b=this.view.findItemFromChild(c);d.stopEvent();var a=this.view.store.getAt(this.view.indexOf(b));this.startEdit(c,a.data[this.dataIndex]);this.activeRecord=a}else{d.preventDefault()}},onSave:function(a,b){this.activeRecord.set(this.dataIndex,b)}});Ext.DataView.DragSelector=function(f){f=f||{};var i,h,k;var d,j,l=new Ext.lib.Region(0,0,0,0);var b=f.dragSafe===true;this.init=function(p){i=p;i.on("render",o)};function m(){d=[];i.all.each(function(p){d[d.length]=p.getRegion()});j=i.el.getRegion()}function e(){return false}function g(p){return !b||p.target==i.el.dom}function n(p){i.on("containerclick",e,i,{single:true});if(!h){h=i.el.createChild({cls:"x-view-selector"})}else{if(h.dom.parentNode!==i.el.dom){i.el.dom.appendChild(h.dom)}h.setDisplayed("block")}m();i.clearSelections()}function c(v){var z=k.startXY;var D=k.getXY();var B=Math.min(z[0],D[0]);var A=Math.min(z[1],D[1]);var C=Math.abs(z[0]-D[0]);var t=Math.abs(z[1]-D[1]);l.left=B;l.top=A;l.right=B+C;l.bottom=A+t;l.constrainTo(j);h.setRegion(l);for(var s=0,u=d.length;s127)&&(i<2048)){g+=String.fromCharCode((i>>6)|192);g+=String.fromCharCode((i&63)|128)}else{g+=String.fromCharCode((i>>12)|224);g+=String.fromCharCode(((i>>6)&63)|128);g+=String.fromCharCode((i&63)|128)}}}return g};var c=function(g){var j="";var l=0;var m=0,k=m,h;while(l191)&&(m<224)){k=g.charCodeAt(l+1);j+=String.fromCharCode(((m&31)<<6)|(k&63));l+=2}else{k=g.charCodeAt(l+1);h=g.charCodeAt(l+2);j+=String.fromCharCode(((m&15)<<12)|((k&63)<<6)|(h&63));l+=3}}}return j};var e=function(j){var g="";var q,o,m,p,n,l,k;var h=0;j=a(j);while(h>2;n=((q&3)<<4)|(o>>4);l=((o&15)<<2)|(m>>6);k=m&63;if(isNaN(o)){l=k=64}else{if(isNaN(m)){k=64}}g=g+b.charAt(p)+b.charAt(n)+b.charAt(l)+b.charAt(k)}return g};var f=function(j){var g="";var q,o,m;var p,n,l,k;var h=0;j=j.replace(/[^A-Za-z0-9+/=]/g,"");while(h>4);o=((n&15)<<4)|(l>>2);m=((l&3)<<6)|k;g=g+String.fromCharCode(q);if(l!=64){g=g+String.fromCharCode(o)}if(k!=64){g=g+String.fromCharCode(m)}}g=c(g);return g};d.Base64={encode:e,decode:f}})(SYNO.Util);Ext.ns("SYNO");SYNO.CellActions=Ext.extend(Ext.ux.grid.CellActions,{beforeClickClass:"ux-cell-action-before-click",afterClickClass:"ux-cell-action-after-click",clickedRecord:null,clickedRow:null,needHandleMouseClick:false,onRenderGrid:function(){SYNO.CellActions.superclass.onRenderGrid.apply(this,arguments);this.grid.on("beforehide",this.onBeforeGridHide,this);this.grid.on("destroy",this.destroy,this,{single:true});this.view.mainBody.on("mousedown",this.onMouseDown,this);this.view.mainBody.on("mouseup",this.onMouseUp,this)},onClick:function(f,d){if(this.needHandleMouseClick===false){return}this.needHandleMouseClick=false;var c=f.getTarget("div.ux-cell-action"),g=f.getTarget(".x-grid3-row"),a,b;if(!c){return}a=this.grid.store.getAt(g.rowIndex);if(this.isRecordAlreadyClicked(a)){this.clearClickRecordAndRow();SYNO.CellActions.superclass.onClick.apply(this,arguments)}else{this.setToBeforeClick();this.saveClickRecordAndRow(a,g);b=Ext.get(c);b.addClass(this.afterClickClass);b.removeClass(this.beforeClickClass)}},onBeforeGridHide:function(){this.setToBeforeClick();this.clearClickRecordAndRow()},setToBeforeClick:function(){var a;if(this.clickedRecord&&this.clickedRow){a=Ext.get(this.clickedRow).child("div.ux-cell-action");a.addClass(this.beforeClickClass);a.removeClass(this.afterClickClass)}},saveClickRecordAndRow:function(a,b){this.clickedRecord=a;this.clickedRow=b},clearClickRecordAndRow:function(){this.clickedRecord=null;this.clickedRow=null},isRecordAlreadyClicked:function(a){return this.clickedRecord?this.clickedRecord===a:false},destroy:function(){this.purgeListeners()},getAdditionalCls:function(b){var a=this.beforeClickClass;if(this.isRecordAlreadyClicked(b)){a=this.afterClickClass}return a},onMouseDown:function(a){this.needHandleMouseClick=true},onMouseUp:function(b,a){if(this.needHandleMouseClick){this.onClick(b,a)}}});SYNO.SDS.RowSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{init:function(a){SYNO.SDS.RowSelectionModel.superclass.init.apply(this,arguments);var b=this,c=b.grid.store;if(c.buffered){b.selected={};b.innerSelections=[];b.buffered=true}},onRefresh:function(){var g=this.grid.store,e=this.selections,d=0,a=e.length,c,f;this.silent=true;if(!this.buffered){this.clearSelections(true);for(;d=0;d--){f=g.getAt(d);if(f&&this.selected[f.id]){b.push(f.index||d)}}this.selectRows(b,true)}if(e.length!=this.selections.getCount()){this.fireEvent("selectionchange",this)}this.silent=false},clearSelections:function(a){SYNO.SDS.RowSelectionModel.superclass.clearSelections.apply(this,arguments);if(this.buffered){this.selected={};this.innerSelections=[]}},getSelections:function(){return[].concat(this.innerSelections)},selectAll:function(){if(this.isLocked()){return}if(!this.buffered){SYNO.SDS.RowSelectionModel.superclass.selectAll.apply(this,arguments)}else{var a=this.grid.store;a.suspendEvents();a.load({params:{start:0,limit:a.getTotalCount()},callback:function(){this.innerSelections=a.data.items.slice(0);this.selections.clear();this.selected={};for(var b=this.innerSelections.length-1;b>=0;b--){this.selected[this.innerSelections[b].id]=true}a.resumeEvents();this.onRefresh()},scope:this})}},selectRecords:function(b,g){if(!g){this.clearSelections()}var f=this.grid.store,d=0,a=b.length,e,c;for(;db){a=b;b=c;c=a}if(d.rangeSatisfied(c,b)){this.selectRange(c,b,e);return}c=Math.max(0,c);b=Math.min(b,d.getTotalCount()-1);d.suspendEvents();d.prefetch({start:c,limit:b-c+1,callback:function(g){var h=d.prefetchData.items;if(!e){this.clearSelections()}for(var f=h.length-1;f>=0;f--){this.selectRecord(h[f],true)}d.resumeEvents()},scope:this})}else{this.selectRange(c,b,e)}},handleMouseDown:function(d,h,f){if(f.button!==0||this.isLocked()){return}var a=this.grid.getView();if(f.shiftKey&&!this.singleSelect&&this.last!==false){var c=this.last;this.remoteSelectRange(c,h,f.ctrlKey);this.last=c;a.focusRow(h)}else{var b=this.isSelected(h);if(f.ctrlKey&&b){this.deselectRow(h)}else{if(!b||this.getCount()>1){this.selectRow(h,f.ctrlKey||f.shiftKey);a.focusRow(h)}}}},hasNext:function(){return this.last!==false&&(this.last+1)=0;c--){if(this.innerSelections[c].id==d.id){this.innerSelections.splice(c,1);this.selected[d.id]=false;delete this.selected[d.id];break}}}if(!a){this.grid.getView().onRowDeselect(b)}this.fireEvent("rowdeselect",this,b,d);this.fireEvent("selectionchange",this)}}});Ext.tree.TriTreeNodeUI=function(){Ext.tree.TriTreeNodeUI.superclass.constructor.apply(this,arguments)};Ext.tree.TriTreeNodeUI.CHECKSTATE=2;Ext.tree.TriTreeNodeUI.UNCHECKSTATE=1;Ext.tree.TriTreeNodeUI.GRAYSTATE=0;Ext.tree.TriTreeNodeUI.ARIATRISTATE=["mixed","false","true"];Ext.extend(Ext.tree.TriTreeNodeUI,Ext.tree.TreeNodeUI,{values:[null,false,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],checkboxCls:"x-checkbox",expanded:false,err:-1,initEvents:function(){Ext.tree.TriTreeNodeUI.superclass.initEvents.apply(this,arguments);this.node.on("expand",this.onTriTreeNodeExpand,this);if(this.checkbox){Ext.EventManager.on(this.checkbox,"click",this.toggleCheck,this);this.wrap.setAttribute("aria-checked",(this.checkbox.checked==="gray")?"mixed":this.checkbox.checked)}},destroy:function(){if(this.checkbox){Ext.EventManager.un(this.checkbox,"click",this.toggleCheck,this)}Ext.tree.TriTreeNodeUI.superclass.destroy.apply(this,arguments)},getCheckIndex:function(b){for(var a=0;a
','',this.indentMarkup,"",'','','','',i.text,"
",'',""].join("");if(b!==true&&i.nextSibling&&(g=i.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",g,e)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,e)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var f=this.elNode.childNodes;this.indentNode=f[0];this.ecNode=f[1];this.iconNode=f[2];this.checkbox=f[3];if(c.checked==="checked"){this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.CHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.CHECKSTATE]}else{if(c.checked==="gray"){this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.GRAYSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.GRAYSTATE]}else{this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.UNCHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.UNCHECKSTATE]}}this.anchor=f[4];this.textNode=f[4].firstChild},onTriTreeNodeExpand:function(b){var a=this.getCheckIndex(b);if(a===Ext.tree.TriTreeNodeUI.CHECKSTATE&&this.getCheckIndex(b.firstChild)!==Ext.tree.TriTreeNodeUI.CHECKSTATE){this.updateChild(b.firstChild,a)}}});Ext.tree.CustTreeNodeUI=function(){Ext.tree.CustTreeNodeUI.superclass.constructor.apply(this,arguments)};Ext.tree.CustTreeNodeUI.HIDESTATE=3;Ext.tree.CustTreeNodeUI.CHECKSTATE=2;Ext.tree.CustTreeNodeUI.UNCHECKSTATE=1;Ext.tree.CustTreeNodeUI.GRAYSTATE=0;Ext.extend(Ext.tree.CustTreeNodeUI,Ext.tree.TreeNodeUI,{values:[null,false,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],checkboxCls:"x-checkbox",expanded:false,err:-1,textField:null,showTextFieldAlways:false,initEvents:function(){Ext.tree.CustTreeNodeUI.superclass.initEvents.apply(this,arguments);if(this.checkbox){Ext.EventManager.on(this.checkbox,"click",this.toggleCheck,this)}},destroy:function(){if(this.checkbox){Ext.EventManager.un(this.checkbox,"click",this.toggleCheck,this)}Ext.tree.CustTreeNodeUI.superclass.destroy.apply(this,arguments)},getCheckIndex:function(b){for(var a=0;a','
','',this.indentMarkup,"",'','','','',e.text,"",'',""].join("");if(j!==true&&e.nextSibling&&(b=e.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,d)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,d)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var g=this.elNode.childNodes;this.indentNode=g[0];this.ecNode=g[1];this.iconNode=g[2];this.checkbox=g[3];if(i.checked==="checked"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.CHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.CHECKSTATE]}else{if(i.checked==="gray"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.GRAYSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.GRAYSTATE]}else{if(i.checked==="unchecked"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.UNCHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.UNCHECKSTATE]}else{this.checkbox.hide()}}}this.anchor=g[4];this.textNode=g[4].firstChild;this.textField=g[5];if(true!==i.showTextField){this.textField.hide()}if(i.textValue){this.textField.value=i.textValue}this.showTextFieldAlways=i.showTextFieldAlways},onClick:function(c){if(this.dropping){c.stopEvent();return}if(this.fireEvent("beforeclick",this.node,c)!==false){var b=c.getTarget("a");if(!this.disabled&&this.node.attributes.href&&b){this.fireEvent("click",this.node,c);return}else{if(b&&c.ctrlKey){c.stopEvent()}}c.preventDefault();if(this.disabled){return}if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.isExpandable()){this.node.toggle()}this.fireEvent("click",this.node,c);if(true===this.node.attributes.showTextField){this.textField.focus()}}else{c.stopEvent()}},onDisableChange:function(a,b){this.disabled=b;if(this.checkbox){this.checkbox.disabled=b}if(b){this.addClass("x-tree-node-disabled")}else{this.removeClass("x-tree-node-disabled")}if(this.textField){if(this.showTextFieldAlways){this.textField.disabled=false}else{this.textField.disabled=b}}}});SYNO.TextFilter=Ext.extend(Ext.form.TriggerField,{ctCls:"syno-textfilter",cls:"syno-textfilter-text",triggerConfig:{tag:"div",cls:"x-form-trigger syno-textfilter-trigger"},enableKeyEvents:true,listeners:{keyup:{fn:function(b,a){b.trigger.setVisible((b.getValue()!==""))}},render:{fn:function(a){a.trigger.hide()}}},queryDelay:500,queryAction:"find",enumAction:"enum",queryParam:"query",localFilter:false,localFilterField:"",pageSize:20,constructor:function(a){SYNO.TextFilter.superclass.constructor.call(this,a);if(this.store&&!this.localFilter){this.mon(this.store,"beforeload",this.onBeforeLoad,this)}if(this.store&&this.localFilter===true){this.mon(this.store,"load",this.reset,this)}},initEvents:function(){SYNO.TextFilter.superclass.initEvents.call(this);this.mon(this.el,"keyup",this.filter,this,{buffer:this.queryDelay})},setPageSize:function(a){this.pageSize=a},onBeforeLoad:function(a,b){var c=this.getValue();if(c){b.params[this.queryParam]=c;b.params.action=this.queryAction}else{b.params.action=this.enumAction}return true},filter:function(){var b=this.getValue();var a;if(!this.store){return}if(this.localFilter===true){if(b){this.store.filter(this.localFilterField,b,true)}else{this.store.clearFilter(false)}return}a={start:0,limit:this.pageSize};if(b){a.action=this.queryAction;a[this.queryParam]=b;this.store.load({params:a})}else{a.action=this.enumAction;this.store.load({params:a})}},reset:function(){SYNO.TextFilter.superclass.reset.call(this);if(this.localFilterField===false&&this.store){this.store.clearFilter(false);this.trigger.hide()}},onTriggerClick:function(){if(this.getValue()){this.setValue("");this.filter()}},setValue:function(a){SYNO.TextFilter.superclass.setValue.call(this,a);if(Ext.isEmpty(a)){this.trigger.hide()}}});Ext.layout.FloatLayout=Ext.extend(Ext.layout.BoxLayout,{verticalAlign:"middle",horizontalAlign:"left",horizontalSpacing:0,verticalSpacing:0,targetCls:"ux-float-layout-ct",updateChildBoxes:function(a){for(var d=0,c=a.length;db)||(A.clear=="left")||((v>0)&&q[v-1].clear=="right")){this.adjustRow(f,g,v-1,a,w,n.width);k=B;j+=a+this.verticalSpacing;p=k+t.left+e.width+t.right;g=v;a=0;w=0}a=Math.max(a,e.height);w+=e.width;if(d.autoScroll&&!this.reflow&&((j+a)>h)){p=this.padding.right;this.padding.right+=Ext.getScrollBarWidth();this.reflow=true;this.onLayout(d,o);delete this.reflow;this.padding.right=p;return this.childBoxCache}f.push({component:A,left:k,top:j,height:e.height,width:e.width});k=p+this.horizontalSpacing}this.adjustRow(f,g,v-1,a,w,n.width);if(!this.sizer){this.sizer=this.innerCt.insertFirst({cls:"ux-float-layout-sizer"})}this.sizer.setHeight(j+a-z);return{boxes:f,meta:{}}},adjustRow:function(n,e,p,b,f,o){var k,q,m,g=0,a=o-f,d=p-e,l=0;switch(this.horizontalAlign){case"middle":case"center":l=Math.max(a/2,0);break;case"right":l=Math.max(a,0);break;case"justify":if(d){g=Math.max(a/d,0)}}for(k=e;k<=p;k++){q=n[k].component;m=q.getHeight()+q.getPositionEl().getMargins("tb");n[k].left+=l;l+=g;switch(q.verticalAlign||this.verticalAlign){case"middle":case"center":n[k].top+=(b-m)/2;break;case"bottom":n[k].top+=(b-m)}}}});Ext.Container.LAYOUTS["float"]=Ext.layout.FloatLayout;Ext.define("SYNO.ux.FloatLayout",{extend:"Ext.layout.FloatLayout",animateCls:"ux-float-layout-ct-animate",horizontalAlign:"left",updateChildBoxes:function(a){for(var d=0,c=a.length;db)||(E.clear=="left")||((A>0)&&t[A-1].clear=="right")){this.adjustRow(f,g,A-1,a,B-this.horizontalSpacing,o.width);n=F;k+=a+this.verticalSpacing;q=n+v.left+e.width+v.right;g=A;a=0;B=0;D++}a=Math.max(a,e.height);B+=e.width+this.horizontalSpacing;if(d.autoScroll&&!this.reflow&&((k+a)>h)){q=this.padding.right;this.padding.right+=Ext.getScrollBarWidth();this.reflow=true;this.onLayout(d,p);delete this.reflow;this.padding.right=q;return this.childBoxCache}u=0;if(D>0&&this.tightFitting){for(var z=0;z=n)){if(u-1){this.data.removeAt(b)}if(this.pruneModifiedRecords){this.modified.remove(a)}if(this.allData){this.allData.remove(a)}if(this.snapshot){this.snapshot.remove(a)}this.totalLength--;if(b>-1){this.fireEvent("remove",this,a,b)}},removeAll:function(b){var a=[].concat((this.snapshot||this.allData||this.data).items);this.clearData();if(this.pruneModifiedRecords){this.modified=[]}this.totalLength=0;if(b!==true){this.fireEvent("clear",this,a)}},insert:function(c,b){b=[].concat(b);for(var d=0,a=b.length;dthis.getCount()){e=[].concat(this.data.items)}this.fireEvent("datachanged",this)}else{this.totalLength=Math.max(d,this.data.length+e.length);this.add(e)}this.fireEvent("load",this,e,b);if(b.callback){b.callback.call(b.scope||this,e,b,true)}},loadData:function(c,a){this.isPaging(Ext.apply({},this.lastOptions?this.lastOptions.params:null,this.baseParams));var b=this.reader.readRecords(c);this.loadRecords(b,{add:a,params:{start:this.start,limit:this.limit}},true)},getTotalCount:function(){if(this.allData){return this.allData.getCount()}return this.totalLength||0},sortData:function(){var a=this.hasMultiSort?this.multiSortInfo:this.sortInfo,h=a.direction||"ASC",g=a.sorters,c=[];if(!this.hasMultiSort){g=[{direction:h,field:a.field}]}for(var d=0,b=g.length;d1){for(var o=1,n=c.length;o=b&&!(0===this.cursor&&0===b)){this.cursor=Math.floor((b-1)/c)*c;if(0>this.cursor){this.cursor=0}this.doRefresh();return}var f=this.getPageData(),a=f.activePage,e=f.pages;this.afterTextItem.setText(String.format(this.afterPageText,f.pages));this.inputItem.setValue(a);this.first.setDisabled(a==1);this.prev.setDisabled(a==1);this.next.setDisabled(a==e);this.last.setDisabled(a==e);this.refresh.enable();this.updateInfo();this.fireEvent("change",this,f)},onClear:function(){this.cursor=0;this.onChange()},doRefresh:function(){delete this.store.lastParams;this.doLoad(this.cursor)},bindStore:function(b,c){var a;if(!c&&this.store){if(b!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this);this.store.un("datachanged",this.onChange,this);this.store.un("add",this.onChange,this);this.store.un("remove",this.onChange,this);this.store.un("clear",this.onClear,this)}if(!b){this.store=null}}if(b){b=Ext.StoreMgr.lookup(b);b.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError,datachanged:this.onChange,add:this.onChange,remove:this.onChange,clear:this.onClear});a=true}this.store=b;if(a){this.onLoad(b,null,{})}}});Ext.reg("ux.paging",Ext.ux.PagingToolbar); /* * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * 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,updateScrollBarEventNames:["afterlayout","resize","expand","collapse"],constructor:function(a){Ext.apply(this,a);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(a,e,d,c){var b=this.bodyContent[a.id];if(!b&&!this.lazyRender){b=this.getBodyContent(a,e)}if(b){d.body=b}return this.state[a.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed"},init:function(b){this.grid=b;var a=b.getView();a.getRowClass=this.getRowClass.createDelegate(this);a.enableRowBody=true;b.on("render",this.onRender,this);b.on("destroy",this.onDestroy,this)},onRender:function(){var a=this.grid;var b=a.getView().mainBody;b.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){a.on("rowdblclick",this.onRowDblClick,this)}Ext.each(this.updateScrollBarEventNames,function(c){this.on(c,this.updateGridFlexcroll,this)},this)},updateGridFlexcroll:function(){if(this.grid&&this.grid.view){this.grid.view.updateScroller()}},onDestroy:function(){if(this.keyNav){this.keyNav.disable();delete this.keyNav}Ext.each(this.updateScrollBarEventNames,function(b){this.un(b,this.updateGridFlexcroll,this)},this);var a=this.grid.getView().mainBody;if(a){a.un("mousedown",this.onMouseDown,this)}},onRowDblClick:function(a,b,c){this.toggleRow(b)},onEnter:function(h){var f=this.grid;var j=f.getSelectionModel();var b=j.getSelections();for(var c=0,a=b.length;c 
'},beforeExpand:function(b,a,c){if(this.fireEvent("beforeexpand",this,b,a,c)!==false){if(this.tpl&&this.lazyRender){a.innerHTML=this.getBodyContent(b,c)}return true}else{return false}},toggleRow:function(a){if(typeof a=="number"){a=this.grid.view.getRow(a)}this[Ext.fly(a).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](a)},expandRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",c);if(this.beforeExpand(b,a,c.rowIndex)){this.state[b.id]=true;Ext.fly(c).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded");this.fireEvent("expand",this,b,a,c.rowIndex)}},collapseRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.fly(c).child("tr:nth(1) div.x-grid3-row-body",true);if(this.fireEvent("beforecollapse",this,b,a,c.rowIndex)!==false){this.state[b.id]=false;Ext.fly(c).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed");this.fireEvent("collapse",this,b,a,c.rowIndex)}}});Ext.preg("rowexpander",Ext.ux.grid.RowExpander);Ext.grid.RowExpander=Ext.ux.grid.RowExpander; /* * Ext JS Library 3.2.0 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.ux.StatusBar=Ext.extend(Ext.Toolbar,{cls:"x-statusbar",busyIconCls:"x-status-busy",busyText:"Loading...",autoClear:5000,emptyText:" ",activeThreadId:0,clearThreadId:0,fixRightTr:true,initComponent:function(){if(this.statusAlign=="right"){this.cls+=" x-status-right"}Ext.ux.StatusBar.superclass.initComponent.call(this)},afterRender:function(){Ext.ux.StatusBar.superclass.afterRender.call(this);var a=this.statusAlign=="right";this.currIconCls=this.iconCls||this.defaultIconCls;this.statusEl=new Ext.Toolbar.TextItem({cls:"x-status-text "+(this.currIconCls||""),text:this.text||this.defaultText||""});if(a){this.add("->");this.add(this.statusEl)}else{this.insert(0,this.statusEl);this.insert(1,"->")}this.doLayout();this.statusEl.el.set({role:"log","aria-live":"assertive","aria-relevant":"all"});if(this.fixRightTr){this.updateStatusMaxWidth();this.mon(this,"afterlayout",this.updateStatusMaxWidth,this)}},setStatusElTip:function(b){var a=this.statusEl.el.dom;if(a.setAttributeNS){a.setAttributeNS("ext","qtip",b)}else{a.setAttribute("ext:qtip",b)}},updateStatusMaxWidth:function(){var c=this.el,b=c.child(".x-toolbar-right"),a=c.child(".x-toolbar-left"),e=(a)?a.child(".x-toolbar-cell"):null,d=c.getWidth()-c.getPadding("lr")-((b)?b.getWidth():0)-((e)?e.getPadding("lr"):0)-this.statusEl.el.getPadding("lr");this.statusEl.el.setStyle("max-width","none");this.setStatusElTip("");if(this.statusEl.el.getWidth()>d){this.setStatusElTip(this.statusEl.el.dom.innerHTML);this.statusEl.el.setStyle("max-width",d+"px")}},autoSetDelay:100,setStatus:function(e,a){e=e||{};this.activeThreadId++;if(typeof e=="string"){e={text:e}}if(e.text!==undefined){if(a===true){this.setText(e.text,this.activeThreadId)}else{this.setText.defer(this.autoSetDelay,this,[e.text,this.activeThreadId])}}if(e.iconCls!==undefined){if(a===true){this.setIcon(e.iconCls,this.activeThreadId)}else{this.setIcon.defer(this.autoSetDelay,this,[e.iconCls,this.activeThreadId])}}if(e.clear){var f=e.clear,d=this.autoClear,b={useDefaults:true,anim:true};if(typeof f=="object"){f=Ext.applyIf(f,b);if(f.wait){d=f.wait}}else{if(typeof f=="number"){d=f;f=b}else{if(typeof f=="boolean"){f=b}}}f.threadId=this.activeThreadId;if(a){this.clearStatus.defer(d,this,[f])}else{this.clearStatus.defer(d+this.autoSetDelay,this,[f])}}return this},clearStatus:function(c){if(this.isDestroyed){return}c=c||{};if(c.threadId&&c.threadId!==this.activeThreadId){return this}var b=c.useDefaults?this.defaultText:this.emptyText,a=c.useDefaults?(this.defaultIconCls?this.defaultIconCls:""):"";if(c.anim){this.statusEl.el.fadeOut({remove:false,useDisplay:true,scope:this,callback:function(){if(this.isDestroyed){return}this.setStatus({text:b,iconCls:a},true);this.statusEl.el.show()}})}else{this.statusEl.hide();this.setStatus({text:b,iconCls:a},true);this.statusEl.show()}this.activeThreadId--;this.clearThreadId=this.activeThreadId;return this},setText:function(b,a){if(Ext.isDefined(a)){if(a<=this.clearThreadId){return}}if(this.isDestroyed){return}this.text=b||"";if(this.rendered){this.statusEl.setText(this.text);this.updateStatusMaxWidth()}return this},getText:function(){return this.text},hasLoadingCls:function(a){if(Ext.isEmpty(a)){return false}return a.indexOf("syno-ux-statusbar-loading")>=0},setIcon:function(b,a){if(Ext.isDefined(a)){if(a<=this.clearThreadId){return}}if(this.isDestroyed){return}b=b||"";if(this.rendered){if(this.hasLoadingCls(b)&&!this.hasLoadingCls(this.currIconCls)){this.statusEl.el.insertFirst({tag:"div",height:"24px",width:"24px",cls:"x-loading-wrap",html:['
','',"
"].join("")})}if(this.currIconCls){this.statusEl.removeClass(this.currIconCls);this.currIconCls=null}if(b.length>0){this.statusEl.addClass(b);this.currIconCls=b}this.updateStatusMaxWidth()}else{this.currIconCls=b}return this},showBusy:function(a){if(typeof a=="string"){a={text:a}}a=Ext.applyIf(a||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(a)}});Ext.reg("statusbar",Ext.ux.StatusBar);Ext.define("SYNO.ux.AriaComponent",{extend:"Ext.Component",disabled:false,canInit:function(a){if(!a||a.useARIA!==true||this.disabled||a.isDestroyed){return false}return true},disable:function(){this.callParent(arguments);this.clearMons();this.uninitList=this.uninitList.concat(this.initList);this.initList=[]},enable:function(){this.callParent(arguments);var a,b;for(a=this.uninitList.length-1;a>=0;a--){b=this.uninitList[a];if(this.canInit(b)){this.uninitList.splice(a,1);this.initList.push(b);this.initializeItem(b)}}},bindEvent:function(f,a,e,d,b,c){d=d||this;if(f.mon){f.mon(f,a,e,d,b)}else{if(c.mon){c.mon(f,a,e,d,b)}else{this.mon(f,a,e,d,b);f.ariaMons=f.ariaMons||[];f.ariaMons.push({item:f,evt:a,fn:e,opt:b,scope:d});if(!f.ariaMonned){this.mon(f,"beforedestroy",function g(){Ext.each(f.ariaMons,function(h){this.mun(h.item,h.evt,h.fn,h.scope,h.opt);this.mun(f,"beforedestroy",g,this)},this)},this);f.ariaMonned=true}}}},bindRenderEvent:function(c,b,a){this.bindConditionalEvent(c,"afterrender","rendered",b,a)},bindConditionalEvent:function(d,a,e,c,b){if(e&&d[e]){c.call(b,d)}else{this.bindEvent(d,a,c,b)}},findAndRemove:function(b,c){var a;a=c.indexOf(b);if(a>=0){c.splice(a,1)}return c},removeItem:function(a){this.initList=this.findAndRemove(a,this.initList);this.uninitList=this.findAndRemove(a,this.uninitList)},initializeItem:Ext.emptyFn,constructor:function(){this.uninitList=[];this.initList=[];this.callParent(arguments)},init:function(a){if(this.canInit(a)){this.initList.push(a);this.initializeItem(a)}else{this.uninitList.push(a)}this.bindEvent(a,"beforedestroy",this.removeItem.createDelegate(this,[a]))}});Ext.define("SYNO.ux._ComponentARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this)},onAfterRender:function(b){var c=["tabIndex","tabindex","role","aria-label","disabled"],a={};Ext.each(c,function(d){if(b.hasOwnProperty(d)){a[d]=b[d]}});if(!b.hasOwnProperty("aria-label")&&b.hasOwnProperty("tooltip")&&!Ext.isEmpty(b.tooltip)){a["aria-label"]=b.tooltip}b.getAriaEl().setARIA(a);if(Ext.isFunction(b.initAriaProperties)){b.initAriaProperties()}this.bindEvent(b,"disable",this.onDisable,this);this.bindEvent(b,"enable",this.onEnable,this)},onDisable:function(a){this.setDisabled(a,true)},onEnable:function(a){this.setDisabled(a,false)},setDisabled:function(b,a){b.getAriaEl().setARIA({disabled:a})}});Ext.define("SYNO.ux._ButtonARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onBtnAfterRender,this);this.bindEvent(a,"textchanged",this.onBtnTextChanged,this);this.bindEvent(a,"disable",this.onButtonDisabled.createDelegate(this,[a,true]));this.bindEvent(a,"enable",this.onButtonDisabled.createDelegate(this,[a,false]))},onBtnAfterRender:function(c){var b=c.arrowBtnEl||c.btnEl,d=c.text||c.tooltip,a={};if(d){a["aria-label"]=d}if(c.disabled){a["aria-disabled"]=true;if(c.hideDisabledBtn){a.tabIndex=-1}}c.btnEl.set(a);if(c.menu){a["aria-expanded"]=false;a["aria-haspopup"]=true;a["aria-owns"]=c.menu.id;if(Ext.isDefined(c.tabIndex)){a.tabIndex=c.tabIndex}this.bindEvent(c,"menushow",this.onBtnExpanded.createDelegate(this,[c,true]));this.bindEvent(c,"menuhide",this.onBtnExpanded.createDelegate(this,[c,false]))}b.set(a)},onBtnTextChanged:function(a,b){if(!a.el){return}a.btnEl.set({"aria-label":b});if(a.arrowBtnEl){a.arrowBtnEl.set({"aria-label":b})}},onBtnExpanded:function(b,a){if(!b.rendered){return}var c=b.arrowBtnEl||b.btnEl;c.set({"aria-expanded":a})},onButtonDisabled:function(a,c){var b=Ext.isDefined(a.tabIndex)?a.tabIndex:(c)?-1:0;if(!a.rendered){return}if(a.hideDisabledBtn){a.btnEl.set({tabIndex:b})}if(a.arrowBtnEl){a.arrowBtnEl.set({"aria-disabled":c});if(a.hideDisabledBtn){a.arrowBtnEl.set({tabIndex:b})}}}});Ext.define("SYNO.ux._ComboboxARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender);this.bindConditionalEvent(a,"listInitialized","list",this.onListInitialized,this);this.bindEvent(a,"expand",this.onListExpand.createDelegate(this,[a,true]));this.bindEvent(a,"collapse",this.onListExpand.createDelegate(this,[a,false]))},onAfterRender:function(b){var a=b.el;a.setRole("combobox").setARIAExpanded(false).setARIAHasPopUp(true)},onListInitialized:function(b){var a=b.list;b.el.setARIAOwns(b.list.id);a.setRole("listbox");this.bindEvent(b.view,"selectionchange",this.onSelectedItemChanged.createDelegate(this,[b],true),this,null,b)},onListExpand:function(b,a){b.el.setARIAExpanded(a)},onSelectedItemChanged:function(b,a,c){c.el.setARIAActiveDescendant((a.length>0)?a[0].id:false)}});Ext.define("SYNO.ux._DataViewARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onViewRendered);this.bindEvent(a,"afterrender",this.onViewRendered,this);this.bindEvent(a,"selectionchange",this.onSelectionChanged,this)},onViewRendered:function(a){a.el.set({tabIndex:0,role:"listbox","aria-activedescendant":false})},onSelectionChanged:function(b){var c=b.all.elements,a=b.getSelectedNodes(),d=(a.length>0)?a[a.length-1].id:false;b.el.setARIAActiveDescendant(d);Ext.each(c,function(e){Ext.fly(e).setARIASelected(false)});Ext.each(a,function(e){Ext.fly(e).setARIASelected(true)})}});Ext.define("SYNO.ux._GridPanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindConditionalEvent(a,"viewready","viewReady",this.onViewReady,this)},bindStoreUpdateEvt:function(c){var a=["datachange","add","remove","load","clear"],b;for(b=0;b=0){return}b+=(" "+c);a.view.focusEl.setARIA({describedby:b})},onViewReady:function(b){var a=b.getView(),c=b.getSelectionModel();a.focusEl.set({role:"grid","aria-activedescendant":false,"aria-readonly":true,tabIndex:"0"});this.addEmptyHint(b);this.bindEvent(c,"rowselect",this.onRowSelected,this,null,b);this.bindEvent(c,"rowdeselect",this.onRowDeselected,this,null,b);if(b.store){this.bindStoreUpdateEvt(b)}this.bindEvent(b,"reconfigure",this.bindStoreUpdateEvt.createDelegate(this,[b]))},updateCountHint:function(b){var a=b.store.getCount();if(!b.view.cntHintEl){return}b.view.cntHintEl.update((a===0)?_JSLIBSTR("uicommon","empty_grid"):String.format(_JSLIBSTR("uicommon","grid_record_count")||"{0} records",a))},setRowSelected:function(f,e,d){var a=f.grid.getView(),b=Ext.fly(a.getRow(e)),c=(b)?b.child("tr"):null;if(c){c.set({"aria-selected":d});if(d){a.focusEl.set({"aria-activedescendant":c.id})}}},onRowSelected:function(c,a,b){this.setRowSelected(c,a,true)},onRowDeselected:function(c,a,b){this.setRowSelected(c,a,false)}});Ext.define("SYNO.ux._MenuARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onCompAfterRender,this);this.bindEvent(a,"hide",this.onMenuHide,this);this.bindEvent(a,"itemclick",this.onItemClick,this);this.bindEvent(a,"beforeshow",this.onBeforeMenuShow,this);this.bindEvent(a,"itemactivate",this.onItemActivate,this);this.bindEvent(a,"itemdeactivate",this.onItemDeactivate,this)},onCompAfterRender:function(a){if(!a.rendered){return}a.ul.set({role:"menu",tabIndex:0});a.focusEl.dom.removeAttribute("href");a.focusEl.on("focus",function(){a.ul.focus()})},onItemActivate:function(b,a){b.el.setARIASelected(true)},onItemDeactivate:function(b,a){b.el.setARIASelected(false)},onItemClick:function(b,d,f){if(b.disableClearLastDom===true||b.menu){return}var a=b.parentMenu,c=a;while(c.parentMenu){c.parentMenu.lastDom=null;c=c.parentMenu}a.lastDom=null},onBeforeMenuShow:function(b){var a=document.activeElement;b.lastDom=a;if(b.getOpenPt){b.getOpenPt=null}b.getOpenPt=function(){return a}},onMenuHide:function(a){if(a.lastDom){Ext.fly(a.lastDom).focus(300)}}});Ext.define("SYNO.ux._TreePanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this);this.initializeRenderedNode(a);this.bindEvent(a,"noderendered",this.onNodeRender,this);this.bindEvent(a,"collapsenode",this.onNodeCollapse,this);this.bindEvent(a,"expandnode",this.onNodeExpand,this);this.bindEvent(a,"checkchange",this.onNodeCheckChange,this)},onAfterRender:function(a){var b=a.body;b.set({role:"tree",tabIndex:0});a.ariaTreeEl=b;a.getSelectionModel().on("selectionchange",this.onNodeSelect,this);a.body.on("focus",this.onFocus.createDelegate(this,[a]));a.ariaTreeEl.addKeyListener(Ext.EventObject.SPACE,this.onKeySpace.createDelegate(this,[a]))},onFocus:function(a){if(document.activeElement!==a.getAriaEl().dom){a.getAriaEl().focus()}},onKeySpace:function(a){var b=a.getSelectionModel().getSelectedNode();if(!b){return}b.ui.toggleCheck()},initializeRenderedNode:function(a){var d,b=a.nodeHash,c;for(d in b){if(b.hasOwnProperty(d)){c=b[d];if(c.rendered){this.onNodeRender(c,a)}}}},onNodeRender:function(e,a){var d=e.ui.wrap,c=e.ui.ctNode,f=e,g=a.rootVisible?1:0,b;while(f.parentNode){g++;f=f.parentNode}b={role:"treeitem","aria-labelledby":Ext.id(e.ui.textNode),"aria-expanded":e.isLeaf()?false:e.isExpanded(),"aria-selected":false,"aria-level":g};if(e.attributes.checked){b["aria-checked"]=e.attributes.checked}Ext.fly(d).set(b);if(!e.isLeaf()){Ext.fly(c).set({role:"group"})}},onNodeSelect:function(c,b){if(Ext.isEmpty(b)){return}var a=c.tree;if(Ext.isObject(b)){b=[b]}Ext.fly(b[0].ui.wrap).set({"aria-selected":true});a.ariaTreeEl.set({"aria-activedescendant":Ext.id(b[0].ui.wrap)})},onNodeCollapse:function(a){Ext.fly(a.ui.wrap).set({"aria-expanded":false})},onNodeExpand:function(a){Ext.fly(a.ui.wrap).set({"aria-expanded":true})},onNodeCheckChange:function(c,b){var a=c.ui.wrap;Ext.fly(a).set({"aria-checked":b})}});Ext.define("SYNO.ux._SliderARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onSliderRender,this)},onSliderRender:function(b){var c=this.onSliderDisabled.createDelegate(this,[b,true]),a=this.onSliderDisabled.createDelegate(this,[b,false]);b.getAriaEl().setARIA({label:b.title||"",tabindex:Ext.isDefined(b.tabindex)?b.tabindex:(b.disabled)?-1:0,role:"slider",readonly:"false",orientation:(b.vertical===true)?"vertical":"horizontal",minvalue:b.minvalue||0,maxValue:b.maxValue||0,valuenow:b.value});this.bindEvent(b,"change",this.onSliderValueChanged,this);this.bindEvent(b,"enable",a);this.bindEvent(b,"disable",c);this.bindEvent(b,"maxvaluechanged",this.onSliderMaxValueChanged);this.bindEvent(b,"minvaluechanged",this.onSliderMinValueChanged)},onSliderDisabled:function(c,b){var a=Ext.isDefined(c.tabindex)?c.tabindex:(b)?-1:0;c.getAriaEl().setARIA({tabindex:a})},onSliderValueChanged:function(b,c,a){b.getAriaEl().setARIA({valuenow:c})},onSliderMinValueChanged:function(a,b){a.getAriaEl().setARIA({maxvalue:b})},onSliderMaxValueChanged:function(a,b){a.getAriaEl().setARIA({minvalue:b})}});Ext.define("SYNO.ux._TabPanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.initializeRenderedTab(a);this.bindEvent(a,"deactivatetab",this.onDeactivateTab,this);this.bindEvent(a,"activatetab",this.onActivateTab,this);this.bindEvent(a,"inittab",this.onTabInited,this)},initializeRenderedTab:function(a){if(a.rendered){Ext.each(a.items.items,function(c,b){if(c.tabEl){this.onTabInited(c.tabEl,a)}},this)}},onDeactivateTab:function(a){this.setTabActivate(a,false)},onActivateTab:function(a){this.setTabActivate(a,true)},setTabActivate:function(c,b){var a=(b)?0:-1;Ext.fly(c).set({"aria-selected":b,"aria-expanded":b});Ext.fly(c).down(".x-tab-right").set({tabIndex:a})},onTabInited:function(b,a){new Ext.KeyNav(b,{right:a.selectNextTab,left:a.selectPreTab,down:a.selectNextTab,up:a.selectPreTab,scope:a})}});Ext.define("SYNO.ux._CheckboxARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this);this.bindEvent(a,"check",this.onCheck,this)},onCheck:function(b,a){if(!b.rendered){return}b.el.set({"aria-checked":a})},onAfterRender:function(c){var a=c.el.id,d=a+"-label-el",b={checked:c.checked,invalid:false};if(c["aria-label"]){b.label=c["aria-label"]}else{b.labelledby=d}c.el.setARIA(b)}});var hasAriaPlugins=false;var pluginList=["Component","Button","Combobox","DataView","GridPanel","Menu","TreePanel","Slider","TabPanel","Checkbox"];function launchARIAPlugins(){if(hasAriaPlugins){return}Ext.ns("SYNO.ux");var b;for(b=0;b=0){this.index=a;if(!this.silentChangeEvent){this.fireEvent("change",this.hist[a])}}},next:function(){var a=this.index+1;if(a=0){this.index=a;if(!this.silentChangeEvent){this.fireEvent("change",this.hist[a])}}},isLast:function(){return(this.index===this.hist.length-1)},isFirst:function(){return this.index<=0},clear:function(){this.hist=[];this.index=-1},getObject:function(){var a=this.index;if(this.hist&&a=0){return this.hist[a]}return null},getPreObject:function(){var a=this.index;if(this.hist&&a=1){return this.hist[a-1]}return null},getIndex:function(){return this.index}});Ext.define("SYNO.ux.BackNextBtnGroup",{extend:"Ext.Container",constructor:function(a){this.objHistory=new SYNO.ux.HistoryRecorder(a.histCfg);var b=this.getBtnConfig(a);this.callParent([b])},getBtnConfig:function(c){var a,e=["back","next"];c.items=[];for(a=0;a','','',"");SYNO.ux.Button.superclass.onRender.call(this,b,a);SYNO.ux.Utils.setFormItemIndent(this)},getAriaEl:function(){return this.btnEl}});Ext.reg("syno_button",SYNO.ux.Button);Ext.ns("SYNO.ux");SYNO.ux.Checkbox=Ext.extend(Ext.form.Checkbox,{checkIconCls:"syno-ux-checkbox-icon",hideLabel:true,defaultAutoCreate:{tag:"input",type:"checkbox",role:"checkbox",autocomplete:"off"},wrapCls:"syno-ux-form-check-wrap",useARIA:true,htmlEncode:true,constructor:function(a){if(this.useARIA===true){a=this.addPlugins(SYNO.ux.CheckboxARIA,a)}SYNO.ux.Checkbox.superclass.constructor.call(this,a)},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this)},updateCheckAttr:function(){if(this.checked){this.el.dom.setAttribute("checked","")}else{this.el.dom.removeAttribute("checked")}},onRender:function(c,a){Ext.apply(this.defaultAutoCreate,{cls:this.checkIconCls});Ext.form.Checkbox.superclass.onRender.call(this,c,a);if(this.inputValue!==undefined){this.value=this.inputValue}var b=this.el.id,e=b+"-label-el",d=b+"-icon-el";this.wrap=this.el.wrap({cls:"x-form-check-wrap "+this.wrapCls});this.checkIcon=this.wrap.createChild({tag:"div",cls:this.checkIconCls,id:d});if(this.boxLabel){this.boxlabelEl=this.wrap.createChild({tag:"label",htmlFor:b,cls:"syno-ux-checkbox-label",html:(this.htmlEncode)?Ext.util.Format.htmlEncode(this.boxLabel):this.boxLabel,id:e})}this.setValue(this.checked);if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabindex",this.tabIndex)}this.updateCheckAttr();if(Ext.isIE&&!Ext.isStrict){this.wrap.repaint()}this.resizeEl=this.positionEl=this.wrap;SYNO.ux.Utils.setFormItemIndent(this);this.addListeners()},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.apply(this,arguments);if(this.errorMsgEl&&this.wrap){this.wrap.appendChild(this.errorMsgEl)}},addListeners:function(){if(this.boxLabel){this.boxlabelEl.addListener("mouseover",this.onMouseover,this);this.boxlabelEl.addListener("mouseout",this.onMouseout,this)}this.checkIcon.addListener("mouseover",this.onMouseover,this);this.checkIcon.addListener("mouseout",this.onMouseout,this);this.checkIcon.addListener("click",this.onClick,this);this.el.addListener("click",this.onClick,this);this.el.addListener("focus",this.onIconfocus,this);this.el.addListener("blur",this.onIconblur,this);this.addListener("disable",this.setCheckedDisabledClass,this);this.addListener("enable",this.setCheckedDisabledClass,this)},getValue:function(){return this.checked},onClick:function(a){if(!this.disabled&&!this.readOnly){this.setValue(!this.checked)}},onMouseover:function(){this.checkIcon.addClass("syno-ux-cb-hover")},onMouseout:function(){this.checkIcon.removeClass("syno-ux-cb-hover")},onIconfocus:function(){this.checkIcon.addClass("syno-ux-cb-focus")},onIconblur:function(){this.checkIcon.removeClass("syno-ux-cb-focus")},setValue:function(a){var c=this.checked,b=this.inputValue;if(a===false){this.checked=false}else{this.checked=(a===true||a==="true"||a=="1"||(b?a==b:String(a).toLowerCase()=="on"))}if(c!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}if(this.rendered){this.updateCheckAttr()}}this.setCheckedDisabledClass();return this},setDisabled:function(a){SYNO.ux.Checkbox.superclass.setDisabled.call(this,a);this.setCheckedDisabledClass();return this},setCheckedDisabledClass:function(){if(this.checkIcon){if(this.checked){this.checkIcon.addClass("syno-ux-cb-checked")}else{this.checkIcon.removeClass("syno-ux-cb-checked")}}if(this.disabled){if(this.checkIcon){this.checkIcon.addClass("syno-ux-cb-disabled")}if(this.boxlabelEl){this.boxlabelEl.addClass("syno-ux-cb-disabled")}}else{if(this.checkIcon){this.checkIcon.removeClass("syno-ux-cb-disabled")}if(this.boxlabelEl){this.boxlabelEl.removeClass("syno-ux-cb-disabled")}}}});Ext.reg("syno_checkbox",SYNO.ux.Checkbox);Ext.namespace("SYNO");SYNO.ColorField=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"10",maxlength:"7",autocomplete:"off"},allowBlank:false,maskRe:/[#a-f0-9]/i,menu:null,constructor:function(a){SYNO.ColorField.superclass.constructor.apply(this,arguments);this.menu=new Ext.menu.ColorMenu();this.mon(this.menu.palette,"select",this.onColorSelect,this);this.addManagedComponent(this.menu)},validateBlur:function(){return !this.menu||!this.menu.isVisible()},validator:function(b){var a=/^#[a-f0-9]{3}([a-f0-9]{3})?$/i;return b&&b.match(a)?true:""},onTriggerClick:function(){if(this.disabled){return}this.menu.show(this.el,"tl-bl?")},onColorSelect:function(a,b){this.setValue("#"+b)}});Ext.reg("colorfield",SYNO.ColorField);Ext.define("SYNO.ux.ColorField",{extend:"SYNO.ColorField",defaultTriggerWidth:27,msgTarget:"itip",constructor:function(a){this.callParent(arguments);this.addClass("syno-ux-colorfield");if(this.menu){this.menu.addClass("syno-ux-colormenu")}},onRender:function(b,a){this.callParent(arguments);if(this.trigger){this.trigger.addClass("syno-ux-colorfield-trigger");this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout})},onMouseover:function(){this.addClass("syno-ux-colorfield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-colorfield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)}});Ext.reg("syno_colorfield",SYNO.ux.ColorField);Ext.define("SYNO.ux.FleXcroll.ComboBox",Ext.apply(SYNO.ux.FleXcrollConfig.ComboBox,{extend:"Ext.form.ComboBox"}));Ext.define("SYNO.ux.ComboBox",{extend:"SYNO.ux.FleXcroll.ComboBox",triggerAction:"all",editable:false,mode:"local",shadow:false,listClass:"syno-ux-combobox-list",defaultTriggerWidth:27,msgTarget:"itip",useARIA:true,listAlign:["tl-bl?",[0,1]],tplHtmlEncode:true,constructor:function(a){if(a.name){a.hiddenName=a.name;a.hiddenId=Ext.id()}if(a.pageSize&&!a.minListWidth){a.minListWidth=330}a=SYNO.ux.Utils.setTextMaxLenConfig(a);if(this.useARIA===true){a=this.addPlugins(SYNO.ux.ComboboxARIA,a)}SYNO.ux.ComboBox.superclass.constructor.call(this,a);if(this.hideTrigger){this.addClass("syno-ux-triggerfield-no-trigger")}this.addClass("syno-ux-combobox")},initComponent:function(){this.callParent(arguments);this.addEvents("listInitialized")},onRender:function(b,a){SYNO.ux.ComboBox.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addClass("syno-ux-combobox-trigger");this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},onMouseover:function(){this.addClass("syno-ux-combobox-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-combobox-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}SYNO.ux.ComboBox.superclass.markInvalid.call(this,a)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}SYNO.ux.ComboBox.superclass.clearInvalid.call(this)},setReadOnly:function(a){if(a){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}SYNO.ux.ComboBox.superclass.setReadOnly.call(this,a)}});Ext.reg("syno_combobox",SYNO.ux.ComboBox);Ext.ns("SYNO.ux");SYNO.ux.CompositeField=Ext.extend(Ext.form.CompositeField,{defaultMargins:"0 6 0 0",noLabelledby:true,onRender:function(e,b){var d,c,a;SYNO.ux.CompositeField.superclass.onRender.call(this,e,b);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);c=this.innerCt.items.items;a=c.length;for(d=0;d
{0}
',constructor:function(a){if(!a.items||a.items.length!==2){SYNO.Debug.error("only allow for 2 items, use accordion layout otherwise.");return}this.callParent([this.fillConfig(a)]);this.addClass("syno-ux-cover-panel")},fillConfig:function(a){var d=a.handlerTpl||this.handlerTpl,c=a.items[0],e=a.items[1],b={layout:"fit",useStatusBar:false,items:[{xtype:"panel",itemId:"down_ct",layout:"fit",bbar:{cls:"syno-ux-cover-panel-bottom-wrap",height:this.bbarHeight,items:[{xtype:"box",html:String.format(d,a.expandTitle,"expand")}]},items:[c]},{xtype:"panel",itemId:"up_ct",layout:"fit",tbar:{cls:"syno-ux-cover-panel-top-wrap",items:[{xtype:"box",html:String.format(d,a.collpaseTitle||a.expandTitle,"collapse"),listeners:{afterrender:function(){var f=this.getCoveringItem().el.child(".syno-ux-coverable-panel-tool-wrap");f.on("click",this.onCollapseCoverItem,this)},scope:this}}]},items:[e]}],listeners:{afterlayout:this.onAfterLayout,single:true,scope:this}};delete a.items;Ext.apply(b,a);return b},getCoveredItem:function(){return this.getComponent("down_ct")},getCoveringItem:function(){return this.getComponent("up_ct")},onAfterLayout:function(){var a=".syno-ux-coverable-panel-tool-wrap",d=this.getCoveredItem().getBottomToolbar().el.child(a),c=this.getCoveringItem(),b=this.getCoveredItem();d.on("click",this.onExpandCoverItem,this);c.addClass("syno-ux-coverable-panel-up-item");c.addClass("hidden");b.addClass("syno-ux-coverable-panel-down-item")},onExpandCoverItem:function(){var a=this.getCoveringItem(),b=this.getCoveredItem();b.fireEvent("deactivate");this.getLayout().activeItem=a;a.fireEvent("activate");this.doLayout();a.removeClass("hidden");a.addClass("slidein-effect");a.removeClass.defer(300,a,["slidein-effect"])},onCollapseCoverItem:function(){var a=this.getCoveredItem(),b=this.getCoveringItem();a.fireEvent("activate");this.getLayout().activeItem=a;b.fireEvent("deactivate");this.doLayout();b.addClass("slideout-effect");b.removeClass.defer(300,b,["slideout-effect"]);b.addClass.defer(300,b,["hidden"])}});Ext.reg("syno_coverpanel",SYNO.ux.CoverPanel);Ext.define("SYNO.ux.DDGridPanel",{extend:"SYNO.ux.GridPanel",isPriorityDirty:false,DDClass:"syno-ux-ddgridpanel",DraggingClass:"is-dragging",constructor:function(a){var b={isHighCell:false};this.callParent([Ext.apply(b,a)]);if(this.isHighCell){this.addClass("syno-ux-ddgridpanel-highcell")}this.addClass("syno-ux-ddgridpanel");this.addEvents("afterDrop");this.mon(this,"afterrender",this.onGridAfterRender);this.mon(this,"beforedestroy",this.removeDDGroup)},getView:function(){var a;if(!this.view){a=Ext.apply({onCreateDragZone:function(){this.dragZone=new Ext.grid.GridDragZone(this.grid,{ddGroup:this.ddGroup||"DefaultDDGroup",proxy:new SYNO.ux.DDGridPanel.Proxy({}),onInitDrag:function(b){this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel);this.onStartDrag()},onStartDrag:function(){var b=this.view.grid;b.addClass(b.DraggingClass)},afterInvalidDrop:function(){var b=this.view.grid;b.removeClass(b.DraggingClass);return true},afterDragDrop:function(){var b=this.view.grid;b.removeClass(b.DraggingClass);return true},beforeDragOut:function(){return true},onBeforeDrag:function(c,d){var b=this.view.grid;if(b.getEl().hasClass(b.DDClass)){return true}return false}})}},this.viewConfig);this.view=new SYNO.ux.FleXcroll.grid.GridView(a)}return this.view},getDragDropText:function(){var a=this.selModel.getSelections(),c=a.map(function(d){return this.store.indexOf(d)}.bind(this)),b=c.map(function(d){if(d<0){return""}return String.format('
{0}
',this.view.getRow(d).innerHTML)}.bind(this));return b.join("")},onGridAfterRender:function(a){if(!this.dropTarget){this.dropTarget=new SYNO.ux.DDGridPanel.DropTarget(a,{ddGroup:this.viewConfig.ddGroup||"DefaultDDGroup"})}},enableDD:function(){this.addClass(this.DDClass)},disableDD:function(){this.removeClass(this.DDClass)},removeDDGroup:function(){if(this.dropTarget){this.dropTarget.removeFromGroup(this.viewConfig.ddGroup)}}});Ext.define("SYNO.ux.DDGridPanel.Proxy",{extend:"Ext.dd.StatusProxy",constructor:function(a){Ext.apply(this,a);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:"grid-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:false});this.ghost=Ext.get(this.el.dom.childNodes[0]);this.dropStatus=this.dropNotAllowed},reset:function(a){this.el.dom.className="grid-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(a){this.ghost.update("")}}});Ext.define("SYNO.ux.DDGridPanel.DropTarget",{extend:"Ext.dd.DropTarget",ddTarget:null,store:null,lastToIndex:null,grabbingCls:"syno-ux-ddgrid-grabbing-style",borderTopCls:"syno-ux-ddgrid-border-top",borderBottomCls:"syno-ux-ddgrid-border-bottom",constructor:function(b,a){this.ddTarget=b;this.store=b.store;this.callParent([b.getEl(),a])},notifyDrop:function(j,f,c){var d=-1,a=this.ddTarget,h=a.view,k,g,b;h.el.removeClass(this.grabbingCls);d=h.findRowIndex(f.getTarget());if(false===d){if(Ext.isNumber(this.lastToIndex)){this.removeCls(this.lastToIndex)}if(0===this.lastToIndex||(this.store.getCount()-1)===this.lastToIndex){d=this.lastToIndex}else{this.lastToIndex=null;j.endDrag();return false}}else{if(c.rowIndex===d){j.endDrag();return false}}this.removeCls(d);k=c.selections;this.store.suspendEvents();for(b=0;bg){c.addClass(this.borderTopCls)}}return this.dropAllowed},notifyOut:function(a,c,b){if(Ext.isNumber(this.lastToIndex)){this.removeCls(this.lastToIndex);this.lastToIndex=null}a.endDrag();return false},removeCls:function(b){var a;a=Ext.fly(this.ddTarget.view.getRow(b));a.removeClass(this.borderTopCls);a.removeClass(this.borderBottomCls)}});Ext.reg("syno_dd_gridpanel",SYNO.ux.DDGridPanel);Ext.define("SYNO.ux.DataViewAnimation",{extend:Object,defaults:{duration:500,cls:{add:"syno-ux-expandable-add",remove:"syno-ux-expandable-remove"}},constructor:function(a){Ext.apply(this,a||{},this.defaults);this.cachedStoreData={}},init:function(a){this.dataview=a;a.blockRefresh=true;var b=a.store;this.cacheStoreData(b);a.mon(b,"load",this.cacheStoreData,this);a.mon(b,"datachanged",this.onDataChanged,this)},onDataChanged:function(a){var c=[],b=this.getPrevious();this.dataview.refresh();Ext.each(b,function(d){if(this.isRemoved(d,a)){a.add(d);d.set("cls",this.cls.remove);d.isRemoved=true;c.push(d)}},this);a.each(function(d){if(this.isNew(d)){d.set("cls",this.cls.add)}else{if(!d.isRemoved){d.set("cls","")}}},this);a.sortData();this.dataview.refresh();this.cacheStoreData(a);setTimeout(function(){if(!a||!a.data){return}a.each(function(d){if(d.isRemoved){a.remove(d)}})},this.duration)},cacheStoreData:function(a){this.cachedStoreData={};a.each(function(b){this.cachedStoreData[b.id]=b},this)},getPrevious:function(){var c=[],b,a;for(b in this.cachedStoreData){if(this.cachedStoreData.hasOwnProperty(b)){a=this.cachedStoreData[b];if(a.get("cls")!==this.cls.remove){c.push(a)}}}return c},isNew:function(a){return this.cachedStoreData[a.id]===undefined},isRemoved:function(a,b){try{return b.getById(a.id)===undefined}catch(c){return true}}});Ext.define("SYNO.ux.DataViewMask",{extend:Object,defaults:{opacity:0.5},constructor:function(a){Ext.apply(this,a||{},this.defaults);this.masked={}},init:function(a){this.dataview=a;this.dataview.maskItem=this.maskItem.createDelegate(this);this.dataview.unmaskItem=this.unmaskItem.createDelegate(this);this.dataview.isItemMasked=this.isItemMasked.createDelegate(this);a.mon(a.store,"datachanged",this.onDataChanged,this);a.mon(a.store,"remove",this.onRecordRemoved,this)},isItemMasked:function(a){return this.masked[a.id]!==undefined},onDataChanged:function(a){var b=Object.keys(this.masked);Ext.each(b,function(c){if(!a.getById(c)){this.unmaskItem(c)}else{this.maskItem(c)}},this)},onRecordRemoved:function(b,a,c,d){if(this.masked[a.id]!==undefined){delete this.masked[a.id]}},maskItem:function(c){if(Ext.isArray(c)){Ext.each(c,this.maskItem,this);return}var a=this.dataview.store.getById(c),b=this.dataview.getNode(a);Ext.fly(b).mask().setOpacity(this.opacity);this.masked[c]=true},unmaskItem:function(c){if(Ext.isArray(c)){Ext.each(c,this.unmaskItem,this);return}var a=this.dataview.store.getById(c),b=this.dataview.getNode(a);if(b){Ext.fly(b).unmask()}delete this.masked[c]}});var defineDateTriggerField=function(a,b,d,c){Ext.define(a,{extend:b,overCls:"syno-ux-datefield-hover",triggerClass:"syno-ux-datefield-trigger",defaultTriggerWidth:27,msgTarget:"itip",constructor:function(e){this.callParent(arguments);this.addClass("syno-ux-datefield")},onRender:function(f,e){this.callParent(arguments);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this);this.el.setARIAHasPopUp(true).setARIAExpanded(false).setRole("combobox")},onMouseover:function(){this.addClass("syno-ux-datefield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-datefield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(e){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)},setReadOnly:function(e){if(e){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}this.callParent(arguments)},getPickerCfg:function(){return{}},onDateMenuHide:function(){this.el.setARIAExpanded(false)},isWithinEl:function(e){if(!this.el||!this.menu){return false}return(e.within(this.el)||this.menu.isWithinEl(e))},onTriggerClick:function(){if(this.disabled){return}if(!this.menu){var f=Ext.getClassByName(d||"Ext.menu.DateMenu"),e=Ext.apply({ownerField:this,pickerCfg:this.getPickerCfg()},this.menuCfg,c);this.menu=new f(e);this.el.setARIAOwns(this.menu.id);this.mon(this.menu,"hide",this.onDateMenuHide,this)}if(Ext.isString(this.menu.cls)&&this.menu.cls.indexOf("syno-ux-datefield-menu")<0){this.menu.addClass("syno-ux-datefield-menu")}this.callParent(arguments);if(Ext.isIE8||Ext.isIE9){this.menu.doLayout()}if(Ext.isFunction(this.onMenuShow)){this.onMenuShow()}this.el.setARIAExpanded(true)}})};defineDateTriggerField("SYNO.ux.DateField","Ext.form.DateField","SYNO.ux.DateMenu",{hideOnClick:false,focusOnSelect:false,shadow:false});defineDateTriggerField("SYNO.ux.DateTimeField","Ext.ux.form.DateTimeField","SYNO.ux.DateTimeMenu",{defaultOffsets:[0,1],hideOnClick:false});Ext.reg("syno_datefield",SYNO.ux.DateField);Ext.reg("syno_datetimefield",SYNO.ux.DateTimeField);Ext.override(SYNO.ux.DateTimeField,{hideAddTimeCheckbox:false,isAllDay:true,defaultMinValue:Date.parseDate("1990-01-01","Y-m-d"),defaultMaxValue:Date.parseDate("2060-12-31","Y-m-d"),hideClearButton:false,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-datefield");this.minValue=this.minValue||this.defaultMinValue;this.maxValue=this.maxValue||this.defaultMaxValue},setMinValue:function(a){this.minValue=(Ext.isString(a)?this.parseDate(a):a)||this.defaultMinValue;if(this.menu){this.menu.picker.setMinDate(this.minValue)}},setMaxValue:function(a){this.maxValue=(Ext.isString(a)?this.parseDate(a):a)||this.defaultMaxValue;if(this.menu){this.menu.picker.setMaxDate(this.maxValue)}},getPickerCfg:function(){return{hideAddTimeCheckbox:this.hideAddTimeCheckbox,clearType:this.allowBlank?"clear":"reset",hideClearButton:this.hideClearButton,isAllDay:this.isAllDay,minDate:this.minValue,maxDate:this.maxValue}},menuEvents:function(a){this.callParent(arguments);this.menu[a]("updateDirtyValue",this.onUpdateDirtyValue,this)},onMenuShow:function(){this.menu.picker.originalValue=this.menu.picker.getValue();this.menu.picker.clearDirty()},updateDateTime:function(){if(this.isDestroyed){return}var a=this.menu.picker;a.setValue(a.getValue());this.setValue(a.value)},onMenuHide:function(){this.focus(false,60);this.menuEvents("un");var a=new Ext.util.DelayedTask(this.updateDateTime,this);a.delay(200)},onUpdateDirtyValue:function(a){this.setValue(a)}});Ext.define("SYNO.ux.TimePickerField",{extend:"Ext.Container",cls:"x-form-timepickerfield syno-ux-timepickerfield",comboWidth:70,comboMargins:undefined,comboDefaultMargins:"0 5 0 3",constructor:function(a){this.hideAddTimeCheckbox=a.hideAddTimeCheckbox;var b={layout:"form",width:236,items:[this.getAddTimeCheckBox(),this.getTimeContainer()]};this.callParent([Ext.apply(b,a)]);this.mon(this.addTimeCheckbox,"check",this.onChangeValue,this);this.mon(this.hourCombo,"select",this.onChangeValue,this);this.mon(this.minCombo,"select",this.onChangeValue,this);this.mon(this.ampmCombo,"select",this.onChangeValue,this)},onChangeValue:function(){this.fireEvent("changevalue")},getAddTimeCheckBox:function(){if(!this.addTimeCheckbox){this.addTimeCheckbox=new SYNO.ux.Checkbox({boxLabel:_JSLIBSTR("uicommon","add_time"),checked:false,ctCls:"add-time-ct",hidden:this.hideAddTimeCheckbox,listeners:{check:{fn:function(a,b){this.hourCombo.setValue(b?8:12);this.minCombo.setValue(0);this.ampmCombo.setValue("am");this.hourCombo.setDisabled(!b);this.minCombo.setDisabled(!b);this.ampmCombo.setDisabled(!b)}},scope:this}})}return this.addTimeCheckbox},getTimeContainer:function(){if(!this.timeContainer){this.createTimeFields();this.timeContainer=new Ext.Container({cls:"time-ct",layout:"hbox",items:[this.hourCombo,{xtype:"syno_displayfield",cls:"seperator",width:10,value:":"},this.minCombo,{xtype:"spacer",width:16},this.ampmCombo]})}return this.timeContainer},createTimeFields:function(){var a=["hour","min"];Ext.each(a,function(b){var c="get"+b.charAt(0).toUpperCase()+b.slice(1)+"DS";this[b+"Combo"]=new SYNO.ux.ComboBox({name:"timepicker_"+b,hideLabel:true,cls:a,store:this[c](),margins:this.comboMargins,width:this.comboWidth,editable:true,typeAhead:true,disabled:true,comboTitle:_JSLIBSTR("uicommon","time_"+b),valueField:"value",displayField:"display",vtype:"nonenegativeinteger",validationEvent:"keyup",listClass:"syno-ux-combobox-list syno-ux-timepickerfield-combobox-list",validator:function(d){if(!Ext.isEmpty(this.store.getById(d))){return true}return false},listeners:{afterrender:function(d){this.el.set({"aria-label":this.comboTitle})},scope:this[b+"Combo"]}})},this);this.ampmCombo=new SYNO.ux.ComboBox({name:"timpicker_am",hideLabel:true,cls:"ampm",store:new Ext.data.ArrayStore({autoDestroy:true,idIndex:1,fields:["value","display"],data:[["am","AM"],["pm","PM"]]}),value:"am",width:this.comboWidth,disabled:true,editable:false,valueField:"value",displayField:"display"})},generateTimeData:function(b,d){if(b<0){return[]}var a,c=[];for(a=d||0;a=12?"pm":"am",isAllDay:true}}this.setRawValue(b);this.rendered=true},_valueSplit:function(a){var b=/(\d+):(\d+) (\S+)?/.exec(a);return{h:b?parseInt(b[1],10):0,m:b?parseInt(b[2],10):0,a:b&&b[3]?b[3]:"am",isAllDay:0===a.length}},getRawValue:function(){if(!this.hourCombo){this.date=(new Date()).clearTime();return{h:12,m:0,a:this.date.getHours()>=12?"pm":"am",isAllDay:true}}else{return{h:this.hourCombo.getValue(),m:this.minCombo.getValue(),a:this.ampmCombo.getValue(),isAllDay:!this.getAddTimeCheckBox().checked}}},setRawValue:function(a,b){if(!b){var d=this.getAddTimeCheckBox();var c=this.hideAddTimeCheckbox||!a.isAllDay;d.eventsSuspended=true;d.setValue(c);d.eventsSuspended=false;this.hourCombo.setDisabled(!c);this.minCombo.setDisabled(!c);this.ampmCombo.setDisabled(!c)}this.hourCombo.setValue(a.h);this.minCombo.setValue(a.m);this.ampmCombo.setValue(a.a)},getValue:function(){var a=this.getRawValue();if(a.isAllDay){return""}return String.leftPad(a.h,2,"0")+":"+String.leftPad(a.m,2,"0")+" "+a.a},setValue:function(b,a){if(!this.rendered){this.value=b;return}b=this._valueSplit(b);this.setRawValue(b,a)},focusItem:function(b){var a=["hourCombo","minCombo","ampmCombo"],c,d={prev:null,cur:null,next:this.hourCombo};for(c=0;c0&&d.next){d.next.focus();d.next.isFocused=true;return true}else{if(b<=0&&d.prev){d.prev.focus();d.prev.isFocused=true;return true}}return false},clearAllFocus:function(){var a=["hour","min","ampm"];Ext.each(a,function(b){this[b+"Combo"].triggerBlur();this[b+"Combo"].isFocused=false},this);this.getAddTimeCheckBox().blur();this.getAddTimeCheckBox().isFocused=false},isAllDay:function(){return !this.getAddTimeCheckBox().checked}});Ext.reg("syno_timepickerfield",SYNO.ux.TimePickerField);Ext.define("SYNO.ux.DateTime.SubMenu",{extend:"Ext.menu.Menu",xtype:"syno_datetime_submenu",centerActiveItem:function(){if(!this.activeItem){return}var c=this.activeItem.getEl().dom,b=this.getLayoutTarget(),a=b.dom.fleXdata,d;if(!a||a.scrollPosition[1][0]===false){return}d=Math.max(Math.min(c.offsetTop+(c.offsetHeight/2)-(a.cntRSize[1]/2),a.cntSize[1]-a.cntRSize[1]),0);b.dom.fleXcroll.setScrollPos(false,d)}});Ext.define("SYNO.ux.DateTimePicker",{extend:"Ext.DateTimePicker",timeFormat:"h:i a",initComponent:function(){this.callParent(arguments);if(!this.isAllDay){this.tf=new SYNO.ux.TimePickerField({hideAddTimeCheckbox:this.hideAddTimeCheckbox});this.tf.ownerCt=this;this.mon(this.tf,"changevalue",this.updateDirtyValue,this)}this.yearBtn=this.createYearMonthBtn("year");this.monthBtn=this.createYearMonthBtn("month")},isWithinEl:function(a){if(!this.getEl()||!this.yearBtn.menu||!this.monthBtn.menu){return false}return(a.within(this.getEl())||a.within(this.yearBtn.menu.getEl())||a.within(this.monthBtn.menu.getEl()))},onRender:function(a,g){var c=['',"",'','','',"",'",(this.showToday||!this.hideClearButton)?'':"",this.tf?'':"","
  
'],f=this.dayNames,e;for(e=0;e<7;e++){var h=this.startDay+e;if(h>6){h=h-7}c.push('")}c[c.length]='';for(e=0;e<42;e++){if(e%7===0&&e!==0){c[c.length]=''}c[c.length]=''}c.push("
',this.getWeekdayHeader(e),"
");var b=document.createElement("div");b.className="x-date-picker";b.innerHTML=c.join("");var k=document.createElement("li");k.className="x-menu-list-item x-menu-date-item";k.appendChild(b);a.dom.insertBefore(k,g);this.el=Ext.get(k);this.innerEl=Ext.get(b);this.eventEl=Ext.get(b.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:false});this.nextRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:false});this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevMonth()}else{this.update(this.viewDate.add("d",-1),false,true)}},right:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextMonth()}else{this.update(this.viewDate.add("d",1),false,true)}},up:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextYear()}else{this.update(this.viewDate.add("d",-7),false,true)}},down:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevYear()}else{this.update(this.viewDate.add("d",7),false,true)}},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();this.handleDateSelect(d);return true},scope:this});this.innerEl.unselectable();this.cells=this.innerEl.select("table.x-date-inner tbody td");this.textNodes=this.innerEl.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText});if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var j=(new Date()).dateFormat(this.format);this.todayBtn=new SYNO.ux.Button({cls:"today-btn",renderTo:this.innerEl.child("td.x-date-bottom",true),text:String.format(this.todayText,j),tooltip:String.format(this.todayTip,j),handler:this.selectToday,scope:this})}if(!this.hideClearButton){this.clearBtn=new SYNO.ux.Button({cls:"clear-btn",renderTo:this.innerEl.child("td.x-date-bottom",true),text:this.clearType==="clear"?_JSLIBSTR("common","clean"):_JSLIBSTR("common","reset"),disabled:(this.clearType==="reset")||(this.clearType==="clear"&&this.getValue()===""),handler:this.onClearClick,scope:this})}this.yearBtn.render(this.innerEl.child(".year-btn-ct",true));this.monthBtn.render(this.innerEl.child(".month-btn-ct",true));if(this.tf){this.tf.render(this.innerEl.child("td.timefield-ct",true))}this.eventEl.addKeyListener(Ext.EventObject.TAB,this.onKeyTab,this);this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"div.x-date-date"});this.onEnable(true)},onKeyTab:function(a,f){var d=this.tf,b=(f.shiftKey)?-1:1,c;c=d&&d.focusItem(b);if(!d||c===false){this.focusSelectedDate()}},beforeDestroy:function(){if(this.rendered){Ext.destroy(this.yearBtn,this.monthBtn,this.clearBtn)}this.callParent(arguments)},update:function(a,b){a=(a||(new Date())).clearTime(true);this.callParent(arguments);if(this.rendered){this.yearBtn.setText(a.getFullYear());this.monthBtn.setText(this.monthNames[a.getMonth()])}},focusSelectedDate:function(){this.el.child(".x-date-selected").focus()},setValue:function(b,a){if(!this.isAllDay){var c=!b?"":b.format(this.timeFormat);this.tf.setValue(c,a)}this.value=b;if(this.rendered){this.update(b);this.updateDirtyValue()}},getValue:function(){if(this.value===""){return""}if(this.isAllDay){return this.value.clearTime(true)}else{return this.getDateTime()}},getDateTime:function(d){var b=d||this.value||(new Date()).clearTime();if(this.tf){var a=this.tf.getValue(),c=this.dateFormat+" "+this.timeFormat;if(a.length>0){b=Date.parseDate(b.format(this.dateFormat)+" "+a,c)}else{b=b.clearTime(true)}}return b},updateDirtyValue:function(){this.fireEvent("updateDirtyValue",this.getValue());this.dirty=true;if(this.clearBtn){if(this.clearType==="reset"){this.clearBtn.setDisabled(false)}else{if(this.clearType==="clear"){this.clearBtn.setDisabled(this.getValue()==="")}}}},clearDirty:function(){this.dirty=false;if(this.clearBtn){if(this.clearType==="reset"){this.clearBtn.setDisabled(true)}else{if(this.clearType==="clear"){this.clearBtn.setDisabled(this.getValue()==="")}}}},setMaxDate:function(){this.callParent(arguments);this.updateYearBoundary()},setMinDate:function(){this.callParent(arguments);this.updateYearBoundary()},onClearClick:function(){if(this.clearType==="clear"){this.setValue("")}else{if(this.clearType==="reset"){this.setValue(this.originalValue);this.clearDirty()}}},handleDateClick:function(b,a){b.stopEvent();if(!this.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasClass("x-date-disabled")){var c=new Date(a.dateValue);if(this.isAllDay){this.cancelFocus=this.focusOnSelect===false;this.setValue(c);delete this.cancelFocus;this.fireEvent("select",this,this.value)}else{this.setValue(this.getDateTime(c),true)}}},handleDateSelect:function(a){var b=new Date(this.viewDate);this.setValue(this.isAllDay?b:this.getDateTime(b));if(this.isAllDay){this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){var a=new Date();this.setValue(this.isAllDay?a.clearTime():this.getDateTime(a))}},showPrevMonth:function(a){this.update(this.viewDate.add("mo",-1),false,true)},showNextMonth:function(a){this.update(this.viewDate.add("mo",1),false,true)},showPrevYear:function(){this.update(this.viewDate.add("y",-1),false,true)},showNextYear:function(){this.update(this.viewDate.add("y",1),false,true)},setYearMonthValue:function(c){var b=new Date(this.activeDate||this.value),e=Ext.isNumber(c.year)?c.year:b.getFullYear(),a=Ext.isNumber(c.month)?c.month:b.getMonth();b.setFullYear(e,a);if(b.getMonth()!=a){b=new Date(b.getFullYear(),a,1).getLastDateOfMonth()}this.setValue(this.isAllDay?b:this.getDateTime(b))},updateYearBoundary:function(){var a=this.yearBtn.menu,b;a.removeAll();for(b=this.minDate.getFullYear();b<=this.maxDate.getFullYear();b++){this.yearBtn.menu.addMenuItem({text:b,value:b,iconCls:"no-icon-space"})}a.doLayout()},createYearMonthBtn:function(g){var a,b=[],f,e;if(g==="year"){for(e=this.minDate.getFullYear();e<=this.maxDate.getFullYear();e++){b.push(e)}if(b.length===0){var c=(new Date()).getFullYear();for(e=c-10;e<=c+10;e++){b.push(e)}}a=(this.activeDate||this.value).getFullYear()-b[0];a=(a<0)?0:a;f=function(k,i,j,h){this.setYearMonthValue({year:i.value});k.selectedIndex=i.value-k.items.itemAt(0).value}}else{if(g==="month"){b=[0,1,2,3,4,5,6,7,8,9,10,11];a=(this.activeDate||this.value).getMonth();f=function(k,i,j,h){this.setYearMonthValue({month:i.value});k.selectedIndex=i.value-k.items.itemAt(0).value}}}var d=new SYNO.ux.Button({text:" ",dateTimeMenu:this.dateTimeMenu,menu:{xtype:"syno_datetime_submenu",cls:"syno-datetimepicker-inner-menu",autoFlexcroll:true,enableScrolling:false,maxHeight:228,height:228,selectedIndex:a,items:b.map(function(h){var j={text:(g==="year")?h:Date.getShortMonthName(h),value:h,iconCls:"no-icon-space",deepHideOnClick:false};return j}),listeners:{click:f,scope:this}},listeners:{menushow:function(h,i){i.tryActivate(i.selectedIndex);i.updateFleXcroll();i.centerActiveItem()},scope:this},showMenu:function(){if(this.rendered&&this.menu){if(this.tooltip){Ext.QuickTips.getQuickTip().cancelShow(this.btnEl)}if(this.menu.isVisible()){this.menu.hide()}this.menu.ownerCt=this;this.menu.show(this.el,this.menuAlign,this.dateTimeMenu)}return this}});return d}});Ext.reg("syno_datetimepickerfield",SYNO.ux.DateTimePicker);Ext.define("SYNO.ux.DateTimeMenu",{extend:"Ext.menu.Menu",cls:"x-date-menu syno-ux-datefield-menu",showSeparator:false,constructor:function(a){this.callParent(arguments);this.plain=true;var b=new SYNO.ux.DateTimePicker(Ext.apply({internalRender:true,ctCls:"x-menu-date-item",dateTimeMenu:this},a.pickerCfg));this.add(b);this.picker=b;this.relayEvents(b,["select","updateDirtyValue"]);this.on("show",function(){if(this.picker){this.picker.focus()}},this);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)},isWithinEl:function(a){if(!this.getEl()||!this.picker||!this.picker.getEl()){return false}return(a.within(this.getEl())||a.within(this.picker.getEl())||this.picker.isWithinEl(a))},initComponent:function(){this.callParent(arguments);this.on("select",this.menuHide,this)},beforeDestroy:function(){this.picker.destroy();this.callParent(arguments)},show:function(){this.callParent(arguments);if(this.picker.tf){this.picker.tf.doLayout();this.doLayout()}},hide:function(a){var b=this.picker.tf;if(b){if((b.hourCombo.list&&Ext.EventObject.within(b.hourCombo.list))||(b.minCombo.list&&Ext.EventObject.within(b.minCombo.list))||(b.ampmCombo.list&&Ext.EventObject.within(b.ampmCombo.list))){return false}}if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null}this.el.hide();this.hidden=true;this.fireEvent("hide",this)}if(a===true&&this.parentMenu){this.parentMenu.hide(true)}if(b){b.clearAllFocus()}},onClick:function(a){if(this.activeChild&&!a.getTarget(".syno-datetimepicker-inner-menu")&&!a.getTarget(".year-btn-ct")&&!a.getTarget(".month-btn-ct")){this.activeChild.hide()}this.callParent(arguments)},menuHide:function(){if(this.hideOnClick){this.hide(true)}}});Ext.ns("SYNO.ux");SYNO.ux.DisplayField=Ext.extend(Ext.form.DisplayField,{hideLabel:true,noLabelledby:true,htmlEncode:true,constructor:function(a){if(!Ext.isEmpty(a.fieldLabel)){this.hideLabel=Ext.isEmpty(a.hideLabel)?false:a.hideLabel}if(Ext.isEmpty(a.height)){if(Ext.isObject(a.style)){a.style["min-height"]="8px"}else{if(Ext.isString(a.style)){a.style=a.style+"; min-height:8px;"}else{if(Ext.isEmpty(a.style)){a.style="min-height: 8px"}}}}SYNO.ux.DisplayField.superclass.constructor.call(this,a);this.addClass("syno-ux-displayfield");if(a.selectable){this.addClass("selectabletext")}},onRender:function(b,a){var c=this.value?this.value:"";var d=(this.fieldLabel)?this.fieldLabel+" "+c:c;d=Ext.util.Format.stripTags(d)||"";SYNO.ux.DisplayField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}this.customTabIdx=(Ext.isDefined(this.tabIndex))?this.tabIndex:(d.length>0)?0:-1;if(this.el){this.el.set({role:"presentation","aria-label":d,tabIndex:(this.disabled)?-1:this.customTabIdx})}SYNO.ux.Utils.setFormItemIndent(this)},setValue:function(a){SYNO.ux.DisplayField.superclass.setValue.call(this,a);if(!this.rendered){return}var c=this.getValue();var d=(this.fieldLabel)?this.fieldLabel+" "+c:c,b=this.el;d=Ext.util.Format.stripTags(d)||"";this.customTabIdx=(Ext.isDefined(this.tabIndex))?this.tabIndex:(d.length>0)?0:-1;if(b){b.setARIA({label:d,tabIndex:(this.disabled)?-1:this.customTabIdx})}},disable:function(){if(this.el){this.el.set({tabIndex:-1})}SYNO.ux.DisplayField.superclass.disable.call(this)},enable:function(){if(this.el){this.el.set({tabIndex:this.customTabIdx})}SYNO.ux.DisplayField.superclass.enable.call(this)}});Ext.reg("syno_displayfield",SYNO.ux.DisplayField);Ext.ns("SYNO.ux");SYNO.ux.EditorGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{border:false,header:false,trackMouseOver:true,useARIA:true,useNewStyle:true,clicksToEdit:1,constructor:function(a){if(this.useARIA){a=this.addPlugins(SYNO.ux.GridPanelARIA,a)}var c,b;if(Ext.isArray(a.plugins)){Ext.each(a.plugins,function(f,e){if(f instanceof SYNO.ux.plugin.StyledGrid){b=e;return}if(f instanceof SYNO.ux.plugin.GroupHeaderGrid){c=e;return}})}if(Ext.isNumber(c)){if(!Ext.isNumber(b)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}else{if(b>c){var d=a.plugins.splice(b,1)[0];a=this.insertPlugins(d,a,0)}}}else{if(!Ext.isNumber(b)&&(a.useNewStyle||this.useNewStyle)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}}SYNO.ux.EditorGridPanel.superclass.constructor.call(this,a);this.addClass("syno-ux-editorgridpanel")},getView:function(){var a=this;if(!a.view){a.view=new SYNO.ux.FleXcroll.grid.GridView(a.viewConfig)}return a.view},onRender:function(b,c){SYNO.ux.EditorGridPanel.superclass.onRender.call(this,b,c);var a=this.getSelectionModel();this.mon(a,"spacepressed",this.onSpacePressed,this)},onSpacePressed:function(){var a=this.view,b=a.focusEl,e=Ext.get(b.dom.getAttribute("aria-activedescendant")),d,c;if(!e||e.dom.nodeName.toUpperCase()!=="TD"){return}d=a.findRowIndex(e.dom);c=a.findCellIndex(e.dom);this.startEditing(d,c)},afterRender:function(){SYNO.ux.EditorGridPanel.superclass.afterRender.call(this);var b=Ext.getCmp(this.id+"-hctx");var a=Ext.getCmp(this.id+"-hcols-menu");if(b){b.addClass("syno-ux-editorgrid-hd-menu")}if(a){a.addClass("syno-ux-editorgrid-hd-menu")}},mask:function(a){this.el.mask(a,"syno-ux-grid-mask-info");this.view.focusEl.set({tabIndex:-1});this.view.setHeaderFocusTabbable(false)},unmask:function(){this.el.unmask();this.view.focusEl.set({tabIndex:0});this.view.setHeaderFocusTabbable(true)}});Ext.reg("syno_editorgrid",SYNO.ux.EditorGridPanel);Ext.namespace("SYNO.ux");SYNO.ux.EnableColumn=Ext.extend(Ext.grid.Column,{commitChanges:false,bindRowClick:false,enableFastSelectAll:false,disableSelectAll:false,headerHtmlEncode:false,constructor:function(b){var a='{2}';this.box_id=Ext.id();this.orgHeader=b.header;if(!b.disableSelectAll){b.header=String.format(a,this.box_id,!(b&&b.header)?"no-margin":"",b.header||"")}SYNO.ux.EnableColumn.superclass.constructor.call(this,b)},onSpacePressed:function(g,a){if(g.selections.length!==1){return}var c=this.getGrid(),b=c.getStore(),e=(Ext.isFunction(c.getSelectionModel().getColIdx))?c.getSelectionModel().getColIdx():-1,f=(c.getColumnModel().columns||c.getColumnModel().config).indexOf(this),d=b.indexOf(g.getSelected());if(f!==e){return}this.onCellClick(c,d,a)},init:function(a){if(!Ext.isDefined(this.dataIndex)||!Ext.isDefined(this.id)){throw Error("you should set dataIndex and id for EnableColumn")}a.mon(a,"cellclick",function(c,e,b,d){if(c.getColumnModel().getColumnId(b)===this.id||this.bindRowClick){this.onCellClick(c,e,d)}},this);a.mon(a,"headerclick",function(d,c,b){var e;if(d.getColumnModel().getColumnId(c)===this.id||this.bindRowClick){e=b.getTarget("input",1,true);if(!e){return}if(this.box_el.hasClass("syno-ux-cb-disabled")){return}if(e){return this.onBoxClick()}}},this);a.mon(a,"afterrender",function(b){this.box_el=Ext.get(this.box_id);b.mon(b.getStore(),"add",this.checkSelectAll,this);b.mon(b.getStore(),"remove",this.checkSelectAll,this);b.mon(b.getStore(),"load",this.checkSelectAll,this);b.mon(b.getColumnModel(),"columnmoved",this.onColumnMoved,this);b.mon(b.getColumnModel(),"headerchange",this.onHeaderChange,this);b.mon(b.getView(),"refresh",this.onHeaderChange,this);b.mon(b.getSelectionModel(),"spacepressed",this.onSpacePressed,this);this.checkSelectAll(b.getStore())},this,{single:true});this.getGrid=function(){return a}},onBoxClick:function(){if(this.box_el.hasClass("syno-ux-cb-checked")){this.box_el.removeClass("syno-ux-cb-checked")}else{this.box_el.addClass("syno-ux-cb-checked")}this.onSelectAll();this.fireEvent("selectall",this,this.box_el.hasClass("syno-ux-cb-checked"))},getHeaderRole:function(){if(this.disableSelectAll){return"columnheader"}return"checkbox"},getHeaderAriaAttr:function(){return'aria-checked="false"'},disableHeader:function(){if(this.box_el){this.box_el.addClass("syno-ux-cb-disabled")}},enableHeader:function(){if(this.box_el){this.box_el.removeClass("syno-ux-cb-disabled")}},isIgnore:function(b,a){return false},toggleRec:function(b){var a=b.get(this.dataIndex);if("gray"===a){a=false}b.set(this.dataIndex,!a)},onColumnMoved:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())},onHeaderChange:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())},onHeaderSpace:function(){if(!this.box_el){return}if(this.box_el.hasClass("syno-ux-cb-disabled")){return}if(this.box_el.hasClass("syno-ux-cb-checked")){this.box_el.removeClass("syno-ux-cb-checked")}else{this.box_el.addClass("syno-ux-cb-checked")}this.onSelectAll();this.fireEvent("selectall",this,this.box_el.hasClass("syno-ux-cb-checked"));this.getGrid().fireEvent("headerspace",this)},onSelectAll:function(){var d,b,e,c,a;if(!this.box_el||!this.box_el.dom){return}d=this.getGrid().getStore();a=!!(this.box_el.hasClass("syno-ux-cb-checked"));if(this.enableFastSelectAll){d.suspendEvents()}for(b=0,c=d.getCount();b0);var b=true;var a=false;if(!this.box_el||!this.box_el.dom){return}for(c=0;c',d,a,g)},disableRenderer:function(g,d,c){var e="gray"===g?"grayed":g?"checked":"unchecked",b=(e==="grayed")?"mixed":(e==="checked"),h=(c)?c.id+"_"+this.dataIndex:Ext.id(),f=_JSLIBSTR("uicommon","enable_column_"+e)+" "+_JSLIBSTR("common","disabled"),a="disabled-"+e;d=d||{};d.cellAttr='aria-label="'+Ext.util.Format.stripTags(this.orgHeader)+" "+f+'" aria-checked="'+b+'" role="checkbox"';return String.format('
',a,b,h)}});Ext.Element.addMethods({setARIA:function(f,b){var d=this,c=d.dom,e,a,g;if(!c){return}b=(b!==false)&&!!c.setAttribute;for(a in f){if(f.hasOwnProperty(a)){g=a;e=f[a];if(a=="role"){d.set({role:e})}else{if(a.toLowerCase()=="tabindex"){c.setAttribute(a,e)}else{if(b){g=g.indexOf("aria-")<0?"aria-"+g:g;c.setAttribute(g,e)}else{g=g.indexOf("aria-")<0?"aria-"+g:g;c[g]=e}}}}}return d},setARIAExpanded:function(a){return this.setARIA({expanded:a})},setARIAInvalid:function(a){return this.setARIA({invalid:a})},setARIAOwns:function(a){return this.setARIA({owns:a})},setARIAActiveDescendant:function(a){return this.setARIA({activedescendant:a})},setRole:function(a){return this.setARIA({role:a})},setARIAHasPopUp:function(a){return this.setARIA({haspopup:a})},setARIAChecked:function(a){return this.setARIA({checked:a})},setARIASelected:function(a){return this.setARIA({selected:a})}});Ext.override(Ext.Component,{runTask:function(a,c,e,b){var d=this;if(!d[a]){d[a]=new Ext.util.DelayedTask(c,d)}d[a].delay(Ext.isNumber(e)?e:d.delayTime,null,null,b)},removeDelayedTask:function(b){var a=this[b];if(a&&a.cancel){a.cancel();this[b]=null}}});Ext.override(Ext.util.Observable,{getFleXcrollInfo:function(c){if(!c||!c.fleXdata){return{}}var a=c.fleXdata.scrollPosition,b={hasVerticalScroll:a[1][0]!==false,hasHorizontalScroll:a[0][0]!==false,scrollTop:a[1][0],scrollLeft:a[0][0],maxVerticalScroll:a[1][1],maxHorizontalScroll:a[0][1]};return b},updateScrollbar:function(d,b){var c=this;if(c.isDestroyed||(c.grid&&c.grid.isDestroyed)){return}var a=!c.isVisible||c.isVisible();if(c instanceof SYNO.ux.FleXcroll.grid.GridView||c instanceof SYNO.ux.FleXcroll.grid.BufferView){a=(c.grid)?c.grid.isVisible():a}if(a){if(d&&d.fleXcroll){if(b){d.fleXcroll.setScrollPos(false,0)}d.fleXcroll.updateScrollBars();if(!b){d.fleXcroll.setScrollPos(0,0,true)}}else{if(d){fleXenv.fleXcrollMain(d,c.disableTextSelect);d.onfleXcroll=(function(){this.fireEvent("flexcroll",this,this.getFleXcrollInfo(d))}).createDelegate(this);if(d.fleXcroll){this.fireEvent("flexcrollInitDone");if(Ext.isDefined(this.flexcrollPosFix)){d.fleXcroll.posFix=this.flexcrollPosFix}}}}}},destroyFleXcroll:function(b){if(!b||!b.dom){return}var c=b.dom;var a=[];if(c.onfleXcroll){c.onfleXcroll=null}if(b.hasClass("flexcrollactive")){a.push(c)}b.select(".flexcrollactive").each(function(d){d.dom.onfleXcroll=null;a.push(d.dom)});if(a.length>0){fleXenv.fleXlist=fleXenv.fleXlist.filter(function(d){return a.indexOf(d)===-1})}},fleXcrollTo:function(a){fleXenv.scrollTo(Ext.get(a).dom)},addPlugins:function(b,a){a=a||{};if(Ext.isObject(a.plugins)||Ext.isString(a.plugins)){a.plugins=[a.plugins]}a.plugins=a.plugins||[];a.plugins.push(b);return a},insertPlugins:function(c,a,b){a=a||{};if(Ext.isObject(a.plugins)||Ext.isString(a.plugins)){a.plugins=[a.plugins]}a.plugins=a.plugins||[];a.plugins.splice(b,0,c);return a}});Ext.override(Ext.BoxComponent,{delayTime:100,updateScrollBarEventNames:["afterlayout","resize"],updateFormForScrollbar:false,updateScrollCls:function(a){if(a.scrollTop===0||!a.hasVerticalScroll){this.getEl().addClass("scroll-at-top")}else{this.getEl().removeClass("scroll-at-top")}if(a.scrollTop===a.maxVerticalScroll||!a.hasVerticalScroll){this.getEl().addClass("scroll-at-bottom")}else{this.getEl().removeClass("scroll-at-bottom")}if(a.scrollLeft===0||!a.hasHorizontalScroll){this.getEl().addClass("scroll-at-left")}else{this.getEl().removeClass("scroll-at-left")}if(a.scrollLeft===a.maxHorizontalScroll||!a.hasHorizontalScroll){this.getEl().addClass("scroll-at-right")}else{this.getEl().removeClass("scroll-at-right")}},initScrollBar:function(){var a=this;Ext.each(a.updateScrollBarEventNames,function(b){this.mon(this,b,function(){this.updateScroller()},this)},a);a.mon(this,"flexcroll",function(b,c){this.updateScrollCls(c)},a,{buffer:100})},updateScroller:function(a){var b=this;b.runTask("updateScrollbarTask",b.updateFleXcroll,a||b.delayTime)},resetScroller:function(a){var b=this;b.runTask("updateScrollbarTask",b.updateFleXcroll,a||b.delayTime,[true])},setFleXcrollPosFix:function(b){var a=this.getContentTarget();if(a&&a.dom&&a.dom.fleXcroll){this.flexcrollPosFix=b;a.dom.fleXcroll.posFix=b}},getScrollTarget:function(){return this.getContentTarget()},updateFleXcroll:function(c){var b=this,a=b.getLayoutTarget?b.getLayoutTarget():b.getScrollTarget();if(Ext.isEmpty(a)){return}b.updateScrollbar(a.dom,c);b.updateScrollCls(b.getFleXcrollInfo(a.dom));if(this.updateFormForScrollbar===true){this.updateFleXcrollForm()}},updateFleXcrollForm:function(){var b=this,a=b.getLayoutTarget?b.getLayoutTarget():b.getScrollTarget();if(Ext.isEmpty(a)||!a.dom.fleXcroll){return}a.dom.fleXcroll.formUpdate()},setAutoFleXcroll:function(a){var b=this;if(b.rendered&&a===true){b.initScrollBar()}b.autoFlexcroll=a;return this},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}this.boxReady=true;if(Ext.isDefined(this.autoScroll)){this.setAutoScroll(this.autoScroll)}this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}this.setAutoFleXcroll(this.autoFlexcroll)},destroy:function(){this.removeDelayedTask("updateScrollbarTask");this.destroyFleXcroll(this.el);Ext.BoxComponent.superclass.destroy.call(this)}});Ext.override(Ext.layout.ContainerLayout,{onLayout:function(a,b){b=b.hasClass("flexcrollactive")?b.child("div.contentwrapper"):b;this.renderAll(a,b)},isValidParent:function(d,b){if(!b){return false}var a=d.getPositionEl().dom;if(a.parentNode&&Ext.fly(a.parentNode).hasClass("contentwrapper")){a=a.parentNode;if(a.parentNode&&Ext.fly(a.parentNode).hasClass("mcontentwrapper")){a=a.parentNode}}return a.parentNode==(b.dom||b)}});Ext.override(Ext.menu.DateMenu,{initComponent:function(){var a;this.on("beforeshow",this.onBeforeShow,this);this.strict=(Ext.isIE7&&Ext.isStrict);if(this.strict){this.on("show",this.onShow,this,{single:true,delay:20})}a=Ext.getClassByName(this.pickerClass||"Ext.DatePicker");this.picker=new a(Ext.applyIf({internalRender:true,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig));Ext.apply(this,{plain:true,showSeparator:false,items:this.picker});this.picker.purgeListeners();Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("show",this.picker.focus,this.picker);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}}});Ext.override(Ext.Button,{useARIA:true,constructor:function(a){if(this.useARIA===true){a=a||{};if(a.initialConfig&&a.isAction){Ext.apply(this,this.addPlugins(SYNO.ux.ButtonARIA,{}))}else{a=this.addPlugins(SYNO.ux.ButtonARIA,a)}}Ext.Button.superclass.constructor.call(this,a)},updateDisableConfig:function(a){if(!Ext.isDefined(this.hideDisabledBtn)){this.hideDisabledBtn=a}}});Ext.define("SYNO.ux.FieldSet",{extend:"Ext.form.FieldSet",animCollapse:true,constructor:function(){this.callParent(arguments);this.addListener("beforerender",this.updateUserCollapseState,this);this.addListener("afterrender",this.doLayout.createDelegate(this,[false,true]),this)},onRender:function(b,a){this.callParent(arguments);var c=this.el.select("legend");if(c){if(true===this.collapsible){this.el.set({tabIndex:0,role:"group","aria-expanded":!this.collapsed});this.el.addKeyListener(Ext.EventObject.ENTER,this.onClickLegend,this);this.el.addKeyListener(Ext.EventObject.SPACE,this.onClickLegend,this);c.addListener("click",this.onClickLegend,this)}else{this.addClass("syno-ux-fieldset-default")}c.setStyle({display:"block",width:"100%"})}this.addClass("syno-ux-fieldset")},initEvents:function(){var a=this;this.callParent(arguments);a.mon(a,"collapse",a.updateOwnerCtScroller,a);a.mon(a,"expand",a.updateOwnerCtScroller,a)},afterExpand:function(){this.callParent(arguments);this.doLayout(false)},updateOwnerCtScroller:function(){var a=this;if(a.ownerCt&&a.ownerCt.autoFlexcroll&&a.ownerCt.updateScroller){a.ownerCt.updateScroller()}},updateUserCollapseState:function(){},onClickLegend:function(b,a){var d=b.target||a.target,c=this.el.child("legend");if(Ext.fly(d).up("legend")!==c&&d!==c.dom&&d!==this.el.dom){return}this.el.set({"aria-expanded":this.collapsed});this[this.collapsed?"expand":"collapse"]()}});Ext.define("SYNO.ux.InverseFieldSet",{extend:"SYNO.ux.FieldSet",onRender:function(b,a){this.callParent(arguments);this.header.setVisibilityMode(Ext.Element.DISPLAY);this.header.hide();this.bottomLegend=this.el.createChild({cls:"x-fieldset-bottomlegend",children:[{cls:"x-tool x-tool-toggle"},{tag:"span",cls:"x-fieldset-bottomlegend-text",html:Ext.util.Format.htmlEncode(this.collapsedTitle||this.title)}]});if(this.bottomLegend){if(true===this.collapsible){this.bottomLegend.addListener("click",this.onClickBottom,this)}else{this.bottomLegend.addClass("syno-ux-fieldset-default")}this.bottomLegend.setStyle({display:"block",width:"100%",paddingLeft:30*this.indent+"px"})}this.addClass("syno-ux-inverse-fieldset")},setCollapsedTitle:function(a){this.collapsedTitle=a},setExpandedTitle:function(a){this.expandedTitle=a},expand:function(){this.callParent(arguments);this.bottomLegend.child(".x-fieldset-bottomlegend-text").update(this.expandedTitle||this.title)},collapse:function(){this.callParent(arguments);this.bottomLegend.child(".x-fieldset-bottomlegend-text").update(this.collapsedTitle||this.title)},onClickBottom:function(){this[this.collapsed?"expand":"collapse"]()}});Ext.reg("syno_fieldset",SYNO.ux.FieldSet);Ext.reg("syno_inversefieldset",SYNO.ux.InverseFieldSet);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.FileButton",{extend:"Ext.form.TextField",xtype:"syno_filebutton",buttonOnly:false,buttonMargin:6,inputType:"file",constructor:function(a){this.buttonText=_JSLIBSTR("uicommon","browse");this.callParent(arguments);this.addListener("afterrender",this.updateFileInputStyle);this.addClass("syno-ux-filebutton")},onRender:function(b,a){var c=this,d;c.callParent(arguments);c.wrap=c.el.wrap({cls:"syno-ux-filebutton-wrap"});c.buttonWrap=c.el.wrap({cls:"syno-ux-filebutton-btn-wrap"});if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);c.createButton();c.createFileTextField();d=c.fileTextField.getEl();d.dom.removeAttribute("name");if(c.buttonOnly){c.container.setStyle("min-height","28px");c.fileTextField.setVisible(false)}this.positionEl=this.wrap;c.el.on("mouseover",this.onMouseOverFileInput,this);c.el.on("mouseout",this.onMouseOutFileInput,this);c.el.on("mousedown",this.onMouseDownFileInput,this);c.el.on("mouseup",this.onMouseUpFileInput,this)},createButton:function(){var a=this;a.button=new SYNO.ux.Button(Ext.apply({text:a.buttonText,renderTo:a.buttonWrap,style:a.buttonOnly?"":"margin-left:"+a.buttonMargin+"px",listeners:{afterrender:function(){this.getEl().insertAfter(a.getEl());this.btnEl.set({tabIndex:-1})}},handler:function(){a.el.dom.click()}},a.buttonConfig));a.button.addClass("syno-ux-filebutton-btn")},createFileTextField:function(){var a=this;a.fileTextField=new SYNO.ux.TextField(Ext.apply({width:184,renderTo:a.buttonWrap,readOnly:true,disabled:true,listeners:{afterrender:function(){this.removeClass("x-item-disabled");this.getEl().insertBefore(a.buttonWrap)}}},a.textConfig));a.fileTextField.addClass("syno-ux-filebutton-txt");a.el.on("change",this.onFileChange,a)},updateFileInputStyle:function(){var a=this;a.setWidth(a.button.getWidth());a.setHeight(a.button.getHeight());if(!a.buttonOnly){a.el.setStyle({"margin-left":a.buttonMargin+"px"})}},onMouseOverFileInput:function(){if(this.button){this.button.addClass("x-btn-over")}},onMouseOutFileInput:function(){if(this.button){this.button.removeClass("x-btn-over");this.button.removeClass("x-btn-click")}},onMouseDownFileInput:function(){if(this.button){this.button.addClass("x-btn-click")}},onMouseUpFileInput:function(){if(this.button){this.button.removeClass("x-btn-click")}},onFileChange:function(){var a=this.el.dom.value;this.fileTextField.setValue(a.replace(/^C:\\fakepath\\/gi,""));this.fireEvent("change",a)},reset:function(){var a=this;if(a.rendered){a.fileTextField.setValue("");a.el.dom.value=""}a.callParent()},onDisable:function(){this.callParent();this.disableItems(true)},onEnable:function(){this.callParent();this.disableItems(false)},disableItems:function(a){var c=this.fileTextField,b=this.button;if(c){if(a){c.addClass("x-item-disabled")}else{c.removeClass("x-item-disabled")}}if(b){b.setDisabled(a)}},onDestroy:function(){Ext.destroyMembers(this,"fileTextField","button");this.callParent()}});Ext.define("SYNO.ux.HorizontalGridPanel",{extend:"SYNO.ux.GridPanel",enableScrollMenu:true,visibleCount:5,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-horizontal-grid");this.mon(this,"viewready",function(){this.mon(this,"leftScrollerClick",this.scrollLeft,this);this.mon(this,"rightScrollerClick",this.scrollRight,this)},this)},getFirstShownIdx:function(){var a=this.getColumnModel(),c=a.config,b;for(b=0;b=0;b--){if(!c[b].hidden){return b}}},getShowableIdx:function(f,g,c){var b=this.getColumnModel(),h=b.config,e=0,a=f,d;if(c>0){for(d=f;d=0&&e<=g;d--){if(!h[d].forceHidden){a=d;e++}}}}return a},hideShowCols:function(d,c,b,g,a){var e,f=d.config;for(e=g;e<=a;e++){if(!f[e]||f[e].forceHidden){continue}d.setHidden(e,false)}for(e=c;e<=b;e++){if(!f[e]||f[e].forceHidden){continue}d.setHidden(e,true)}},updateVisibleCols:function(){var b=this.getColumnModel(),c=b.config,d,a;d=this.getFirstShownIdx();a=this.getShowableIdx(d,this.visibleCount-1,1);this.hideShowCols(b,0,d-1,d,a);this.hideShowCols(b,a+1,c.length-1,d,a)},getVisibleColumnCount:function(){var c=this.colModel.config,b=0,a;for(a=0;a=b||a>=b){return}this.hideShowCols(c,b,d,e,a)},scrollRight:function(){var c=this.getColumnModel(),d=c.config,b=this.getFirstShownIdx(),e=this.getShowableIdx(b,this.visibleCount-1,1),f=this.getShowableIdx(e,1,1),a=this.getShowableIdx(f,this.visibleCount-1,1);if(f>=d.length||f<=e||a<=e){return}this.hideShowCols(c,b,e,f,a)},getView:function(){if(!this.view){this.view=new SYNO.ux.FleXcroll.grid.HorizontalGridView(this.viewConfig)}return this.view}});Ext.reg("syno_h_gridpanel",SYNO.ux.HorizontalGridPanel);Ext.define("SYNO.ux.FixColGrid",{extend:"Ext.Panel",visibleCount:5,constructor:function(a){var c=this.initGrids(a),b={layout:"border",items:[this.getWestGrid(),this.getCenterGrid()]};Ext.apply(b,c);this.callParent([b]);this.addClass("syno-ux-fixcol-grid");this.mon(this.centerGrid,"bodyscroll",this.syncWestGridScroll,this)},splitColumns:function(a,e){var b,d=[],c=a.config;e=e||this.rowHeaderId;if(e){Ext.each(c,function(f){if(f.dataIndex!==e){d.push(f)}else{b=f}})}else{b=c[0];d=c.slice(1)}return{west:(b)?[b]:null,center:(d.length>0)?d:null}},reconfigure:function(a,c,f){var h=this.westGrid,d=this.centerGrid,b,g,e;b=this.splitColumns(c,f);if(!b.west||!b.center){throw"west column or center column not found"}if(h){g=new Ext.grid.ColumnModel(b.west);h.reconfigure(a,g)}if(d){e=new Ext.grid.ColumnModel(this.initHiddenColumns(null,b.center));d.reconfigure(a,e)}if(this.store){this.store=null}if(this.colModel){this.colModel=null}this.store=a;this.colModel=c},getStore:function(){return this.store},getColumnModel:function(){return this.colModel},initHiddenColumns:function(a,d){var c=(a&&a.visibleCount)?a.visibleCount:this.visibleCount,b;for(b=c;b=0){c["_styled"+d]=c[d];c[d]=e}else{c[d]=e}},this)},viewConfig:{replaceArr:["initTemplates"],initTemplates:function(){this.templates=this.templates||{};Ext.applyIf(this.templates,{master:new Ext.Template('
','
','
','
','
{header}
',"
",'
','
',"
",'
','','
{body}
',"
","
",'
 
','
 
',"
")});this._styledinitTemplates.apply(this,arguments)}},gridConfig:{minMenuItemCnt:3,replaceArr:["afterRender"],shouldHdMenuShown:function(){var a=this.getColumnModel();return this.enableHdMenu&&a.getColumnCount()>=this.minMenuItemCnt},afterRender:function(){this.addClass("hide-org-hd-menu");this._styledafterRender.apply(this,arguments);this.headerBtnWrap=this.el.child(".x-grid3-header-bwrap");if(this.headerBtnWrap){this.headerBtn=new Ext.Component({cls:"syno-ux-grid-hd-btn",renderTo:this.headerBtnWrap});if(Ext.isFunction(this.addManagedComponent)){this.addManagedComponent(this.headerBtn)}this.headerBtn.el.on("click",this.onHeaderBtnClick,this);this.handleHdMenuVisibility();var a=this.getColumnModel();a.on("configchange",this.handleHdMenuVisibility.createDelegate(this))}},handleHdMenuVisibility:function(){if(!this.headerBtnWrap||!this.headerBtn){return}if(this.enableColumnHide&&this.shouldHdMenuShown()){this.headerBtn.show()}else{this.headerBtn.hide()}},isHiddenColumn:function(a){return !a.hidden},handleHdMenuItemClick:function(c){var a=this.getColumnModel(),d=c.getItemId(),b=a.getIndexById(d.substr(4));if(b!==-1){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=1){return}a.setHidden(b,c.checked)}},onHeaderBtnClick:function(b,g,e){var d,a=this.getColumnModel(),h,f;if(!this.headerMenu){this.headerMenu=new SYNO.ux.Menu({items:[]});this.headerMenu.on("itemclick",this.handleHdMenuItemClick,this)}this.headerMenu.removeAll();for(d=0;dthis.minMenuItemCnt){this.enableAllHdMenuItems()}else{this.enableUncheckedAndDisableCheckedHdMenuItems()}},enableAllHdMenuItems:function(){for(var a=0;a','
','
','
','
{header}
',"
",'
','
',"
",'
','
{body}
','',"
","
",'
 
','
 
',"");this.templates.row=new Ext.Template('
','','',"{cells}",(this.enableRowBody?'':""),"","
{body}
","
");this.templates.treeCell=new Ext.XTemplate('','
','
','{nodeIndent}','','',"
",'
',"{value}","
","
","");this.templates.rowInner=new Ext.XTemplate('','','{cells}',(this.enableRowBody?'':""),"","
{body}
")},refreshRow:function(c){var t=this,f=t.ds,p=t.cm.getColumnCount(),b=t.getColumnData(),k=p-1,a=["x-grid3-row"],j={tstyle:String.format("width: {0};",this.getTotalWidth())},e=[],m=this.templates.cell,h=this.getLastVisibleCol(),l,g,d,o,n,s,q,r=c.node;if(Ext.isNumber(c)){l=c;c=f.getAt(l)}else{l=f.indexOf(c)}if(!c||l<0){return}for(s=0;s')}else{c.unshift('')}}a=a.parentNode}return c.join("")},getTreeNodeIcon:function(b){var a=b.isLast()?"x-tree-elbow-end":"x-tree-elbow";if(b.hasChildNodes()&&!this.staticTree){if(b.expanded){a+="-minus"}else{a+="-plus"}a+=" syno-gridtree-node-control"}return a},doRender:function(g,l,p,a,o,u){var f=[];var e;var c;var b;var r={};var v={tstyle:"width:"+this.getTotalWidth()+";"};var d;var y=[];var q;var h=this.getLastVisibleCol();var k=this.getFirstVisibleCol();for(var t=0,x=l.length;t');y.push("")}else{while(y.length>d.depth){f.push(y.pop())}}if(this.staticTree){z.push("syno-gridtree-static")}if(s.isLeaf()){z.push("x-tree-node-leaf")}else{if(s.expanded){z.push("x-tree-node-expanded")}else{z.push("x-tree-node-collapsed")}}}if(u&&((m+1)%2===0)){z.push("x-grid3-row-alt")}if(d.dirty){z.push(" x-grid3-dirty-row")}v.cols=o;v.nodeId=s?s.id:Ext.id();v.cells=e.join("");if(this.getRowClass){z.push(this.getRowClass(d,m,v,p))}v.alt=z.join(" ");f[f.length]=this.templates.row.apply(v)}while(y.length){f.push(y.pop())}return f.join("")},afterRender:function(){this.callParent(arguments);if(!this.staticTree){this.mainBody.on("click",function(b,a){this.toggleNode(a)},this,{delegate:".syno-gridtree-node-control"});this.mainBody.on("dblclick",function(b,a){this.toggleNode(a)},this,{delegate:".x-tree-node-el"})}},refresh:function(){this.callParent(arguments);this.hideCollapseNodes()},hideCollapseNodes:function(){var d=this.grid,b=d.store,a=d.view,c=0,g,f,e;while(c=0){b["_"+d]=b[d];b[d]=e}else{b[d]=e}},this)},gridConfig:{handleHdMenuItemClick:function(c){var a=this.getColumnModel(),d=c.getItemId(),e=d.indexOf("group-")===0,b;if(e){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=c.cols.length){return}a.collayout[c.groupIndex].hidden=c.checked;Ext.each(c.cols,function(f){a.setHidden(f,c.checked)},this)}else{b=a.getIndexById(d.substr(4));if(b!==-1){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=1){return}a.collayout[c.groupIndex].hidden=c.checked;a.setHidden(b,c.checked)}}},onHeaderBtnClick:function(n,h,b){var e,l=this.getColumnModel(),f,j,m,a,k,d=l.collayout;if(!this.headerMenu){this.headerMenu=new SYNO.ux.Menu({items:[]});this.headerMenu.on("itemclick",this.handleHdMenuItemClick,this)}this.headerMenu.removeAll();for(e=0;e1)?f.children.map(function(g){return g.mappingIdx}):[m],groupIndex:f.groupIndex,hideOnClick:false,htmlEncode:(!k)?j.headerHtmlEncode:f.headerHtmlEncode});this.headerMenu.add(a)}this.headerMenu.show(h,"tr-br?")}},viewConfig:{colspanHeaderSelector:".x-grid3-cell-colspan",rowspanHeaderSelector:".x-grid3-cell-rowspan",initTemplates:function(){var a=this.templates||{};Ext.applyIf(a,{header:new Ext.Template('',"","{cells}","","
")});this._initTemplates.apply(this,arguments);var b=this.templates||{};if(!b.gcell){b.gcell=new Ext.XTemplate('','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
","")}this.templates=b},getHeaderCellHTML:function(j){var h=this.cm,i=j.mappingIdx,g=j.grouped,c="x-grid3-grouped-header ",b=h.getColumnAt(i),f,k=false,e=false,a=this.grid.getView().getLastVisibleCol(),d=this.grid.getView().getFirstVisibleCol();c+=(i===0)?"x-grid3-cell-first ":"";if(!h.isSortable(i)||g){c+="x-grid3-cell-disable-sort "}c+=(i==(h.getColumnCount()-1))?"x-grid3-cell-last ":"";c+=(j.rowspan&&j.rowspan>1)?"x-grid3-cell-rowspan ":"";c+=(j.colspan&&j.colspan>1)?"x-grid3-cell-colspan ":"";if(g){k=j.children.some(function(l){return l.mappingIdx===a});e=j.children.some(function(l){return l.mappingIdx===d})}else{k=i===a;e=i===d}if(k){c+="x-grid3-cell-last-visible "}if(e){c+="x-grid3-cell-first-visible "}if(j.isChildren){if(j.childIndex===h.collayout[j.groupIndex].children.length-1){c+="x-gri3-child-last "}}f={rowspan:j.rowspan||1,colspan:j.colspan||1,isChildren:Ext.isBoolean(j.isChildren)?j.isChildren:false,childIndex:Ext.isNumber(j.childIndex)?j.childIndex:-1,groupIndex:j.groupIndex,col:(j.colspan>1)?j.children.map(function(l){return l.mappingIdx}).join("-"):i,id:(!g)?h.getColumnId(i):Ext.id(),value:(!g)?h.getColumnHeader(i)||"":j.header||"",style:(!g)?this.getColumnStyle(i,true):(j.hidden)?"display: none; ":"",css:c,tooltip:(!g)?this.getColumnTooltip(i):"",htmlEncode:(!g)?!!b.headerHtmlEncode:!!j.headerHtmlEncode,role:(!g)?Ext.isFunction(b.getHeaderRole)?b.getHeaderRole():"columnheader":"columnheader",ariaAttr:(!g)?Ext.isFunction(b.getHeaderAriaAttr)?b.getHeaderAriaAttr():"":""};return this.templates.gcell.apply(f)},renderHeaders:function(){var h=this.templates,b=[],f=this.cm.collayout,k,a,c=[],g=[],e,d,l=[];for(e=0;e'+c.join("")+"");l.push(''+g.join("")+"");b=h.header.apply({cells:l.join(""),tstyle:String.format("width: {0};",this.getTotalWidth())});return b},onDataChange:function(){this.refresh(true);this.updateHeaderSortState();this.syncFocusEl(0);this.updateSpanHeaderWidth()},onColumnMove:function(a,c,b){this.indexMap=null;this.refresh(true);this.restoreScroll(this.getScrollState());this.afterMove(b);this.grid.fireEvent("columnmove",c,b);this.updateSpanHeaderWidth()},updateSpanHeaderWidth:function(){var f=this.cm.getColumnCount(),b=this.mainHd.child("table"),a=b.dom,c=[],d,e;if(a.firstChild.nodeName.toUpperCase()==="COLGROUP"){a.removeChild(a.childNodes[0])}for(d=0;dl.newGroup;b=m[l.oldGroup].mappingIdx;if(q){k=(l.pt==="before")?l.newGroup:l.newGroup+1}else{k=(l.pt==="before")?l.newGroup-1:l.newGroup}if(l.oldGroup===k){return false}f=m.splice(l.oldGroup,1)[0];m.splice(k,0,f);SYNO.ux.plugin.GroupHeaderGrid.prototype.constructHeaderLayout(p);o=m[k].mappingIdx;p.moveColumn(b,o,(f.grouped)?f.children.length:1)}else{q=l.oldChildIndex>l.newChildIndex;b=m[l.oldGroup].children[l.oldChildIndex].mappingIdx;if(q){k=(l.pt==="before")?l.newChildIndex:l.newChildIndex+1}else{k=(l.pt==="before")?l.newChildIndex-1:l.newChildIndex}if(k===l.oldChildIndex){return false}a=m[l.oldGroup].children[l.oldChildIndex];m[l.oldGroup].children.splice(l.oldChildIndex,1);m[l.oldGroup].children.splice(k,0,a);SYNO.ux.plugin.GroupHeaderGrid.prototype.constructHeaderLayout(p);o=m[l.oldGroup].children[k].mappingIdx;p.moveColumn(b,o,1)}return true}return false}},initGroupedColLayout:function(o){var b=o.groups,d={},k=o.getColumnCount(),l,f,e,h,n,m=[],a,p=function(c){return{dataIndex:c.dataIndex,width:c.width,header:c.header}};n=0;for(f=0;fe){e=c.width;a=f}}},this);if(e&&a){e=e+a.textEl.getFrameWidth("lr")+a.textEl.getMargins("lr")+a.iconEl.getWidth()+a.iconEl.getMargins("lr")+a.el.getFrameWidth("r")+a.el.getMargins("lr");d=a.el.child("."+a.itemCls.split(" ").join("."));if(d){e=e+d.getFrameWidth("lr")+d.getMargins("lr")}this.ul.setWidth(e)}},onMenuShow:function(){this.resetWidthForFlexcroll()},getAriaEl:function(){return this.ul},focus:function(){if(!this.hidden){this.doFocus()}},focusOnRootOpenPt:function(){var a=this;while(a.parentMenu){a=a.parentMenu}if(a.getOpenPt){a.getOpenPt().focus()}}});Ext.define("SYNO.ux.ModuleList",{extend:"Ext.tree.TreePanel",listItems:undefined,dataUrl:undefined,searchCfg:undefined,findNext:true,updateScrollBarEventNames:["afterlayout","resize","expandnode","collapsenode"],useARIA:true,defaultCollapsible:true,htmlEncode:true,constructor:function(b){var a=this.createLoader(b);var c={border:false,rootVisible:false,useArrows:true,animate:true,width:240,padding:"0px 12px 0 12px",autoScroll:false,autoFlexcroll:true,loader:a,root:new Ext.tree.AsyncTreeNode({id:"module_root",leaf:false,expanded:true,text:"root",loader:a})};this.addToolbar(b);Ext.apply(c,b);if(this.useARIA===true){c=this.addPlugins(SYNO.ux.TreePanelARIA,c)}this.callParent([c]);this.addClass("syno-ux-modulelist");this.getSelectionModel().on("beforeselect",this.onBeforeSelect,this);this.mon(this.getSelectionModel(),"selectionchange",this.protectFocus,this);this.mon(this,"beforecollapsenode",this.onBeforeCollapseNode,this)},onBeforeCollapseNode:function(a){if(a&&a.attributes&&a.attributes.collapsible===false){return false}},addToolbar:function(a){if(a.tbar){return}if(!a.searchCfg){return}var b={tbar:{height:28,items:[this.searchField=new SYNO.TextFilter(a.searchCfg)]}};Ext.apply(a,b)},createLoader:function(a){return new SYNO.ux.ModuleList.Loader({baseAttrs:a.baseAttrs,collapsible:a.defaultCollapsible,moduleList:this,disableCaching:!!a.disableCaching,dataUrl:a.dataUrl,listItems:a.listItems?a.listItems:null,loadParam:a.loadParam,requestMethod:"GET"})},onBeforeSelect:function(a,b,c){if(!b.leaf){return false}return true},getLocalizedString:function(a){return a},selectModule:function(a){var b,c;b=this.getNodeById(a);if(b){c=this.getSelectionModel().select(b)}return c},setModuleVisible:function(b,a){var c;c=this.getNodeById(b);if(c){if(a){c.getUI().show()}else{c.getUI().hide()}this.updateScrollbar(this.body.dom)}},setCategoryVisible:function(h,a){var f,c;var e=[];for(var b in this.nodeHash){var d=this.nodeHash[b];if(d.attributes.isCategory){e.push(d);if(d.attributes.originText===h){f=d}}}if(f){if(a){f.getUI().show()}else{f.getUI().hide()}}for(c=0;c=0;c--){var g=e[c];if(!g.getUI().node.hidden){g.getUI().wrap.classList.add("x-tree-node-category-last");break}}},removeModule:function(a){var b;b=this.getNodeById(a);if(b){b.remove()}},insertModule:function(a,d){var c,b;b=this.getRootNode();c=this.getNodeById(d);if(b&&c){b.insertBefore(a,c)}},appendModule:function(a){var b;b=this.getRootNode();if(b){b.appendChild(a)}},initComponent:function(){this.callParent(arguments);this.addEvents("rootnoderendered","noderendered")},registerNode:function(a){if(this.nodeHash[a.id]===undefined){a.on("noderender",this.onNodeRender,this)}this.nodeHash[a.id]=a},unregisterNode:function(a){a.un("noderender",this.onNodeRender,this);delete this.nodeHash[a.id]},onNodeRender:function(a){if(a.isRoot){this.fireEvent("rootnoderendered",a,this);if(!this.rootVisible){return}}this.fireEvent("noderendered",a,this)},getAriaEl:function(){if(!this.ariaEl){this.ariaEl=this.body}return this.ariaEl},protectFocus:function(b,c){if(!this.rendered||!this.autoFlexcroll){return}var a=this.body;a.dom.focusProtect=!!c;if(c){c.ensureVisible()}},setNotification:function(c,a){var b=this.getNodeById(c);if(!b||!a){return}var d=Ext.DomQuery.select(".syno-ux-count-bubble",b.getUI().elNode);if(d.length>0){if(parseInt(d[0].innerText,10)===a&&!Ext.fly(d[0]).hasClass("count-bubble-hide")){return}d[0].innerText=a;d[0].className="syno-ux-count-bubble";setTimeout(function(){d[0].className="syno-ux-count-bubble count-bubble-show"},0)}else{Ext.DomHelper.append(b.getUI().elNode,"
"+a+"
")}},clearNotification:function(b){var a=this.getNodeById(b);if(!a){return}var c=Ext.DomQuery.select(".syno-ux-count-bubble",a.getUI().elNode);if(c.length>0){c[0].className="syno-ux-count-bubble count-bubble-hide"}}});Ext.define("SYNO.ux.ModuleList.Loader",{extend:"Ext.tree.TreeLoader",applyLoader:true,constructor:function(a){this.callParent(arguments)},load:function(b,c,a){if(this.clearOnLoad){while(b.firstChild){b.removeChild(b.firstChild)}}if(this.doPreload(b)){this.runCallback(c,a||b,[b])}else{if(this.directFn||this.dataUrl||this.url||this.listItems){this.requestData(b,c,a||b)}}},doPreload:function(a){a.attributes.children=a.attributes.items;return this.callParent(arguments)},createNode:function(a){if(this.baseAttrs){Ext.applyIf(a,this.baseAttrs)}if(this.applyLoader!==false&&!a.loader){a.loader=this}if(!a.uiProvider){a.uiProvider=SYNO.ux.ModuleList.TreeNodeUI}if(a.fn){a.id=a.fn}a.originText=a.text;a.text=this.moduleList.getLocalizedString(a.text);if(a.nodeType){return new Ext.tree.TreePanel.nodeTypes[a.nodeType](a)}else{if(!a.items){a.leaf=true;return new Ext.tree.TreeNode(a)}else{a.collapsible=Ext.isDefined(a.collapsible)?a.collapsible:this.collapsible;a.singleClickExpand=true;if(false!==a.expanded){a.expanded=true}a.isCategory=true;return new Ext.tree.AsyncTreeNode(a)}}},requestData:function(c,d,b){if(c.isRoot&&this.listItems){this.processResponse(null,c,d,b);return}if(this.fireEvent("beforeload",this,c,d)!==false){if(this.directFn){var a=this.getParams(c);a.push(this.processDirectResponse.createDelegate(this,[{callback:d,node:c,scope:b}],true));this.directFn.apply(window,a)}else{this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,disableCaching:!!this.disableCaching,scope:this,argument:{callback:d,node:c,scope:b},params:this.getParams(c)})}}else{this.runCallback(d,b||c,[])}},getLoadParam:function(){return this.loadParam},getParams:function(){var a=this.callParent(arguments);Ext.apply(a,this.getLoadParam()||{});return a},processResponse:function(d,c,j,k){var l,a;try{if(this.listItems){a=this.listItems}else{if(d){l=d.responseText;a=d.responseData||Ext.decode(l);if(a.listItems){a=a.listItems}}}c.beginUpdate();for(var f=0,g=a.length;f
','',this.indentMarkup,"",'','',e?('':"/>")):"",'',(j)?Ext.util.Format.htmlEncode(d.text):d.text,"
",'',""].join("");if(l!==true&&d.nextSibling&&(b=d.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,c)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",i,c)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var h=this.elNode.childNodes;this.indentNode=h[0];this.ecNode=h[1];this.iconNode=h[2];var g=3;if(e){this.checkbox=h[3];this.checkbox.defaultChecked=this.checkbox.checked;g++}this.anchor=h[g];this.textNode=h[g].firstChild}});Ext.reg("syno_modulelist",SYNO.ux.ModuleList);Ext.ns("SYNO.ux");SYNO.ux.NumberField=Ext.extend(Ext.form.NumberField,{msgTarget:"itip",validateOnBlur:true,validationEvent:"blur",allowDecimals:false,allowNegative:false,allowBlank:false,overCls:"syno-ux-numberfield-hover",constructor:function(a){a=SYNO.ux.Utils.setTextMaxLenConfig(a);SYNO.ux.NumberField.superclass.constructor.call(this,a);this.addClass("syno-ux-numberfield")},onRender:function(b,a){SYNO.ux.NumberField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)}});Ext.reg("syno_numberfield",SYNO.ux.NumberField);Ext.define("SYNO.ux.PageLessToolbar",{extend:"Ext.Toolbar",displayMsg:null,refreshText:_JSLIBSTR("extlang","refresh"),showRefreshBtn:true,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-pagingtoolbar")},initComponent:function(){var a=Ext.Toolbar;this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this,hidden:(this.showRefreshBtn)?false:true});this.items=this.items||[];this.items=this.items.concat(["->",this.displayItem=new a.TextItem({})]);if(this.showRefreshBtn){this.items.push("-");this.items.push(this.refresh);this.items.push(this.loading=new a.Button({tooltip:_JSLIBSTR("uicommon","searching"),overflowText:_JSLIBSTR("uicommon","searching"),iconCls:"x-tbar-loading-process",hidden:true}))}this.callParent(arguments);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.bindStore(this.store,true)},bindStore:function(b,c){var a;if(!c&&this.store){if(b!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("datachanged",this.onDataChanged,this);this.store.un("exception",this.onLoadError,this)}if(!b){this.store=null}}if(b){b=Ext.StoreMgr.lookup(b);b.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,datachanged:this.onDataChanged,exception:this.onLoadError});a=true}this.store=b;if(a){this.onLoad(b,null,{})}},unbind:function(){this.bindStore(null)},bind:function(a){this.bindStore(a)},onFirstLayout:function(){if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded)}},onLoadError:function(){if(!this.rendered){return}this.refresh.enable()},onLoad:function(a,b){if(!this.rendered){this.dsLoaded=[a,b];return}this.refresh.enable();this.updateInfo();this.fireEvent("change",this)},onDataChanged:function(){this.updateInfo();this.fireEvent("change",this)},updateInfo:function(){if(this.displayItem){var a=this.displayMsg;if(null===this.displayMsg){if(0===this.store.getTotalCount()){a=_JSLIBSTR("uicommon","empty_grid")}else{a="{0} "+_JSLIBSTR("uicommon",(1")}else{this.items=c.concat("->",b)}if(this.displayInfo){this.items.push(this.displayItem=new a.TextItem({cls:"syno-paging-display-text"}))}this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this,hidden:(this.showRefreshBtn)?false:true});if(this.showRefreshBtn){this.items.push("-");this.items.push(this.refresh);this.items.push(this.loading=new a.Button({tooltip:_JSLIBSTR("uicommon","searching"),overflowText:_JSLIBSTR("uicommon","searching"),iconCls:"x-tbar-loading-process",hidden:true}))}this.curActiveBtn=this.btn3;delete this.buttons;Ext.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.cursor=0;this.bindStore(this.store,true)},onFirstLayout:function(){var b,a;SYNO.ux.PagingToolbar.superclass.onFirstLayout.call(this);this.addListener("change",this.updateButtonNumber,this);this.addListener("resize",function(){this.updateButtonNumber()},this);if(this.refresh&&this.refresh.rendered){if(this.refresh.rendered){this.refresh.btnEl.set({"aria-label":this.refreshText})}else{this.refresh.mon(this.refresh,"afterrender",this.refresh.btnEl.set.createDelegate(this.refresh,[{"aria-label":this.refreshText}]))}}for(b=1;b<=5;b++){a=this["btn"+b];a.nextBtn=(this["btn"+(b+1)])?this["btn"+(b+1)]:this.next;a.prevBtn=(this["btn"+(b-1)])?this["btn"+(b-1)]:this.prev;a.btnEl.set({"aria-label":(a.disabled)?"":String.format(_JSLIBSTR("uicommon","goto_page"),a.text)});a.btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(a));a.btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(a))}this.first.nextBtn=this.prev;this.last.prevBtn=this.next;Ext.each(["first","last"],function(c){this[c].btnEl.set({"aria-label":this[c+"Text"]});this[c].btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(this[c]));this[c].btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(this[c]))},this);this.prev.prevBtn=this.first;this.prev.nextBtn=this.btn1;this.next.prevBtn=this.btn5;this.next.nextBtn=this.last;Ext.each(["prev","next"],function(c){this[c].btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(this[c]));this[c].btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(this[c]))},this)},focusOnNextBtn:function(){var a=this;do{a=a.nextBtn}while(a&&(!a.isVisible()||a.disabled));if(a){this.btnEl.set({tabIndex:-1});a.btnEl.set({tabIndex:0});a.focus();this.curActiveBtn=a}},focusOnPrevBtn:function(){var a=this;do{a=a.prevBtn}while(a&&(!a.isVisible()||a.disabled));if(a){this.btnEl.set({tabIndex:-1});a.btnEl.set({tabIndex:0});a.focus();this.curActiveBtn=a}},getTotalPage:function(){var a=this.getPageData();return a.pages},setFocusPage:function(b){var a=this.getTotalPage();if(!Ext.isNumber(b)||b<=0||b>a){return}this.setBtnText(this.btn1,b-2>0?b-2:"");this.setBtnText(this.btn2,b-1>0?b-1:"");this.setBtnText(this.btn3,b);this.setBtnText(this.btn4,b+1<=a?b+1:"");this.setBtnText(this.btn5,b+2<=a?b+2:"")},setBtnText:function(a,b){a.text=b;if(a.el){a.btnEl.update(b||" ");a.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","goto_page"),a.text)})}if(""===b){a.setDisabled(true)}else{a.setDisabled(false)}a.removeClass("x-btn-text-icon");a.addClass("x-btn-icon");return a},jumpPageByOffset:function(c){var b=this.getPageData().activePage;var a=this.getPageData().pages;if(b+c<=1){this.moveFirst()}else{if(b+c>=a){this.moveLast()}else{this.doLoad(this.cursor+c*this.pageSize)}}},jumpPageHandler:function(a,c){var d=0;if(a===this.prev){d=-1*this.jumpOffset}else{if(a===this.next){d=this.jumpOffset}else{d=a.getText()-this.getPageData().activePage}}this.jumpPageByOffset(d)},setButtonsVisible:function(a){this.displayButtons=a;this.first.setVisible(a);this.prev.setVisible(a);this.btn1.setVisible(a);this.btn2.setVisible(a);this.btn3.setVisible(a);this.btn4.setVisible(a);this.btn5.setVisible(a);this.next.setVisible(a);this.last.setVisible(a);if(a){this.updateButtonNumber()}},setJumpOffset:function(a){this.jumpOffset=a;this.prev.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","pre_x_pages"),this.jumpOffset)});this.next.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","next_x_pages"),this.jumpOffset)});this.prev.setTooltip(String.format(_JSLIBSTR("uicommon","pre_x_pages"),this.jumpOffset));this.next.setTooltip(String.format(_JSLIBSTR("uicommon","next_x_pages"),this.jumpOffset))},setTabbable:function(c){var a=(c)?0:-1,b=[this.first,this.prev,this.btn1,this.btn2,this.btn3,this.btn4,this.btn5,this.next,this.last,this.refresh];Ext.each(b,function(d){d.btnEl.set({tabIndex:a})})},updateInfo:function(){if(this.displayItem&&this.displayCountMsg===this.displayMsg){this.displayCountMsg="{2} "+_JSLIBSTR("uicommon",(1this.store.getCount());this.callParent(arguments)},updateButtonNumber:function(){if(!this.displayButtons){return}var a=this.getTotalPage();this.setJumpOffset(5);this.btn1.setVisible(true);this.btn2.setVisible(true);this.btn4.setVisible(true);this.btn5.setVisible(true);if(a<=3){this.setJumpOffset(3);this.btn1.setVisible(false);this.btn5.setVisible(false)}}});Ext.reg("syno_paging",SYNO.ux.PagingToolbar);Ext.reg("syno_pageless",SYNO.ux.PageLessToolbar);Ext.define("SYNO.ux.Panel",{extend:"Ext.Panel",xtype:"syno_panel",title:"Unknown Title",border:false,frame:false,header:false,autoFlexcroll:false,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-panel")},scrollTo:function(a){this.fleXcrollTo(a)}});Ext.ns("SYNO.ux");Ext.define("SYNO.ux.RadioGroup",{extend:"Ext.form.RadioGroup",vertical:true,columns:1,hideLabel:true,defaultType:"syno_radio",onRender:function(){if(this.indent){Ext.each(this.items,function(b){var a=(Ext.isNumber(b.indent))?this.indent+b.indent:this.indent;b.indent=a},this)}this.callParent(arguments);this.el.dom.setAttribute("role","radiogroup")}});Ext.define("SYNO.ux.Radio",{extend:"SYNO.ux.Checkbox",checkIconCls:"syno-ux-radio-icon",wrapCls:"syno-ux-form-radio-wrap",defaultAutoCreate:{tag:"input",type:"radio",role:"radio",autocomplete:"off"},onClick:function(a){if(!this.disabled&&!this.readOnly){this.setValue(true)}},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,getGroupValue:function(){var b=this.el.up("form")||this.el.up(".x-panel")||Ext.getBody();var a=b.select('input[name="'+this.el.dom.name+'"]');var d=null;a.each(function(e){var c=Ext.getCmp(e.id);if(c.checked){d=c.value;return false}});return d},getInputValue:function(){var a=Ext.value(this.value,"");if(a===this.emptyText){a=""}return a},setValue:function(a){var b;if(typeof a=="boolean"){SYNO.ux.Radio.superclass.setValue.call(this,a)}else{if(this.rendered){b=this.getCheckEl().select('input[name="'+this.el.dom.name+'"]');b.each(function(d){var c=Ext.getCmp(d.dom.id);c.setValue((a===c.getInputValue()))},this)}}if(this.rendered&&this.checked){b=this.getCheckEl().select('input[name="'+this.el.dom.name+'"]');b.each(function(c){if(c.dom.id!=this.id){Ext.getCmp(c.dom.id).setValue(false)}},this)}if(this.rendered){this.updateCheckAttr()}return this},getCheckEl:function(){if(this.inGroup){return this.el.up(".x-form-radio-group")}return this.el.up("form")||this.el.up(".x-panel")||Ext.getBody()}});Ext.reg("syno_radio",SYNO.ux.Radio);Ext.reg("syno_radiogroup",SYNO.ux.RadioGroup);Ext.namespace("SYNO.ux");SYNO.ux.ScheduleMenuNav=Ext.extend(Ext.menu.MenuNav,function(){return{space:function(b,a){if(a.activeItem){b.stopPropagation();a.activeItem.onClick(b);a.fireEvent("click",this,a.activeItem);return true}}}}());SYNO.ux.ScheduleMenu=Ext.extend(Ext.menu.Menu,{weekdayItems:null,menuDailyId:null,menuWeekendId:null,menuWeekdaysId:null,shadow:false,cls:"syno-ux-schedule-menu",useARIA:true,constructor:function(a){if(this.useARIA===true){a=this.addPlugins(SYNO.ux.MenuARIA,a)}SYNO.ux.ScheduleMenu.superclass.constructor.call(this,a);this.initMenu()},onRender:function(b,a){SYNO.ux.ScheduleMenu.superclass.onRender.call(this,b,a);this.keyNav.destroy();this.keyNav=null;this.keyNav=new SYNO.ux.ScheduleMenuNav(this)},initMenu:function(){var c=[_JSLIBSTR("uicommon","schedule_sun"),_JSLIBSTR("uicommon","schedule_mon"),_JSLIBSTR("uicommon","schedule_tue"),_JSLIBSTR("uicommon","schedule_wed"),_JSLIBSTR("uicommon","schedule_thu"),_JSLIBSTR("uicommon","schedule_fri"),_JSLIBSTR("uicommon","schedule_sat")];this.add({text:_JSLIBSTR("uicommon","schedule_daily"),id:this.menuDailyId=Ext.id()},{text:_JSLIBSTR("uicommon","schedule_weekend"),id:this.menuWeekendId=Ext.id()},{text:_JSLIBSTR("uicommon","schedule_weekdays"),id:this.menuWeekdaysId=Ext.id()},"-");this.weekdayItems=[];for(var a=0;a");f.push('
');for(c=0;c<24;c++){f.push(String.format(e,c))}f.push("");var a=f.join("\n");f=[];var b='';f.push('');f.push('{field1}');for(c=0;c<24;c++){f.push(b)}f.push("");var g=f.join("\n");var d=new Ext.XTemplate('',a,'',g,"","
");return d},onSpeedButtonClick:function(b,a){if(b.pressed){return}var c=b.ownerCt.get(this.getSpeed());c.toggle(false);b.toggle(true);this.currentSpeed=b.itemId},getIndexesByDay:function(a){var c=[],b,e=a*24;for(var d=0;d<24;d++){b=e+d;c.push(b)}return c},onDayClick:function(a,c,d){var b=this.getSpeed();if(!d||!Ext.isNumber(d.index)){return}Ext.each(this.getIndexesByDay(d.index),function(g,e,f){this.setClassToNodeByIndex(g,b)},this)},onDayMouseEnter:function(a,b,c){if(!c||!Ext.isNumber(c.index)){return}Ext.fly(b).addClass("schedule-day-td-over");this.dataView.select(this.getIndexesByDay(c.index))},onDayMouseLeave:function(a,b,c){Ext.fly(b).removeClass("schedule-day-td-over");this.dataView.clearSelections()},getIndexesByHour:function(a){var c=[],b;for(var d=0;d<7;d++){b=a+(d*24);c.push(b)}return c},onHourClick:function(a,c,d){var b=this.getSpeed();if(!d||!Ext.isNumber(d.index)){return}Ext.each(this.getIndexesByHour(d.index),function(g,e,f){this.setClassToNodeByIndex(g,b)},this)},onHourMouseEnter:function(a,b,c){if(!c||!Ext.isNumber(c.index)){return}Ext.fly(b).addClass("schedule-hour-td-over");this.dataView.select(this.getIndexesByHour(c.index))},onHourMouseLeave:function(a,b,c){Ext.fly(b).removeClass("schedule-hour-td-over");this.dataView.clearSelections()},onSelectAllClick:function(b,f,g){var c=[],e=this.getSpeed(),d,a;for(d=0,a=7*24;d','','','',"","");SYNO.ux.SplitButton.superclass.onRender.call(this,b,a);SYNO.ux.Utils.setFormItemIndent(this);this.arrowBtnEl=this.el.child(this.arrowBtnSelector)},isClickOnArrow:function(a){if(a.target===this.arrowBtnEl.dom){return true}return this.callParent(arguments)}});Ext.reg("syno_splitbutton",SYNO.ux.SplitButton);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.StateButtonGroup",{extend:"Ext.Container",xtype:"syno_statebuttongroup",constructor:function(a){this.activeBtn=a.activeBtn||0;this.btnNum=Ext.isArray(a.buttons)?a.buttons.length:0;this.btnScope=a.btnScope||this;this.autoBtnWidth=a.autoBtnWidth;var b=Ext.apply({items:this.getItemConfig(a.buttons)},a);delete b.buttons;this.callParent([b]);this.addListener("afterlayout",this.updateBtnWidth,this,{single:true})},initComponent:function(){this.callParent(arguments);this.addEvents("beforeactivebuttonchange","activebuttonchange")},afterRender:function(){this.callParent(arguments);if(this.activeBtn!==undefined){var a=Ext.isObject(this.activeBtn)?this.activeBtn:this.items.get(this.activeBtn);delete this.activeBtn;this.setActiveBtn(a)}},updateBtnWidth:function(){if(false!==this.autoBtnWidth){var a=0;this.items.each(function(b){if(b.getWidth()>a){a=b.getWidth()}});this.items.each(function(b){b.setWidth(a)})}},getItemConfig:function(c){var a=[];for(var b=0;bd){fleXenv.fleXcrollMain(c)}else{return}}c.fleXcroll.updateScrollBars()});Ext.each(b.updateScrollBarEventNames,function(d){this.mon(this,d,function(){if(!c.fleXcroll){return}c.fleXcroll.updateScrollBars()},this)},b)},doTransform:function(){var m=Ext.getDom(this.transform),f=[];if(!this.store){this.mode="local";var h=[],a=m.options;for(var e=0,g=a.length;e0},getInputValue:function(){if(this.getValue().length===0){return""}return this.getValue().split(this.valueDelimiter)},onResize:function(a,c,d,b){SYNO.ux.SuperBoxSelect.superclass.onResize.call(this,a,c,d,b);this.autoSize()},onEnable:function(){SYNO.ux.SuperBoxSelect.superclass.onEnable.call(this);this.items.each(function(a){a.enable()});if(this.renderFieldBtns){this.initButtonEvents()}},onDisable:function(){SYNO.ux.SuperBoxSelect.superclass.onDisable.call(this);this.items.each(function(a){a.disable()});if(this.renderFieldBtns){this.removeButtonEvents()}},clearValue:function(a){SYNO.ux.SuperBoxSelect.superclass.clearValue.call(this);this.preventMultipleRemoveEvents=a||this.supressClearValueRemoveEvents||false;this.removeAllItems();this.preventMultipleRemoveEvents=false;if(this.view&&this.isExpanded()){this.restrictHeight()}this.fireEvent("clear",this);this.fireEvent.defer(250,this,["valuechanged",this]);this.fireEvent("valuechange",this);this.collapse();return this},fireNewItemEvent:function(a){this.view.clearSelections();this.collapse();this.setRawValue("");if(this.queryFilterRe){a=a.replace(this.queryFilterRe,"");if(!a){return}}this.fireEvent("newitem",this,a,this.filteredQueryData)},onKeyUp:function(a){if(this.editable!==false&&(!a.isSpecialKey()||a.getKey()===a.BACKSPACE)&&this.itemDelimiterKey.indexOf!==a.getKey()&&(!a.hasModifier()||a.shiftKey)){this.lastKey=a.getKey();this.dqTask.delay(this.queryDelay)}},onKeyDownHandler:function(g,c){var b,i,a;if(g.getKey()===g.ESC){if(!this.isExpanded()){if(this.el.dom.value!==""&&(this.clearOnEscape||this.clearLastQueryOnEscape)){if(this.clearOnEscape){this.el.dom.value=""}if(this.clearLastQueryOnEscape){this.lastQuery=""}g.stopEvent()}}}if((g.getKey()===g.DELETE)&&this.currentFocus&&!this.currentFocus.disabled){g.stopEvent();b=this.currentFocus;this.on("expand",function(){this.collapse()},this,{single:true});a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){i=this.items.itemAt(a+1)}b.preDestroy(true);if(i){(function(){i.onLnkFocus();this.currentFocus=i}).defer(200,this)}return true}var h=this.el.dom.value,d,f=g.ctrlKey;if(this.itemDelimiterKey===g.getKey()){g.stopEvent();if(h!==""){if(this.isAddItemValid()===false){return}if(f||!this.isExpanded()){this.fireNewItemEvent(h)}else{this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)}}}else{if(!this.isExpanded()){return}this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)}}return true}if(h!==""){this.autoSize();return}if(g.getKey()===g.HOME){g.stopEvent();if(this.items.getCount()>0){this.collapse();d=this.items.get(0);d.el.focus()}return true}if(g.getKey()===g.BACKSPACE){g.stopEvent();if(this.currentFocus&&!this.currentFocus.disabled){b=this.currentFocus;this.on("expand",function(){this.collapse()},this,{single:true});a=this.items.indexOfKey(b.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){i=this.items.itemAt(a+1)}b.preDestroy(true);if(i){(function(){i.onLnkFocus();this.currentFocus=i}).defer(200,this)}return}else{d=this.items.get(this.items.getCount()-1);if(d&&d.disabled!==true){if(this.backspaceDeletesLastItem){this.on("expand",function(){this.collapse()},this,{single:true});d.preDestroy(true)}else{if(this.navigateItemsWithTab){d.onElClick()}else{this.on("expand",function(){this.collapse();this.currentFocus=d;this.currentFocus.onLnkFocus.defer(20,this.currentFocus)},this,{single:true})}}}return true}}if(!g.isNavKeyPress()){this.multiSelectMode=false;this.clearCurrentFocus();return}if(g.getKey()===g.LEFT||(g.getKey()===g.UP&&!this.isExpanded())){g.stopEvent();this.collapse();d=this.items.get(this.items.getCount()-1);if(this.navigateItemsWithTab){if(d){d.focus()}}else{if(this.currentFocus){a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a!==0){this.currentFocus=this.items.itemAt(a-1);this.currentFocus.onLnkFocus()}}else{this.currentFocus=d;if(d){d.onLnkFocus()}}}return true}if(g.getKey()===g.DOWN){if(this.currentFocus){this.collapse();g.stopEvent();a=this.items.indexOfKey(this.currentFocus.key);if(a==(this.items.getCount()-1)){this.clearCurrentFocus.defer(10,this)}else{this.clearCurrentFocus();this.currentFocus=this.items.itemAt(a+1);if(this.currentFocus){this.currentFocus.onLnkFocus()}}return true}}if(g.getKey()===g.RIGHT){this.collapse();d=this.items.itemAt(0);if(this.navigateItemsWithTab){if(d){d.focus()}}else{if(this.currentFocus){a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){this.currentFocus=this.items.itemAt(a+1);if(this.currentFocus){this.currentFocus.onLnkFocus()}}}else{this.currentFocus=d;if(d){d.onLnkFocus()}}}}},onKeyUpBuffered:function(a){if(!a.isNavKeyPress()){this.autoSize()}},reset:function(){this.killItems();SYNO.ux.SuperBoxSelect.superclass.reset.call(this);this.addedRecords=[];this.autoSize().setRawValue("")},applyEmptyText:function(){this.setRawValue("");if(this.items.getCount()>0){this.el.removeClass(this.emptyClass);this.setRawValue("");if(this.supportPlaceHolder){this.el.dom.placeholder=""}else{this.valueContainsPlaceholder=false}return this}if(this.onBlurCall!==true){return this}SYNO.ux.SuperBoxSelect.superclass.applyEmptyText.call(this);this.onBlurCall=false;return this},removeAllItems:function(){this.items.each(function(a){a.preDestroy(true)},this);this.manageClearBtn();return this},killItems:function(){this.items.each(function(a){a.kill()},this);this.resetStore();this.items.clear();this.manageClearBtn();return this},resetStore:function(){this.store.clearFilter();if(!this.removeValuesFromStore){return this}this.usedRecords.each(function(a){this.store.add(a)},this);this.usedRecords.clear();if(!this.store.remoteSort){this.store.sort(this.displayField,"ASC")}return this},sortStore:function(){var a=this.store.getSortState();if(a&&a.field){this.store.sort(a.field,a.direction)}return this},getCaption:function(c){if(typeof this.displayFieldTpl==="string"){this.displayFieldTpl=new Ext.XTemplate(this.displayFieldTpl)}var b,a=c instanceof Ext.data.Record?c.data:c;if(this.displayFieldTpl){b=this.displayFieldTpl.apply(a)}else{if(this.displayField){b=a[this.displayField]}}return b},addRecord:function(b){var e=b.data[this.displayField],c=this.getCaption(b),f=b.data[this.valueField],a=this.classField?b.data[this.classField]:"",d=this.styleField?b.data[this.styleField]:"";if(this.removeValuesFromStore){this.usedRecords.add(f,b);this.store.remove(b)}this.addItemBox(f,e,c,a,d);this.fireEvent("additem",this,f,b);this.fireEvent.defer(250,this,["valuechanged",this]);this.fireEvent("valuechange",this)},createRecord:function(a){if(!this.recordConstructor){var b=[{name:this.valueField},{name:this.displayField}];if(this.classField){b.push({name:this.classField})}if(this.styleField){b.push({name:this.styleField})}this.recordConstructor=Ext.data.Record.create(b)}return new this.recordConstructor(a)},addItems:function(a){if(Ext.isArray(a)){Ext.each(a,function(b){this.addItem(b)},this)}else{this.addItem(a)}},addNewItem:function(a){this.addItem(a,true)},addItem:function(a,c){var e=a[this.valueField];if(this.disabled){return false}if(this.preventDuplicates&&this.hasValue(e)){return}var b=this.findRecord(this.valueField,e);if(b){this.addRecord(b);return}else{if(!this.allowAddNewData){return}}if(!c&&this.mode==="remote"){this.remoteLookup.push(a);this.doQuery(e,false,false,c);return}var d=this.createRecord(a);this.store.add(d);this.addRecord(d);return true},addItemBox:function(c,e,i,h,d){var f,g=function(k){var j="";switch(typeof k){case"function":j=k.call();break;case"object":for(var l in k){if(k.hasOwnProperty(l)){j+=l+":"+k[l]+";"}}break;case"string":j=k+";"}return j},a=Ext.id(null,"sbx-item"),b=new SYNO.ux.SuperBoxSelectItem({owner:this,disabled:this.disabled,renderTo:this.wrapEl,cls:this.extraItemCls+" "+h,style:g(this.extraItemStyle)+" "+d,caption:i,display:e,value:c,maxWidth:this.itemMaxWidth||(this.width-100),key:a,"aria-label":i,listeners:{remove:function(j){if(this.fireEvent("beforeremoveitem",this,j.value)===false){return false}this.items.removeKey(j.key);if(this.removeValuesFromStore){if(this.usedRecords.containsKey(j.value)){this.store.add(this.usedRecords.get(j.value));this.usedRecords.removeKey(j.value);this.sortStore();if(this.view){this.view.render()}}}if(!this.preventMultipleRemoveEvents){this.fireEvent.defer(250,this,["removeitem",this,j.value,this.findInStore(j.value)]);this.fireEvent.defer(250,this,["valuechanged",this]);this.fireEvent("valuechange",this)}},destroy:function(){this.collapse();this.autoSize().manageClearBtn();this.validate()},scope:this}});b.render();f={tag:"input",type:"text",name:(this.hiddenName||this.name),style:"display:none","non-serialize":true};if(this.disabled){Ext.apply(f,{disabled:"disabled"})}b.hiddenEl=this.el.insertSibling(f,"before");b.hiddenEl.dom.value=c;this.items.add(a,b);this.applyEmptyText().autoSize().manageClearBtn();this.validate()},setReadOnly:function(a){SYNO.ux.SuperBoxSelect.superclass.setReadOnly.call(this,a);this.manageClearBtn()},manageClearBtn:function(){if(!this.renderFieldBtns||!this.rendered){return this}var a="syno-ux-superboxselect-btn-hide";if(this.items.getCount()===0||this.readOnly===true){this.buttonClear.addClass(a);this.outerWrapEl&&this.outerWrapEl.removeClass("has-clear")}else{this.buttonClear.removeClass(a);this.outerWrapEl&&this.outerWrapEl.addClass("has-clear")}return this},findInStore:function(b){var a=this.store.find(this.valueField,b);if(a>-1){return this.store.getAt(a)}return false},getSelectedRecords:function(){var a=[];if(this.removeValuesFromStore){a=this.usedRecords.getRange()}else{var b=[];this.items.each(function(c){b.push(c.value)});Ext.each(b,function(c){a.push(this.findInStore(c))},this)}return a},findSelectedItem:function(b){var a;this.items.each(function(c){if(c.el.dom===b){a=c;return false}});return a},findSelectedRecord:function(b){var a,c=this.findSelectedItem(b);if(c){a=this.findSelectedRecordByValue(c.value)}return a},findSelectedRecordByValue:function(b){var a;if(this.removeValuesFromStore){this.usedRecords.each(function(c){if(c.get(this.valueField)==b){a=c;return false}},this)}else{a=this.findInStore(b)}return a},getValue:function(){var a=[];this.items.each(function(b){a.push(b.value)});return a.join(this.valueDelimiter)},getCount:function(){return this.items.getCount()},getValueEx:function(){var a=[];this.items.each(function(c){var b={};b[this.valueField]=c.value;b[this.displayField]=c.display;if(this.classField){b[this.classField]=c.cls||""}if(this.styleField){b[this.styleField]=c.style||""}a.push(b)},this);return a},initValue:function(){if(Ext.isObject(this.value)||Ext.isArray(this.value)){this.setValueEx(this.value);this.originalValue=this.getValue()}else{SYNO.ux.SuperBoxSelect.superclass.initValue.call(this)}if(this.mode==="remote"){this.setOriginal=true}},addValue:function(c){if(Ext.isEmpty(c)){return}var a=c;if(!Ext.isArray(c)){c=""+c;a=c.split(this.valueDelimiter)}Ext.each(a,function(e){var d=this.findRecord(this.valueField,e);if(d){this.addRecord(d)}else{if(this.mode==="remote"){this.remoteLookup.push(e)}}},this);if(this.mode==="remote"){var b=this.remoteLookup.join(this.queryValuesDelimiter);this.doQuery(b,false,true)}},setValue:function(a){if(!this.rendered){this.value=a;return}this.removeAllItems().resetStore();this.remoteLookup=[];this.addValue(a)},setValueEx:function(a){if(!this.rendered){this.value=a;return}this.removeAllItems().resetStore();if(!Ext.isArray(a)){a=[a]}this.remoteLookup=[];if(this.allowAddNewData&&this.mode==="remote"){Ext.each(a,function(c){var b=this.findRecord(this.valueField,c[this.valueField])||this.createRecord(c);this.addRecord(b)},this);return}Ext.each(a,function(b){this.addItem(b)},this)},hasValue:function(b){var a=false;this.items.each(function(c){if(c.value==b){a=true;return false}},this);return a},onSelect:function(a,b){if(this.fireEvent("beforeselect",this,a,b)!==false){var c=a.data[this.valueField];if(this.preventDuplicates&&this.hasValue(c)){return}this.setRawValue("");this.lastSelectionText="";if(this.fireEvent("beforeadditem",this,c,a,this.filteredQueryData)!==false){this.addRecord(a)}if(this.store.getCount()===0||!this.multiSelectMode){this.collapse()}else{this.restrictHeight()}}},onDestroy:function(){this.items.purgeListeners();this.killItems();if(this.allowQueryAll){Ext.destroy(this.buttonExpand)}if(this.renderFieldBtns){Ext.destroy(this.buttonClear,this.buttonWrap)}Ext.destroy(this.inputEl,this.wrapEl,this.outerWrapEl);SYNO.ux.SuperBoxSelect.superclass.onDestroy.call(this)},autoSize:function(){if(!this.rendered){return this}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var c=this.el,b=c.dom.value,e=document.createElement("div");if(b===""&&this.emptyText&&this.items.getCount()<1){b=this.emptyText}e.appendChild(document.createTextNode(b));b=e.innerHTML;e=null;b+=" ";var a=Math.max(this.metrics.getWidth(b)+4,4);if(typeof this._width!="undefined"){a=Math.min(this._width,a)}this.el.setWidth(a);if(Ext.isIE){this.el.dom.style.top="0"}this.fireEvent("autosize",this,a);return this},shouldQuery:function(b){if(this.lastQuery){var a=b.match("^"+Ext.escapeRe(this.lastQuery));if(!a||this.store.getCount()){return true}else{return(a[0]!==this.lastQuery)}}return true},doQuery:function(f,e,b,d){f=Ext.isEmpty(f)?"":f;if(this.queryFilterRe){this.filteredQueryData="";var a=f.match(this.queryFilterRe);if(a&&a.length){this.filteredQueryData=a[0]}f=f.replace(this.queryFilterRe,"");if(!f&&a){return}}var c={query:f,forceAll:e,combo:this,cancel:false};if(this.fireEvent("beforequery",c)===false||c.cancel){return false}f=c.query;e=c.forceAll;if(e===true||(f.length>=this.minChars)||b&&!Ext.isEmpty(f)){if(d||this.forceSameValueQuery||this.shouldQuery(f)){this.lastQuery=f;if(this.mode=="local"){this.selectedIndex=-1;if(e){this.store.clearFilter()}else{this.store.filter(this.displayField,f)}this.onLoad()}else{this.store.baseParams[this.queryParam]=f;this.store.baseParams[this.queryValuesIndicator]=b;this.store.load({params:this.getParams(f)});if(!d){this.expand()}}}else{this.selectedIndex=-1;this.onLoad()}}},onStoreLoad:function(b,a,c){var f=c.params[this.queryParam]||b.baseParams[this.queryParam]||"",g=c.params[this.queryValuesIndicator]||b.baseParams[this.queryValuesIndicator];if(!this.store){return}if(this.removeValuesFromStore){this.store.each(function(i){if(this.usedRecords.containsKey(i.get(this.valueField))){this.store.remove(i)}},this)}if(g){var h=f.split(this.queryValuesDelimiter);Ext.each(h,function(i){this.remoteLookup.remove(i);var j=this.findRecord(this.valueField,i);if(j){this.addRecord(j)}},this);if(this.setOriginal){this.setOriginal=false;this.originalValue=this.getValue()}}if(f!==""&&this.allowAddNewData){Ext.each(this.remoteLookup,function(i){if(typeof i==="object"&&i[this.valueField]===f){this.remoteLookup.remove(i);if(a.length&&a[0].get(this.valueField)===f){this.addRecord(a[0]);return}var j=this.createRecord(i);this.store.add(j);this.addRecord(j);this.addedRecords.push(j);(function(){if(this.isExpanded()){this.collapse()}}).defer(10,this);return}},this)}var d=[];if(f===""){Ext.each(this.addedRecords,function(i){if(this.preventDuplicates&&this.usedRecords.containsKey(i.get(this.valueField))){return}d.push(i)},this)}else{var e=new RegExp(Ext.escapeRe(f)+".*","i");Ext.each(this.addedRecords,function(i){if(this.preventDuplicates&&this.usedRecords.containsKey(i.get(this.valueField))){return}if(e.test(i.get(this.displayField))){d.push(i)}},this)}this.store.add(d);this.sortStore();if(this.store.getCount()===0&&this.isExpanded()){this.collapse()}}});Ext.reg("syno_superboxselect",SYNO.ux.SuperBoxSelect);SYNO.ux.SuperBoxSelectItem=function(a){Ext.apply(this,a);SYNO.ux.SuperBoxSelectItem.superclass.constructor.call(this)};SYNO.ux.SuperBoxSelectItem=Ext.extend(SYNO.ux.SuperBoxSelectItem,Ext.Component,{initComponent:function(){SYNO.ux.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(a){var b=this.owner;b.clearCurrentFocus().collapse();if(b.navigateItemsWithTab){this.focus()}else{b.el.dom.focus();(function(){this.onLnkFocus();b.currentFocus=this}).defer(10,this)}},onLnkClick:function(a){if(a){a.stopEvent()}this.preDestroy();if(!this.owner.navigateItemsWithTab){this.owner.el.focus()}},onLnkFocus:function(){this.el.addClass("syno-ux-superboxselect-item-focus");this.owner.outerWrapEl.addClass(this.owner.focusClass)},onLnkBlur:function(){this.el.removeClass("syno-ux-superboxselect-item-focus");this.owner.outerWrapEl.removeClass(this.owner.focusClass)},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:true});this.el.addClassOnOver("syno-ux-superboxselect-item-hover")},enableLnkListeners:function(){if(this.initialized){this.disableAllListeners()}this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this});this.initialized=true},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(c,a){SYNO.ux.SuperBoxSelectItem.superclass.onRender.call(this,c,a);var e=this.el,f=this.maxWidth;if(e){e.remove()}this.el=e=c.createChild({tag:"li",role:"option",tabIndex:-1,"aria-selected":true},c.last());e.addClass("syno-ux-superboxselect-item");if(f){if(Ext.isNumber(f)){f+="px"}e.setStyle("maxWidth",f);e.set({"ext:qtip":this.caption})}var d=this.owner.navigateItemsWithTab?(Ext.isSafari?"button":"a"):"span";Ext.apply(e,{preDestroy:function(){this.preDestroy()}.createDelegate(this)});this.enableElListeners();e.update(this.caption);var b={tag:d,"class":"syno-ux-superboxselect-item-close",tabIndex:-1};this.lnk=e.createChild(b);if(!this.disabled){this.enableLnkListeners()}else{this.disableAllListeners()}this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this});this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.el,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE],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 a=this.owner.items.get(0).el.focus();if(a){a.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=true},moveFocus:function(a){var b=this.el[a=="left"?"prev":"next"]()||this.owner.el;b.focus.defer(100,b)},preDestroy:function(a){if(this.owner.readOnly||this.fireEvent("remove",this)===false||this.isRemoving){return}var b=function(){if(this.owner.navigateItemsWithTab){this.moveFocus("right")}this.hiddenEl.remove();this.hiddenEl=null;this.isRemoving=false;this.destroy()};if(a){b.call(this)}else{this.isRemoving=true;this.el.hide({duration:0.2,callback:b,scope:this})}return this},kill:function(){this.hiddenEl.remove();this.hiddenEl=null;this.purgeListeners();this.destroy()},onDisable:function(){if(this.hiddenEl){this.hiddenEl.dom.setAttribute("disabled","disabled")}this.keyMap.disable();SYNO.ux.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){if(this.hiddenEl){this.hiddenEl.dom.removeAttribute("disabled")}this.keyMap.enable();SYNO.ux.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el);SYNO.ux.SuperBoxSelectItem.superclass.onDestroy.call(this)}});Ext.define("SYNO.ux.Switch",{extend:"Ext.form.RadioGroup",initComponent:function(){this.addEvents("changed");if(!this.name){this.name=Ext.id()}var a={items:[{boxLabel:"On",name:this.name+"-on",inputValue:true,hidden:true},{boxLabel:"Off",name:this.name+"-off",inputValue:false,hidden:true,checked:true}]};Ext.apply(this,a);SYNO.ux.Switch.superclass.initComponent.call(this)},onRender:function(c,a){SYNO.ux.Switch.superclass.onRender.call(this,c,a);var b='
'+_JSLIBSTR("uicommon","on")+''+_JSLIBSTR("uicommon","off")+"
";b=String.format(b,this.getValue().inputValue?"on":"off",this.disabled?"disable":"normal");this.iosswitch=new Ext.Element(Ext.DomHelper.append(this.el,b));this.iosswitch.on("click",this.onClick,this);this.addListener("disable",this.setDisabledClass,this);this.addListener("enable",this.setDisabledClass,this)},onClick:function(b,a){if(this.disabled){return}b.stopEvent();this.setValue("toggle");this.fireEvent("afterchange",this,this.value)},setValue:function(a){if(a==="toggle"){a=(true===this.getValue().inputValue)?false:true}else{if([1,"true",true,"on"].indexOf(a)!==-1){a=true}else{if([0,"false",false,"off"].indexOf(a)!==-1){a=false;this.iosswitch.removeClass("syno-ux-switch-status-on").addClass("syno-ux-switch-status-off")}else{SYNO.Debug.warn("Unknown value for Flip Switch: "+a)}}}this.items.first().setValue(a);this.animateSwitch(a)},animateSwitch:function(a){if(a){this.iosswitch.removeClass("syno-ux-switch-status-off").addClass("syno-ux-switch-status-on")}else{this.iosswitch.removeClass("syno-ux-switch-status-on").addClass("syno-ux-switch-status-off")}},setDisabledClass:function(){if(this.disabled){this.iosswitch.removeClass("syno-ux-switch-normal").addClass("syno-ux-switch-disable")}else{this.iosswitch.removeClass("syno-ux-switch-disable").addClass("syno-ux-switch-normal")}}});Ext.reg("syno_switch",SYNO.ux.Switch);Ext.define("SYNO.ux.SwitchColumn",{extend:"Ext.grid.Column",commitChanges:false,constructor:function(a){this.box_id=Ext.id();SYNO.ux.SwitchColumn.superclass.constructor.call(this,a)},init:function(a){if(!Ext.isDefined(this.dataIndex)||!Ext.isDefined(this.id)){throw Error("you should set dataIndex and id for SwitchColumn")}a.mon(a,"cellclick",function(c,e,b,d){if(c.getColumnModel().getColumnId(b)===this.id){this.onCellClick(c,e,d)}},this);this.getGrid=function(){return a}},isIgnore:function(b,a){return false},toggleRec:function(b){var a=b.get(this.dataIndex);if("gray"===a){a=false}b.set(this.dataIndex,!a)},onCellClick:function(a,d,b){var c=a.getStore();if(this.isIgnore("cell",c.getAt(d))){return}this.toggleRec(c.getAt(d));if(this.commitChanges){c.commitChanges()}},checkSelectAll:function(a){},renderer:function(d,c,a){var b='
'+_JSLIBSTR("uicommon","on")+''+_JSLIBSTR("uicommon","off")+"
";return String.format(b,d?"on":"off",this.isIgnore("cell",a)?"disable":"normal")}});Ext.reg("syno_swtichcolumn",SYNO.ux.SwitchColumn);Ext.define("SYNO.ux.TabPanel",{extend:"Ext.TabPanel",syncTabsActiveEvent:true,useARIA:true,itemTpl:new Ext.XTemplate('"),constructor:function(a){var b;if(this.useARIA===true){a=this.addPlugins(SYNO.ux.TabPanelARIA,a)}b=Ext.apply({plain:true},a);SYNO.ux.TabPanel.superclass.constructor.call(this,b);this.addClass("syno-ux-tab-panel");if(this.syncTabsActiveEvent===true){Ext.each(this.items.items,function(c){c.mon(this,"deactivate",function(){if(c===this.activeTab){this.lastActiveTab=c;var d=this.getTabEl(c);if(d){Ext.fly(d).removeClass("x-tab-strip-active")}c.fireEvent("deactivate");this.activeTab.hide();this.activeTab=null;if(this.layout){this.layout.activeItem=null}}},this)},this);this.mon(this,"activate",function(){if(!this.activeTab){var c=this.lastActiveTab||this.items.get(0);this.setActiveTab(c)}this.lastActiveTab=undefined},this,{buffer:50})}},onStripMouseDown:function(b){if(b.button!==0){return}b.preventDefault();var a=this.findTargets(b);if(a.close){if(a.item.fireEvent("beforeclose",a.item)!==false){a.item.fireEvent("close",a.item);this.remove(a.item)}return}if(a.item&&a.item!=this.activeTab){this.setActiveTab(a.item,true)}},selectNextTab:function(){var d=this.items.items,b=d.indexOf(this.activeTab),c=this.activeTab,a;do{b++;a=d[b];if(a&&!a.disabled&&!a.stripHidden&&!a.inaccessible){c=a;break}}while(b-1);this.setActiveTab(d,true)},hideTabStripItem:function(b){this.callParent(arguments);var a=this.getComponent(b);if(a){a.stripHidden=true}},unhideTabStripItem:function(b){this.callParent(arguments);var a=this.getComponent(b);if(a){a.stripHidden=false}},initTab:function(b,a){this.callParent(arguments);this.fireEvent("inittab",Ext.get(b.tabEl),this)},setActiveTab:function(a,c){var b,d;if(this.activeTab){b=this.getTabEl(this.activeTab);if(b){this.fireEvent("deactivatetab",b)}}this.callParent(arguments);if(this.activeTab){d=this.getTabEl(this.activeTab);if(d){this.fireEvent("activatetab",d);if(b&&b!==d&&c){Ext.fly(d).down(".x-tab-right").focus()}}}}});Ext.reg("syno_tabpanel",SYNO.ux.TabPanel);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.FleXcroll.TextArea",{extend:"Ext.form.TextArea",message:undefined,preventScrollbars:true,growMin:56,constructor:function(){var a=this;a.enableKeyEvents=a.autoFlexcroll;a.callParent(arguments)},onRender:function(b,a){var d=this,c=null;var e;d.callParent(arguments);if(!d.autoFlexcroll){return}d.wrap=d.el.wrap({cls:"syno-ux-form-fleXcroll-wrap"});d.scroller=d.wrap.createChild({tag:"div",cls:"syno-ux-form-fleXcroll-element",tabindex:-1});d.mappingEl=d.scroller.createChild({tag:"div",cls:"syno-ux-form-fleXcroll-inner-element"});if(d.preventScrollbars){d.el.setStyle("overflow","hidden")}c=Ext.fly("x-form-el-"+d.id);e=SYNO.SDS.UIFeatures.IconSizeManager.getIconPath("/webman/resources/images/information.png","");if(c&&d.message){Ext.DomHelper.append(c,String.format('',e,d.message))}d.positionEl=d.wrap;d.mon(d,"flexcroll",d.onFleXcroll,d);d.el.setARIA({multiline:true})},updateScrollerHeight:function(){if(!this.autoFlexcroll){return}var b=this,a=b.el,d=b.scroller.dom,c=a.dom.scrollTop,e=a.dom.scrollLeft;b.mappingEl.setHeight(a.dom.scrollHeight-a.getPadding("tb"));b.updateScrollbar(b.scroller.dom);if(d.fleXcroll){d.fleXcroll.setScrollPos(e,c)}},onKeyUp:function(){var a=this;a.callParent();a.updateScroller()},initEvents:function(){var b=this,a=b.el;b.callParent(arguments);if(!b.autoFlexcroll){return}b.mon(a,{scope:b,mousewheel:b.onMousewheel,cut:b.onKeyUp,paste:b.onKeyUp,mouseup:b.onMouseUp,mousedown:b.onMouseDown});if(b.wrap){b.wrap.swallowEvent("mousewheel")}},onTextAreaMouseMove:function(a){var b=this;b.updateScrollerHeight()},handleTextSelect:function(a){var b=this;b.intClear();b.mon(b.el,"mousemove",b.onTextAreaMouseMove,b)},intClear:function(){var a=this;a.mun(a.el,"mousemove",a.onTextAreaMouseMove,a)},onMouseUp:function(a){this.intClear();this.mouseMoving=false},onMouseDown:function(a){if(this.mouseMoving===true){return}this.mouseMoving=true;this.handleTextSelect(a)},onMousewheel:function(c){var a=this,b=a.scroller.dom,d=c.getWheelDelta();if(b.fleXcroll){b.fleXcroll.scrollContent(false,(-d)*10)}},onFleXcroll:function(){var a=this;a.updateScrollPosition()},updateScrollPosition:function(){var b=this,a=b.el,c=b.scroller.dom;a.dom.scrollTop=c.fleXdata.scrollPosition[1][0];a.dom.scrollLeft=c.fleXdata.scrollPosition[0][0]},updateFleXcroll:function(){var b=this,a=b.el;if(!b.autoFlexcroll){return}b.scroller.setHeight(a.getHeight(true));b.scroller.setStyle({"margin-top":(a.getBorderWidth("t")+a.getPadding("t")+a.getMargins("t"))+"px","margin-bottom":(a.getBorderWidth("b")+a.getPadding("b")+a.getMargins("b"))+"px"});b.updateScrollerHeight()},afterRender:function(){var a=this;a.callParent(arguments);if(!a.autoFlexcroll){return}a.updateScroller()},destroy:function(){var a=this;a.callParent(arguments)},setValue:function(){var a=this;a.callParent(arguments);if(a.rendered===true){a.updateFleXcroll()}}});SYNO.ux.TextArea=Ext.extend(SYNO.ux.FleXcroll.TextArea,{overCls:"syno-ux-textarea-hover",msgTarget:"itip",autoFlexcroll:!Ext.isIE9m,constructor:function(a){SYNO.ux.TextArea.superclass.constructor.call(this,a);this.addClass("syno-ux-textarea")},onRender:function(b,a){SYNO.ux.TextArea.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)}});Ext.reg("syno_textarea",SYNO.ux.TextArea);Ext.ns("SYNO.ux");SYNO.ux.TextField=Ext.extend(Ext.form.TextField,{textType:"default",overCls:"syno-ux-textfield-hover",msgTarget:"itip",validateOnBlur:true,validationEvent:"blur",constructor:function(a){if("password"===a.textType){a=this.applyPasswordConfig(a)}else{if("password_confirm"===a.textType){a=this.applyPasswordConfirmConfig(a)}else{a=SYNO.ux.Utils.setTextMaxLenConfig(a)}}var b={confirmFailedText:_JSLIBSTR("vtype","password_confirm_failed")};SYNO.ux.TextField.superclass.constructor.call(this,Ext.apply(b,a));this.addClass("syno-ux-textfield")},onRender:function(b,a){SYNO.ux.TextField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},applyPasswordConfig:function(a){a.inputType="password";if(a.maxlength){a.autoCreate={tag:"input",type:"password",maxlength:a.maxlength,autocomplete:"off"}}if(a.name){a.itemId=a.name}return a},applyPasswordConfirmConfig:function(a){a=this.applyPasswordConfig(a);if(a.confirmFor&&!a.validator){a.validator=function(d){if(!this.ownerCt){return"Failed to find ownerCt"}var b=this.ownerCt.get(this.confirmFor);if(!b){return"Failed to find password field"}var c=b.getValue();if((d!==c)&&(c!=="12345678"||d!=="87654321")){return this.confirmFailedText}return true}}return a}});Ext.reg("syno_textfield",SYNO.ux.TextField);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.MacTextField",{extend:"SYNO.ux.TextField",validator:function(b){var a;if(!b.match(/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/)){a=this.transfer(b);if(false===a){return _JSLIBSTR("uicommon","ap_mac_filter_mac_err")}else{this.setValue(a)}}if(true===this.checkDuplicate(b)){return _JSLIBSTR("uicommon","ap_mac_filter_mac_used")}return true},checkDuplicate:function(b){if(!this.macList){return false}for(var a=0;a0){if(Ext.isString(this.localFilterField[0])){var b=[];for(a=0;a
{'+this.displayField+"}
"}this.callParent([a]);this.addClass("syno-ux-timefield")},onRender:function(b,a){this.callParent(arguments);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},generateStore:function(c){var d=this.minValue||new Date(this.initDate).clearTime(),b=this.maxValue||new Date(this.initDate).clearTime().add("mi",(24*60)-1),f=[],a;while(d<=b){var e=d.dateFormat(this.format);f.push([e,e,d.toLocaleTimeString()]);d=d.add("mi",this.increment)}a=new Ext.data.ArrayStore({fields:["display","value","aria"],data:f,displayField:"display",valueField:"value",expandData:false,autoDestroy:true});this.bindStore(a,c)},onMouseover:function(){this.addClass("syno-ux-timefield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-timefield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)},setReadOnly:function(a){if(a){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}this.callParent(arguments)}}));Ext.define("SYNO.ux.Toolbar",{extend:"Ext.Toolbar",xtype:"syno_toolbar",defaultType:"syno_button",constructor:function(){this.callParent(arguments);this.addClass("syno-ux-toolbar")}});Ext.define("SYNO.ux.data.TreeReader",{extend:"Ext.data.JsonReader",tree:null,constructor:function(a,b){this.callParent([a,b||a.fields])},load:function(d){if(d.attributes.children){var c=d.attributes.children;for(var b=0,a=c.length;ba){return c}if(!(b instanceof Ext.Component)){return c}if(b.webapi&&SYNO.ux.Utils.checkApiObjValid(b.webapi)){d={};if(""===f){d=b.webapi}else{d.api=b.webapi.api;d.method=b.webapi.method||b.webapi.methods[f];d.version=b.webapi.version;if(b.webapi.params&&b.webapi.params[f]){d.params=b.webapi.params[f]}}c.push(d)}if(b.items){b.items.each(function(i,g,h){c=c.concat(SYNO.ux.Utils.getApiArray(i,f,e+1,a))})}return c};SYNO.ux.Utils.checkObjectConsistency=function(c,b){var a,e,d;if(typeof c!==typeof b){return false}if((!Ext.isObject(c)&&!Ext.isArray(c))||(!Ext.isObject(b)&&!Ext.isArray(b))){return c===b}if(Ext.isArray(c)){if(c.length!==b.length){return false}for(a=0;a":"greater",",":"comma",":":"colon",";":"semicolon","-":"minus","~":"tilt"};SYNO.ux.Utils.ConvertSingleSymbolToString=function(f,d,c){var a="g",b="\\"+d,e=(c)?new RegExp(b,a):new RegExp(b);f=f.replace(e,_T("common",SYNO.ux.Utils.SymbolMap[d]+"_str"));return f};SYNO.ux.Utils.ConvertSymbolsToString=function(f){var b=["+","<",">",",",":",";"],a="g",d,c,e;for(c=0;c