| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383 |
- 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(){
- console.log('_loadLp');
- 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(addToNext){
- console.log('loadElements');
- if (!this.isElementLoaded){
- if (!this.loaddingElement){
- this.loaddingElement = true;
- this._listElementNext(function(json){
- if (json.data.length){
- this.loadListContent(json.data);
- }else{
- if (!this.elements.length){
- this.setNoGroupNoticeArea();
- }
- }
- this.loadElementQueue = 0;
- this.isElementLoaded = true;
- this.loaddingElement = false;
- }.bind(this));
- }else{
- if (addToNext) this.loadElementQueue++;
- }
- }
- },
- loadListContent: function(data){
- data.each(function(itemData, i){
- var item = this._newElement(itemData, this, i);
- this.elements.push(item);
- item.load();
- if (this.elements.length===1){
- item.selected();
- if (!item.isExpand) item.expand();
- }
- }.bind(this));
- },
- _listElementNext: function(callback){
- if (MWF.AC.isOrganizationManager()){
- this.actions.listTopUnit(function(json){
- if (callback) callback.apply(this, [json]);
- }.bind(this));
- }else{
- if (layout.session.user.identityList.length){
- var json = {"data": []};
- var unitNames = [];
- layout.session.user.identityList.each(function(id){
- var idFlag = (id.distinguishedName || id.id || id.unique || id.name);
- o2.Actions.get("x_organization_assemble_express").getUnitWithIdentityAndLevel({"identity": idFlag, "level": 1}, function(o){
- if (o.data){
- this.actions.getUnit(o.data.distinguishedName, function(u){
- if (unitNames.indexOf(u.data.distinguishedName)==-1){
- unitNames.push(u.data.distinguishedName);
- json.data.push(u.data);
- }
- }.bind(this),null, false);
- }
- }.bind(this), null, false);
- }.bind(this));
- if (callback) callback.apply(this, [json]);
- }
- }
- },
- _newElement: function(data, explorer){
- return new MWF.xApplication.Org.UnitExplorer.Unit(data, explorer, this.isEditor, 0);
- },
- _listElementByKey: function(callback, failure, key){
- this.actions.listUnitByKey(function(json){
- if (callback) callback.apply(this, [json]);
- }.bind(this), failure, key);
- },
- _getAddElementData: function(){
- return {
- "name": "",
- "unique": "",
- "typeList": ["company"],
- "description": "",
- "shortName": "",
- "superior": "",
- "orderNumber": "",
- "controllerList": [],
- "control": {
- "allowEdit": true,
- "allowDelete": true
- },
- "woSubDirectIdentityList": [],
- "woUnitAttributeList": [],
- "woUnitDutyList": []
- };
- },
- deleteSelectedElements: function(e){
- var _self = this;
- this.app.confirm("infor", e, this.options.lp.deleteElementsTitle, {"html": this.options.lp.deleteElementsConfirm}, 500, 260, function(){
- var deleted = [];
- var doCount = 0;
- var readyCount = _self.deleteElements.length;
- var errorText = "";
- var complete;
- complete = function () {
- if (doCount === readyCount) {
- if (errorText) {
- _self.app.notice(errorText, "error", _self.propertyContentNode, {x: "left", y: "top"});
- }
- }
- };
- _self.deleteElements.each(function(element){
- element["delete"](function(){
- deleted.push(element);
- doCount++;
- if (_self.deleteElements.length===doCount){
- _self.deleteElements = _self.deleteElements.filter(function (item) {
- return !deleted.contains(item);
- });
- _self.checkDeleteElements();
- }
- complete();
- }, function(error){
- errorText = (errorText) ? errorText+"<br/><br/>"+error : error;
- doCount++;
- if (_self.deleteElements.length !== doCount) {
- } else {
- _self.deleteElements = _self.deleteElements.filter(function (item) {
- return !deleted.contains(item);
- });
- _self.checkDeleteElements();
- }
- complete();
- });
- });
- this.close();
- }, function(){
- this.close();
- });
- }
- });
- MWF.xApplication.Org.UnitExplorer.Unit = new Class({
- Extends: MWF.xApplication.Org.$Explorer.Item,
- initialize: function(data, explorer, isEditor, i, listNode, parent){
- this.i = i;
- this.level = i;
- this.parent = parent;
- this.data = data;
- this.explorer = explorer;
- this.listNode = listNode || this.explorer.listNode;
- this.propertyContentNode = this.explorer.propertyContentNode;
- this.initStyle();
- this.selectedAttributes = [];
- this.isEdit = false;
- this.isEditor = isEditor;
- 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 css = Object.clone(this.explorer.css.item);
- this.style = Object.merge(css, 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 left = (10*this.level);
- this.contentNode.setStyle("padding-left", ""+left+"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 src = this._getIcon();
- this.iconNode.setStyle("background-image", "url("+src+")");
- 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(){
- //if (this.isEditor){
- 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(e){
- if (!this.notDelete){
- if (!this.deleteSelected){
- this.setDelete();
- }else{
- this.setUndelete();
- }
- }
- e.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(e){
- if (!this.notDelete){
- this.addSubUnit();
- }
- e.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(){
- var isNewElement = true;
- if (this.explorer.currentItem) isNewElement = this.explorer.currentItem.unSelected();
- if (isNewElement){
- var newElementData = this.explorer._getAddElementData();
- newElementData.superior = this.data.id;
- var item = new MWF.xApplication.Org.UnitExplorer.Unit(newElementData, this.explorer, this.isEditor, this.level+1, this.childNode, this);
- item.load();
- item.selected();
- item.editBaseInfor();
- (new Fx.Scroll(this.explorer.listScrollNode)).toElementCenter(item.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(unit){
- unit.setDeleteFromP();
- });
- this.deleteNode.setStyles(this.style.actionDeleteNode_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);
- },
- setDelete: function(){
- //this.actionNode.fade("in");
- this.subUnits.each(function(unit){
- unit.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.actionNode.fade("out");
- this.notDelete = false;
- this.subUnits.each(function(unit){
- unit.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 toggle_on = (this.explorer.currentItem===this) ? "toggle_current_on" : "toggle_on";
- var toggle_off = (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/"+toggle_on+".png)");
- }else{
- this.toggleIconNode.setStyle("background-image", "url(../x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/"+toggle_off+".png)");
- }
- }else{
- this.toggleIconNode.setStyle("background-image", "");
- }
- },
- setToggleAction: function(){
- this.toggleIconNode.addEvent("click", function(e){
- this.expandOrCollapse();
- e.stopPropagation();
- }.bind(this));
- },
- expandOrCollapse: function(){
- if (this.isExpand){
- this.collapse();
- }else{
- this.expand();
- }
- },
- listSubUnit: function(callback){
- this.node.mask();
- this.explorer.actions.listSubUnitDirect(function(json){
- if (json.data.length){
- json.data.each(function(itemData){
- var item = new MWF.xApplication.Org.UnitExplorer.Unit(itemData, this.explorer, this.isEditor, this.level+1, this.childNode, this);
- this.explorer.elements.push(item);
- item.load();
- this.subUnits.push(item);
- }.bind(this));
- }
- this.isLoadSub = true;
- this.node.unmask();
- if (callback) callback();
- }.bind(this), null, this.data.id);
- },
- expand: function(callback){
- this.childNode.setStyle("display", "block");
- this.isExpand = true;
- this.setToggleIconNode();
- if (!this.isLoadSub){
- this.listSubUnit(callback);
- }else{
- if (callback) callback();
- }
- },
- 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(success, failure){
- this.explorer.actions.deleteUnit(this.data.id, function(){
- this.destroy();
- if (success) success();
- }.bind(this), function(xhr, text, error){
- var errorText = error;
- if (xhr) errorText = xhr.responseText;
- MWF.xDesktop.notice("error", {x: "right", y:"top"}, "request json error: "+errorText);
- if (failure) failure();
- });
- },
- _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(callback){
- if (this.item.data.id){
- this.explorer.actions.getUnit(function(json){
- this.data = json.data;
- this.item.data = json.data;
- if (callback) callback();
- }.bind(this), null, this.item.data.id);
- }else{
- this.data = this.item.data;
- if (callback) callback();
- }
- },
- _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(callback){
- 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 (callback) callback();
- }.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);
- if (this.data.control.allowEdit){
- 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();
- if (this.data.control.allowEdit) this._listAttributes();
- //var _self = this;
- // this.personMemberList = this._listMembers("personList", "woSubDirectIdentityList", this.personMemberContentNode, [{
- // "get": function(){
- // var src = _self.explorer.actions.getPersonIcon(this.person);
- // return "<div style='width:24px; height:24px;''><img style='width:24px; height:24px; border-radius:12px; border: 0' src='"+src+"'/></div>";
- // },
- // "set": function(){}
- // }, "name", "employee", "mobile", "mail"], [
- // {"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}
- // ], this.addPersonMember.bind(this), "personCountNode");
- //
- // this.groupMemberList = this._listMembers("groupList", "woGroupList", this.groupMemberContentNode, ["name", "distinguishedName", "description"], [
- // {"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}
- // ], this.addGroupMember.bind(this), "groupCountNode");
- },
- loadListCount: function(){
- var identityCount = this.data.woSubDirectIdentityList.length;
- if (identityCount){
- if (this.identityCountNode){
- this.identityCountNode.set("text", identityCount);
- }else{
- this.identityCountNode = new Element("div", {"styles": this.item.style.tabCountNode, "text": identityCount}).inject(this.personMemberPage.tabNode);
- }
- }else{
- if (this.identityCountNode) this.identityCountNode.destroy();
- }
- var dutyCount = this.data.woUnitDutyList.length;
- if (dutyCount){
- if (this.dutyCountNode){
- this.dutyCountNode.set("text", dutyCount);
- }else{
- this.dutyCountNode = new Element("div", {"styles": this.item.style.tabCountNode, "text": dutyCount}).inject(this.dutyPage.tabNode);
- }
- }else{
- if (this.dutyCountNode) this.dutyCountNode.destroy();
- }
- if (this.data.control.allowEdit){
- var attributeCount = this.data.woUnitAttributeList.length;
- if (attributeCount){
- if (this.attributeCountNode){
- this.attributeCountNode.set("text", attributeCount);
- }else{
- this.attributeCountNode = new Element("div", {"styles": this.item.style.tabCountNode, "text": attributeCount}).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 _self = 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(){
- //var html = "";
- // this.woIdentityList.each(function(identity){
- // html+="<div>"+identity.name+"</div>"
- // }.bind(this));
- return "";
- },
- "events": {
- "init": function(){
- //var divs = this.td.getElements("div");
- var contentNode = this.td;
- if (this.item.list.options.action){
- var actionDiv = new Element("div", {"styles": _self.item.style.dutyIdentityAction}).inject(this.td);
- contentNode = new Element("div", {"styles": _self.item.style.dutyIdentityContent}).inject(this.td);
- actionDiv.addEvent("click", function(){
- _self.editDutyIdentity(this.data, contentNode);
- }.bind(this));
- }
- var _dutyData = this.data;
- this.data.woIdentityList.each(function(identity, i){
- new MWF.widget.O2Identity(identity, contentNode, {
- "lazy" : true,
- "canRemove": _self.data.control.allowEdit,
- "onRemove": function(O2Identity, e){
- _self.deleteDutyIdentity(_dutyData, e, O2Identity);
- }
- })
- }.bind(this));
- },
- "click": function(){
- //_self.explorer.openGroup(this.data, this.td);
- }
- }
- }],
- "onPostSave": function(item, id){
- if (!item.data.id){
- item.data.id = id;
- this.data.woUnitDutyList.push(item.data);
- }
- this.loadListCount();
- }.bind(this),
- "onPostDelete": function(delCount){
- if (this.dutyCountNode){
- var count = this.dutyCountNode.get("text").toInt()-delCount;
- this.dutyCountNode.set("text", count);
- }
- }.bind(this),
- });
- //this.dutyList.addItem = function(){this.addDuty();};
- 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(item){
- //this.attributes.push(new MWF.xApplication.Org.PersonExplorer.PersonAttribute(this.attributeTabContentNode.getElement("table").getFirst(), item, this, this.explorer.css.list));
- this.dutyList.push(item);
- }.bind(this));
- },
- editDutyIdentity: function(dutyData, contentNode){
- var _self = this;
- MWF.xDesktop.requireApp("Selector", "Identity", function(){
- var selector = new MWF.xApplication.Selector.Identity(this.explorer.app.content,{
- "values": dutyData.identityList,
- "onComplete": function(items){
- var woIdentityList = [];
- var identityList = [];
- contentNode.empty();
- items.each(function(item, i){
- woIdentityList.push(item.data);
- identityList.push(item.data.id);
- new MWF.widget.O2Identity(item.data, contentNode, {
- "canRemove": true,
- "onRemove": function(O2Identity, e){
- _self.deleteDutyIdentity(dutyData, e, O2Identity);
- }
- })
- }.bind(this));
- dutyData.identityList = identityList;
- dutyData.woIdentityList = woIdentityList;
- _self.saveDuty(dutyData);
- }.bind(this)
- });
- selector.load();
- }.bind(this));
- },
- deleteDutyIdentity: function(dutyData, e, O2Identity){
- var _self = this;
- var text = this.explorer.app.lp.deleteDutyIdentity.replace(/{duty}/g, dutyData.name);
- text = text.replace(/{identity}/g, O2Identity.data.name);
- this.explorer.app.confirm("warn", e, this.explorer.app.lp.deleteDutyIdentityTitle, text, "360", "170", function(){
- dutyData.identityList.erase(O2Identity.data.id);
- dutyData.woIdentityList = dutyData.woIdentityList.filter(function(a){
- return (O2Identity.data.id !== a.id);
- });
- _self.saveDuty(dutyData, function(){
- O2Identity.destroy();
- });
- this.close();
- }, function(){
- this.close();
- });
- },
- saveDuty: function(data, callback){
- this.propertyContentScrollNode.mask({
- "style": {
- "opacity": 0.7,
- "background-color": "#999"
- }
- });
- this.explorer.actions.saveUnitduty(data, function(){
- this.propertyContentScrollNode.unmask();
- if (callback) callback();
- }.bind(this), function(xhr, text, error){
- var errorText = error;
- if (xhr) errorText = xhr.responseText;
- this.explorer.app.notice("request json error: "+errorText, "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(value){this.attributeList = value.split(/,\s*/g)}
- }, "description"],
- "onPostSave": function(item, id){
- if (!item.data.id){
- item.data.id = id;
- this.data.woUnitAttributeList.push(item.data);
- }
- this.loadListCount();
- }.bind(this),
- "onPostDelete": function(delCount){
- if (this.attributeCountNode){
- var count = this.attributeCountNode.get("text").toInt()-delCount;
- this.attributeCountNode.set("text", count);
- }
- }.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(item){
- //this.attributes.push(new MWF.xApplication.Org.PersonExplorer.PersonAttribute(this.attributeTabContentNode.getElement("table").getFirst(), item, this, this.explorer.css.list));
- this.attributeList.push(item);
- }.bind(this));
- },
- _listIdentityMembers: function(){
- var _self = 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": [{
- "getHtml": function(){
- var src = _self.explorer.actions.getPersonIcon(this.woPerson.id);
- return "<div style='width:24px; height:24px;''><img style='width:24px; height:24px; border-radius:12px; border: 0' src='"+src+"'/></div>";
- },
- "set": function(){}
- }, {
- "get": function(){return this.woPerson.name}
- }, {
- "get": function(){return this.woPerson.employee}
- }, {
- "get": function(){return this.woPerson.mobile}
- }, {
- "get": function(){return this.woPerson.mail}
- }, {
- "getHtml": function(){
- return "<div style='width:24px; height:24px; background:url(../x_component_Org/$Explorer/"+
- _self.explorer.app.options.style+"/icon/open.png) center center no-repeat'></div>";
- },
- "events": {
- "click": function(){
- _self.explorer.openPerson(this.data.woPerson, this.td);
- }
- }
- }, {
- "getHtml": function(){
- return "<div style='-webkit-user-select: none; -moz-user-select: none; width:24px; height:24px; cursor: move; background:url(../x_component_Org/$Explorer/"+
- _self.explorer.app.options.style+"/icon/move.png) center center no-repeat'></div>";
- },
- "events": {
- "selectstart": function(e){e.stopPropagation(); e.preventDefault();return false;},
- "touchstart": function(e){_self.startOrder(this.item, this.td, e)},
- "mousedown": function(e){_self.startOrder(this.item, this.td, e)}
- }
- }],
- "onPostDelete": function(delCount){
- if (this.identityCountNode){
- var count = this.identityCountNode.get("text").toInt()-delCount;
- this.identityCountNode.set("text", count);
- }
- }.bind(this),
- "onPostLoadAction": function () {
- debugger;
- this.sortAction = new Element("div", {"styles": this.css.sortActionNode, "text": _self.explorer.app.lp.sortByPinYin}).inject(this.actionNode);
- this.sortAction.addEvent("click", function (e) {
- _self.sortByPinYin(e)
- })
- }
- });
- this.identityMemberList.addItem = this.addPersonMember.bind(this);
- this.identityMemberList.load([
- {"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: 10px", "text": ""},
- {"style": "width: 10px", "text": ""}
- ]);
- this.data.woSubDirectIdentityList.each(function(id){
- var item = this.identityMemberList.push(id);
- }.bind(this));
- },
- sortByPinYin : function(e){
- var _self = this;
- this.explorer.app.confirm("infor", e, this.explorer.app.lp.sortByPinYin, {"html": this.explorer.app.lp.sortByPinYinConfirmContent}, 300, 180, function(){
- debugger;
- var list = _self.data.woSubDirectIdentityList;
- list.sort( function(a, b){
- return a.name.localeCompare(b.name);
- });
- for( var i=0; i<list.length; i++ ){
- _self.explorer.actions.orderIdentity(list[i].id, "(0)", function(){}, null, false);
- }
- _self.identityMemberList.clear();
- list.each(function(id){
- var item = _self.identityMemberList.push(id);
- }.bind(this));
- this.close();
- }, function(){
- this.close();
- });
- },
- startOrder: function(item, td, e){
- var tr = td.getParent("tr");
- var table = tr.getParent("table");
- var div = td.getFirst("div");
- var size = tr.getSize();
- var titleTr = table.getElement("tr");
- var moveNode = new Element("table", {"styles": {
- "opacity": 0.7,
- "border": "1px dashed #999",
- "z-index": 10000,
- "width": size.x,
- "height": size.y,
- "background-color": "#CCC",
- "position": "absolute"
- }}).inject(this.explorer.app.content);
- var moveNodeTr = tr.clone().inject(moveNode);
- var moveTds = moveNodeTr.getElements("td");
- titleTr.getElements("th").each(function(cell, i){
- moveTds[i].setStyle("width", ""+cell.getSize().x+"px");
- });
- moveNode.position({
- relativeTo: tr,
- position: 'upperLeft',
- edge: 'upperLeft'
- });
- div.setStyle("display", "none");
- var nextData = {};
- var ntr = tr.getNext("tr");
- if (ntr) nextData = ntr.retrieve("data");
- if (!nextData) nextData={};
- var drag = new Drag.Move(moveNode, {
- "container": table,
- "droppables": table.getElements("tr").erase(tr),
- "preventDefault": true,
- "stopPropagation": true,
- "onStart": function(){
- tr.setStyles({
- "display": "none",
- "background-color": "#dff3fc"
- });
- }.bind(this),
- "onEnter": function(element, droppable){
- tr.inject(droppable, "after");
- droppable.setStyles({"background": "#fcf8f1"});
- tr.setStyles({"display": "table-row"});
- element.setStyles({"display": "none"});
- var nextTr = tr.getNext("tr");
- if (nextTr){
- nextData = nextTr.retrieve("data");
- }else{
- nextData={};
- }
- if (!nextData) nextData={};
- },
- "onLeave": function(element, droppable){
- droppable.setStyles({"background": "transparent "});
- tr.setStyles({"display": "none"});
- element.setStyles({"display": "block"});
- },
- "onDrop": function(dragging, droppable, e){
- var nextTr = tr.getNext("tr");
- if (nextTr){
- nextData = nextTr.retrieve("data");
- }else{
- nextData={};
- }
- if (!nextData) nextData={};
- moveNode.destroy();
- droppable.setStyles({"background": "transparent "});
- tr.setStyles({"background": "transparent "});
- this.explorer.actions.orderIdentity(item.data.id, nextData.id || "(0)", function(){});
- div.setStyle("display", "block");
- }.bind(this),
- "onCancel": function(dragging){
- dragging.destroy();
- drag = null;
- div.setStyle("display", "block");
- }
- });
- drag.start(e);
- // var moveNode = new Element("div", {"styles": {
- // "opacity": 0.7,
- // "border": "1px dashed #999",
- // "z-index": 10000,
- // "width": size.x,
- // "height": size.y,
- // "background-color": "#CCC",
- // "position": "absolute"
- // }}).inject(this.explorer.app.content);
- // moveNode.setStyles({
- // "opacity": 0.7,
- // "border": "1px dashed #999",
- // "z-index": 10000,
- // "width": size.x,
- // "height": size.y,
- // "background-color": "#CCC",
- // "position": "absolute"
- // });
- },
- addPersonMember: function(){
- this.checkSaveBaseInfor(function(){
- MWF.xDesktop.requireApp("Selector", "Person", function(){
- var selector = new MWF.xApplication.Selector.Person(this.explorer.app.content,{
- "values": [],
- "onComplete": function(items){
- var data = {
- "description": "",
- "name": "",
- "unique": "",
- "person": "",
- "department": "",
- "unit": this.data.id,
- "orderNumber": ""
- };
- items.each(function(item){
- var idData = Object.clone(data);
- idData.name = item.data.name;
- idData.person = item.data.id;
- this.explorer.actions.saveIdentity(idData, function(d){
- this.explorer.actions.getIdentity(function(id){
- this.data.woSubDirectIdentityList.push(id.data);
- this.identityMemberList.push(id.data);
- this.loadListCount();
- }.bind(this), null, d.data.id);
- }.bind(this));
- }.bind(this));
- }.bind(this)
- });
- selector.load();
- }.bind(this));
- }.bind(this));
- },
-
- checkSaveBaseInfor: function(callback){
- if (!this.data.id){
- if (this.baseInfor){
- if (this.baseInfor.mode==="edit") this.baseInfor.save(function(){
- if (callback) callback();
- }.bind(this));
- }
- }else{
- if (callback) callback();
- }
- }
- });
- MWF.xApplication.Org.UnitExplorer.UnitContent.TitleInfor = new Class({
- Extends: MWF.xApplication.Org.$Explorer.ItemContent.TitleInfor,
- _getStyle: function(){
- var css = Object.clone(this.item.style.person);
- return Object.merge(css, this.item.style.role);
- },
- _getIcon: function(){
- return "../x_component_Org/$Explorer/default/icon/unit70.png";
- },
- setBackground: function(){
- this.titleBgNode.setStyle("background-image", "url(../x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/unit_bg_bg.png)");
- this.titleNode.setStyle("background-image", "url(../x_component_Org/$Explorer/"+this.explorer.app.options.style+"/icon/unit_bg.png)");
- },
- loadRightInfor: function(){
- //var text = this.data.name+((this.data.unique) ? "("+this.data.unique+")" : "");
- var text = 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", text);
- this.signatureNode.set("text", (this.data.levelName || "" ));
- }
- });
- MWF.xApplication.Org.UnitExplorer.UnitContent.BottomInfor = new Class({
- Extends: MWF.xApplication.Org.$Explorer.ItemContent.BottomInfor,
- addInforList: function(){
- var text = this.explorer.app.lp.unitReadDn.replace(/{dn}/g, (this.data.distinguishedName || " "));
- this.addInfor(text);
- text = this.explorer.app.lp.unitReadLevel.replace(/{level}/g, (this.data.level || " "));
- text = text.replace(/{levelName}/g, (this.data.levelName || " "));
- this.addInfor(text);
- text = this.explorer.app.lp.unitReadCreate.replace(/{date}/g, (this.data.createTime || " "));
- text = text.replace(/{date2}/g, (this.data.updateTime || " "));
- this.addInfor(text);
- }
- });
- MWF.xApplication.Org.UnitExplorer.UnitContent.BaseInfor = new Class({
- initialize: function(content){
- this.content = content;
- this.item = content.item;
- this.data = this.item.data;
- this.explorer = this.item.explorer;
- this.contentNode = this.content.baseContentNode;
- this.style = this.item.style.person;
- this.attributes = [];
- 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());
- var n = this.editContentNode.getElement(".infor_name");
- if (n) n.set("text", this.data.name || "");
- var n = this.editContentNode.getElement(".infor_unique");
- if (n) n.set("text", this.data.unique || "");
- var n = this.editContentNode.getElement(".infor_type");
- if (n) n.set("text", this.data.typeList.join(", ") || "");
- var n = this.editContentNode.getElement(".infor_shortName");
- if (n) n.set("text", this.data.shortName || "");
- var n = this.editContentNode.getElement(".infor_description");
- if (n) n.set("text", this.data.description || "");
- var n = this.editContentNode.getElement(".infor_orderNumber");
- if (n) n.set("text", this.data.orderNumber || "");
- 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);
- var tdContents = this.editContentNode.getElements("td.inforContent");
- if (this.data.control.allowEdit){
- if (this.data.controllerList){
- this.data.controllerList.each(function(id){
- new MWF.widget.O2Person({"name": id}, tdContents[5], {"style": "xform"});
- }.bind(this));
- }
- if (this.data.superior) new MWF.widget.O2Unit({"name": this.data.superior}, tdContents[6], {"style": "xform"});
- }
- this.loadAction();
- },
- getContentHtml: function(){
- var html = "<table width='100%' cellpadding='3px' cellspacing='5px'>";
- html += "<tr><td class='inforTitle'>"+this.explorer.app.lp.unitName+":</td><td class='inforContent infor_name'></td>";
- if (this.data.control.allowEdit) html += "<td class='inforTitle'>"+this.explorer.app.lp.unitUnique+":</td><td class='inforContent infor_unique'></td>";
- html += "</tr><tr><td class='inforTitle'>"+this.explorer.app.lp.unitTypeList+":</td><td class='inforContent infor_type'></td>" +
- "<td class='inforTitle'>"+this.explorer.app.lp.unitShortName+":</td><td class='inforContent infor_shortName'></td></tr>";
- // html += "<tr><td class='inforTitle'>"+this.explorer.app.lp.unitLevel+":</td><td class='inforContent'>"+this.data.level+"</td>" +
- // "<td class='inforTitle'>"+this.explorer.app.lp.unitLevelName+":</td><td class='inforContent'>"+(this.data.levelName || "")+"</td></tr>";
- html += "<tr><td class='inforTitle'>"+this.explorer.app.lp.unitDescription+":</td><td colspan='3' class='inforContent infor_description'></td>";
- if (this.data.control.allowEdit){
- html += "<tr><td class='inforTitle'>"+this.explorer.app.lp.unitControllerList+":</td><td class='inforContent'></td>" +
- "<td class='inforTitle'>"+this.explorer.app.lp.unitSuperUnit+":</td><td class='inforContent'></td></tr>";
- html += "<tr><td class='inforTitle'>"+this.explorer.app.lp.orderNumber+":</td><td colspan='3' class='inforContent infor_orderNumber'></td></tr>";
- }
- html += "<tr><td colspan='4' class='inforAction'></td></tr>";
- //this.baseInforRightNode.set("html", html);
- return html;
- },
- loadAction: function(){
- //this.explorer.app.lp.edit
- var actionAreas = this.editContentNode.getElements("td");
- var actionArea = actionAreas[actionAreas.length-1];
- if (this.data.control.allowEdit){
- this.baseInforEditActionAreaNode = new Element("div", {"styles": this.style.baseInforEditActionAreaNode}).inject(actionArea);
- this.editNode = new Element("div", {"styles": this.style.actionEditNode, "text": this.explorer.app.lp.editUnit}).inject(this.baseInforEditActionAreaNode);
- this.saveNode = new Element("div", {"styles": this.style.actionSaveNode, "text": this.explorer.app.lp.saveUnit}).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{
- }
- },
- edit: function(){
- var tdContents = this.editContentNode.getElements("td.inforContent");
- tdContents[0].setStyles(this.style.baseInforContentNode_edit).empty();
- this.nameInputNode = new Element("input", {"styles": this.style.inputNode}).inject(tdContents[0]);
- this.nameInputNode.set("value", (this.data.name));
- tdContents[1].setStyles(this.style.baseInforContentNode_edit).empty();
- this.uniqueInputNode = new Element("input", {"styles": this.style.inputNode}).inject(tdContents[1]);
- this.uniqueInputNode.set("value", (this.data.unique));
- tdContents[2].setStyles(this.style.baseInforContentNode_edit).empty();
- this.typeListInputNode = new Element("input", {"styles": this.style.inputNode_type}).inject(tdContents[2]);
- this.typeListInputNode.set("value", ((this.data.typeList.length) ? this.data.typeList.join(", "): ""));
- this.loadUnitTypeSelect();
- tdContents[3].setStyles(this.style.baseInforContentNode_edit).empty();
- this.shortNameInputNode = new Element("input", {"styles": this.style.inputNode}).inject(tdContents[3]);
- this.shortNameInputNode.set("value", (this.data.shortName || ""));
- tdContents[4].setStyles(this.style.baseInforContentNode_edit).empty();
- this.descriptionInputNode = new Element("input", {"styles": this.style.inputNode}).inject(tdContents[4]);
- this.descriptionInputNode.set("value", (this.data.description || ""));
- tdContents[5].setStyles(this.style.baseInforContentNode_edit).empty();
- this.controllerListInputNode = new Element("div", {"styles": this.style.inputNode_person}).inject(tdContents[5]);
- tdContents[6].setStyles(this.style.baseInforContentNode_edit).empty();
- this.superUnitInputNode = new Element("div", {"styles": this.style.inputNode_person}).inject(tdContents[6]);
- tdContents[7].setStyles(this.style.baseInforContentNode_edit).empty();
- this.orderNumberInputNode = new Element("input", {"styles": this.style.inputNode, "type":"number"}).inject(tdContents[7]);
- this.orderNumberInputNode.set("value", (this.data.orderNumber || ""));
- //this.controllerListInputNode.set("value", ((this.data.controllerList) ? this.data.controllerList.join(", ") : ""));
- if (this.data.superior) new MWF.widget.O2Unit({"name": this.data.superior}, this.superUnitInputNode, {"style": "xform"});
- this.superUnitInputNode.addEvent("click", function(){
- MWF.xDesktop.requireApp("Selector", "package", function(){
- var options = {
- "type": "unit",
- "values": [this.data.superior] || [],
- "count": 1,
- "onComplete": function(items){
- this.superUnitInputNode.empty();
- this.data.oldSuperior = this.data.superior;
- if (items.length){
- this.data.superior = items[0].data.id;
- new MWF.widget.O2Unit({"name": this.data.superior}, this.superUnitInputNode, {"style": "xform"})
- }else{
- this.data.superior = "";
- }
- }.bind(this)
- };
- var selector = new MWF.O2Selector(this.explorer.app.content, options);
- }.bind(this));
- }.bind(this));
- if (this.data.controllerList){
- this.data.controllerList.each(function(id){
- new MWF.widget.O2Person({"name": id}, this.controllerListInputNode, {"style": "xform"});
- }.bind(this));
- }
- this.controllerListInputNode.addEvent("click", function(){
- MWF.xDesktop.requireApp("Selector", "package", function(){
- var options = {
- "type": "person",
- "values": this.data.controllerList || [],
- "count": 0,
- "onComplete": function(items){
- this.data.oldControllerList = this.data.controllerList;
- var controllerList = [];
- this.controllerListInputNode.empty();
- items.each(function(item){
- controllerList.push(item.data.id);
- new MWF.widget.O2Person(item.data, this.controllerListInputNode, {"style": "xform"});
- }.bind(this));
- this.data.controllerList = controllerList;
- }.bind(this)
- };
- var selector = new MWF.O2Selector(this.explorer.app.content, options);
- }.bind(this));
- }.bind(this));
- var _self = this;
- this.editContentNode.getElements("input").addEvents({
- "focus": function(){if (this.get("type").toLowerCase()==="text"){this.setStyles(_self.style.inputNode_focus);}},
- "blur": function(){if (this.get("type").toLowerCase()==="text"){this.setStyles(_self.style.inputNode_blur);}}
- });
- this.mode = "edit";
- this.editNode.setStyle("display", "none");
- this.saveNode.setStyle("display", "block");
- this.cancelNode.setStyle("display", "block");
- },
- loadUnitTypeSelect: function(){
- if (this.typeListInputNode){
- this.typeListInputNode.addEvents({
- "blur": function(){this.hideTypeSelectNode();}.bind(this),
- "click": function(){this.showTypeSelectNode();}.bind(this),
- "focus": function(){this.showTypeSelectNode();}.bind(this)
- });
- }
- },
- hideTypeSelectNode: function(){
- if (this.typeSelectNode) this.typeSelectNode.destroy();
- this.typeSelectNode = null;
- },
- showTypeSelectNode: function(){
- if (!this.typeSelectNode){
- this.typeSelectNode = new Element("div", {"styles": this.style.typeSelectNode}).inject(this.typeListInputNode, "after");
- var size = this.typeListInputNode.getSize();
- var width = size.x-3;
- this.typeSelectNode.setStyle("width", ""+width+"px");
- this.typeSelectNode.position({
- "relativeTo": this.typeListInputNode,
- "position": 'bottomLeft',
- "edge": 'upperLeft',
- "offset": {"x": 1, "y": -3}
- });
- this.explorer.actions.listUnitType(function(json){
- var count = json.data.valueList.length;
- var height = (count*30);
- this.typeSelectNode.setStyle("height", ""+height+"px");
- json.data.valueList.each(function(t, i){
- this.createTypeSelectItem(t, i);
- }.bind(this));
- }.bind(this));
- }
- },
- createTypeSelectItem: function(text, i){
- var typeSelectItemNode = new Element("div", {"styles": this.style.typeSelectItemNode}).inject(this.typeSelectNode);
- if ((i % 2)===0) typeSelectItemNode.setStyle("background", "#f4f9ff");
- var iconNode = new Element("div", {"styles": this.style.typeSelectItemIconNode}).inject(typeSelectItemNode);
- var textNode = new Element("div", {"styles": this.style.typeSelectItemTextNode}).inject(typeSelectItemNode);
- textNode.set("text", text);
- var _self = this;
- typeSelectItemNode.addEvents({
- "mouseover": function(){this.setStyle("background-color", "#fef5e7");},
- "mouseout": function(){this.setStyle("background", "#ffffff"); if ((i % 2)===0) this.setStyle("background", "#f4f9ff");},
- "mousedown": function(){
- _self.typeListInputNode.set("value", this.get("text"));
- }
- });
- },
- save: function(){
- var tdContents = this.editContentNode.getElements("td.inforContent");
- if (!this.nameInputNode.get("value")){
- this.explorer.app.notice(this.explorer.app.lp.inputUnitInfor, "error", this.explorer.propertyContentNode);
- return false;
- }
- if(!this.descriptionInputNode.get("value")){
- this.explorer.app.notice('请输入组织描述', "error", this.explorer.propertyContentNode);
- return false;
- }
- if(((this.typeListInputNode.get("value")) ? this.typeListInputNode.get("value").split(/,\s*/g) : []).length===0){
- this.explorer.app.notice('请输入组织类别', "error", this.explorer.propertyContentNode);
- return false;
- }
- //this.data.genderType = gender;
- //if (!this.uniqueInputNode.get("value")) this.data.unique = this.employeeInputNode.get("value");
- this.content.propertyContentScrollNode.mask({
- "style": {
- "opacity": 0.7,
- "background-color": "#999"
- }
- });
- this.saveUnit(function(){
- this.cancel( null,true );
- this.content.propertyContentScrollNode.unmask();
- }.bind(this), function(xhr, text, error){
- var errorText = error;
- if (xhr) errorText = xhr.responseText;
- this.explorer.app.notice("request json error: "+errorText, "error");
- this.content.propertyContentScrollNode.unmask();
- }.bind(this));
- },
- saveUnit: function(callback, cancel){
- var data = Object.clone(this.data);
- data.name = this.nameInputNode.get("value");
- data.unique = this.uniqueInputNode.get("value");
- data.typeList = (this.typeListInputNode.get("value")) ? this.typeListInputNode.get("value").split(/,\s*/g) : [];
- data.shortName = this.shortNameInputNode.get("value");
- data.description = this.descriptionInputNode.get("value");
- data.orderNumber = this.orderNumberInputNode.get("value");
- delete data.oldSuperior;
- delete data.oldControllerList;
- //data.controllerList = (this.controllerListInputNode.get("value")) ? this.controllerListInputNode.get("value").split(/,\s*/g) : [];
- this.explorer.actions.saveUnit(data, function(json){
- Object.merge(this.data, data);
- if (this.data.id){
- this.data.id = json.data.id;
- this.item.refresh();
- if (callback) callback();
- }else{
- this.explorer.actions.getUnit(function(json){
- this.data = Object.merge(this.data, json.data);
- this.item.data = this.data;
- this.item.refresh();
- if (this.item.parent) this.item.parent.subUnits.push(this.item);
- if (callback) callback();
- }.bind(this), null, json.data.id);
- }
- }.bind(this), function(xhr, text, error){
- if (cancel) cancel(xhr, text, error);
- }.bind(this));
- },
- cancel: function( ev, flag ){
- if (this.data.id){
- var tdContents = this.editContentNode.getElements("td.inforContent");
- tdContents[0].setStyles(this.style.baseInforContentNode).set("text", this.data.name || "");
- tdContents[1].setStyles(this.style.baseInforContentNode).set("text", this.data.unique || "");
- tdContents[2].setStyles(this.style.baseInforContentNode).set("text", ((this.data.typeList.length) ? this.data.typeList.join(", "): ""));
- tdContents[3].setStyles(this.style.baseInforContentNode).set("text", this.data.shortName || "");
- tdContents[4].setStyles(this.style.baseInforContentNode).set("text", this.data.description || "");
- //tdContents[5].setStyles(this.style.baseInforContentNode).set("text", ((this.data.controllerList.length) ? this.data.controllerList.join(", "): ""));
- tdContents[5].setStyles(this.style.baseInforContentNode).empty();
- tdContents[6].setStyles(this.style.baseInforContentNode).empty();
- tdContents[7].setStyles(this.style.baseInforContentNode).set("text", this.data.orderNumber || "");
- if( !flag ){
- if (this.data.oldSuperior) this.data.superior = this.data.oldSuperior;
- if (this.data.oldControllerList) this.data.controllerList = this.data.oldControllerList;
- }
- delete this.data.oldSuperior;
- delete this.data.oldControllerList;
- if (this.data.superior) new MWF.widget.O2Unit({"name": this.data.superior}, tdContents[6], {"style": "xform"});
- if (this.data.controllerList){
- this.data.controllerList.each(function(id){
- new MWF.widget.O2Person({"name": id}, tdContents[5], {"style": "xform"});
- }.bind(this));
- }
- 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);
- }
- });
|