Main.min.js 4.5 KB

1
  1. MWF.xApplication.ControlPanel.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",name:"ControlPanel",icon:"icon.png",width:"740",isResize:false,isMax:false,height:"280",title:MWF.xApplication.ControlPanel.LP.title},loadWindow:function(isCurrent){this.fireAppEvent("queryLoadWindow");this.window=new MWF.xDesktop.WindowTransparent(this,{container:this.desktop.node});this.fireAppEvent("loadWindow");this.window.show();this.content=this.window.content;if(isCurrent)this.setCurrent();this.fireAppEvent("postLoadWindow");this.fireAppEvent("queryLoadApplication");this.loadApplication(function(){this.fireAppEvent("postLoadApplication")}.bind(this))},setNodeResize:function(){this.setNodePositionAndSizeFun=this.setNodePositionAndSize.bind(this);this.setNodePositionAndSizeFun();$(window).addEvent("resize",this.setNodePositionAndSizeFun);this.addEvent("queryClose",function(){$(window).removeEvent("resize",this.setNodePositionAndSizeFun)}.bind(this))},setNodePositionAndSize:function(){if(this.status&&this.status.size){this.node.setStyles({top:this.status.size.y,left:this.status.size.x})}else{this.node.position({relativeTo:this.desktop.node,position:"center",edge:"center",offset:{y:"-240"}})}},recordStatus:function(){return{size:this.node.getPosition()}},onQueryLoad:function(){this.lp=MWF.xApplication.ControlPanel.LP},loadApplication:function(callback){this.layout=this.desktop;this.apps=[];if(this.options.event){this.css.contentNode.left=this.options.event.page.x;this.css.contentNode.top=this.options.event.page.y}this.node=new Element("div",{styles:this.css.contentNode}).inject(this.content);var morph=new Fx.Morph(this.node,{duration:"100",transition:Fx.Transitions.Sine.easeOut});morph.start(this.css.contentNodeTo).chain(function(){this.setNodeResize();this.node.addEvent("selectstart",function(e){e.target.setStyle("-webkit-user-select","none")}.bind(this));this.titleAreaNode=new Element("div",{styles:this.css.titleAreaNode}).inject(this.node);this.closeNode=new Element("div",{styles:this.css.closeNode}).inject(this.titleAreaNode);this.closeNode.addEvent("click",this.close.bind(this));this.titleNode=new Element("div",{styles:this.css.titleAreaTextNode,text:this.lp.titleInfor}).inject(this.titleAreaNode);this.contentNode=new Element("div",{styles:this.css.contentAreaNode}).inject(this.node);this.loadApplications()}.bind(this))},loadTitle:function(){this.titleBar=new Element("div",{styles:this.css.titleBar}).inject(this.content);this.taskTitleTextNode=new Element("div",{styles:this.css.titleTextNode,text:this.lp.title}).inject(this.titleBar)},setContentSize:function(){var size=this.node.getSize();var w=size.x*.9;var count=(w/120).toInt();w=Math.min(count,this.apps.length)*120;this.contentNode.setStyles({width:""+w+"px"})},loadApplications:function(){debugger;COMMON.JSON.get(this.path+"applications.json",function(catalog){var user=this.layout.session.user;var currentNames=[user.name,user.distinguishedName,user.id,user.unique];if(user.roleList){user.roleList.each(function(role){currentNames.push(MWF.name.cn(role));currentNames.push(role)})}if(user.groupList){user.groupList.each(function(group){currentNames.push(MWF.name.cn(group));currentNames.push(group)})}debugger;catalog.each(function(value,key){var isAllow=true;if(value.allowList)isAllow=value.allowList.length?value.allowList.isIntersect(currentNames):true;var isDeny=false;if(value.denyList)isDeny=value.denyList.length?value.denyList.isIntersect(currentNames)!==-1:false;if(!isDeny&&isAllow){this.apps.push({value:value,key:key});this.createApplicationMenu(value,key)}this.setContentSize();this.addEvent("resize",this.setContentSize)}.bind(this))}.bind(this))},createApplicationMenu:function(value,key){var applicationMenuNode=new Element("div",{styles:this.css.applicationMenuNode,title:value.title}).inject(this.contentNode);var applicationMenuIconNode=new Element("div",{styles:this.css.applicationMenuIconNode}).inject(applicationMenuNode);var icon="/x_component_"+value.path.replace(/\./g,"_")+"/$Main/"+value.iconPath;applicationMenuIconNode.setStyle("background-image","url("+icon+")");new Element("div",{styles:this.css.applicationMenuTextNode,text:value.title}).inject(applicationMenuNode);applicationMenuNode.addEvent("click",function(e){this.layout.openApplication(e,value.path)}.bind(this));applicationMenuNode.makeLnk({par:{icon:icon,title:value.title,par:value.path},onStart:function(){this.applicationMenuAreaMark.fade("out");this.applicationMenuArea.fade("out")}.bind(this),onComplete:function(){}.bind(this)});var appName=value.path}});