| 1 |
- MWF.xDesktop.requireApp("Org","$Explorer",null,false);MWF.xApplication.Org.RoleExplorer=new Class({Extends:MWF.xApplication.Org.$Explorer,Implements:[Options,Events],options:{style:"default",lp:{},creator:false},_loadLp:function(){this.options.lp={elementLoaded:this.app.lp.roleLoaded,search:this.app.lp.search,searchText:this.app.lp.searchText,elementSave:this.app.lp.roleSave,deleteElements:this.app.lp.deleteRoles,deleteElementsCancel:this.app.lp.deleteElementsCancel,deleteElementsTitle:this.app.lp.deleteRolesTitle,deleteElementsConfirm:this.app.lp.deletePersonsConfirm,elementBaseText:this.app.lp.roleBaseText,elementName:this.app.lp.roleName,noSignature:this.app.lp.noSignature,edit:this.app.lp.edit,cancel:this.app.lp.cancel,save:this.app.lp.save,add:this.app.lp.add}},_listElementNext:function(t,e,i){debugger;this.actions.listRoleNext(t||"(0)",e,function(t){if(i)i.apply(this,[t])}.bind(this))},_newElement:function(t,e){return new MWF.xApplication.Org.RoleExplorer.Role(t,e,this.isEditor)},_listElementByKey:function(t,e,i){this.actions.listRoleByKey(function(e){if(t)t.apply(this,[e])}.bind(this),e,i)},_getAddElementData:function(){return{personList:[],groupList:[],description:"",unique:"",orderNumber:"",id:"",name:"",control:{allowEdit:true,allowDelete:true}}},loadToolbar:function(){if(this._isActionManager()){this.isEditor=true;this.addTopElementNode=new Element("div",{styles:this.css.addTopGroupNode}).inject(this.toolbarNode);this.addTopElementNode.addEvent("click",function(){this.addTopElement()}.bind(this))}this.createSearchNode();this.loadPingyinArea()},_isActionManager:function(){return MWF.AC.isOrganizationManager()||MWF.AC.isRoleManager()}});MWF.xApplication.Org.RoleExplorer.Role=new Class({Extends:MWF.xApplication.Org.$Explorer.Item,showItemProperty:function(){this.content=new MWF.xApplication.Org.RoleExplorer.RoleContent(this)},delete:function(t,e){this.explorer.actions.deleteRole(this.data.id,function(){this.destroy();if(t)t()}.bind(this),function(t,i,s){var n=s;if(t)n=t.responseText;MWF.xDesktop.notice("error",{x:"right",y:"top"},"request json error: "+n);if(e)e()})},_getIcon:function(){return"/x_component_Org/$Explorer/default/icon/role.png"}});MWF.xApplication.Org.RoleExplorer.RoleContent=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent,_getData:function(t){if(this.item.data.id){this.explorer.actions.getRole(function(e){this.data=e.data;this.item.data=e.data;if(t)t()}.bind(this),null,this.item.data.id)}else{this.data=this.item.data;if(t)t()}},_showItemPropertyTitle:function(){this.titleInfor=new MWF.xApplication.Org.RoleExplorer.RoleContent.TitleInfor(this)},_showItemPropertyBottom:function(){this.bottomInfor=new MWF.xApplication.Org.RoleExplorer.RoleContent.BottomInfor(this)},_loadTabs:function(){this.baseContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.basePage=this.propertyTab.addTab(this.baseContentNode,this.explorer.app.lp.roleBaseText);this.personMemberContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.personMemberPage=this.propertyTab.addTab(this.personMemberContentNode,this.explorer.app.lp.rolePersonMembers);this.groupMemberContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.groupMemberPage=this.propertyTab.addTab(this.groupMemberContentNode,this.explorer.app.lp.roleGroupMembers)},_loadContent:function(){this._listBaseInfor();this.loadListCount();var t=this;this.personMemberList=this._listMembers("personList","woPersonList",this.personMemberContentNode,[{get:function(){var e=t.explorer.actions.getPersonIcon(this.id);return"<div style='width:24px; height:24px;''><img style='width:24px; height:24px; border-radius:12px; border: 0' src='"+e+"'/></div>"},set:function(){}},"name","employee","mobile","mail",{get:function(){return"<div style='width:24px; height:24px; cursor: pointer; background:url(/x_component_Org/$Explorer/"+t.explorer.app.options.style+"/icon/open.png) center center no-repeat'></div>"},events:{click:function(){t.explorer.openPerson(this.data,this.td)}}}],[{style:"width: 30px",text:""},{style:"width: 20%",text:this.explorer.app.lp.personName},{style:"",text:this.explorer.app.lp.personEmployee},{style:"",text:this.explorer.app.lp.personMobile},{style:"",text:this.explorer.app.lp.personMail},{style:"width: 30px",text:""}],this.addPersonMember.bind(this),"personCountNode",this.explorer.app.lp.deletePersonMemeberTitle,this.explorer.app.lp.deletePersonMemeber);this.groupMemberList=this._listMembers("groupList","woGroupList",this.groupMemberContentNode,["name","distinguishedName","description",{get:function(){return"<div style='width:24px; height:24px; cursor: pointer; background:url(/x_component_Org/$Explorer/"+t.explorer.app.options.style+"/icon/open.png) center center no-repeat'></div>"},events:{click:function(){t.explorer.openGroup(this.data,this.td)}}}],[{style:"width: 20%",text:this.explorer.app.lp.groupName},{style:"width: 40%",text:this.explorer.app.lp.groupDn},{style:"",text:this.explorer.app.lp.groupDescription},{style:"width: 30px",text:""}],this.addGroupMember.bind(this),"groupCountNode",this.explorer.app.lp.deleteGroupMemeberTitle,this.explorer.app.lp.deleteGroupMemeber)},loadListCount:function(){var t=this.data.personList.length;if(t){if(this.personCountNode){this.personCountNode.set("text",t)}else{this.personCountNode=new Element("div",{styles:this.item.style.tabCountNode,text:t}).inject(this.personMemberPage.tabNode)}}else{if(this.personCountNode)this.personCountNode.destroy()}var e=this.data.groupList.length;if(e){if(this.groupCountNode){this.groupCountNode.set("text",e)}else{this.groupCountNode=new Element("div",{styles:this.item.style.tabCountNode,text:e}).inject(this.groupMemberPage.tabNode)}}else{if(this.groupCountNode)this.groupCountNode.destroy()}},_listBaseInfor:function(){this.baseInfor=new MWF.xApplication.Org.RoleExplorer.RoleContent.BaseInfor(this)},_listMembers:function(t,e,i,s,n,o,a,r,l){debugger;var d=new MWF.xApplication.Org.List(i,this,{action:this.data.control.allowEdit,canEdit:false,deleteItemTitle:r,deleteItemText:l,data:{person:this.data.id,name:"",unique:"",orderNumber:"",attributeList:[]},attr:s,onQueryDelete:function(){this.saveCloneData=Object.clone(this.data)}.bind(this),onDelete:function(i){this.explorer.actions.saveRole(this.saveCloneData,function(i){this.data[t]=this.saveCloneData[t];this.data[e]=this.saveCloneData[e];this.data.id=i.data.id;this.saveCloneData=null;delete this.saveCloneData}.bind(this),function(t,e,s){i=false;this.explorer.app.notice(JSON.decode(t.responseText).message.trim()||"request json error","error")}.bind(this),false)}.bind(this),onPostDelete:function(t){if(this[a]){var e=this[a].get("text").toInt()-t;this[a].set("text",e)}}.bind(this)});d.addItem=o;d.load(n);if(this.data[e]&&this.data[e].length){this.data[e].each(function(i){this.addListItem(d,i,t,e)}.bind(this))}return d},addListItem:function(t,e,i,s){var n=this;var o=t.push(e);o["delete"]=function(t){n.saveCloneData[i].erase(this.data.id);n.saveCloneData[s]=n.saveCloneData[s].filter(function(t){return this.data.id!==t.id}.bind(this));if(t)t()}},checkSaveBaseInfor:function(t){if(!this.data.id){if(this.baseInfor){if(this.baseInfor.mode==="edit")this.baseInfor.save(function(){if(t)t()}.bind(this))}}else{if(t)t()}},addPersonMember:function(){this.checkSaveBaseInfor(function(){MWF.xDesktop.requireApp("Selector","Person",function(){var t=new MWF.xApplication.Selector.Person(this.explorer.app.content,{values:this.data.personList,onComplete:function(t){var e=[];var i=[];t.each(function(t){e.push(t.data.id);i.push(t.data)});this.data.personList=e;this.data.woPersonList=i;this._saveElement(this.data,function(){this.personMemberList.clear();this.data.woPersonList.each(function(t){this.addListItem(this.personMemberList,t,"personList","woPersonList")}.bind(this));this.loadListCount()}.bind(this))}.bind(this)});t.load()}.bind(this))}.bind(this))},addGroupMember:function(){this.checkSaveBaseInfor(function(){MWF.xDesktop.requireApp("Selector","Group",function(){var t=new MWF.xApplication.Selector.Group(this.explorer.app.content,{values:this.data.groupList,onComplete:function(t){var e=[];var i=[];t.each(function(t){e.push(t.data.id);i.push(t.data)});this.data.groupList=e;this.data.woGroupList=i;this._saveElement(this.data,function(){this.groupMemberList.clear();this.data.woGroupList.each(function(t){this.addListItem(this.groupMemberList,t,"groupList","woGroupList")}.bind(this));this.loadListCount()}.bind(this))}.bind(this)});t.load()}.bind(this))}.bind(this))},_saveElement:function(t,e,i){this.explorer.actions.saveRole(t,function(i){Object.merge(this.data,t);if(this.data.id){this.data.id=i.data.id;this.item.refresh();if(e)e()}else{this.explorer.actions.getRole(function(t){this.data=t.data;this.item.refresh();if(e)e()}.bind(this),null,i.data.id)}}.bind(this),function(t,e,s){if(i)i(t,e,s)}.bind(this))}});MWF.xApplication.Org.RoleExplorer.RoleContent.TitleInfor=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent.TitleInfor,_getStyle:function(){var t=Object.clone(this.item.style.person);return Object.merge(t,this.item.style.role)},_getIcon:function(){return"/x_component_Org/$Explorer/default/icon/role70.png"},setBackground:function(){this.titleBgNode.setStyle("background-image","url(/x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/group_bg_bg.png)");this.titleNode.setStyle("background-image","url(/x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/group_bg.png)")},loadRightInfor:function(){var t=this.data.name;if(!this.nameNode)this.nameNode=new Element("div",{styles:this.style.titleInforNameNode}).inject(this.titleInforRightNode);if(!this.signatureNode)this.signatureNode=new Element("div",{styles:this.style.titleInforSignatureNode}).inject(this.titleInforRightNode);this.nameNode.set("text",t);this.signatureNode.set("text",this.data.distinguishedName||"")}});MWF.xApplication.Org.RoleExplorer.RoleContent.BottomInfor=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent.BottomInfor,addInforList:function(){var t=this.explorer.app.lp.roleReadDn.replace(/{dn}/g,this.data.distinguishedName||" ");this.addInfor(t);t=this.explorer.app.lp.roleReadCreate.replace(/{date}/g,this.data.createTime||" ");t=t.replace(/{date2}/g,this.data.updateTime||" ");this.addInfor(t)}});MWF.xApplication.Org.RoleExplorer.RoleContent.BaseInfor=new Class({initialize:function(t){this.content=t;this.item=t.item;this.data=this.content.data;this.explorer=this.item.explorer;this.contentNode=this.content.baseContentNode;this.style=this.item.style.person;this.mode="read";this.load()},load:function(){this.node=new Element("div",{styles:this.style.baseContentNode}).inject(this.contentNode);this.editContentNode=new Element("div",{styles:this.style.baseEditNode}).inject(this.node);this.editContentNode.set("html",this.getContentHtml());this.editContentNode.getElements("td.inforTitle").setStyles(this.style.baseInforTitleNode);this.editContentNode.getElements("td.inforContent").setStyles(this.style.baseInforContentNode);this.editContentNode.getElements("td.inforAction").setStyles(this.style.baseInforActionNode);this.loadAction()},getContentHtml:function(){var t="<table width='100%' cellpadding='3px' cellspacing='5px'>";t+="<tr><td class='inforTitle'>"+this.explorer.app.lp.roleName+":</td><td class='inforContent'>"+(this.data.name||"")+"</td>"+"<td class='inforTitle'>"+this.explorer.app.lp.roleUnique+":</td><td class='inforContent'>"+(this.data.unique||"")+"</td></tr>";t+="<tr><td class='inforTitle'>"+this.explorer.app.lp.roleDescription+":</td><td colspan='3' class='inforContent'>"+(this.data.description||"")+"</td>";t+="<tr><td colspan='4' class='inforAction'></td></tr>";return t},loadAction:function(){var t=this.editContentNode.getElements("td");var e=t[t.length-1];if(this.data.control.allowEdit){this.baseInforEditActionAreaNode=new Element("div",{styles:this.style.baseInforEditActionAreaNode}).inject(e);this.editNode=new Element("div",{styles:this.style.actionEditNode,text:this.explorer.app.lp.editRole}).inject(this.baseInforEditActionAreaNode);this.saveNode=new Element("div",{styles:this.style.actionSaveNode,text:this.explorer.app.lp.saveRole}).inject(this.baseInforEditActionAreaNode);this.cancelNode=new Element("div",{styles:this.style.actionCancelNode,text:this.explorer.app.lp.cancel}).inject(this.baseInforEditActionAreaNode);this.editNode.setStyle("display","block");this.editNode.addEvent("click",this.edit.bind(this));this.saveNode.addEvent("click",function(){this.save()}.bind(this));this.cancelNode.addEvent("click",this.cancel.bind(this))}else{}},edit:function(){var t=this.editContentNode.getElements("td.inforContent");t[0].setStyles(this.style.baseInforContentNode_edit).empty();this.nameInputNode=new Element("input",{styles:this.style.inputNode}).inject(t[0]);this.nameInputNode.set("value",this.data.name);t[1].setStyles(this.style.baseInforContentNode_edit).empty();this.uniqueInputNode=new Element("input",{styles:this.style.inputNode}).inject(t[1]);this.uniqueInputNode.set("value",this.data.unique);t[2].setStyles(this.style.baseInforContentNode_edit).empty();this.descriptionInputNode=new Element("input",{styles:this.style.inputNode}).inject(t[2]);this.descriptionInputNode.set("value",this.data.description);var e=this;this.editContentNode.getElements("input").addEvents({focus:function(){if(this.get("type").toLowerCase()==="text"){this.setStyles(e.style.inputNode_focus)}},blur:function(){if(this.get("type").toLowerCase()==="text"){this.setStyles(e.style.inputNode_blur)}}});this.mode="edit";this.editNode.setStyle("display","none");this.saveNode.setStyle("display","block");this.cancelNode.setStyle("display","block")},save:function(t){if(!this.nameInputNode.get("value")){this.explorer.app.notice(this.explorer.app.lp.inputRoleInfor,"error",this.explorer.propertyContentNode);return false}if(!this.uniqueInputNode.get("value"))this.data.unique=this.nameInputNode.get("value");this.content.propertyContentScrollNode.mask({style:{opacity:.7,"background-color":"#999"}});this.saveRole(function(){this.cancel();this.content.propertyContentScrollNode.unmask();if(t)t()}.bind(this),function(t,e,i){this.explorer.app.notice(JSON.decode(t.responseText).message.trim()||"request json error","error");this.content.propertyContentScrollNode.unmask()}.bind(this))},saveRole:function(t,e){var i=Object.clone(this.data);i.name=this.nameInputNode.get("value");i.unique=this.uniqueInputNode.get("value");i.description=this.descriptionInputNode.get("value");this.explorer.actions.saveRole(i,function(e){Object.merge(this.data,i);if(this.data.id){this.data.id=e.data.id;this.item.refresh();if(t)t()}else{this.explorer.actions.getRole(function(e){this.data=Object.merge(this.data,e.data);this.item.data=this.data;this.item.refresh();if(t)t()}.bind(this),null,e.data.id)}}.bind(this),function(t,i,s){if(e)e(t,i,s)}.bind(this))},cancel:function(){if(this.data.id){var t=this.editContentNode.getElements("td.inforContent");t[0].setStyles(this.style.baseInforContentNode).set("html",this.data.name||"");t[1].setStyles(this.style.baseInforContentNode).set("html",this.data.unique||"");t[2].setStyles(this.style.baseInforContentNode).set("html",this.data.description||"");this.mode="read";this.editNode.setStyle("display","block");this.saveNode.setStyle("display","none");this.cancelNode.setStyle("display","none")}else{this.item.destroy()}},destroy:function(){this.node.empty();this.node.destroy();MWF.release(this)}});
|