MWF.require("MWF.widget.O2Identity",null,false);MWF.xDesktop.requireApp("Org","$Explorer",null,false);MWF.xApplication.Org.UnitExplorer=new Class({Extends:MWF.xApplication.Org.$Explorer,Implements:[Options,Events],options:{style:"default",lp:{},creator:false},_loadLp:function(){this.options.lp={search:this.app.lp.search,searchText:this.app.lp.searchText,elementSave:this.app.lp.organizationSave,deleteElements:this.app.lp.deleteOrganization,deleteElementsCancel:this.app.lp.deleteElementsCancel,deleteElementsTitle:this.app.lp.deleteOrganizationTitle,deleteElementsConfirm:this.app.lp.deleteOrganizationSubConfirm,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}},loadElements:function(t){if(!this.isElementLoaded){if(!this.loaddingElement){this.loaddingElement=true;this._listElementNext(function(t){if(t.data.length){this.loadListContent(t.data)}else{if(!this.elements.length){this.setNoGroupNoticeArea()}}this.loadElementQueue=0;this.isElementLoaded=true;this.loaddingElement=false}.bind(this))}else{if(t)this.loadElementQueue++}}},loadListContent:function(t){t.each(function(t,e){var i=this._newElement(t,this,e);this.elements.push(i);i.load();if(this.elements.length===1){i.selected();if(!i.isExpand)i.expand()}}.bind(this))},_listElementNext:function(t){this.actions.listTopUnit(function(e){if(t)t.apply(this,[e])}.bind(this))},_newElement:function(t,e){return new MWF.xApplication.Org.UnitExplorer.Unit(t,e,this.isEditor,0)},_listElementByKey:function(t,e,i){this.actions.listUnitByKey(function(e){if(t)t.apply(this,[e])}.bind(this),e,i)},_getAddElementData:function(){return{name:"",unique:"",typeList:["company"],description:"",shortName:"",superior:"",orderNumber:"",controllerList:[],control:{allowEdit:true,allowDelete:true},woSubDirectIdentityList:[],woUnitAttributeList:[],woUnitDutyList:[]}},deleteSelectedElements:function(t){var e=this;this.app.confirm("infor",t,this.options.lp.deleteElementsTitle,{html:this.options.lp.deleteElementsConfirm},500,260,function(){var t=[];var i=0;var s=e.deleteElements.length;var n="";var o;o=function(){if(i===s){if(n){e.app.notice(n,"error",e.propertyContentNode,{x:"left",y:"top"})}}};e.deleteElements.each(function(s){s["delete"](function(){t.push(s);i++;if(e.deleteElements.length===i){e.deleteElements=e.deleteElements.filter(function(e){return!t.contains(e)});e.checkDeleteElements()}o()},function(s){n=n?n+"
"+s:s;i++;if(e.deleteElements.length!==i){}else{e.deleteElements=e.deleteElements.filter(function(e){return!t.contains(e)});e.checkDeleteElements()}o()})});this.close()},function(){this.close()})}});MWF.xApplication.Org.UnitExplorer.Unit=new Class({Extends:MWF.xApplication.Org.$Explorer.Item,initialize:function(t,e,i,s,n,o){this.i=s;this.level=s;this.parent=o;this.data=t;this.explorer=e;this.listNode=n||this.explorer.listNode;this.propertyContentNode=this.explorer.propertyContentNode;this.initStyle();this.selectedAttributes=[];this.isEdit=false;this.isEditor=i;this.deleteSelected=false;this.subUnits=[]},refresh:function(){this._loadTextNode();if(this.content){if(this.content.titleInfor)this.content.titleInfor.refresh();if(this.content.bottomInfor)this.content.bottomInfor.refresh()}this.addActions()},initStyle:function(){var t=Object.clone(this.explorer.css.item);this.style=Object.merge(t,this.explorer.css.unitItem)},_loadTextNode:function(){this.textNode.set({text:this.data.name+(this.data.subDirectUnitCount?" ("+this.data.subDirectUnitCount+")":"")})},load:function(){this.node=new Element("div",{styles:this.style.node}).inject(this.listNode);this.contentNode=new Element("div",{styles:this.style.contentNode}).inject(this.node);var t=10*this.level;this.contentNode.setStyle("padding-left",""+t+"px");if(this.level%2===1){this.node.setStyle("background-color","#ffffff");this.contentNode.setStyle("background-color","#ffffff")}this.childNode=new Element("div",{styles:this.style.childNode}).inject(this.node);this.toggleIconNode=new Element("div",{styles:this.style.unitToggleIconNode}).inject(this.contentNode);this.setToggleIconNode();this.setToggleAction();this.iconNode=new Element("div",{styles:this.style.unitIconNode}).inject(this.contentNode);var e=this._getIcon();this.iconNode.setStyle("background-image","url("+e+")");this.actionNode=new Element("div",{styles:this.style.actionNode}).inject(this.contentNode);this.textNode=new Element("div",{styles:this.style.unitTextNode}).inject(this.contentNode);this._loadTextNode();this.setNewItem();this.node.inject(this.listNode);this.addActions();this.setEvent()},addActions:function(){debugger;if(this.data.id){if(this.data.control.allowDelete){if(!this.deleteNode){this.deleteNode=new Element("div",{styles:this.style.actionDeleteNode}).inject(this.actionNode);this.deleteNode.addEvent("click",function(t){if(!this.notDelete){if(!this.deleteSelected){this.setDelete()}else{this.setUndelete()}}t.stopPropagation()}.bind(this))}}if(this.data.control.allowEdit){if(!this.addNode){this.addNode=new Element("div",{styles:this.style.actionAddNode}).inject(this.actionNode);this.addNode.addEvent("click",function(t){if(!this.notDelete){this.addSubUnit()}t.stopPropagation()}.bind(this))}}if(this.explorer.currentItem===this){if(this.deleteNode)this.deleteNode.setStyles(this.style.actionDeleteNode_selected);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode_selected)}}},addSubUnit:function(){this.expand(function(){debugger;var t=true;if(this.explorer.currentItem)t=this.explorer.currentItem.unSelected();if(t){var e=this.explorer._getAddElementData();e.superior=this.data.id;var i=new MWF.xApplication.Org.UnitExplorer.Unit(e,this.explorer,this.isEditor,this.level+1,this.childNode,this);i.load();i.selected();i.editBaseInfor();new Fx.Scroll(this.explorer.listScrollNode).toElementCenter(i.node)}else{this.app.notice(this.explorer.options.lp.elementSave,"error",this.explorer.propertyContentNode)}}.bind(this))},setDeleteFromP:function(){this.notDelete=true;this.subUnits.each(function(t){t.setDeleteFromP()});this.deleteNode.setStyles(this.style.actionDeleteNode_delete);this.contentNode.setStyles(this.style.contentNode_delete);this.textNode.setStyles(this.style.unitTextNode);this.deleteSelected=true;this.explorer.checkDeleteElements(this)},setDelete:function(){this.subUnits.each(function(t){t.setDeleteFromP()});this.deleteNode.setStyles(this.style.actionDeleteNode_delete);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode_delete);this.contentNode.setStyles(this.style.contentNode_delete);this.textNode.setStyles(this.style.unitTextNode);this.explorer.deleteElements.push(this);this.deleteSelected=true;this.explorer.checkDeleteElements(this)},setUndelete:function(){this.notDelete=false;this.subUnits.each(function(t){t.setUndelete()});if(this.explorer.currentItem!==this){if(this.deleteNode)this.deleteNode.setStyles(this.style.actionDeleteNode);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode);this.contentNode.setStyles(this.style.contentNode);this.textNode.setStyles(this.style.unitTextNode)}else{this.contentNode.setStyles(this.style.contentNode_selected);this.textNode.setStyles(this.style.textNode_selected);this.actionNode.setStyles(this.style.actionNode_selected);if(this.deleteNode)this.deleteNode.setStyles(this.style.actionDeleteNode_selected);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode_selected);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode_selected)}this.explorer.deleteElements.erase(this);this.deleteSelected=false;this.explorer.checkDeleteElements(this)},setToggleIconNode:function(){if(this.data.subDirectUnitCount>0){var t=this.explorer.currentItem===this?"toggle_current_on":"toggle_on";var e=this.explorer.currentItem===this?"toggle_current_off":"toggle_off";if(this.isExpand){this.toggleIconNode.setStyle("background-image","url(/x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/"+t+".png)")}else{this.toggleIconNode.setStyle("background-image","url(/x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/"+e+".png)")}}else{this.toggleIconNode.setStyle("background-image","")}},setToggleAction:function(){debugger;this.toggleIconNode.addEvent("click",function(t){this.expandOrCollapse();t.stopPropagation()}.bind(this))},expandOrCollapse:function(){debugger;if(this.isExpand){this.collapse()}else{this.expand()}},listSubUnit:function(t){this.node.mask();this.explorer.actions.listSubUnitDirect(function(e){if(e.data.length){e.data.each(function(t){var e=new MWF.xApplication.Org.UnitExplorer.Unit(t,this.explorer,this.isEditor,this.level+1,this.childNode,this);this.explorer.elements.push(e);e.load();this.subUnits.push(e)}.bind(this))}this.isLoadSub=true;this.node.unmask();if(t)t()}.bind(this),null,this.data.id)},expand:function(t){this.childNode.setStyle("display","block");this.isExpand=true;this.setToggleIconNode();if(!this.isLoadSub){this.listSubUnit(t)}else{if(t)t()}},collapse:function(){this.childNode.setStyle("display","none");this.isExpand=false;this.setToggleIconNode()},unSelected:function(){if(this.content.baseInfor.mode==="edit")return false;this.explorer.currentItem=null;this.contentNode.setStyles(this.style.contentNode);this.textNode.setStyles(this.style.unitTextNode);this.actionNode.setStyles(this.style.actionNode);if(this.deleteNode)this.deleteNode.setStyles(this.style.actionDeleteNode);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode);this.iconNode.setStyle("background-image","url("+this._getIcon()+")");this.setToggleIconNode();this.clearItemProperty();return true},selected:function(){this.explorer.currentItem=this;this.contentNode.setStyles(this.style.contentNode_selected);this.textNode.setStyles(this.style.textNode_selected);this.actionNode.setStyles(this.style.actionNode_selected);if(this.deleteNode)this.deleteNode.setStyles(this.style.actionDeleteNode_selected);if(this.addNode)this.addNode.setStyles(this.style.actionAddNode_selected);this.iconNode.setStyle("background-image","url("+this._getIcon()+")");this.setToggleIconNode();this.showItemProperty()},showItemProperty:function(){this.content=new MWF.xApplication.Org.UnitExplorer.UnitContent(this)},delete:function(t,e){this.explorer.actions.deleteUnit(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 this.explorer.currentItem===this?"/x_component_Org/$Explorer/default/icon/unit_current.png":"/x_component_Org/$Explorer/default/icon/unit.png"},_isActionManager:function(){return MWF.AC.isOrganizationManager()||MWF.AC.isUnitManager()}});MWF.xApplication.Org.UnitExplorer.UnitContent=new Class({Extends:MWF.xApplication.Org.$Explorer.ItemContent,_getData:function(t){if(this.item.data.id){this.explorer.actions.getUnit(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.UnitExplorer.UnitContent.TitleInfor(this)},_showItemPropertyBottom:function(){this.bottomInfor=new MWF.xApplication.Org.UnitExplorer.UnitContent.BottomInfor(this)},loadItemPropertyTab:function(t){this.propertyTabContainerNode=new Element("div",{styles:this.item.style.tabTitleNode}).inject(this.propertyContentNode,"top");MWF.require("MWF.widget.Tab",function(){this.propertyTab=new MWF.widget.Tab(this.propertyContentNode,{style:"unit"});this.propertyTab.load();this.propertyTab.tabNodeContainer.inject(this.propertyTabContainerNode);if(t)t()}.bind(this))},_loadTabs:function(){this.baseContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.basePage=this.propertyTab.addTab(this.baseContentNode,this.explorer.app.lp.unitBaseText);this.personMemberContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.personMemberPage=this.propertyTab.addTab(this.personMemberContentNode,this.explorer.app.lp.unitPersonMembers);this.dutyContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.dutyPage=this.propertyTab.addTab(this.dutyContentNode,this.explorer.app.lp.unitDutys);this.attributeContentNode=new Element("div",{styles:this.item.style.tabContentNode});this.attributePage=this.propertyTab.addTab(this.attributeContentNode,this.explorer.app.lp.unitAttribute)},_loadContent:function(){this._listBaseInfor();this.loadListCount();this._listIdentityMembers();this._listDutys();this._listAttributes()},loadListCount:function(){var t=this.data.woSubDirectIdentityList.length;if(t){if(this.identityCountNode){this.identityCountNode.set("text",t)}else{this.identityCountNode=new Element("div",{styles:this.item.style.tabCountNode,text:t}).inject(this.personMemberPage.tabNode)}}else{if(this.identityCountNode)this.identityCountNode.destroy()}var e=this.data.woUnitDutyList.length;if(e){if(this.dutyCountNode){this.dutyCountNode.set("text",e)}else{this.dutyCountNode=new Element("div",{styles:this.item.style.tabCountNode,text:e}).inject(this.dutyPage.tabNode)}}else{if(this.dutyCountNode)this.dutyCountNode.destroy()}var i=this.data.woUnitAttributeList.length;if(i){if(this.attributeCountNode){this.attributeCountNode.set("text",i)}else{this.attributeCountNode=new Element("div",{styles:this.item.style.tabCountNode,text:i}).inject(this.attributePage.tabNode)}}else{if(this.attributeCountNode)this.attributeCountNode.destroy()}},_listBaseInfor:function(){this.baseInfor=new MWF.xApplication.Org.UnitExplorer.UnitContent.BaseInfor(this)},_listDutys:function(){var t=this;this.dutyList=new MWF.xApplication.Org.List(this.dutyContentNode,this,{action:this.data.control.allowEdit,saveAction:"saveUnitduty",deleteAction:"deleteUnitduty",data:{description:"",name:"",unique:"",unit:this.data.id,orderNumber:"",identityList:[],woIdentityList:[]},attr:["name","description",{get:function(){return""},events:{init:function(){var e=this.td;if(this.item.list.options.action){var i=new Element("div",{styles:t.item.style.dutyIdentityAction}).inject(this.td);e=new Element("div",{styles:t.item.style.dutyIdentityContent}).inject(this.td);i.addEvent("click",function(){t.editDutyIdentity(this.data,e)}.bind(this))}var s=this.data;this.data.woIdentityList.each(function(i,n){new MWF.widget.O2Identity(i,e,{canRemove:t.data.control.allowEdit,onRemove:function(e,i){t.deleteDutyIdentity(s,i,e)}})}.bind(this))},click:function(){}}}],onPostSave:function(t,e){if(!t.data.id){t.data.id=e;this.data.woUnitDutyList.push(t.data)}this.loadListCount()}.bind(this),onPostDelete:function(t){if(this.dutyCountNode){var e=this.dutyCountNode.get("text").toInt()-t;this.dutyCountNode.set("text",e)}}.bind(this)});this.dutyList.load([{style:"width: 20%",text:this.explorer.app.lp.dutyName},{style:"",text:this.explorer.app.lp.description},{style:"width: 50%",text:this.explorer.app.lp.dutyMembers}]);this.data.woUnitDutyList.each(function(t){this.dutyList.push(t)}.bind(this))},editDutyIdentity:function(t,e){var i=this;MWF.xDesktop.requireApp("Selector","Identity",function(){var s=new MWF.xApplication.Selector.Identity(this.explorer.app.content,{values:t.identityList,onComplete:function(s){var n=[];var o=[];e.empty();s.each(function(s,d){n.push(s.data);o.push(s.data.id);new MWF.widget.O2Identity(s.data,e,{canRemove:true,onRemove:function(e,s){i.deleteDutyIdentity(t,s,e)}})}.bind(this));t.identityList=o;t.woIdentityList=n;i.saveDuty(t)}.bind(this)});s.load()}.bind(this))},deleteDutyIdentity:function(t,e,i){var s=this;var n=this.explorer.app.lp.deleteDutyIdentity.replace(/{duty}/g,t.name);n=n.replace(/{identity}/g,i.data.name);this.explorer.app.confirm("warn",e,this.explorer.app.lp.deleteDutyIdentityTitle,n,"360","170",function(){t.identityList.erase(i.data.id);t.woIdentityList=t.woIdentityList.filter(function(t){return i.data.id!==t.id});s.saveDuty(t,function(){i.destroy()});this.close()},function(){this.close()})},saveDuty:function(t,e){this.propertyContentScrollNode.mask({style:{opacity:.7,"background-color":"#999"}});this.explorer.actions.saveUnitduty(t,function(){this.propertyContentScrollNode.unmask();if(e)e()}.bind(this),function(t,e,i){var s=i;if(t)s=t.responseText;this.explorer.app.notice("request json error: "+s,"error");this.content.propertyContentScrollNode.unmask()}.bind(this))},_listAttributes:function(){this.attributeList=new MWF.xApplication.Org.List(this.attributeContentNode,this,{action:this.data.control.allowEdit,saveAction:"saveUnitattribute",deleteAction:"deleteUnitattribute",data:{description:"",name:"",unique:"",unit:this.data.id,orderNumber:"",attributeList:[]},attr:["name",{get:function(){return this.attributeList.join(",")},set:function(t){debugger;this.attributeList=t.split(/,\s*/g)}},"description"],onPostSave:function(t,e){if(!t.data.id){t.data.id=e;this.data.woUnitAttributeList.push(t.data)}this.loadListCount()}.bind(this),onPostDelete:function(t){if(this.attributeCountNode){var e=this.attributeCountNode.get("text").toInt()-t;this.attributeCountNode.set("text",e)}}.bind(this)});this.attributeList.load([{style:"width: 20%",text:this.explorer.app.lp.attributeName},{style:"width: 45%",text:this.explorer.app.lp.attributeValue},{style:"",text:this.explorer.app.lp.description}]);this.data.woUnitAttributeList.each(function(t){this.attributeList.push(t)}.bind(this))},_listIdentityMembers:function(){var t=this;this.identityMemberList=new MWF.xApplication.Org.List(this.personMemberContentNode,this,{action:this.data.control.allowEdit,canEdit:false,deleteAction:"deleteIdentity",deleteItemTitle:this.explorer.app.lp.deleteIdentityMemeberTitle,deleteItemText:this.explorer.app.lp.deleteIdentityMemeber,data:{},attr:[{get:function(){var e=t.explorer.actions.getPersonIcon(this.woPerson.id);return"
| "+this.explorer.app.lp.unitName+": | "+(this.data.name||"")+" | "+""+this.explorer.app.lp.unitUnique+": | "+(this.data.unique||"")+" |
| "+this.explorer.app.lp.unitTypeList+": | "+(this.data.typeList.join(", ")||"")+" | "+""+this.explorer.app.lp.unitShortName+": | "+(this.data.shortName||"")+" |
| "+this.explorer.app.lp.unitDescription+": | "+(this.data.description||"")+" | ";t+="||
| "+this.explorer.app.lp.unitControllerList+": | ";t+=" | ||
| "+this.explorer.app.lp.orderNumber+": | "+(this.data.orderNumber||"")+" | ";t+="||