IdenitySelector.min.js 4.2 KB

1
  1. MWF.xApplication.Execution=MWF.xApplication.Execution||{};MWF.xDesktop.requireApp("Template","Explorer",null,false);MWF.xDesktop.requireApp("Template","MPopupForm",null,false);MWF.xDesktop.requireApp("Template","MForm",null,false);MWF.require("MWF.xDesktop.UserData",null,false);MWF.xApplication.Execution.IdenitySelector=new Class({Extends:MPopupForm,Implements:[Options,Events],options:{style:"default",width:"500",height:"300",hasTop:true,hasIcon:false,hasBottom:true,title:"",draggable:false,closeAction:false,closeText:"",needLogout:false,isNew:true},initialize:function(app,actions,identities,css,options){this.setOptions(options);this.app=app;this.actions=this.app.restActions;this.css=css;this.options.title=this.app.lp.idenitySelectTitle;this.identities=identities;this.actions=actions;this.loadCss()},load:function(){this.create()},loadCss:function(){this.cssPath="/x_component_Execution/$Main/"+this.options.style+"/css.wcss";this._loadCss()},createTopNode:function(){if(!this.formTopNode){this.formTopNode=new Element("div.formTopNode",{styles:this.css.formTopNode}).inject(this.formNode);this.formTopIconNode=new Element("div",{styles:this.css.formTopIconNode}).inject(this.formTopNode);this.formTopTextNode=new Element("div",{styles:this.css.formTopTextNode,text:this.options.title}).inject(this.formTopNode);if(this.options.closeAction){this.formTopCloseActionNode=new Element("div",{styles:this.css.formTopCloseActionNode}).inject(this.formTopNode);this.formTopCloseActionNode.addEvent("click",function(){this.close()}.bind(this))}this.formTopContentNode=new Element("div",{styles:this.css.formTopContentNode}).inject(this.formTopNode);this._createTopContent()}},_createTableContent:function(){var table=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0"}).inject(this.formTableArea);var tr=new Element("tr").inject(table);var td=new Element("td",{valign:"middle"}).inject(tr);this.identities.each(function(id,i){var name=id.name||id.leaderIdentity.split("@")[0];var unit=id.unitName||id["leaderUnitName"].split("@")[0];var node=new Element("div",{styles:this.css["identitySelNode"],text:name+"("+unit+")"}).inject(td);node.set("identity",i);node.store("id",id);node.store("distinguishedName",id.distinguishedName||id.leaderIdentity);node.addEvents({mouseover:function(ev){if(this.selectedNode!=ev.target)ev.target.setStyles(this.css["identitySelNode_over"])}.bind(this),mouseout:function(ev){if(this.selectedNode!=ev.target)ev.target.setStyles(this.css["identitySelNode_out"])}.bind(this),click:function(ev){this.selected(ev.target)}.bind(this),dblclick:function(ev){this.selectedNode=ev.target;this.ok()}.bind(this)})}.bind(this))},selected:function(node){if(this.selectedNode)this.selectedNode.setStyles(this.css["identitySelNode"]);this.selectedNode=node;node.setStyles(this.css["identitySelNode_selected"])},_createBottomContent:function(){this.cancelActionNode=new Element("div.formCancelActionNode",{styles:this.css["formCancelActionNode"],text:this.options.closeText}).inject(this.formBottomNode);this.cancelActionNode.addEvent("click",function(e){this.cancel(e)}.bind(this));this.okActionNode=new Element("div.formOkActionNode",{styles:this.css["formOkActionNode"],text:this.app.lp.comfirm}).inject(this.formBottomNode);this.okActionNode.addEvent("click",function(e){this.ok(e)}.bind(this))},cancel:function(){this.fireEvent("postSelectorClose")},ok:function(){if(!this.selectedNode){this.app.notice(this.app.lp.idenitySelecNotice,"error")}else{var loginData={};loginData.loginIdentity=this.selectedNode.retrieve("distinguishedName");if(this.options.needLogout){this.actions.logout({},function(json){if(json.type&&json.type=="success"){this.actions.login(loginData,function(js){MWF.UD.putData("okr_identity_login",{identity:loginData.loginIdentity});if(js.data&&js.data.okrManager){this.app.okrManager=js.data.okrManager}this.fireEvent("postSelectorOk",loginData.loginIdentity);this.close()}.bind(this),function(xhr,text,error){}.bind(this),false)}}.bind(this),null,false)}else{this.actions.login(loginData,function(json){MWF.UD.putData("okr_identity_login",{identity:loginData.loginIdentity});if(json.data&&json.data.okrManager){this.app.okrManager=json.data.okrManager}this.fireEvent("postSelectorOk",loginData.loginIdentity);this.close()}.bind(this),null,false)}}}});