| 1 |
- MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xDesktop.requireApp("Selector","package",null,false);MWF.require("MWF.widget.O2Identity",null,false);MWF.xApplication.process.Xform.Personfield=MWF.APPPersonfield=new Class({Implements:[Events],Extends:MWF.APP$Input,options:{moduleEvents:["load","queryLoad","postLoad","change","select"],readonly:true},iconStyle:"personfieldIcon",getTextData:function(){var t=this.getValue();var e=[];t.each(function(t){e.push(t.name+(t.unitName?"("+t.unitName+")":""))}.bind(this));return{value:t||"",text:[e.join(",")]}},loadDescription:function(){var t=this._getBusinessData();if(!t||!t.length){if(this.json.description){var e=this.node.getFirst().getSize();var i=e.x-3;if(COMMON.Browser.safari)i=i-20;this.descriptionNode=new Element("div",{styles:this.form.css.descriptionNode,text:this.json.description}).inject(this.node);this.descriptionNode.setStyles({width:""+i+"px",height:""+e.y+"px","line-height":""+e.y+"px"});this.setDescriptionEvent()}}},setDescriptionEvent:function(){if(this.descriptionNode){this.descriptionNode.addEvents({mousedown:function(){this.descriptionNode.setStyle("display","none");this.clickSelect()}.bind(this)})}},_loadNode:function(){if(this.readonly||this.json.isReadonly){this._loadNodeRead()}else{this._getOrgOptions();if(this.json.isInput){this._loadNodeInputEdit()}else{this._loadNodeEdit()}}},_getOrgOptions:function(){this.selectUnits=this.getSelectRange();if(this.json.selectType=="identity"){this.selectDutys=this.getSelectRangeDuty()}},getScriptSelectUnit:function(){var n=[];if(this.json.rangeUnit&&this.json.rangeUnit.length){this.json.rangeUnit.each(function(t){var e=t.distinguishedName||t.id||t.unique||t.levelName;if(e)n.push(e)}.bind(this))}if(this.json.rangeField&&this.json.rangeField.length){this.json.rangeField.each(function(t){var e=typeOf(t)=="object"?t.name:t;var i=this.form.businessData.data[e];if(typeOf(i)!=="array")i=i?[i.toString()]:[];i.each(function(t){if(t){if(typeOf(t)==="string"){var e;this.getOrgAction().getUnit(function(t){e=t.data}.bind(this),null,t,false);n.push(e)}else{n.push(t)}}}.bind(this))}.bind(this))}if(this.json.rangeKey&&this.json.rangeKey.code){var t=this.form.Macro.exec(this.json.rangeKey.code,this);if(typeOf(t)!=="array")t=t?[t.toString()]:[];t.each(function(t){if(t){if(typeOf(t)==="string"){var e;this.getOrgAction().getUnit(function(t){e=t.data}.bind(this),null,t,false);n.push(e)}else{n.push(t)}}}.bind(this))}return n},getScriptSelectDuty:function(){var n=[];if(this.json.rangeDuty&&this.json.rangeDuty.length){this.json.rangeDuty.each(function(t){var e=t.id||t.name;if(e)n.push(e)}.bind(this))}if(this.json.rangeDutyField&&this.json.rangeDutyField.length){this.json.rangeDutyField.each(function(t){var e=typeOf(t)=="object"?t.name:t;var i=this.form.businessData.data[e];if(typeOf(i)!=="array")i=i?[i.toString()]:[];i.each(function(t){if(t)n.push(t)}.bind(this))}.bind(this))}if(this.json.rangeDutyKey&&this.json.rangeDutyKey.code){var t=this.form.Macro.exec(this.json.rangeDutyKey.code,this);if(typeOf(t)!=="array")t=t?[t.toString()]:[];t.each(function(t){if(t)n.push(t)}.bind(this))}return n},_computeValue:function(){var n=[];if(this.json.identityValue){this.json.identityValue.each(function(t){if(t)n.push(t)})}if(this.json.unitValue){this.json.unitValue.each(function(t){if(t)n.push(t)})}if(this.json.dutyValue){var t=JSON.decode(this.json.dutyValue);var s;if(t.length){t.each(function(t){if(t.code)s=this.form.Macro.exec(t.code,this);var e='return this.org.getDuty("'+t.name+'", "'+s+'")';var i=this.form.Macro.exec(e,this);if(typeOf(i)!=="array")i=i?[i.toString()]:[];i.each(function(t){if(t)n.push(t)})}.bind(this))}}if(this.json.defaultValue&&this.json.defaultValue.code){var e=this.form.Macro.exec(this.json.defaultValue.code,this);if(typeOf(e)!=="array")e=e?[e]:[];e.each(function(t){if(t){if(typeOf(t)==="string"){var e;this.getOrgAction()[this.getValueMethod(t)](function(t){e=t.data}.bind(this),null,t,false);n.push(e)}else{n.push(t)}}}.bind(this))}if(this.json.count>0){return n.slice(0,this.json.count)}return n},getOrgAction:function(){if(!this.orgAction)this.orgAction=MWF.Actions.get("x_organization_assemble_control");return this.orgAction},getNextSelectUnit:function(t){var e;if(this.json.rangeNext==="direct"){if(typeOf(t)==="array"){var i=[];t.each(function(t){this.getOrgAction().getIdentity(function(t){e=t.data}.bind(this),function(){e={woUnit:null}},t,false);if(e&&e.woUnit)i.push(e.woUnit);e=null}.bind(this));return i}else{this.getOrgAction().getIdentity(function(t){e=t.data}.bind(this),function(){e={woUnit:null}},t,false);return e.woUnit?[e.woUnit]:[]}}if(this.json.rangeNext==="level"){this.getOrgAction().getUnitWithIdentityWithLevel(t,this.json.rangeNextLevel,function(t){e=t.data}.bind(this),function(){e=null},false);return e?[e]:[]}if(this.json.rangeNext==="type"){if(this.json.rangeNextUnitType==="all"){this.getOrgAction().getUnitWithIdentityWithLevel(t,1,function(t){e=t.data}.bind(this),function(){e=null},false)}else{this.getOrgAction().getUnitWithIdentityWithType(t,this.json.rangeNextUnitType,function(t){e=t.data}.bind(this),function(){e=null},false)}return e?[e]:[]}},getSelectRange:function(){if(this.json.range==="unit"){return this.getScriptSelectUnit()}if(this.json.range==="draftUnit"){return this.getNextSelectUnit((this.form.businessData.work||this.form.businessData.workCompleted).creatorIdentityDn)}if(this.json.range==="currentUnit"){if(this.form.app.currentTask){return this.getNextSelectUnit(this.form.app.currentTask.identity)}else{if(this.form.app.taskList.length){var e=[];this.form.app.taskList.each(function(t){e.push(t.identity)});return this.getNextSelectUnit(e)}else{if(layout.session.user.identityList.length){var e=[];layout.session.user.identityList.each(function(t){e.push(t.id)});return this.getNextSelectUnit(e)}else{return[]}}}}return[]},getSelectRangeDuty:function(){if(this.json.dutyRange==="duty"){return this.getScriptSelectDuty()}return[]},clickSelect:function(){var t=this.getInputData();var e=this.json.count?this.json.count:0;switch(this.json.range){case"":}debugger;var i=this.getSelectRange();if(this.json.selectType=="identity"){var n=this.getSelectRangeDuty()}if(this.json.range!=="all"){if(!i.length){this.form.notice(MWF.xApplication.process.Xform.LP.noSelectRange,"error",this.node);return false}}if(this.json.selectType=="identity"){if(this.json.dutyRange&&this.json.dutyRange!=="all"){if(!n||!n.length){this.form.notice(MWF.xApplication.process.Xform.LP.noSelectRange,"error",this.node);return false}}}var s={type:this.json.selectType,unitType:this.json.selectUnitType==="all"?"":this.json.selectUnitType,values:this.json.isInput?[]:t,count:e,units:i,dutys:this.json.selectType=="identity"?n:[],onComplete:function(t){var e=[];t.each(function(t){e.push(MWF.org.parseOrgData(t.data))}.bind(this));if(this.json.isInput){this.addData(e)}else{this.setData(e)}this.validationMode();this.validation()}.bind(this),onCancel:function(){this.validation()}.bind(this),onLoad:function(){if(this.descriptionNode)this.descriptionNode.setStyle("display","none")}.bind(this),onClose:function(){v=this._getBusinessData();if(!v||!v.length)if(this.descriptionNode)this.descriptionNode.setStyle("display","block")}.bind(this)};var a=new MWF.O2Selector(this.form.app.content,s)},resetData:function(){var t=this.getValue();this.setData(t)},getInputData:function(){if(this.json.isInput){if(this.combox)return this.combox.getData();return this._getBusinessData()}else{return this._getBusinessData()}},_loadNodeRead:function(){this.node.empty();var t=new Element("div").inject(this.node)},_searchConfirmPerson:function(t){var e=t.inforNode||new Element("div");if(t.data){var i="";var n=t.data.distinguishedName.substr(t.data.distinguishedName.length-1,1);switch(n.toLowerCase()){case"i":i=t.data.name+"("+t.data.unitName+")";break;case"p":i=t.data.name+"("+t.data.employee+")";break;case"u":i=t.data.levelName;break;case"g":i=t.data.name;break;default:i=t.data.name}e.set({styles:{"font-size":"14px",color:""},text:i})}else{e.set({styles:{"font-size":"14px",color:"#bd0000"},text:MWF.xApplication.process.Xform.LP.noOrgObject})}if(!t.inforNode){new mBox.Tooltip({content:e,setStyles:{content:{padding:15,lineHeight:20}},attach:t.node,transition:"flyin"});t.inforNode=e}},_searchOptions:function(t,e){var i={type:this.json.selectType,unitType:this.json.selectUnitType==="all"?"":this.json.selectUnitType,units:this.selectUnits,dutys:this.json.selectType=="identity"?this.selectDutys:[]};if(!this.comboxFilter)this.comboxFilter=new MWF.O2SelectorFilter(t,i);this.comboxFilter.filter(t,function(t){t.map(function(t){var e=Object.clone(t);t.value=e;var i=t.distinguishedName.substr(t.distinguishedName.length-1,1);switch(i.toLowerCase()){case"i":t.text=t.name+"("+t.unitName+")";break;case"p":t.text=t.name+"("+t.employee+")";break;case"u":t.text=t.name;break;case"g":t.text=t.name;break;default:t.text=t.name}});if(e)e(t)})},_loadNodeInputEdit:function(){var t=null;MWF.require("MWF.widget.Combox",function(){this.combox=t=new MWF.widget.Combox({count:this.json.count||0,splitShow:this.json.splitShow||", ",onCommitInput:function(t){this._searchConfirmPerson(t)}.bind(this),onChange:function(){this._setBusinessData(this.getInputData());this.fireEvent("change")}.bind(this),optionsMethod:this._searchOptions.bind(this)})}.bind(this),false);t.setStyles({background:"transparent",border:"0px"});t.set(this.json.properties);var e=new Element("div",{styles:{overflow:"hidden","margin-right":"20px"}}).inject(this.node,"after");t.inject(e);this.node.destroy();this.node=e;this.node.set({id:this.json.id,MWFType:this.json.type});if(this.json.showIcon!="no")this.iconNode=new Element("div",{styles:this.form.css[this.iconStyle],events:{click:this.clickSelect.bind(this)}}).inject(this.node,"before");this.combox.addEvent("change",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this))},_loadNodeEdit:function(){debugger;var t=new Element("div",{styles:{background:"transparent",border:"0px","min-height":"24px"}});t.set(this.json.properties);var e=new Element("div",{styles:{overflow:"hidden",position:"relative","margin-right":"20px","min-height":"24px"}}).inject(this.node,"after");t.inject(e);this.node.destroy();this.node=e;this.node.set({id:this.json.id,MWFType:this.json.type,events:{click:this.clickSelect.bind(this)}});if(this.json.showIcon!="no")this.iconNode=new Element("div",{styles:this.form.css[this.iconStyle],events:{click:this.clickSelect.bind(this)}}).inject(this.node,"before");this.node.getFirst().setStyle("height","auto");this.node.getFirst().addEvent("change",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this))},getDataText:function(t){if(typeOf(t)=="string")return t;var e="";var i=t.distinguishedName.substr(t.distinguishedName.length-1,1);switch(i.toLowerCase()){case"i":e=t.name+"("+t.unitName+")";break;case"p":e=t.name+"("+t.employee+")";break;case"u":e=t.name;break;case"g":e=t.name;break;default:e=t.name}return e},addData:function(t){if(!t)return false;t.each(function(t){var e=typeOf(t);if(e==="string"){var i;this.getOrgAction()[this.getValueMethod(t)](function(t){i=t.data}.bind(this),null,t,false);if(i)this.combox.addNewValue(this.getDataText(i),i)}if(e==="object"){this.combox.addNewValue(this.getDataText(t),t)}}.bind(this))},setData:function(t){if(!t)return false;var e=this.getData();var s=[];var a=[];var i=typeOf(t);if(i==="array"){t.each(function(t){var e=typeOf(t);var i=null;if(e==="string"){var n=this.json.isInput?function(){a.push(t)}:null;this.getOrgAction()[this.getValueMethod(t)](function(t){i=t.data}.bind(this),n,t,false)}if(e==="object")i=t;if(i){s.push(i);a.push({text:this.getDataText(i),value:i})}}.bind(this))}if(i==="string"){var n;var o=this.json.isInput?function(){a.push(t)}:null;this.getOrgAction()[this.getValueMethod(t)](function(t){n=t.data}.bind(this),o,t,false);if(n){s.push(n);a.push({text:this.getDataText(n),value:n})}}if(i==="object"){s.push(t);a.push({text:this.getDataText(t),value:t})}var h=false;if(e.length&&s.length){if(e.length==s.length){for(var r=0;r<e.length;r++){if(e[r].distinguishedName!=s[r].distinguishedName||e[r].name!=s[r].name||e[r].unique!=s[r].unique){h=true;break}}}else{h=true}}else if(s.length||e.length){h=true}this._setBusinessData(s);if(h)this.fireEvent("change");if(this.json.isInput){if(this.combox){this.combox.addNewValues(a)}else{var l=this.node.getFirst();if(l){a.each(function(t,e){this.creteShowNode(t,e===a.length-1).inject(l)}.bind(this))}}}else{if(this.node.getFirst()){var l=this.node.getFirst();l.empty();this.loadOrgWidget(s,l)}else{this.node.empty();this.loadOrgWidget(s,this.node)}}},creteShowNode:function(t,e){var i=t.text?t.text:t;if(!e)i=i+(this.json.splitShow||", ");var n=new Element("div",{styles:{float:"left","margin-right":"5px"},text:i});var s="";if(t.value){var a=t.value.distinguishedName.substr(t.value.distinguishedName.length-1,1);switch(a.toLowerCase()){case"i":s=t.value.name+"("+t.value.unitName+")";break;case"p":s=t.value.name+"("+t.value.employee+")";break;case"u":s=t.value.levelName;break;case"g":s=t.value.name;break;default:s=t.value.name}var o=new Element("div").set({styles:{"font-size":"14px",color:""},text:s});new mBox.Tooltip({content:o,setStyles:{content:{padding:15,lineHeight:20}},attach:n,transition:"flyin"})}return n},_setValue:function(t){debugger;if(t.length==1&&!t[0])t=[];var s=[];var a=[];var e=typeOf(t);if(e==="array"){t.each(function(t){var e=null;var i=typeOf(t);if(i==="string"){var n=this.json.isInput?function(){a.push(t)}:null;this.getOrgAction()[this.getValueMethod(t)](function(t){e=t.data}.bind(this),n,t,false)}if(i==="object")e=t;if(e){s.push(e);a.push({text:this.getDataText(e),value:e})}}.bind(this))}if(e==="string"){var i;var n=this.json.isInput?function(){a.push(t)}:null;this.getOrgAction()[this.getValueMethod(t)](function(t){i=t.data}.bind(this),n,t,false);if(i){s.push(i);a.push({text:this.getDataText(i),value:i})}}if(e==="object"){s.push(t);a.push({text:this.getDataText(t),value:t})}this._setBusinessData(s);if(this.json.isInput){if(this.combox){this.combox.addNewValues(a)}else{var o=this.node.getFirst();if(o){a.each(function(t,e){this.creteShowNode(t,e===a.length-1).inject(o)}.bind(this))}}}else{if(this.node.getFirst()){var o=this.node.getFirst();this.loadOrgWidget(s,o)}else{this.loadOrgWidget(s,this.node)}}},getValueMethod:function(t){if(t){var e=t.substr(t.length-1,1);switch(e.toLowerCase()){case"i":return"getIdentity";case"p":return"getPerson";case"u":return"getUnit";case"g":return"getGroup";default:return this.json.selectType==="unit"?"getUnit":"getIdentity"}}return this.json.selectType==="unit"?"getUnit":"getIdentity"},loadOrgWidget:function(t,i){var e=i.getStyle("height").toInt();if(i.getStyle("overflow")==="visible"&&!e)i.setStyle("overflow","hidden");if(t&&t.length){t.each(function(t){var e=t.distinguishedName.substr(t.distinguishedName.length-1,1);switch(e.toLowerCase()){case"i":new MWF.widget.O2Identity(t,i,{style:"xform"});break;case"p":new MWF.widget.O2Person(t,i,{style:"xform"});break;case"u":new MWF.widget.O2Unit(t,i,{style:"xform"});break;case"g":new MWF.widget.O2Group(t,i,{style:"xform"});break;default:new MWF.widget.O2Other(t,i,{style:"xform"})}}.bind(this))}},_loadStyles:function(){if(this.readonly||this.json.isReadonly){if(this.json.styles)this.node.setStyles(this.json.styles)}else{if(this.json.styles)this.node.setStyles(this.json.styles);if(this.json.inputStyles)if(this.node.getFirst())this.node.getFirst().setStyles(this.json.inputStyles);if(this.iconNode){var t=this.node.getSize();this.iconNode.setStyle("height",""+t.y+"px")}}}});
|