GroupExplorer.min.js 12 KB

1
  1. MWF.xDesktop.requireApp("Org","RoleExplorer",null,false);MWF.xApplication.Org.GroupExplorer=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.groupLoaded,search:this.app.lp.search,searchText:this.app.lp.searchText,elementSave:this.app.lp.groupSave,deleteElements:this.app.lp.deleteGroups,deleteElementsCancel:this.app.lp.deleteElementsCancel,deleteElementsTitle:this.app.lp.deleteGroupsTitle,deleteElementsConfirm:this.app.lp.deleteGroupsConfirm,elementBaseText:this.app.lp.groupBaseText,elementName:this.app.lp.groupName,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){this.actions.listGroupNext(t||"(0)",e,function(t){if(i)i.apply(this,[t])}.bind(this))},_newElement:function(t,e){return new MWF.xApplication.Org.GroupExplorer.Group(t,e,this.isEditor)},_listElementByKey:function(t,e,i){this.actions.listGroupByKey(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}}},_isActionManager:function(){return MWF.AC.isOrganizationManager()||MWF.AC.isGroupManager()}});MWF.xApplication.Org.GroupExplorer.Group=new Class({Extends:MWF.xApplication.Org.$Explorer.Item,showItemProperty:function(){this.content=new MWF.xApplication.Org.GroupExplorer.GroupContent(this)},delete:function(t,e){this.explorer.actions.deleteGroup(this.data.id,function(){this.destroy();if(t)t()}.bind(this),function(t,i,o){var n=o;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/group.png"}});MWF.xApplication.Org.GroupExplorer.GroupContent=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent,_getData:function(t){if(this.item.data.id){this.explorer.actions.getGroup(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.GroupExplorer.GroupContent.TitleInfor(this)},_showItemPropertyBottom:function(){this.bottomInfor=new MWF.xApplication.Org.GroupExplorer.GroupContent.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.groupBaseText);this.personMemberContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.personMemberPage=this.propertyTab.addTab(this.personMemberContentNode,this.explorer.app.lp.groupMemberPersonText);this.groupMemberContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.groupMemberPage=this.propertyTab.addTab(this.groupMemberContentNode,this.explorer.app.lp.groupMemberGroupText)},_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.GroupExplorer.GroupContent.BaseInfor(this)},_listMembers:function(t,e,i,o,n,s,r,a,p){var l=new MWF.xApplication.Org.List(i,this,{action:this.data.control.allowEdit,canEdit:false,deleteItemTitle:a,deleteItemText:p,data:{person:this.data.id,name:"",unique:"",orderNumber:"",attributeList:[]},attr:o,onQueryDelete:function(){this.saveCloneData=Object.clone(this.data)}.bind(this),onDelete:function(i){this.explorer.actions.saveGroup(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,o){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[r]){var e=this[r].get("text").toInt()-t;this[r].set("text",e)}}.bind(this)});l.addItem=s;l.load(n);var d=this;if(this.data[e]&&this.data[e].length){this.data[e].each(function(i){var o=l.push(i);o["delete"]=function(i){d.saveCloneData[t].erase(this.data.id);d.saveCloneData[e]=d.saveCloneData[e].filter(function(t){return this.data.id!==t.id}.bind(this));if(i)i()}}.bind(this))}return l},addListItem:function(t,e,i,o){var n=this;var s=t.push(e);s["delete"]=function(t){n.saveCloneData[i].erase(this.data.id);n.saveCloneData[o]=n.saveCloneData[o].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))}.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))}.bind(this))}.bind(this)});t.load()}.bind(this))}.bind(this))},_saveElement:function(t,e,i){this.explorer.actions.saveGroup(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.getGroup(function(t){this.data=t.data;this.item.refresh();if(e)e()}.bind(this),null,i.data.id)}}.bind(this),function(t,e,o){if(i)i(t,e,o)}.bind(this))}});MWF.xApplication.Org.GroupExplorer.GroupContent.TitleInfor=new Class({Extends:MWF.xApplication.Org.RoleExplorer.RoleContent.TitleInfor,_getIcon:function(){return"/x_component_Org/$Explorer/default/icon/group70.png"}});MWF.xApplication.Org.GroupExplorer.GroupContent.BottomInfor=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent.BottomInfor,addInforList:function(){var t=this.explorer.app.lp.groupReadDn.replace(/{dn}/g,this.data.distinguishedName||" ");this.addInfor(t);t=this.explorer.app.lp.groupReadCreate.replace(/{date}/g,this.data.createTime||" ");t=t.replace(/{date2}/g,this.data.updateTime||" ");this.addInfor(t)}});MWF.xApplication.Org.GroupExplorer.GroupContent.BaseInfor=new Class({Extends:MWF.xApplication.Org.RoleExplorer.RoleContent.BaseInfor,getContentHtml:function(){var t="<table width='100%' cellpadding='3px' cellspacing='5px'>";t+="<tr><td class='inforTitle'>"+this.explorer.app.lp.groupName+":</td><td class='inforContent'>"+(this.data.name||"")+"</td>"+"<td class='inforTitle'>"+this.explorer.app.lp.groupUnique+":</td><td class='inforContent'>"+(this.data.unique||"")+"</td></tr>";t+="<tr><td class='inforTitle'>"+this.explorer.app.lp.groupDescription+":</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.editGroup}).inject(this.baseInforEditActionAreaNode);this.saveNode=new Element("div",{styles:this.style.actionSaveNode,text:this.explorer.app.lp.saveGroup}).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",this.save.bind(this));this.cancelNode.addEvent("click",this.cancel.bind(this))}else{}},save:function(){if(!this.nameInputNode.get("value")){this.explorer.app.notice(this.explorer.app.lp.inputGroupInfor,"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.saveGroup(function(){this.cancel();this.content.propertyContentScrollNode.unmask()}.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))},saveGroup: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.saveGroup(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.getGroup(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,o){if(e)e(t,i,o)}.bind(this))},destroy:function(){this.node.empty();this.node.destroy();MWF.release(this)}});