MWF.require("MWF.widget.Common", null, false); //MWF.require("MWF.xAction.org.express.RestActions", null,false); //MWF.xDesktop.requireApp("Organization", "Selector.package", null, false); MWF.require("MWF.widget.Identity", null,false); MWF.xApplication.process = MWF.xApplication.process || {}; MWF.xApplication.process.Xform = MWF.xApplication.process.Xform || {}; MWF.xDesktop.requireApp("process.Xform", "Package", null, false); MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({ Implements: [Options, Events], Extends: MWF.widget.Common, options: { "style": "default", "readonly": false, "cssPath": "", "macro": "FormContext", "parameters": null, "moduleEvents": ["queryLoad", "beforeLoad", "postLoad", "afterLoad", "beforeSave", "afterSave", "beforeClose", "beforeProcess", "beforeProcessWork", "afterProcess", "beforeReset", "afterReset", "beforeRetract", "afterRetract", "beforeReroute", "afterReroute", "beforeDelete", "afterDelete", "beforeModulesLoad", "resize", "afterModulesLoad"] }, initialize: function(node, data, options){ this.setOptions(options); this.container = $(node); this.container.setStyle("-webkit-user-select", "text"); this.data = data; this.json = data.json; this.html = data.html; this.path = "/x_component_process_Xform/$Form/"; this.cssPath = this.options.cssPath || "/x_component_process_Xform/$Form/"+this.options.style+"/css.wcss"; this._loadCss(); this.modules = []; this.all = {}; this.forms = {}; //if (!this.personActions) this.personActions = new MWF.xAction.org.express.RestActions(); }, parseCSS: function(css){ var rex = /(url\(.*\))/g; var match; while ((match = rex.exec(css)) !== null) { var pic = match[0]; var len = pic.length; var s = pic.substring(pic.length-2, pic.length-1); var n0 = (s==="'" || s==="\"") ? 5 : 4; var n1 = (s==="'" || s==="\"") ? 2 : 1; pic = pic.substring(n0, pic.length-n1); if ((pic.indexOf("x_processplatform_assemble_surface")!=-1 || pic.indexOf("x_portal_assemble_surface")!=-1)){ var host1 = MWF.Actions.getHost("x_processplatform_assemble_surface"); var host2 = MWF.Actions.getHost("x_portal_assemble_surface"); if (pic.indexOf("/x_processplatform_assemble_surface")!==-1){ pic = pic.replace("/x_processplatform_assemble_surface", pic+"/x_processplatform_assemble_surface"); }else if (pic.indexOf("x_processplatform_assemble_surface")!==-1){ pic = pic.replace("x_processplatform_assemble_surface", pic+"/x_processplatform_assemble_surface"); } if (pic.indexOf("/x_portal_assemble_surface")!==-1){ pic = pic.replace("/x_portal_assemble_surface", host2+"/x_portal_assemble_surface"); }else if (pic.indexOf("x_portal_assemble_surface")!==-1){ pic = pic.replace("x_portal_assemble_surface", host2+"/x_portal_assemble_surface"); } } pic = "url('"+pic+"')"; var len2 = pic.length; css = css.substring(0, match.index) + pic + css.substring(rex.lastIndex, css.length); rex.lastIndex = rex.lastIndex + (len2-len); } return css; }, loadCss: function(){ debugger; cssText = this.json.css.code; //var head = (document.head || document.getElementsByTagName("head")[0] || document.documentElement); var styleNode = $("style"+this.json.id); if (styleNode) styleNode.destroy(); if (cssText){ cssText = this.parseCSS(cssText); var rex = new RegExp("(.+)(?=\\{)", "g"); var match; var id = this.json.id.replace(/\-/g, ""); while ((match = rex.exec(cssText)) !== null) { var prefix = ".css" + id + " "; var rule = prefix + match[0]; cssText = cssText.substring(0, match.index) + rule + cssText.substring(rex.lastIndex, cssText.length); rex.lastIndex = rex.lastIndex + prefix.length; } var styleNode = document.createElement("style"); styleNode.setAttribute("type", "text/css"); styleNode.id="style"+this.json.id; styleNode.inject(this.container, "before"); if(styleNode.styleSheet){ var setFunc = function(){ styleNode.styleSheet.cssText = cssText; }; if(styleNode.styleSheet.disabled){ setTimeout(setFunc, 10); }else{ setFunc(); } }else{ var cssTextNode = document.createTextNode(cssText); styleNode.appendChild(cssTextNode); } } }, load: function(){ if (this.app){ if (this.app.formNode) this.app.formNode.setStyles(this.json.styles); if (this.app.addEvent){ this.app.addEvent("resize", function(){ this.fireEvent("resize"); }.bind(this)); this.app.addEvent("queryClose", function(){ this.beforeCloseWork(); }.bind(this)) } } if (!this.businessData.control.allowSave) this.setOptions({"readonly": true}); if (this.json.css && this.json.css.code) this.loadCss(); this.loadMacro(function(){ this.container.set("html", this.html); this.node = this.container.getFirst(); this._loadEvents(); if (this.fireEvent("queryLoad")){ if (this.app) if (this.app.fireEvent) this.app.fireEvent("queryLoad"); MWF.xDesktop.requireApp("process.Xform", "lp."+MWF.language, null, false); this._loadBusinessData(); this.fireEvent("beforeLoad"); if (this.app) if (this.app.fireEvent) this.app.fireEvent("beforeLoad"); this.loadContent(); } }.bind(this)); }, loadMacro: function(callback){ //if (!MWF.Macro[this.options.macro || "FormContext"]){ MWF.require("MWF.xScript.Macro", function(){ this.Macro = new MWF.Macro[this.options.macro || "FormContext"](this); if (callback) callback(); }.bind(this)); // }else{ // this.Macro = new MWF.Macro[this.options.macro || "FormContext"](this); // if (callback) callback(); // } }, loadContent: function(){ this._loadHtml(); this._loadForm(); this.fireEvent("beforeModulesLoad"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeModulesLoad"); this._loadModules(this.node); this.fireEvent("afterModulesLoad"); this.fireEvent("postLoad"); this.fireEvent("afterLoad"); if (this.app && this.app.fireEvent){ this.app.fireEvent("afterModulesLoad"); this.app.fireEvent("postLoad"); this.app.fireEvent("afterLoad"); } }, _loadBusinessData: function(){ if (!this.businessData){ this.businessData = {}; // this.businessData = { // "data": { // "select": "222", // "radio": "bbb", // "checkbox": ["check1", "check3"], // "orderData": [ // { // "orderName": {"namefield": "电脑"}, // "orderCount": {"countField": "3"}, // "priceCount": {"priceField": "9000"} // }, // { // "orderName": {"namefield": "路由器"}, // "orderCount": {"countField": "2"}, // "priceCount": {"priceField": "1000"} // }, // { // "orderName": {"namefield": "网线"}, // "orderCount": {"countField": "10"}, // "priceCount": {"priceField": "200"} // } // ] // // } // }; } }, _loadHtml: function(){ // this.container.set("html", this.html); // this.node = this.container.getFirst(); //this.node.setStyle("overflow", "hidden"); this.node.addEvent("selectstart", function(e){ var select = "text"; if (e.target.getStyle("-webkit-user-select")){ select = e.target.getStyle("-webkit-user-select").toString().toLowerCase(); } if (select!=="text" && select!=="auto") e.preventDefault(); }); }, _loadForm: function(){ this._loadStyles(); this._loadCssLinks(); this._loadScriptSrc(); this._loadJsheader(); //this._loadEvents(); }, _loadStyles: function(){ if (this.json.styles) Object.each(this.json.styles, function(value, key){ if ((value.indexOf("x_processplatform_assemble_surface")!=-1 || value.indexOf("x_portal_assemble_surface")!=-1)){ var host1 = MWF.Actions.getHost("x_processplatform_assemble_surface"); var host2 = MWF.Actions.getHost("x_portal_assemble_surface"); if (value.indexOf("/x_processplatform_assemble_surface")!==-1){ value = value.replace("/x_processplatform_assemble_surface", host1+"/x_processplatform_assemble_surface"); }else if (value.indexOf("x_processplatform_assemble_surface")!==-1){ value = value.replace("x_processplatform_assemble_surface", host1+"/x_processplatform_assemble_surface"); } if (value.indexOf("/x_portal_assemble_surface")!==-1){ value = value.replace("/x_portal_assemble_surface", host2+"/x_portal_assemble_surface"); }else if (value.indexOf("x_portal_assemble_surface")!==-1){ value = value.replace("x_portal_assemble_surface", host2+"/x_portal_assemble_surface"); } } this.node.setStyle(key, value); }.bind(this)); //this.node.setStyles(this.json.styles); }, _loadCssLinks: function(){ var urls = this.json.cssLinks; urls.each(function(url){ new Element("link", { "rel": "stylesheet", "type": "text/css", "href": url }).inject($(document.head)); }); }, _loadScriptSrc: function(){ var urls = this.json.scriptSrc; urls.each(function(url){ new Element("script", { "src": url }).inject($(document.head)); }); }, _loadJsheader: function(){ var code = this.json.jsheader.code; if (code) Browser.exec(code); }, _loadEvents: function(){ Object.each(this.json.events, function(e, key){ if (e.code){ if (this.options.moduleEvents.indexOf(key)!==-1){ this.addEvent(key, function(event){ return this.Macro.fire(e.code, this, event); }.bind(this)); }else{ if (key==="load"){ this.addEvent("postLoad", function(){ return this.Macro.fire(e.code, this); }.bind(this)); }else if (key==="submit"){ this.addEvent("beforeProcess", function(){ return this.Macro.fire(e.code, this); }.bind(this)); }else{ this.node.addEvent(key, function(event){ return this.Macro.fire(e.code, this, event); }.bind(this)); } } } }.bind(this)); }, _getDomjson: function(dom){ var mwfType = dom.get("MWFtype") || dom.get("mwftype"); switch (mwfType) { case "form": return this.json; case "": return null; default: var id = dom.get("id"); if (!id) id = dom.get("MWFId"); if (id){ return this.json.moduleList[id]; }else{ return null; } } }, _getModuleNodes: function(dom){ var moduleNodes = []; var subDom = dom.getFirst(); while (subDom){ var mwftype = subDom.get("MWFtype") || subDom.get("mwftype"); if (mwftype){ var type = mwftype; if (type.indexOf("$")===-1){ moduleNodes.push(subDom); } if (mwftype !== "datagrid" && mwftype !== "subSource"){ moduleNodes = moduleNodes.concat(this._getModuleNodes(subDom)); } }else{ moduleNodes = moduleNodes.concat(this._getModuleNodes(subDom)); } subDom = subDom.getNext(); } return moduleNodes; }, _loadModules: function(dom){ //var subDom = this.node.getFirst(); //while (subDom){ // if (subDom.get("MWFtype")){ // var json = this._getDomjson(subDom); // var module = this._loadModule(json, subDom); // this.modules.push(module); // } // subDom = subDom.getNext(); //} var moduleNodes = this._getModuleNodes(dom); //alert(moduleNodes.length); moduleNodes.each(function(node){ var json = this._getDomjson(node); var module = this._loadModule(json, node); this.modules.push(module); }.bind(this)); }, _loadModule: function(json, node, beforeLoad){ if (!MWF["APP"+json.type]){ MWF.xDesktop.requireApp("process.Xform", json.type, null, false); } var module = new MWF["APP"+json.type](node, json, this); if (beforeLoad) beforeLoad.apply(module); if (!this.all[json.id]) this.all[json.id] = module; if (module.field){ if (!this.forms[json.id]) this.forms[json.id] = module; } module.readonly = this.options.readonly; module.load(); return module; }, saveOpinion: function(module){ var op = module._getBusinessSectionDataByPerson(); MWF.UD.getDataJson("userOpinion", function(json){ if (!json) json = []; var idx = json.indexOf(op); if (idx==-1){ if (json.length>=50) json.shift(); }else{ json.splice(idx, 1); } json.push(op); MWF.UD.putData("userOpinion", json); }.bind(this), false); }, getData: function(issubmit){ var data= Object.clone(this.businessData.data); Object.each(this.forms, function(module, id){ if (module.json.type==="Opinion"){ if (issubmit){ this.saveOpinion(module); delete data[id]; }else{ var v = module.getData(); data[id] = this.getSectionDataByPerson(v, data[id]); } }else{ if (module.json.section==="yes"){ data[id] = this.getSectionData(module, data[id]); }else{ data[id] = module.getData(); } } }.bind(this)); this.businessData.data = data; this.Macro.environment.setData(this.businessData.data); return data; }, getSectionData: function(module, obj){ var v = module.getData(); switch (module.json.sectionBy){ case "person": return this.getSectionDataByPerson(v, obj); break; case "unit": return this.getSectionDataByUnit(v, obj); break; case "activity": return this.getSectionDataByPActivity(v, obj); break; case "script": return this.getSectionDataByScript(module.json.sectionByScript.code, v, obj); break; default: return v; } }, getSectionDataByPerson: function(v, obj) { var key = layout.desktop.session.user.id; if (!obj || (typeOf(obj)!=="object")) obj={}; obj[key] = v; return obj; }, getSectionDataByUnit: function(v, obj) { var key = (this.businessData.task) ? this.businessData.task.unit : ""; if (!obj || (typeOf(obj)!=="object")) obj={}; if (key) obj[key] = v; return obj; }, getSectionDataByPActivity: function(v, obj) { var key = (this.businessData.work) ? this.businessData.work.activity : ""; if (!obj || (typeOf(obj)!=="object")) obj={}; if (key) obj[key] = v; return obj; }, getSectionDataByScript: function(code, v, obj) { var key = this.form.Macro.exec(code, this); if (!obj || (typeOf(obj)!=="object")) obj={}; if (key) obj[key] = v; return obj; }, saveWork: function(callback){ if (this.businessData.control["allowSave"]){ this.fireEvent("beforeSave"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeSave"); this.saveFormData(function(json){ this.app.notice(MWF.xApplication.process.Xform.LP.dataSaved, "success"); if (callback) callback(); this.fireEvent("afterSave"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterSave"); }.bind(this)); }else{ MWF.xDesktop.notice("error", {x: "right", y:"top"}, "Permission Denied"); //if (failure) failure(null, "Permission Denied", ""); } }, saveFormData: function(callback, failure, history ,data, issubmit){ if (this.officeList){ this.officeList.each(function(module){ module.save(history); }); } this.workAction.saveData(callback, failure, this.businessData.work.id, data || this.getData(issubmit)); }, beforeCloseWork: function(){ this.fireEvent("beforeClose"); if (this.app && this.app.fireEvent){ this.app.fireEvent("beforeClose"); // this.fireEvent("afterClose"); } if (!this.options.readonly){ if (this.businessData.work) this.workAction.checkDraft(this.businessData.work.id, function(){ if (layout.desktop.apps){ if (layout.desktop.apps["TaskCenter"]){ layout.desktop.apps["TaskCenter"].content.unmask(); layout.desktop.apps["TaskCenter"].refreshAll(); } } }.bind(this)); }else{ this.app.refreshTaskCenter(); } }, closeWork: function(){ // this.fireEvent("beforeClose"); // if (this.app && this.app.fireEvent){ // this.app.fireEvent("beforeClose"); // // this.fireEvent("afterClose"); // } // debugger; // if (!this.options.readonly) // if (this.businessData.work) this.workAction.checkDraft(this.businessData.work.id); this.app.close(); }, addMessage: function(data){ var content = ""; if (data.length){ data.each(function(work){ var users = []; work.taskList.each(function(task){ users.push(MWF.name.cn(task.person)+"("+MWF.name.cn(task.unit)+")"); }.bind(this)); content += "
"+MWF.xApplication.process.Xform.LP.nextActivity+""+work.fromActivityName+", "+MWF.xApplication.process.Xform.LP.nextUser+""+users.join(", ")+"
"; }.bind(this)); }else{ content += MWF.xApplication.process.Xform.LP.workCompleted; } //data.workList.each(function(list){ // content += "
"+MWF.xApplication.process.Xform.LP.nextActivity+""+list.activityName+", "+MWF.xApplication.process.Xform.LP.nextUser+""+list.personList.join(", ")+"
" //}.bind(this)); var msg = { "subject": MWF.xApplication.process.Xform.LP.taskProcessed, "content": "
"+MWF.xApplication.process.Xform.LP.taskProcessedMessage+"“"+this.businessData.work.title+"”
"+content }; layout.desktop.message.addTooltip(msg); return layout.desktop.message.addMessage(msg); }, formValidation: function(routeName, opinion, medias){ if (this.options.readonly) return true; this.Macro.environment.form.currentRouteName = routeName; this.Macro.environment.form.opinion = opinion; this.Macro.environment.form.medias = medias; var flag = true; //flag = this.validation(); Object.each(this.forms, function(field, key){ field.validationMode(); if (!field.validation(routeName, opinion, medias)) flag = false; }.bind(this)); return flag; }, validation: function(routeName, opinion, processor, medias){ this.Macro.environment.form.currentRouteName = routeName; this.Macro.environment.form.opinion = opinion; this.Macro.environment.form.medias = medias; var routeFlag = this.validationRoute(processor); var opinionFlag = this.validationOpinion(processor); return routeFlag && opinionFlag; }, validationRoute: function(processor){ if (!this.json.validationRoute) return true; if (!this.json.validationRoute.code) return true; var flag = this.Macro.exec(this.json.validationRoute.code, this); if (!flag) flag = MWF.xApplication.process.Xform.LP.notValidation; if (flag.toString()!="true"){ this.notValidationRouteMode(flag, processor); return false; } return true; }, validationOpinion: function(processor){ if (!this.json.validationOpinion) return true; if (!this.json.validationOpinion.code) return true; var flag = this.Macro.exec(this.json.validationOpinion.code, this); if (!flag) flag = MWF.xApplication.process.Xform.LP.notValidation; if (flag.toString()!="true"){ this.notValidationOpinionMode(flag, processor); return false; } return true; }, formCustomValidation: function(){ if (!this.json.validationFormCustom) return true; if (!this.json.validationFormCustom.code) return true; var flag = this.Macro.exec(this.json.validationFormCustom.code, this); if (!flag) flag = MWF.xApplication.process.Xform.LP.notValidation; if (flag.toString()!="true"){ this.notValidationOpinionMode(flag); return false; } return true; }, notValidationRouteMode: function(flag, processor){ processor.routeSelectorArea.setStyle("background-color", "#ffe9e9"); new mBox.Notice({ type: "error", position: {"x": "center", "y": "top"}, move: false, target: processor.routeSelectorArea, delayClose: 6000, content: flag }); }, notValidationOpinionMode: function(flag, processor){ if (processor) processor.inputTextarea.setStyle("background-color", "#ffe9e9"); new mBox.Notice({ type: "error", position: (processor) ? {"x": "center", "y": "top"} : {"x": "right", "y": "top"}, move: false, target: (processor) ? processor.inputTextarea : this.app.content, delayClose: 6000, content: flag }); }, //fireRtEvent: function(type, args, delay){ // type = removeOn(type); // var events = this.$events[type]; // if (!events) return this; // if (!events.length) return this; // var event = events[events.length-1]; // args = Array.from(args); // if (delay) fn.delay(delay, this, args); // else return fn.apply(this, args); // return this; //}, submitWork: function(routeName, opinion, medias, callback, processor, data){ if (!this.businessData.control["allowProcessing"]){ MWF.xDesktop.notice("error", {x: "right", y:"top"}, "Permission Denied"); this.app.content.unmask(); processor.node.unmask(); return false; } if (!this.formValidation(routeName, opinion, medias)){ this.app.content.unmask(); //this.app.notice("", "error", target, where, offset); if (callback) callback(); return false; } if (!this.validation(routeName, opinion, processor, medias)){ //this.app.content.unmask(); processor.node.unmask(); return false; } if (!opinion){ var idx = this.businessData.task.routeNameList.indexOf(routeName); if (this.businessData.task.routeOpinionList[idx]){ opinion = this.businessData.task.routeOpinionList[idx]; }else{ opinion = routeName; } } this.fireEvent("beforeProcess"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeProcess"); MWF.require("MWF.widget.Mask", function(){ this.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); this.mask.loadNode(this.app.content); this.fireEvent("beforeSave"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeSave"); this.saveFormData(function(json){ this.businessData.task.routeName = routeName; this.businessData.task.opinion = opinion; var mediaIds = []; if (medias && medias.length){ medias.each(function(file){ var formData = new FormData(); formData.append("file", file); formData.append("site", "$mediaOpinion"); this.workAction.uploadAttachment(this.businessData.work.id, formData, file, function(json){ mediaIds.push(json.data.id); }.bind(this), null, false); }.bind(this)); } if (mediaIds.length) this.businessData.task.mediaOpinion = mediaIds.join(","); this.fireEvent("afterSave"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterSave"); this.workAction.processTask(function(json){ //if (processor) processor.destroy(); //if (processNode) processNode.destroy(); if (callback) callback(json); this.fireEvent("afterProcess"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterProcess"); // this.notice(MWF.xApplication.process.Xform.LP.taskProcessed, "success"); this.addMessage(json.data); if (this.app.taskObject) this.app.taskObject.destroy(); if (layout.mobile){ var uri = new URI(window.location.href); var redirectlink = uri.getData("redirectlink"); if( redirectlink ){ window.location = decodeURIComponent(redirectlink); }else{ window.location = "appMobile.html?app=process.TaskCenter"; } }else{ this.app.close(); } //window.setTimeout(function(){this.app.close();}.bind(this), 2000); }.bind(this), null, this.businessData.task.id, this.businessData.task); }.bind(this), null, true, data, true); }.bind(this)); }, processWork: function(){ if (this.app.inBrowser){ this.app.content.setStyle("height", document.body.getSize().y); } this.fireEvent("beforeProcessWork"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeProcessWork"); var position = this.app.content.getPosition(this.app.content.getOffsetParent()); this.app.content.mask({ "destroyOnHide": true, "style": this.app.css.maskNode, "useIframeShim": true, "iframeShimOptions": {"browsers": true}, "onShow": function(){ this.shim.shim.setStyles({ "opacity": 0, "top": ""+position.y+"px", "left": ""+position.x+"px" }); } }); if (!this.formCustomValidation("", "")){ this.app.content.unmask(); // if (callback) callback(); return false; } // MWF.require("MWF.widget.Mask", function() { // this.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); // this.mask.loadNode(this.app.content); if (!this.formValidation("", "")){ this.app.content.unmask(); // if (callback) callback(); return false; } var processNode = this.createProcessNode(); this.setProcessNode(processNode); this.showProcessNode(processNode); //}.bind(this)); }, createProcessNode: function(){ if (layout.mobile){ var contentSize = this.app.content.getSize(); this.app.css.processNode_from.width = contentSize.x+"px"; this.app.css.processNode.width = contentSize.x+"px"; } var processNode = new Element("div", {"styles": this.app.css.processNode_from}).inject(this.app.content); processNode.position({ relativeTo: this.app.content, position: "topcenter", edge: "topcenter" }); return processNode; }, getOpinion: function(){ var opinion = ""; var medias = []; Object.each(this.forms, function(m, id){ if (m.json.type==="Opinion") if (this.businessData.data[id]) opinion += " "+m._getBusinessSectionDataByPerson(); if (m.handwritingFile) if (m.handwritingFile[layout.session.user.distinguishedName]) medias.push(m.handwritingFile[layout.session.user.distinguishedName]); if (m.soundFile) if (m.soundFile[layout.session.user.distinguishedName]) medias.push(m.soundFile[layout.session.user.distinguishedName]); if (m.videoFile) if (m.videoFile[layout.session.user.distinguishedName]) medias.push(m.videoFile[layout.session.user.distinguishedName]); }.bind(this)); return {"opinion": opinion.trim(), "medias": medias}; }, setProcessNode: function(processNode){ var _self = this; MWF.xDesktop.requireApp("process.Work", "Processor", function(){ var op = this.getOpinion(); var mds = op.medias; new MWF.xApplication.process.Work.Processor(processNode, this.businessData.task, { "style": (layout.mobile) ? "mobile" : "default", "opinion": op.opinion, "onCancel": function(){ processNode.destroy(); _self.app.content.unmask(); delete this; }, "onSubmit": function(routeName, opinion, medias){ if (!medias || !medias.length) medias = mds; _self.submitWork(routeName, opinion, medias, function(){ this.destroy(); processNode.destroy(); delete this; }.bind(this), this); } }) }.bind(this)); }, showProcessNode: function(processNode){ var size = this.app.content.getSize(); var nodeSize = processNode.getSize(); var top = size.y/2-nodeSize.y/2-20; var left = size.x/2-nodeSize.x/2; if (top<0) top = 0; this.app.css.processNode.top = ""+top+"px"; this.app.css.processNode.left = ""+left+"px"; var morph = new Fx.Morph(processNode, { "duration": 300, "transition": Fx.Transitions.Expo.easeOut }); morph.start(this.app.css.processNode); }, confirm: function(type, e, title, text, width, height, ok, cancel, callback, mask, style){ MWF.require("MWF.xDesktop.Dialog", function(){ var size = this.container.getSize(); var x = 0; var y = 0; if (typeOf(e)==="element"){ var position = e.getPosition(this.app.content); x = position.x; y = position.y; }else{ if (Browser.name=="firefox"){ x = parseFloat(e.event.clientX || e.event.x); y = parseFloat(e.event.clientY || e.event.y); }else{ x = parseFloat(e.event.x); y = parseFloat(e.event.y); } if (e.target){ var position = e.target.getPosition(this.app.content); //var position = e.target.getPosition(); x = position.x; y = position.y; } } // if (Browser.Platform.ios){ // $("textdiv").set("text", "$(document.body).getScroll().y: "+$(document.body).getScroll().y); // y = y-$(document.body).getScroll().y; // } if (x+parseFloat(width)>size.x){ x = x-parseFloat(width); } if (x<0) x = 10; if (y+parseFloat(height)>size.y){ y = y-parseFloat(height); } if (y<0) y = 10; //var x = parseFloat((Browser.name==="firefox") ? e.event.clientX : e.event.x); //var y = parseFloat((Browser.name==="firefox") ? e.event.clientY : e.event.y); // if (x+parseFloat(width)>size.x){ // x = x-parseFloat(width); // } if (x<0) x = 20; var dlg = new MWF.xDesktop.Dialog({ "title": title, "style": style || "o2", "top": y, "left": x-20, "fromTop":e.event.y, "fromLeft": (Browser.name==="firefox") ? e.event.clientX-20 : e.event.x-20, "width": width, "height": height, "text": text, "container": this.app.content, "maskNode": mask || this.app.content, "buttonList": [ { "text": MWF.LP.process.button.ok, "action": ok }, { "text": MWF.LP.process.button.cancel, "action": cancel } ] }); switch (type.toLowerCase()){ case "success": dlg.content.setStyle("background-image", "url(data:image/png;base64,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)"); break; case "error": dlg.content.setStyle("background-image", "url(data:image/png;base64,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)"); break; case "info": dlg.content.setStyle("background-image", "url(data:image/png;base64,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)"); break; case "warn": dlg.content.setStyle("background-image", "url(data:image/png;base64,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)"); break; default: } dlg.show(); }.bind(this)); }, notice: function(content, type, target, where){ if (!where) where = {"x": "right", "y": "top"}; if (!target) target = this.node; if (!type) type = "ok"; var noticeTarget = target || layout.layout.contentNode; new mBox.Notice({ type: type, position: where, move: false, target: noticeTarget, delayClose: (type==="error") ? 5000 : 1000, offset: { x: 10, y: where.y.toString().toLowerCase()==="bottom" ? 10 : 10 }, content: content }); }, resetWork: function(){ if (!this.businessData.control["allowReset"]){ MWF.xDesktop.notice("error", {x: "right", y:"top"}, "Permission Denied"); return false; } MWF.require("MWF.xDesktop.Dialog", function(){ var width = 680; var height = 300; var p = MWF.getCenterPosition(this.app.content, width, height); var _self = this; var dlg = new MWF.xDesktop.Dialog({ "title": this.app.lp.reset, "style": "work", "top": p.y-100, "left": p.x, "fromTop": p.y-100, "fromLeft": p.x, "width": width, "height": height, "url": this.app.path+"reset.html", "container": this.app.content, "isClose": true, "onPostShow": function(){ $("resetWork_okButton").addEvent("click", function(){ _self.doResetWork(this); }.bind(this)); $("resetWork_cancelButton").addEvent("click", function(){ this.close(); }.bind(this)); $("resetWork_selPeopleButton").addEvent("click", function(){ _self.selectPeople(this); }.bind(this)); } }); dlg.show(); }.bind(this)); }, selectPeople: function(dlg){ var range = this.businessData.activity.resetRange || "department"; var count = this.businessData.activity.resetCount || 0; switch (range){ case "unit": this.selectPeopleUnit(dlg, this.businessData.task.unit, count); // this.personActions.getDepartmentByIdentity(function(json){ // this.selectPeopleDepartment(dlg, json.data, count); // }.bind(this), null, this.businessData.task.identity); break; case "topUnit": MWF.require("MWF.xScript.Actions.UnitActions", function(){ orgActions = new MWF.xScript.Actions.UnitActions(); var data = {"unitList": [this.businessData.task.unit]}; orgActions.listUnitSupNested(data, function(json){ v = json.data[0]; this.selectPeopleUnit(dlg, v, count); }.bind(this)); }.bind(this)); // this.personActions.getCompanyByIdentity(function(json){ // this.selectPeopleCompany(dlg, json.data, count) // }.bind(this), null, this.businessData.task.identity); break; default: this.selectPeopleAll(dlg, count); } }, selectPeopleUnit: function(dlg, unit, count){ var names = dlg.identityList || []; var areaNode = $("resetWork_selPeopleArea"); var options = { "values": names, "type": "identity", "count": count, "units": (unit) ? [unit]: [], "title": this.app.lp.reset, "onComplete": function (items) { areaNode.empty(); var identityList = []; items.each(function(item){ new MWF.widget.O2Identity(item.data, areaNode, {"style": "reset"}); identityList.push(item.data.distinguishedName); }.bind(this)); dlg.identityList = identityList; }.bind(this) }; var selector = new MWF.O2Selector(this.app.content, options); }, // selectPeopleDepartment: function(dlg, department, count){ // var names = dlg.identityList || []; // var areaNode = $("resetWork_selPeopleArea"); // var options = { // "names": names, // "type": "identity", // "count": count, // "departments": (department) ? [department.name]: [], // "title": this.app.lp.reset, // "onComplete": function (items) { // areaNode.empty(); // var identityList = []; // items.each(function(item){ // var explorer = { // "actions": this.personActions, // "app": {"lp": this.app.lp} // }; // new MWF.widget.Identity(item.data, areaNode, explorer, false, null, {"style": "reset"}); // identityList.push(item.data.name); // }.bind(this)); // dlg.identityList = identityList; // }.bind(this) // }; // // var selector = new MWF.OrgSelector(this.app.content, options); // }, // selectPeopleCompany: function(dlg, company, count){ // var names = dlg.identityList || []; // var areaNode = $("resetWork_selPeopleArea"); // var options = { // "names": names, // "type": "identity", // "count": count, // "companys": [company.name], // "title": this.app.lp.reset, // "onComplete": function (items) { // areaNode.empty(); // var identityList = []; // items.each(function(item){ // var explorer = { // "actions": this.personActions, // "app": {"lp": this.app.lp} // }; // new MWF.widget.Identity(item.data, areaNode, explorer, false, null, {"style": "reset"}); // identityList.push(item.data.name); // }.bind(this)); // dlg.identityList = identityList; // }.bind(this) // }; // // var selector = new MWF.Selector(this.app.content, options); // }, selectPeopleAll: function(dlg, count){ var names = dlg.identityList || []; var areaNode = $("resetWork_selPeopleArea"); var options = { "values": names, "type": "identity", "count": count, "title": this.app.lp.reset, "onComplete": function (items) { areaNode.empty(); var identityList = []; items.each(function(item){ new MWF.widget.O2Identity(item.data, areaNode, {"style": "reset"}); identityList.push(item.data.distinguishedName); }.bind(this)); dlg.identityList = identityList; }.bind(this) }; var selector = new MWF.O2Selector(this.app.content, options); }, doResetWork: function(dlg){ var names = dlg.identityList || []; if (!names.length){ this.app.notice(MWF.xApplication.process.Xform.LP.inputResetPeople, "error", dlg.node); return false; } var opinion = $("resetWork_opinion").get("value"); var nameText = []; names.each(function(n){ nameText.push(MWF.name.cn(n)); }); if (!opinion){ opinion = MWF.xApplication.process.Xform.LP.resetTo+": "+nameText.join(", "); } MWF.require("MWF.widget.Mask", function(){ this.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); this.mask.loadNode(this.app.content); this.fireEvent("beforeReset"); if (this.app && this.app.fireEvent) this.app.fireEvent("beforeReset"); this.resetWorkToPeson(names, opinion, function(){ this.workAction.getJobByWork(function(workJson){ this.fireEvent("afterReset"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterReset"); this.addResetMessage(workJson.data); this.app.notice(MWF.xApplication.process.Xform.LP.resetOk+": "+MWF.name.cns(names).join(", "), "success"); this.app.close(); }.bind(this), null, this.businessData.work.id); dlg.close(); if (this.mask) {this.mask.hide(); this.mask = null;} }.bind(this), function(xhr, text, error){ var errorText = error+":"+text; if (xhr) errorText = xhr.responseText; this.app.notice("request json error: "+errorText, "error", dlg.node); if (this.mask) {this.mask.hide(); this.mask = null;} }.bind(this)); }.bind(this)); //var data = { // "opinion": opinion, // "routeName": MWF.xApplication.process.Xform.LP.reset, // "identityList": names //} // //this.workAction.resetWork(function(json){ // //}.bind(this), null, this.businessData.task.id, data); }, resetWorkToPeson: function(identityList, opinion, success, failure){ var data = { "opinion": opinion, "routeName": MWF.xApplication.process.Xform.LP.reset, "identityList": identityList }; this.saveFormData( function(json){ this.workAction.resetWork( function(json){ if (success) success(json); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, this.businessData.task.id, data ); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, true, null, true ); }, addResetMessage: function(data){ var users = []; data.taskList.each(function(task){ users.push(MWF.name.cn(task.person)+"("+MWF.name.cn(task.unit)+")"); }.bind(this)); var content = "
"+MWF.xApplication.process.Xform.LP.currentActivity+""+data.work.activityName+", "+MWF.xApplication.process.Xform.LP.nextUser+""+users.join(", ")+"
"; var msg = { "subject": MWF.xApplication.process.Xform.LP.workReset, "content": "
"+MWF.xApplication.process.Xform.LP.resetWorkInfor+"“"+this.businessData.work.title+"”
"+content }; layout.desktop.message.addTooltip(msg); return layout.desktop.message.addMessage(msg); }, retractWork: function(e, ev){ var _self = this; var p = MWF.getCenterPosition(this.app.content, 300, 150); var event = { "event":{ "x": p.x, "y": p.y-200, "clientX": p.x, "clientY": p.y-200 } }; this.app.confirm("infor", event, MWF.xApplication.process.Xform.LP.retractTitle, MWF.xApplication.process.Xform.LP.retractText, 300, 120, function(){ _self.app.content.mask({ "style": { "background-color": "#999", "opacity": 0.6 } }); MWF.require("MWF.widget.Mask", function(){ _self.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); _self.mask.loadNode(_self.app.content); _self.fireEvent("beforeRetract"); if (_self.app && _self.app.fireEvent) _self.app.fireEvent("beforeRetract"); _self.doRetractWork(function(){ _self.workAction.getJobByWork(function(workJson){ _self.fireEvent("afterRetract"); if (_self.app && _self.app.fireEvent) _self.app.fireEvent("afterRetract"); _self.app.notice(MWF.xApplication.process.Xform.LP.workRetract, "success"); _self.app.content.unmask(); _self.app.reload(workJson.data); }, null, _self.businessData.work.id); this.close(); if (_self.mask) {_self.mask.hide(); _self.mask = null;} }.bind(this)); }.bind(this), function(xhr, text, error){ var errorText = error+":"+text; if (xhr) errorText = xhr.responseText; _self.app.notice("request json error: "+errorText, "error", dlg.node); if (_self.mask) {_self.mask.hide(); _self.mask = null;} }); //this.close(); }, function(){ this.close(); }); }, doRetractWork: function(success, failure){ if (this.businessData.control["allowRetract"]){ this.workAction.retractWork(function(json){ if (success) success(); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, this.businessData.work.id); }else{ if (failure) failure(null, "Permission Denied", ""); } }, addRetractMessage: function(data){ var users = []; data.taskList.each(function(task){ users.push(MWF.name.cn(task.person)+"("+MWF.name.cn(task.unit)+")"); }.bind(this)); var content = "
"+MWF.xApplication.process.Xform.LP.currentActivity+""+data.work.activityName+", "+MWF.xApplication.process.Xform.LP.nextUser+""+users.join(", ")+"
"; var msg = { "subject": MWF.xApplication.process.Xform.LP.workRetract, "content": "
"+MWF.xApplication.process.Xform.LP.retractWorkInfor+"“"+this.businessData.work.title+"”
"+content }; layout.desktop.message.addTooltip(msg); return layout.desktop.message.addMessage(msg); }, rerouteWork: function(e, ev){ if (!this.businessData.control["allowReroute"]){ MWF.xDesktop.notice("error", {x: "right", y:"top"}, "Permission Denied"); return false; } MWF.require("MWF.xDesktop.Dialog", function(){ var width = 480; var height = 160; var p = MWF.getCenterPosition(this.app.content, width, height); var _self = this; var dlg = new MWF.xDesktop.Dialog({ "title": this.app.lp.reroute, "style": "work", "top": p.y-100, "left": p.x, "fromTop": p.y-100, "fromLeft": p.x, "width": width, "height": height, "url": this.app.path+"reroute.html", "container": this.app.content, "isClose": true, "onPostShow": function(){ $("rerouteWork_okButton").addEvent("click", function(){ _self.doRerouteWork(this); }.bind(this)); $("rerouteWork_cancelButton").addEvent("click", function(){ this.close(); }.bind(this)); var select = $("rerouteWork_selectActivity"); _self.workAction.getRerouteTo(_self.businessData.work.process, function(json){ json.data.agentList.each(function(activity){ new Element("option", { "value": activity.id+"#agent", "text": activity.name }).inject(select); }.bind(_self)); json.data.cancelList.each(function(activity){ new Element("option", { "value": activity.id+"#cancel", "text": activity.name }).inject(select); }.bind(_self)); json.data.choiceList.each(function(activity){ new Element("option", { "value": activity.id+"#choice", "text": activity.name }).inject(select); }.bind(_self)); json.data.controllerList.each(function(activity){ new Element("option", { "value": activity.id+"#condition", "text": activity.name }).inject(select); }.bind(_self)); json.data.delayList.each(function(activity){ new Element("option", { "value": activity.id+"#delay", "text": activity.name }).inject(select); }.bind(_self)); json.data.embedList.each(function(activity){ new Element("option", { "value": activity.id+"#embed", "text": activity.name }).inject(select); }.bind(_self)); json.data.endList.each(function(activity){ new Element("option", { "value": activity.id+"#end", "text": activity.name }).inject(select); }.bind(_self)); json.data.invokeList.each(function(activity){ new Element("option", { "value": activity.id+"#invoke", "text": activity.name }).inject(select); }.bind(_self)); json.data.manualList.each(function(activity){ new Element("option", { "value": activity.id+"#manual", "text": activity.name }).inject(select); }.bind(_self)); json.data.mergeList.each(function(activity){ new Element("option", { "value": activity.id+"#merge", "text": activity.name }).inject(select); }.bind(_self)); json.data.messageList.each(function(activity){ new Element("option", { "value": activity.id+"#message", "text": activity.name }).inject(select); }.bind(_self)); json.data.parallelList.each(function(activity){ new Element("option", { "value": activity.id+"#parallel", "text": activity.name }).inject(select); }.bind(_self)); json.data.serviceList.each(function(activity){ new Element("option", { "value": activity.id+"#service", "text": activity.name }).inject(select); }.bind(_self)); json.data.splitList.each(function(activity){ new Element("option", { "value": activity.id+"#split", "text": activity.name }).inject(select); }.bind(_self)); }.bind(_self)); } }); dlg.show(); }.bind(this)); }, doRerouteWork: function(dlg){ var opinion = $("rerouteWork_opinion").get("value"); var select = $("rerouteWork_selectActivity"); var activity = select.options[select.selectedIndex].get("value"); var activityName = select.options[select.selectedIndex].get("text"); var tmp = activity.split("#"); activity = tmp[0]; var type = tmp[1]; MWF.require("MWF.widget.Mask", function(){ this.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); this.mask.loadNode(this.app.content); this.fireEvent("beforeReroute"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterRetract"); this.rerouteWorkToActivity(activity, type, opinion, function(){ this.workAction.getJobByWork(function(workJson){ this.fireEvent("afterReroute"); if (this.app && this.app.fireEvent) this.app.fireEvent("afterReroute"); this.addRerouteMessage(workJson.data); this.app.notice(MWF.xApplication.process.Xform.LP.rerouteOk+": "+activityName, "success"); this.app.close(); }.bind(this), null, this.businessData.work.id); dlg.close(); if (this.mask) {this.mask.hide(); this.mask = null;} }.bind(this), function(xhr, text, error){ var errorText = error+":"+text; if (xhr) errorText = xhr.responseText; this.app.notice("request json error: "+errorText, "error", dlg.node); if (this.mask) {this.mask.hide(); this.mask = null;} }.bind(this)); }.bind(this)); }, rerouteWorkToActivity: function(activity, type, opinion, success, failure){ if (this.businessData.task){ this.saveFormData(function(json){ this.workAction.rerouteWork(function(json){ if (success) success(); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, this.businessData.work.id, activity, type); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, true, null, true); }else{ this.workAction.rerouteWork(function(json){ if (success) success(); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, this.businessData.work.id, activity, type); } }, addRerouteMessage: function(data){ var users = []; data.taskList.each(function(task){ users.push(MWF.name.cn(task.person)+"("+MWF.name.cn(task.unit)+")"); }.bind(this)); var content = "
"+MWF.xApplication.process.Xform.LP.currentActivity+""+data.work.activityName+", "+MWF.xApplication.process.Xform.LP.nextUser+""+users.join(", ")+"
"; var msg = { "subject": MWF.xApplication.process.Xform.LP.workReroute, "content": "
"+MWF.xApplication.process.Xform.LP.rerouteWorkInfor+"“"+this.businessData.work.title+"”
"+content }; layout.desktop.message.addTooltip(msg); return layout.desktop.message.addMessage(msg); }, deleteWork: function(){ var _self = this; var p = MWF.getCenterPosition(this.app.content, 380, 150); var event = { "event":{ "x": p.x, "y": p.y-200, "clientX": p.x, "clientY": p.y-200 } }; this.app.confirm("infor", event, MWF.xApplication.process.Xform.LP.deleteWorkTitle, MWF.xApplication.process.Xform.LP.deleteWorkText, 380, 120, function(){ // _self.app.content.mask({ // "style": { // "background-color": "#999", // "opacity": 0.6 // } // }); MWF.require("MWF.widget.Mask", function(){ _self.mask = new MWF.widget.Mask({"style": "desktop", "zIndex": 50000}); _self.mask.loadNode(_self.app.content); _self.fireEvent("beforeDelete"); if (_self.app && _self.app.fireEvent) _self.app.fireEvent("beforeDelete"); _self.doDeleteWork(function(){ _self.fireEvent("s"); if (_self.app && _self.app.fireEvent) _self.app.fireEvent("afterDelete"); _self.app.notice(MWF.xApplication.process.Xform.LP.workDelete+": “"+_self.businessData.work.title+"”", "success"); _self.app.close(); this.close(); if (_self.mask) {_self.mask.hide(); _self.mask = null;} }.bind(this),function(xhr, text, error){ var errorText = error+":"+text; if (xhr) errorText = xhr.responseText; _self.app.notice("request json error: "+errorText, "error", dlg.node); if (_self.mask) {_self.mask.hide(); _self.mask = null;} }.bind(this)); }.bind(this)); //_self.workAction.deleteWork(function(json){ // _self.app.notice(MWF.xApplication.process.Xform.LP.workDelete+": “"+_self.businessData.work.title+"”", "success"); // _self.app.close(); // this.close(); //}.bind(this), null, _self.businessData.work.id); //this.close(); }, function(){ this.close(); }, null, this.app.content); }, doDeleteWork: function(success, failure){ if (this.businessData.control["allowDelete"]){ this.workAction.deleteWork(function(json){ if (success) success(json); }.bind(this), function(xhr, text, error){ if (failure) failure(xhr, text, error); }, this.businessData.work.id); }else{ if (failure) failure(null, "Permission Denied", ""); } }, //printWork: function(){ // var form = this.json.id; // if (this.json.printForm){ // form = this.json.printForm; // } // window.open("/x_desktop/printWork.html?workid="+this.businessData.work.id+"&app="+this.businessData.work.application+"&form="+form); //}, printWork: function(app, form){ var application = app || (this.businessData.work) ? this.businessData.work.application : this.businessData.workCompleted.application; var form = form; if (!form){ form = this.json.id; if (this.json.printForm) form = this.json.printForm; } if (this.businessData.workCompleted){ var application = app || this.businessData.workCompleted.application; window.open("/x_desktop/printWork.html?workCompletedId="+this.businessData.workCompleted.id+"&app="+application+"&form="+form); }else{ var application = app || this.businessData.work.application; window.open("/x_desktop/printWork.html?workid="+this.businessData.work.id+"&app="+application+"&form="+form); } }, readedWork: function(e){ var _self = this; var text = "您确定要将“"+this.businessData.work.title+"”标记为已阅吗?" this.app.confirm("infor", e, "标记已阅确认", text, 350, 150, function(){ var read = null; for (var i=0; i<_self.businessData.readList.length; i++){ if (_self.businessData.readList[i].person === layout.session.user.distinguishedName){ read = _self.businessData.readList[i]; break; } } if (read){ _self.app.action.setReaded(function(){ _self.app.reload(); }.bind(_self), null, read.id, read); }else{ _self.app.reload(); } this.close(); }, function(){ this.close(); }, null, this.app.content); }, openWindow: function(form, app){ //var application = app || (this.businessData.work) ? this.businessData.work.application : this.businessData.workCompleted.application; var form = form; if (!form){ form = this.json.id; //if (this.json.printForm) form = this.json.printForm; } if (this.businessData.workCompleted){ var application = app || this.businessData.workCompleted.application; window.open("/x_desktop/printWork.html?workCompletedId="+this.businessData.workCompleted.id+"&app="+application+"&form="+form); }else{ var application = app || this.businessData.work.application; window.open("/x_desktop/printWork.html?workid="+this.businessData.work.id+"&app="+application+"&form="+form); } //window.open("/x_desktop/printWork.html?workid="+this.businessData.work.id+"&app="+this.businessData.work.application+"&form="+form); }, uploadedAttachment: function(site, id){ this.workAction.getAttachment(id, this.businessData.work.id, function(json){ var att = this.all[site]; if (att){ if (json.data) att.attachmentController.addAttachment(json.data); att.attachmentController.checkActions(); att.fireEvent("upload", [json.data]); } }.bind(this)); }, replacedAttachment: function(site, id){ this.workAction.getAttachment(id, this.businessData.work.id, function(json){ var att = this.all[site]; if (att){ var attachmentController = att.attachmentController; var attachment = null; for (var i=0; i