MWF.xApplication.process = MWF.xApplication.process || {}; MWF.xApplication.process.TaskCenter = MWF.xApplication.process.TaskCenter || {}; MWF.require("MWF.widget.Mask", null, false); MWF.require("MWF.xDesktop.UserData", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "TaskList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "TaskCompletedList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "ReadList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "ReadCompletedList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "ReviewList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "DraftList", null, false); MWF.xDesktop.requireApp("process.TaskCenter", "MyCreatedList", null, false); if (MWF.xApplication.process.TaskCenter.options) MWF.xApplication.process.TaskCenter.options.multitask = false; MWF.xApplication.process.TaskCenter.Main = new Class({ Extends: MWF.xApplication.Common.Main, Implements: [Options, Events], options: { "style": "default", "name": "process.TaskCenter", "icon": "icon.png", "width": "1280", "height": "700", "title": MWF.xApplication.process.TaskCenter.LP.title, "filterMap": { "applicationList": "applicationList", "processList": "processList", "creatorUnitList": "creatorUnitList", "creatorCompanyList": "creatorCompanyList", "creatorDepartmentList": "creatorDepartmentList", "activityNameList": "activityNameList", "completedTimeMonthList": "completedTimeMonthList", "startTimeMonthList": "startTimeMonthList", "key": "key" } }, onQueryLoad: function () { this.lp = MWF.xApplication.process.TaskCenter.LP; }, loadApplication: function (callback) { this.appIcons = {}; this.tabs = []; this.tabShadows = []; this.appStartableData = null; this.loadTitle(); this.loadTab(); this.loadFilterAction(); this.loadContent(); this.currentTab = ""; this.openTab(); if (callback) callback(); if (layout.userLayout && !layout.userLayout.gotoWorkcenterConfirm && !layout.mobile) this.gotoWorkcenterComfirm(); }, gotoWorkcenterComfirm: function(){ var _self = this; o2.DL.open({ "title": "", "style": "user", "isResize": false, "text": this.lp.workcenter, "maskNode": this.content, "width": 500, "height": 150, "buttonList": [ { "type": "ok", "text": MWF.LP.process.button.ok, "action": function (d, e) { this.close(); _self.checkConfirm(); _self.gotoWorkcenter(); } }, { "type": "cancel", "text": MWF.LP.process.button.cancel, "action": function () { _self.checkConfirm(); this.close(); } } ] }); }, checkConfirm: function(){ layout.userLayout.gotoWorkcenterConfirm = true; }, gotoWorkcenter: function(){ debugger; layout.userLayout.flatLnks.forEach(function(lnk){ if (lnk.name==="process.TaskCenter"){ lnk.name="process.workcenter" } }); this.close(); if (layout.inBrowser && (o2.thirdparty.isDingdingPC() || o2.thirdparty.isQywxPC())) { var centerUrl = o2.filterUrl("../x_desktop/app.html?app=process.workcenter"); history.replaceState(null, "work", centerUrl); centerUrl.toURI().go(); } else { layout.openApplication(null, "process.workcenter"); } }, loadTitle: function () { this.loadTitleBar(); if (!layout.mobile) this.loadTitleUserNode(); this.loadStartProcessActionNode(); if (!layout.mobile) this.loadTitleTextNode(); this.loadSearchNode(); }, loadTitleBar: function () { this.taskTitleBar = new Element("div.mainColor_bg", { "styles": this.css.taskTitleBar }).inject(this.content); }, loadTitleUserNode: function () { this.taskTitleUserNode = new Element("div", { "styles": this.css.taskTitleUserNode }).inject(this.taskTitleBar); this.taskTitleUserIconNode = new Element("div", { "styles": this.css.taskTitleUserIconNode }).inject(this.taskTitleUserNode); this.taskTitleUserTextNode = new Element("div", { "styles": this.css.taskTitleUserTextNode, "text": this.desktop.session.user.name }).inject(this.taskTitleUserNode); }, loadStartProcessActionNode: function () { this.startProcessAction = new Element("div", { "styles": this.css.startProcessAction }).inject(this.taskTitleBar); this.startProcessAction.addEvents({ "click": function (e) { this.showStartProcessArea(e); }.bind(this) }); }, loadTitleTextNode: function () { this.taskTitleTextNode = new Element("div", { "styles": this.css.taskTitleTextNode, "text": this.lp.title }).inject(this.taskTitleBar); var node = new Element("div.mainColor_color", { "styles": this.css.taskTitleInforTextNode, "text": this.lp.gotoWorkcenter }).inject(this.taskTitleBar); node.addEvent("click", this.gotoWorkcenter.bind(this)); }, loadSearchNode: function () { this.searchBarAreaNode = new Element("div", { "styles": this.css.searchBarAreaNode }).inject(this.taskTitleBar); if (layout.mobile) this.searchBarAreaNode.setStyle("margin-left", "10px"); if (layout.mobile) this.searchBarAreaNode.setStyle("margin-right", "20px"); this.searchBarNode = new Element("div", { "styles": this.css.searchBarNode }).inject(this.searchBarAreaNode); this.searchBarActionNode = new Element("div", { "styles": this.css.searchBarActionNode }).inject(this.searchBarNode); this.searchBarInputBoxNode = new Element("div", { "styles": this.css.searchBarInputBoxNode }).inject(this.searchBarNode); this.searchBarInputNode = new Element("input", { "type": "text", "value": this.lp.searchKey, "styles": this.css.searchBarInputNode }).inject(this.searchBarInputBoxNode); var _self = this; this.searchBarActionNode.addEvent("click", function () { this.searchTask(); }.bind(this)); this.searchBarInputNode.addEvents({ "focus": function () { if (this.value === _self.lp.searchKey) this.set("value", ""); }, "blur": function () { if (!this.value) this.set("value", _self.lp.searchKey); }, "keydown": function (e) { if (e.code === 13) { this.searchTask(); e.preventDefault(); } }.bind(this), "selectstart": function (e) { e.preventDefault(); } }); }, loadTab: function () { this.tabAreaNode = new Element("div", { "styles": this.css.tabAreaNode }).inject(this.content); debugger; var size = this.content.getSize(); if (size && size.x < 400) { //移动端屏幕宽度小的时候 5个tab会重叠 this.tabAreaNode.setStyle("height", "80px"); } this.createTabItem(this.lp.task, "task.png", "task", function () { this.showTask(); }.bind(this)); this.createTabItem(this.lp.done, "done.png", "taskCompleted", function () { this.showDone(); }.bind(this)); this.createTabItem(this.lp.read, "read.png", "read", function () { this.showRead(); }.bind(this)); this.createTabItem(this.lp.readed, "readed.png", "readCompleted", function () { this.showReaded(); }.bind(this)); this.createTabItem(this.lp.review, "review.png", "review", function () { this.showReview(); }.bind(this)); this.createTabItem(this.lp.draftTab, "draft.png", "draft", function () { this.showDraft(); }.bind(this)); this.createTabItem(this.lp.myCreated, "mycreated.png", "myCreated", function () { this.showMyCreated(); }.bind(this)); //this.createTabItem(this.lp.review, "review.png", "review", function(){this.showReview();}.bind(this)); this.getWorkCounts(); }, // createTabItem: function (text, icon, countKey, action) { // if (COMMON.Browser.Platform.isMobile){ // this.createTabItem_mobile(text, icon, countKey, action); // }else{ // this.createTabItem_pc(text, icon, countKey, action); // } // }, // createTabItem_mobile: function(text, icon, countKey, action){ // var tab = new Element("div", { // "styles": this.css.tabItemNode // }).inject(this.tabAreaNode); // // var tabItem = new Element("div", { // "styles": this.css.tabItemAreaNode // }).inject(tab); // // var tabContent = new Element("div", { // "styles": this.css.tabItemContentNode_mobile // }).inject(tabItem); // // var tabText = new Element("div", { // "styles": this.css.tabItemTextNode_mobile, // "text": text // }).inject(tabContent); // // this[countKey+"CountNode"] = new Element("div", { // "styles": this.css.tabItemCountNode // }).inject(tabContent); // // tab.addEvent("click", function(){action();}.bind(this)); // // this.tabs.push(tab); // }, createTabItem: function(text, icon, countKey, action){ var tab = new Element("div", { "styles": this.css.tabItemNode }).inject(this.tabAreaNode); if (!layout.mobile){ var tabIcon = new Element("div", { "styles": this.css.tabItemIconNode }).inject(tab); tabIcon.setStyle("background-image", "url("+"../x_component_process_TaskCenter/$Main/default/tab/"+icon+")"); } var tabText = new Element("div", { "styles": this.css.tabItemTextNode, "text": text }).inject(tab); this[countKey+"CountNode"] = new Element("div", { "styles": this.css.tabItemCountNode }).inject(tab); tab.addEvent("click", function(){action();}.bind(this)); this.tabs.push(tab); }, loadFilterAction: function(){ // this.flterAction = new Element("div", { // "styles": this.css.tabItemNode // }).inject(this.tabAreaNode); // // var tabIcon = new Element("div", { // "styles": this.css.tabItemIconNode // }).inject(tab); // tabIcon.setStyle("background-image", "url("+"../x_component_process_TaskCenter/$Main/default/tab/"+icon+")"); // var tabText = new Element("div", { // "styles": this.css.tabItemTextNode, // "text": text // }).inject(tab); // // this[countKey+"CountNode"] = new Element("div", { // "styles": this.css.tabItemCountNode // }).inject(tab); // // tab.addEvent("click", function(){action();}.bind(this)); }, getWorkCounts: function () { this.getAction(function () { this.action.getCount(function (json) { this.counts = json.data; this["taskCountNode"].set("text", "( " + ((this.counts.task > 100) ? "99+" : this.counts.task) + " )"); this["taskCompletedCountNode"].set("text", "( " + ((this.counts.taskCompleted > 100) ? "99+" : this.counts.taskCompleted) + " )"); this["readCountNode"].set("text", "( " + ((this.counts.read > 100) ? "99+" : this.counts.read) + " )"); this["readCompletedCountNode"].set("text", "( " + ((this.counts.readCompleted > 100) ? "99+" : this.counts.readCompleted) + " )"); this["reviewCountNode"].set("text", "[ "+((this.counts.review>100) ? "99+" : this.counts.review)+" ]"); }.bind(this), null, this.desktop.session.user.distinguishedName); this.action.listDraftNext("(0)", 1, function (json) { this["draftCountNode"].set("text", "( " + ((json.count > 100) ? "99+" : json.count) + " )"); }.bind(this)); o2.Actions.load("x_processplatform_assemble_surface").ReviewAction.countWithPerson(layout.session.user.id, { creatorPersonList: [layout.session.user.id] }).then(function(json){ var myCreated = json.data.count; this["myCreatedCountNode"].set("text", "( " + ((myCreated > 100) ? "99+" : myCreated) + " )"); }.bind(this)); }.bind(this)); }, loadContent: function(){ this.contentNode = new Element("div", {"styles": this.css.contentNode}).inject(this.content); this.contentListAreaNode = new Element("div", {"styles": this.css.contentListAreaNode}).inject(this.contentNode); this.setContentNodeHeight(); this.addEvent("resize", this.setContentNodeHeight.bind(this)); }, setContentNodeHeight: function(){ var size = this.content.getSize(); var titleSize = this.taskTitleBar.getSize(); var tabSize = this.tabAreaNode.getSize(); var y = size.y-titleSize.y-tabSize.y-1; this.contentNode.setStyle("height", ""+y+"px"); var x = 0; if (this.taskList) x = x + size.x; if (this.taskCompletedList) x = x + size.x; if (this.readList) x = x + size.x; if (this.readCompletedList) x = x + size.x; this.contentListAreaNode.setStyle("width", ""+x+"px"); }, openTab: function () { var tab = "task"; if (this.options.navi) tab = this.options.navi; if (this.status && this.status.navi) tab = this.status.navi; switch (tab) { case "task": this.showTask(); break; case "done": this.showDone(); break; case "read": this.showRead(); break; case "readed": this.showReaded(); break; case "review": this.showReview(); break; case "draft": this.showDraft(); break; case "myCreated": this.showMyCreated(); break; default: this.showTask(); break; } }, showTask: function () { if (this.currentTab !== "task") { this.showTab(0); this.currentTab = "task"; if (!this.taskList) { this.createTaskList(); this.taskList.show(); } else { this.taskList.show(); if (this.taskList) this.taskList.refresh(); } } else { if (this.taskList) this.taskList.refresh(); } this.searchBarAreaNode.setStyle("display", "block"); this.searchBarInputNode.set("value", this.lp.searchKey); }, showTab: function (idx) { this.tabs.each(function (node, i) { if (i === idx) { node.getLast().setStyles(this.css.tabItemTextNode_current); if (!layout.mobile){ node.getFirst().getNext().setStyles(this.css.tabItemTextNode_current); var icon = node.getFirst().getStyle("background-image"); node.getFirst().setStyle("background-image", icon.replace(".png", "_cur.png")); }else{ node.getFirst().setStyles(this.css.tabItemTextNode_current); } } else { node.getLast().setStyles(this.css.tabItemCountNode); if (!layout.mobile){ node.getFirst().getNext().setStyles(this.css.tabItemTextNode); var icon = node.getFirst().getStyle("background-image"); node.getFirst().setStyle("background-image", icon.replace("_cur.png", ".png")); }else{ node.getFirst().setStyles(this.css.tabItemTextNode); } } }.bind(this)); }, createTaskList: function () { if (!this.contentNode) this.loadContent(); this.taskList = new MWF.xApplication.process.TaskCenter.TaskList(this.contentListAreaNode, this); }, //@todo 起草 搜索 筛选 。。。 showStartProcessArea: function(){ if (!this.processStarter) this.processStarter = new MWF.xApplication.process.TaskCenter.Starter(this); this.processStarter.load(); // if (layout.mobile){ // this.showStartProcessArea_mobile(); // }else{ // this.showStartProcessArea_pc(); // } }, // showStartProcessArea_mobile: function(){ // if (!this.startProcessAreaNode) { // this.createStartProcessArea_mobile(); // } // this.startProcessAreaNode.setStyle("display", "block"); // //document.body.setStyle("-webkit-overflow-scrolling", "auto"); // var morph = new Fx.Morph(this.startProcessAreaNode, { // "duration": 200, // "transition": Fx.Transitions.Expo.easeOut // }); // morph.start({"left": "0px"}); // }, // showStartProcessArea_pc: function () { // if (!this.startProcessAreaNode) { // this.createStartProcessArea(); // } // this.content.mask({ // "inject": this.content, // "destroyOnHide": true, // "id": "process_taskcenter_startProcessMask", // "style": this.css.maskNode // }); // // //var maskNode = this.window.node.getElement("#process_taskcenter_startProcessMask"); // var maskNode = this.content.getParent().getElement("#process_taskcenter_startProcessMask"); // if (maskNode){ // if( this.inBrowser ){ // maskNode.setStyles({"width":"100%","height":"100%"}); // } // maskNode.addEvent("click", function (e) { // this.closeStartProcessArea(e); // }.bind(this)); // } // //if (this.allApplicationStarter) this.allApplicationStarter.loadChild(); // this.startProcessAreaNode.fade("in"); // //this.startProcessTween.start("left", "-400px", "0px"); // }, // createStartProcessArea_mobile: function(){ // this.startProcessAreaNode = new Element("div", {"styles": this.css.startProcessAreaNode_mobile}).inject(this.content); // var size = this.content.getSize(); // this.startProcessAreaNode.setStyles({ // "width": ""+size.x+"px", // "height": ""+size.y+"px", // "top": "0px", // "left": ""+size.x+"px" // }); // // this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode_mobile}).inject(this.startProcessAreaNode); // this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode_mobile, "text": this.lp.back}).inject(this.startProcessTopNode); // this.startProcessCloseNode.addEvent("click", function (e) { // this.closeStartProcessArea(e); // }.bind(this)); // // this.startProcessListNode = new Element("div", {"styles": this.css.startProcessListNode_mobile}).inject(this.startProcessAreaNode); // var h = size.y-this.startProcessTopNode.getSize().y; // this.startProcessListNode.setStyle("height", ""+h+"px"); // // //this.createStartProcessScrollNode(); // this.getAction(function () { // this.action.listApplicationStartable(function (appjson) { // this.app = this; // MWF.UD.getDataJson("taskCenter_startTop", function(json){ // this.top5Data = json; // if (this.top5Data && this.top5Data.length){ // new Element("div", {"styles": this.css.applicationChildTitleNode, "text": this.lp.startTop5}).inject(this.startProcessListNode); // var top5ChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.startProcessListNode); // // this.top5Data.sort(function(p1, p2){ // return 0-(p1.count-p2.count); // }); // this.top5Data.each(function(process, i){ // if (i<5) new MWF.xApplication.process.TaskCenter.Process(process, this, {"name": process.applicationName}, top5ChildNode); // }.bind(this)); // } // appjson.data.each(function (app) { // new Element("div", {"styles": this.css.applicationChildTitleNode, "text": app.name}).inject(this.startProcessListNode); // var appChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.startProcessListNode); // app.processList.each(function(process){ // new MWF.xApplication.process.TaskCenter.Process(process, this, app, appChildNode); // }.bind(this)); // }.bind(this)); // }.bind(this)); // // // // this.allApplicationStarter = new MWF.xApplication.process.TaskCenter.AllApplication(json.data, this); // // this.allApplicationStarter.selected(); // // json.data.each(function (app) { // // new MWF.xApplication.process.TaskCenter.Application(app, this); // // }.bind(this)); // }.bind(this)); // }.bind(this)); // }, // createStartProcessArea: function () { // this.createStartProcessAreaNode(); // this.createStartProcessScrollNode(); // // this.listApplications(); // // this.setResizeStartProcessAreaHeight(); // this.addEvent("resize", this.setResizeStartProcessAreaHeight.bind(this)); // // //this.startProcessTween = new Fx.Tween(this.startProcessAreaNode, { // // "duration": "200", // // "transition": Fx.Transitions.Quad.easeOut // //}); // }, // createStartProcessAreaNode: function () { // this.startProcessAreaNode = new Element("div", {"styles": this.css.startProcessAreaNode}).inject(this.content); // }, // createStartProcessCloseNode: function () { // this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode}).inject(this.startProcessRightListNode); // this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode}).inject(this.startProcessTopNode); // this.startProcessCloseNode.addEvent("click", function (e) { // this.closeStartProcessArea(e); // }.bind(this)); // }, // createStartProcessSearchNode: function(){ // this.startProcessSearchNode = new Element("div", {"styles": this.css.startProcessSearchNode}).inject(this.startProcessRightListNode); // this.startProcessSearchIconNode = new Element("div", {"styles": this.css.startProcessSearchIconNode}).inject(this.startProcessSearchNode); // this.startProcessSearchAreaNode = new Element("div", {"styles": this.css.startProcessSearchAreaNode}).inject(this.startProcessSearchNode); // this.startProcessSearchInputNode = new Element("input", {"styles": this.css.startProcessSearchInputNode}).inject(this.startProcessSearchAreaNode); // this.startProcessSearchInputNode.set("value", this.lp.searchProcess); // this.startProcessSearchInputNode.addEvents({ // "focus": function(){ if (this.startProcessSearchInputNode.get("value")===this.lp.searchProcess) this.startProcessSearchInputNode.set("value", ""); }.bind(this), // "blur": function(){if (!this.startProcessSearchInputNode.get("value")) this.startProcessSearchInputNode.set("value", this.lp.searchProcess);}.bind(this), // "keydown": function(e){ if (e.code===13) this.searchStartProcess(); }.bind(this) // }); // this.startProcessSearchIconNode.addEvent("click", function(){ this.searchStartProcess(); }.bind(this)); // }, // searchStartProcess: function(){ // var key = this.startProcessSearchInputNode.get("value"); // if (key && key!==this.lp.searchProcess){ // if (this.appStartableData){ // this.startApplications.each(function(app){ app.unselected(); }); // if (this.searchProcessSearchchildNode) this.searchProcessSearchchildNode.destroy(); // var text = this.lp.searchProcessResault.replace("{key}", key); // // this.searchProcessSearchchildNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.startProcessProcessAreaNode); // this.searchProcessSearchchildNode.setStyle("display", "block"); // new Element("div", {"styles": this.css.applicationChildTitleNode, "text": text}).inject(this.searchProcessSearchchildNode); // var proListNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.searchProcessSearchchildNode); // // this.appStartableData.each(function (app) { // app.processList.each(function(pro){ // if (pro.name.indexOf(key)!==-1){ // var data = Object.clone(pro); // data.applicationName = app.name; // new MWF.xApplication.process.TaskCenter.Process(data, {"app": this}, {"name": app}, proListNode); // } // }.bind(this)); // }.bind(this)); // } // } // }, // createStartProcessScrollNode: function () { // this.startProcessApplicationListNode = new Element("div", {"styles": this.css.startProcessApplicationListNode}).inject(this.startProcessAreaNode); // this.startProcessRightListNode = new Element("div", {"styles": this.css.startProcessRightListNode}).inject(this.startProcessAreaNode); // // this.createStartProcessCloseNode(); // this.createStartProcessSearchNode(); // // this.startProcessApplicationScrollNode = new Element("div", {"styles": this.css.startProcessApplicationScrollNode}).inject(this.startProcessApplicationListNode); // this.startProcessApplicationAreaNode = new Element("div", {"styles": this.css.startProcessApplicationAreaNode}).inject(this.startProcessApplicationScrollNode); // // this.startProcessProcessListNode = new Element("div", {"styles": this.css.startProcessProcessListNode}).inject(this.startProcessRightListNode); // this.startProcessProcessScrollNode = new Element("div", {"styles": this.css.startProcessProcessScrollNode}).inject(this.startProcessProcessListNode); // this.startProcessProcessAreaNode = new Element("div", {"styles": this.css.startProcessProcessAreaNode}).inject(this.startProcessProcessScrollNode); // // MWF.require("MWF.widget.ScrollBar", function () { // new MWF.widget.ScrollBar(this.startProcessApplicationScrollNode, { // "distance": 100, // "friction": 4 // }); // new MWF.widget.ScrollBar(this.startProcessProcessScrollNode, { // "distance": 100, // "friction": 4 // }); // }.bind(this)); // // //this.startProcessContentNode = new Element("div", {"styles": this.css.startProcessContentNode}).inject(this.startProcessScrollNode); // }, // closeStartProcessArea: function () { // //if (this.startProcessAreaNode) this.startProcessTween.start("left", "0px", "-400px"); // if (layout.mobile){ // var size = this.startProcessAreaNode.getSize(); // var morph = new Fx.Morph(this.startProcessAreaNode, { // "duration": 200, // "transition": Fx.Transitions.Expo.easeOut, // "onComplete": function(){ // this.startProcessAreaNode.setStyle("display", "none"); // }.bind(this) // }); // morph.start({"left": ""+size.x+"px"}); // }else{ // this.content.unmask(); // if (this.startProcessAreaNode) this.startProcessAreaNode.fade("out"); // } // // }, // setResizeStartProcessAreaHeight: function () { // if (this.startProcessAreaNode) { // var size = this.content.getSize(); // var nodeSize = this.startProcessAreaNode.getSize(); // var x = (size.x-nodeSize.x)/2; // var y = (size.y-nodeSize.y)/2; // this.startProcessAreaNode.setStyle("top", "" + y + "px"); // this.startProcessAreaNode.setStyle("left", "" + x + "px"); // // var maskNode = this.content.getParent().getElement("#process_taskcenter_startProcessMask"); // //var maskNode = this.window.node.getElement("#process_taskcenter_startProcessMask"); // if (maskNode){ // maskNode.setStyles({"width": ""+size.x+"px", "height": ""+size.y+"px"}); // maskNode.position({ // "relativeTo": this.content, // "position": "topLeft", // "edge": "topLeft" // }); // } // // if (this.startProcessProcessListNode){ // var topSize = this.startProcessTopNode.getSize(); // var searchSize = this.startProcessSearchNode.getSize(); // var h = nodeSize.y-topSize.y-searchSize.y; // this.startProcessProcessListNode.setStyle("height", ""+h+"px"); // } // // } // }, // listApplications: function () { // this.getAction(function () { // this.action.listApplicationStartable(function (json) { // this.appStartableData = json.data; // this.startProcessSearchNode.setStyle("display", "block"); // this.allApplicationStarter = new MWF.xApplication.process.TaskCenter.AllApplication(json.data, this); // this.allApplicationStarter.selected(); // json.data.each(function (app) { // new MWF.xApplication.process.TaskCenter.Application(app, this); // }.bind(this)); // }.bind(this)); // }.bind(this)); // }, // getAction: function (callback) { if (!this.action) { this.action = MWF.Actions.get("x_processplatform_assemble_surface"); if (callback) callback(); // MWF.xDesktop.requireApp("process.TaskCenter", "Actions.RestActions", function () { // this.action = new MWF.xApplication.process.TaskCenter.Actions.RestActions(); // if (callback) callback(); // }.bind(this)); } else { if (callback) callback(); } }, refreshAll: function () { this.getWorkCounts(); if (this.taskList) if (this.currentTab === "task") this.taskList.refresh(); //if (this.taskCompletedList) if (this.currentTab == "done") this.taskCompletedList.refresh(); //if (this.readList) if (this.currentTab == "read") this.readList.refresh(); //if (this.readedList) if (this.currentTab == "readed") this.readedList.refresh(); //if (this.reviewList) if (this.currentTab == "review") this.reviewList.refresh(); if (this.draftList) if (this.currentTab === "draft") this.draftList.refresh(); }, createTaskCompletedList: function (filterData) { if (!this.contentNode) this.loadContent(); this.taskCompletedList = new MWF.xApplication.process.TaskCenter.TaskCompletedList(this.contentListAreaNode, this, filterData); //if (filterData) this.taskCompletedList.filterData = filterData; }, showDone: function () { if (this.currentTab !== "done") { this.showTab(1); this.currentTab = "done"; if (!this.taskCompletedList) { this.createTaskCompletedList((this.status) ? this.status.filter : null); this.taskCompletedList.show(); } else { this.taskCompletedList.show(); if (this.taskCompletedList) this.taskCompletedList.refresh(); } } else { if (this.taskCompletedList) this.taskCompletedList.refresh(); } this.searchBarAreaNode.setStyle("display", "block"); this.searchBarInputNode.set("value", this.lp.searchKey); }, createReadList: function (filterData) { if (!this.contentNode) this.loadContent(); this.readList = new MWF.xApplication.process.TaskCenter.ReadList(this.contentListAreaNode, this, filterData); //if (filterData) this.taskCompletedList.filterData = filterData; }, showRead: function () { if (this.currentTab !== "read") { this.showTab(2); this.currentTab = "read"; if (!this.readList) { this.createReadList((this.status) ? this.status.filter : null); this.readList.show(); } else { this.readList.show(); if (this.readList) this.readList.refresh(); } } else { if (this.readList) this.readList.refresh(); } this.searchBarAreaNode.setStyle("display", "block"); this.searchBarInputNode.set("value", this.lp.searchKey); }, createReadedList: function (filterData) { if (!this.contentNode) this.loadContent(); this.readedList = new MWF.xApplication.process.TaskCenter.ReadCompletedList(this.contentListAreaNode, this, filterData); //if (filterData) this.taskCompletedList.filterData = filterData; }, showReaded: function () { if (this.currentTab !== "readed") { this.showTab(3); this.currentTab = "readed"; if (!this.readedList) { this.createReadedList((this.status) ? this.status.filter : null); this.readedList.show(); } else { this.readedList.show(); if (this.readedList) this.readedList.refresh(); } } else { if (this.readedList) this.readedList.refresh(); } this.searchBarAreaNode.setStyle("display", "block"); this.searchBarInputNode.set("value", this.lp.searchKey); }, createReviewList: function (filterData) { if (!this.contentNode) this.loadContent(); this.reviewList = new MWF.xApplication.process.TaskCenter.ReviewList(this.contentListAreaNode, this, filterData); //if (filterData) this.taskCompletedList.filterData = filterData; }, showReview: function () { if (this.currentTab !== "review") { this.showTab(4); this.currentTab = "review"; if (!this.reviewList) { this.createReviewList((this.status) ? this.status.filter : null); this.reviewList.show(); } else { this.reviewList.show(); if (this.reviewList) this.reviewList.refresh(); } } else { if (this.reviewList) this.reviewList.refresh(); } this.searchBarAreaNode.setStyle("display", "block"); }, createDraftList: function (filterData) { if (!this.contentNode) this.loadContent(); this.draftList = new MWF.xApplication.process.TaskCenter.DraftList(this.contentListAreaNode, this, filterData); }, showDraft: function(){ if (this.currentTab !== "draft") { this.showTab(5); this.currentTab = "draft"; if (!this.draftList) { this.createDraftList((this.status) ? this.status.filter : null); this.draftList.show(); } else { this.draftList.show(); if (this.draftList) this.draftList.refresh(); } } else { if (this.draftList) this.draftList.refresh(); } this.searchBarAreaNode.setStyle("display", "none"); }, createMyCreatedList: function (filterData) { if (!this.contentNode) this.loadContent(); this.myCreatedList = new MWF.xApplication.process.TaskCenter.MyCreatedList(this.contentListAreaNode, this, filterData); }, showMyCreated: function(){ if (this.currentTab !== "myCreated") { this.showTab(6); this.currentTab = "myCreated"; if (!this.myCreatedList) { this.createMyCreatedList((this.status) ? this.status.filter : null); this.myCreatedList.show(); } else { this.myCreatedList.show(); if (this.myCreatedList) this.myCreatedList.refresh(); } } else { if (this.myCreatedList) this.myCreatedList.refresh(); } this.searchBarAreaNode.setStyle("display", "none"); }, recordStatus: function(){ var tab = this.currentTab || "task"; var filter = null; if (tab==="done"){ filter = this.taskCompletedList.filterData; } if (tab==="read"){ filter = this.readList.filterData; } if (tab==="readed"){ filter = this.readedList.filterData; } if (tab==="review"){ filter = this.reviewList.filterData; } if (tab==="draft"){ filter = this.draftList.filterData; } return {"navi": this.currentTab || "task", "filter": filter}; }, searchTask: function(){ var keyWord = this.searchBarInputNode.get("value"); if (keyWord && (keyWord!==this.lp.searchKey)){ var tab = this.currentTab || "task"; switch (tab){ case "task": if (!this.taskList.filterData) this.taskList.filterData = {}; this.taskList.filterData.key = keyWord; this.taskList.refilter(); break; case "done": if (!this.taskCompletedList.filterData) this.taskCompletedList.filterData = {}; this.taskCompletedList.filterData.key = keyWord; this.taskCompletedList.refilter(); break; case "read": if (!this.readList.filterData) this.readList.filterData = {}; this.readList.filterData.key = keyWord; this.readList.refilter(); break; case "readed": if (!this.readedList.filterData) this.readedList.filterData = {}; this.readedList.filterData.key = keyWord; this.readedList.refilter(); break; case "review": if (!this.reviewList.filterData) this.reviewList.filterData = {}; this.reviewList.filterData.key = keyWord; this.reviewList.refilter(); break; case "draft": if (!this.draftList.filterData) this.draftList.filterData = {}; this.draftList.filterData.key = keyWord; this.draftList.refilter(); break; } } } }); MWF.xApplication.process.TaskCenter.Application = new Class({ initialize: function(data, starter){ this.bgColors = ["#30afdc", "#e9573e", "#8dc153", "#9d4a9c", "#ab8465", "#959801", "#434343", "#ffb400", "#9e7698", "#00a489"]; this.data = data; this.starter = starter this.app = this.starter.app; this.container = this.starter.startProcessApplicationAreaNode; this.processContainer = this.starter.startProcessProcessAreaNode; this.css = this.app.css; this.isLoaded = false; this.load(); }, load: function(){ this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container); this.iconAreaNode = new Element("div", {"styles": this.css.applicationIconAreaNode}).inject(this.node); this.iconNode = new Element("img", {"styles": this.css.applicationIconNode}).inject(this.iconAreaNode); if (this.data.icon){ this.iconNode.set("src", "data:image/png;base64,"+this.data.icon+""); }else{ this.iconNode.set("src", "../x_component_process_ApplicationExplorer/$Main/default/icon/application.png"); } this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.node); this.textNode.set("text", this.data.name); this.textNode.set("title", this.data.name); this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.processContainer); //this.loadChild(); this.node.addEvent("click", function(){ this.selected(); }.bind(this)); this.starter.startApplications.push(this); }, unselected: function(){ this.childNode.setStyle("display", "none"); this.node.setStyles(this.css.applicationNode); }, selected: function(){ this.starter.startApplications.each(function(app){ app.unselected(); }); if (this.starter.searchProcessSearchchildNode) this.starter.searchProcessSearchchildNode.destroy(); if (this.starter.startProcessSearchInputNode) this.starter.startProcessSearchInputNode.set("placeholder", this.app.lp.searchProcess); this.childNode.setStyle("display", "block"); this.node.setStyles(this.css.applicationNode_selected); if (!this.isLoaded){ this.loadChild(); this.isLoaded = true; } }, loadChild: function(){ new Element("div", {"styles": this.css.applicationChildTitleNode, "text": this.app.lp.startProcess}).inject(this.childNode); var childNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); this.data.processList.each(function(process){ new MWF.xApplication.process.TaskCenter.Process(process, this, this.data, childNode); }.bind(this)); } }); MWF.xApplication.process.TaskCenter.Column = new Class({ Extends: MWF.xApplication.process.TaskCenter.Application, load: function(){ this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container); this.iconAreaNode = new Element("div", {"styles": this.css.applicationIconAreaNode}).inject(this.node); this.iconNode = new Element("img", {"styles": this.css.applicationIconNode}).inject(this.iconAreaNode); if (this.data.appIcon){ this.iconNode.set("src", "data:image/png;base64,"+this.data.appIcon+""); }else{ this.iconNode.set("src", "../x_component_process_ApplicationExplorer/$Main/default/icon/application.png"); } this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.node); this.textNode.set("text", this.data.appName); this.textNode.set("title", this.data.appName); this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.processContainer); //this.loadChild(); this.node.addEvent("click", function(){ this.selected(); }.bind(this)); this.starter.startApplications.push(this); }, loadChild: function(){ new Element("div", {"styles": this.css.applicationChildTitleNode, "text": this.app.lp.startProcess}).inject(this.childNode); var childNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); this.data.wrapOutCategoryList.each(function(category){ new MWF.xApplication.process.TaskCenter.Category(category, this, this.data, childNode); }.bind(this)); } }); MWF.xApplication.process.TaskCenter.AllApplication = new Class({ Extends: MWF.xApplication.process.TaskCenter.Application, initialize: function(data, starter, columnData){ this.bgColors = ["#30afdc", "#e9573e", "#8dc153", "#9d4a9c", "#ab8465", "#959801", "#434343", "#ffb400", "#9e7698", "#00a489"]; this.data = data; this.columnData = columnData; this.starter = starter; this.app = this.starter.app; this.container = this.starter.startProcessApplicationAreaNode; this.processContainer = this.starter.startProcessProcessAreaNode; this.css = this.starter.css; this.isLoaded = false; this.load(); }, load: function(){ this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container); this.iconAreaNode = new Element("div", {"styles": this.css.applicationIconAreaNode}).inject(this.node); this.iconNode = new Element("img", {"styles": this.css.applicationIconNode}).inject(this.iconAreaNode); this.iconNode.set("src", "../x_component_process_TaskCenter/$Main/default/icon/appAppliction.png"); this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.node); this.textNode.set("text", this.app.lp.all); this.textNode.set("title", this.app.lp.all); this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.processContainer); //this.loadChild(); this.node.addEvent("click", function(){ this.selected(); }.bind(this)); this.starter.startApplications.push(this); }, unselected: function(){ this.childNode.empty(); this.isLoaded = false; this.childNode.setStyle("display", "none"); this.node.setStyles(this.css.applicationNode); }, loadChild: function(){ //this.loadSearch(); var mapById = {}; this.data.each(function (app) { if (app.processList && app.processList.length){ app.processList.each(function (process) { mapById[ process.id ] = process; }); } }); MWF.UD.getDataJson("taskCenter_startTop", function(json){ this.top5Data = json; debugger; if (this.top5Data && this.top5Data.length){ new Element("div", {"styles": this.css.applicationChildTitleNode, "text": this.app.lp.startTop5}).inject(this.childNode); var top5ChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); this.top5Data.sort(function(p1, p2){ return 0-(p1.count-p2.count); }); this.top5Data.each(function (d) { if( mapById[ d.id ] )d.name = mapById[ d.id ].name; }); } var allowProcessIds = []; this.data.each(function (app) { new Element("div", {"styles": this.css.applicationChildTitleNode, "text": app.name}).inject(this.childNode); var appChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); app.processList.each(function(process){ allowProcessIds.push(process.id); new MWF.xApplication.process.TaskCenter.Process(process, this, app, appChildNode); }.bind(this)); }.bind(this)); this.columnData.each(function (column) { new Element("div", {"styles": this.css.applicationChildTitleNode, "text": column.appName}).inject(this.childNode); var appChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); column.wrapOutCategoryList.each(function(category){ // allowProcessIds.push(process.id); new MWF.xApplication.process.TaskCenter.Category(category, this, column, appChildNode); }.bind(this)); }.bind(this)); if (top5ChildNode){ saveflag = false; this.top5Data.each(function(process, i){ if (allowProcessIds.indexOf(process.id)!==-1){ if (i<5) new MWF.xApplication.process.TaskCenter.Process(process, this, {"name": process.applicationName}, top5ChildNode); }else{ saveflag = true; process.count=0; } }.bind(this)); if (saveflag) MWF.UD.putData("taskCenter_startTop", this.top5Data); } }.bind(this)); } }); MWF.xApplication.process.TaskCenter.Process = new Class({ initialize: function(data, application, applicationData, container){ this.data = data; this.application = application; this.applicationData = applicationData; this.app = this.application.app; if( this.application.starter ){ this.starter = this.application.starter; }else if( this.application.app && this.application.app.starter ){ this.starter = this.application.app.starter; }else if( this.application.app && this.application.app.processStarter ){ this.starter = this.application.app.processStarter; }else if( application.startProcessAreaNode ){ this.starter = application; } //this.starter = this.application.starter this.container = container; this.css = this.app.css; this.load(); }, load: function(){ this.node = new Element("div.processItem", {"styles": this.css.startProcessNode}).inject(this.container); this.iconNode = new Element("div", {"styles": this.css.processIconNode}).inject(this.node); if (this.data.icon){ this.iconNode.setStyle("background-image", "url("+this.data.icon+")"); }else{ this.iconNode.setStyle("background-image", "url(../x_component_process_ProcessManager/$Explorer/default/processIcon/process.png)"); } this.textNode = new Element("div", {"styles": this.css.processTextNode}).inject(this.node); this.actionNode = new Element("div", {"styles": this.css.processActionNode, "text": this.app.lp.start}).inject(this.node); var appName = ""; if( typeOf( this.data.applicationName ) === "string" ){ appName = this.data.applicationName || ""; }else if( typeOf( this.data.applicationName ) === "object" && this.data.applicationName.name ){ appName = this.data.applicationName.name || ""; } this.textNode.set({ "text": this.data.name+((this.data.applicationName) ? " -- ("+appName+")" : ""), "title": this.data.name+ (this.data.description ? ("-"+ this.data.description) : "") }); //var _self = this; this.actionNode.addEvents({ "mouseover": function(){this.actionNode.setStyles(this.css.processActionNode_over);}.bind(this), "mouseout": function(){this.actionNode.setStyles(this.css.processActionNode);}.bind(this), "click": function(e){ this.startProcess(e); }.bind(this) }); this.node.addEvents({ "mouseover": function(){ this.node.setStyles(this.css.startProcessNode_over); this.actionNode.setStyle("display", "block"); }.bind(this), "mouseout": function(){ this.node.setStyles(this.css.startProcessNode_out); //this.actionNode.setStyle("display", "none"); }.bind(this) }); }, startProcess: function(){ if(this.starter)this.starter.closeStartProcessArea(); MWF.xDesktop.requireApp("process.TaskCenter", "ProcessStarter", function(){ var starter = new MWF.xApplication.process.TaskCenter.ProcessStarter(this.data, this.app, { "onStarted": function(data, title, processName){ this.afterStartProcess(data, title, processName); }.bind(this) }); starter.load(); }.bind(this)); }, recordProcessData: function(){ MWF.UD.getDataJson("taskCenter_startTop", function(json){ if (!json || !json.length) json = []; var recordProcess = null; this.data.lastStartTime = new Date(); var earlyProcessIdx = 0; var flag = true; for (var i=0; i"+this.app.lp.processStartedMessage+"“["+processName+"]"+title+"”" // }; // var tooltip = layout.desktop.message.addTooltip(msg); // var item = layout.desktop.message.addMessage(msg); }, startProcessInstance: function(data, title, processName){ var workInfors = []; var currentTask = []; data.each(function(work){ if (work.currentTaskIndex !== -1) currentTask.push(work.taskList[work.currentTaskIndex].work); workInfors.push(this.getStartWorkInforObj(work)); }.bind(this)); if (currentTask.length===1){ if (layout.inBrowser && (o2.thirdparty.isDingdingPC() || o2.thirdparty.isQywxPC())) { var url = "../x_desktop/work.html?workid=" + currentTask[0]; window.location = o2.filterUrl(url); } else { var options = {"workId": currentTask[0], "appId": "process.Work"+currentTask[0]}; if( !layout.inBrowser )options.onPostLoadForm = function(app){ this.starter.fireEvent("afterStartProcess", [app]); }.bind(this); var win = this.app.desktop.openApplication(null, "process.Work", options); if( layout.inBrowser ){ this.starter.fireEvent("afterStartProcess", [win]); } } if (layout.desktop.message) this.createStartWorkResault(workInfors, title, processName, false); }else{ if (layout.desktop.message) this.createStartWorkResault(workInfors, title, processName, true); } }, getStartWorkInforObj: function(work){ var users = []; var currentTask = ""; work.taskList.each(function(task, idx){ users.push(task.person+"("+task.department + ")"); if (work.currentTaskIndex===idx) currentTask = task.id; }.bind(this)); return {"activity": work.fromActivityName, "users": users, "currentTask": currentTask}; }, createStartWorkResault: function(workInfors, title, processName, isopen){ var content = ""; workInfors.each(function(infor){ var users = []; infor.users.each(function(uname){ users.push(MWF.name.cn(uname)); }); content += "
"+this.app.lp.nextActivity+""+infor.activity+", "+this.app.lp.nextUser+""+users.join(", ")+""; if (infor.currentTask && isopen){ content += "    "+this.app.lp.deal+"
"; }else{ content += ""; } }.bind(this)); var msg = { "subject": this.app.lp.processStarted, "content": "
"+this.app.lp.processStartedMessage+"“["+processName+"]"+title+"”
"+content }; var tooltip = layout.desktop.message.addTooltip(msg); var item = layout.desktop.message.addMessage(msg); this.setStartWorkResaultAction(tooltip); this.setStartWorkResaultAction(item); }, setStartWorkResaultAction: function(item){ var node = item.node.getElements("span"); node.setStyles(this.app.css.dealStartedWorkAction); var _self = this; node.addEvent("click", function(e){ var options = {"taskId": this.get("value"), "appId": this.get("value")}; _self.app.desktop.openApplication(e, "process.Work", options); }); } }); MWF.xApplication.process.TaskCenter.Category = new Class({ Extends: MWF.xApplication.process.TaskCenter.Process, load: function(){ this.node = new Element("div.processItem", {"styles": this.css.startProcessNode}).inject(this.container); this.iconNode = new Element("div", {"styles": this.css.processIconNode}).inject(this.node); this.iconNode.setStyle("background-image", "url(../x_component_process_ProcessManager/$Explorer/default/processIcon/process.png)"); this.textNode = new Element("div", {"styles": this.css.processTextNode}).inject(this.node); this.actionNode = new Element("div", {"styles": this.css.processActionNode, "text": this.app.lp.start}).inject(this.node); var appName = this.data.appName; this.textNode.set({ "text": this.data.categoryName+(appName ? " -- ("+appName+")" : ""), "title": this.data.categoryName+ (appName ? ("-"+ appName) : "") }); //var _self = this; this.actionNode.addEvents({ "mouseover": function(){this.actionNode.setStyles(this.css.processActionNode_over);}.bind(this), "mouseout": function(){this.actionNode.setStyles(this.css.processActionNode);}.bind(this), "click": function(e){ this.startProcess(e); }.bind(this) }); this.node.addEvents({ "mouseover": function(){ this.node.setStyles(this.css.startProcessNode_over); this.actionNode.setStyle("display", "block"); }.bind(this), "mouseout": function(){ this.node.setStyles(this.css.startProcessNode_out); //this.actionNode.setStyle("display", "none"); }.bind(this) }); }, startProcess: function(){ this.starter.closeStartProcessArea(); var data = this.data; if( !data.categoryId ){ data.categoryId = data.id; data.id = data.workflowFlag; if( !data.name )data.name = data.categoryName; } MWF.xDesktop.requireApp("process.TaskCenter", "ProcessStarter", function(){ var starter = new MWF.xApplication.process.TaskCenter.ProcessStarter(this.data, this.app, { "workData": { "cmsDocument" : { "isNewDocument" : true, "title": this.app.lp.unnamed, // "creatorIdentity": data.identity, // "identity": data.identity, "appId" : data.appId, "categoryId" : data.categoryId, "docStatus" : "draft", "categoryName" : data.categoryName, "categoryAlias" : data.categoryAlias, "createTime": new Date().format("db"), "attachmentList" : [] } }, "onBeforeStarted": function(data){ data.data.cmsDocument.creatorIdentity = data.identity; data.data.cmsDocument.identity = data.identity; }, "onStarted": function(data, title, processName){ this.afterStartProcess(data, title, processName); }.bind(this) }); starter.load(); }.bind(this)); }, afterStartProcess: function(data, title, processName){ // this.recordProcessData(); if (data.work){ this.startProcessDraft(data, title, processName); }else{ this.startProcessInstance(data, title, processName); } this.starter.fireEvent("startProcess"); } }); MWF.xApplication.process.TaskCenter.Starter = new Class({ Implements: [Options, Events], initialize: function(app, options){ this.setOptions(options); this.app = app; this.css = app.css; this.lp = app.lp; this.content = this.app.content; this.startApplications = []; }, load: function(){ if (layout.mobile){ this.showStartProcessArea_mobile(); }else{ this.showStartProcessArea_pc(); } }, showStartProcessArea_pc: function () { if (!this.startProcessAreaNode) { this.createStartProcessArea(); } this.content.mask({ "destroyOnHide": true, "id": "process_taskcenter_startProcessMask", "style": this.css.maskNode }); var maskNode = this.content.getParent().getElement("#process_taskcenter_startProcessMask"); if (maskNode){ if( this.inBrowser ){ maskNode.setStyles({"width":"100%","height":"100%"}); } maskNode.addEvent("click", function (e) { this.closeStartProcessArea(e); }.bind(this)); } this.startProcessAreaNode.fade("in"); }, createStartProcessArea: function () { this.createStartProcessAreaNode(); this.createStartProcessScrollNode(); this.listApplications(); this.setResizeStartProcessAreaHeight(); this.app.addEvent("resize", this.setResizeStartProcessAreaHeight.bind(this)); }, createStartProcessAreaNode: function () { this.startProcessAreaNode = new Element("div", {"styles": this.css.startProcessAreaNode}).inject(this.content); }, createStartProcessScrollNode: function () { this.startProcessApplicationListNode = new Element("div", {"styles": this.css.startProcessApplicationListNode}).inject(this.startProcessAreaNode); this.startProcessRightListNode = new Element("div", {"styles": this.css.startProcessRightListNode}).inject(this.startProcessAreaNode); this.createStartProcessCloseNode(); this.createStartProcessSearchNode(); this.startProcessApplicationScrollNode = new Element("div", {"styles": this.css.startProcessApplicationScrollNode}).inject(this.startProcessApplicationListNode); this.startProcessApplicationAreaNode = new Element("div", {"styles": this.css.startProcessApplicationAreaNode}).inject(this.startProcessApplicationScrollNode); this.startProcessProcessListNode = new Element("div", {"styles": this.css.startProcessProcessListNode}).inject(this.startProcessRightListNode); this.startProcessProcessScrollNode = new Element("div", {"styles": this.css.startProcessProcessScrollNode}).inject(this.startProcessProcessListNode); this.startProcessProcessAreaNode = new Element("div", {"styles": this.css.startProcessProcessAreaNode}).inject(this.startProcessProcessScrollNode); MWF.require("MWF.widget.ScrollBar", function () { new MWF.widget.ScrollBar(this.startProcessApplicationScrollNode, { "distance": 100, "friction": 4 }); new MWF.widget.ScrollBar(this.startProcessProcessScrollNode, { "distance": 100, "friction": 4 }); }.bind(this)); }, createStartProcessCloseNode: function () { this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode}).inject(this.startProcessRightListNode); this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode}).inject(this.startProcessTopNode); this.startProcessCloseNode.addEvent("click", function (e) { this.closeStartProcessArea(e); }.bind(this)); }, createStartProcessSearchNode: function(){ this.startProcessSearchNode = new Element("div", {"styles": this.css.startProcessSearchNode}).inject(this.startProcessRightListNode); this.startProcessSearchIconNode = new Element("div", {"styles": this.css.startProcessSearchIconNode}).inject(this.startProcessSearchNode); this.startProcessSearchAreaNode = new Element("div", {"styles": this.css.startProcessSearchAreaNode}).inject(this.startProcessSearchNode); this.startProcessSearchInputNode = new Element("input", {"styles": this.css.startProcessSearchInputNode}).inject(this.startProcessSearchAreaNode); this.startProcessSearchInputNode.set("placeholder", this.lp.searchProcess); this.startProcessSearchInputNode.addEvents({ "focus": function(){ if (this.startProcessSearchInputNode.get("value")===this.lp.searchProcess) this.startProcessSearchInputNode.set("value", ""); }.bind(this), "blur": function(){if (!this.startProcessSearchInputNode.get("value")) this.startProcessSearchInputNode.set("placeholder", this.lp.searchProcess);}.bind(this), "keydown": function(e){ if (e.code===13) this.searchStartProcess(); }.bind(this) }); this.startProcessSearchIconNode.addEvent("click", function(){ this.searchStartProcess(); }.bind(this)); }, searchStartProcess: function(){ debugger; var key = this.startProcessSearchInputNode.get("value"); if (key && key!==this.lp.searchProcess){ if (this.appStartableData){ this.startApplications.each(function(app){ app.unselected(); }); if (this.searchProcessSearchchildNode) this.searchProcessSearchchildNode.destroy(); var text = this.lp.searchProcessResault.replace("{key}", key); this.searchProcessSearchchildNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.startProcessProcessAreaNode); this.searchProcessSearchchildNode.setStyle("display", "block"); new Element("div", {"styles": this.css.applicationChildTitleNode, "text": text}).inject(this.searchProcessSearchchildNode); var proListNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.searchProcessSearchchildNode); this.appStartableData.each(function (app) { app.processList.each(function(pro){ if (pro.name.indexOf(key)!==-1){ var data = Object.clone(pro); data.applicationName = app.name; new MWF.xApplication.process.TaskCenter.Process(data, {"app": this.app, "starter": this}, {"name": app.applicationName || app.appName || app.name }, proListNode); } }.bind(this)); }.bind(this)); } }else{ ( this.startApplications || [] ).each(function(app){ app.unselected(); }); if (this.searchProcessSearchchildNode) this.searchProcessSearchchildNode.destroy(); if(this.allApplicationStarter){ this.startProcessSearchNode.setStyle("display", "block"); this.allApplicationStarter.selected(); } } }, listApplications: function () { this.app.getAction(function () { // var p1 = this.app.action.listApplicationStartable(); var p1 = o2.Actions.load("x_processplatform_assemble_surface").ApplicationAction.listWithPersonAndTerminal("client"); var p2 = o2.Actions.load("x_cms_assemble_control").AppInfoAction.listPublishWithProcess(); Promise.all([p1, p2]).then(function(data){ var json_process = data[0], json_column = data[1]; this.appStartableData = json_process.data; this.columnStartableData = json_column.data; this.startProcessSearchNode.setStyle("display", "block"); this.allApplicationStarter = new MWF.xApplication.process.TaskCenter.AllApplication(json_process.data, this, json_column.data); this.allApplicationStarter.selected(); json_process.data.each(function (app) { if (app.processList && app.processList.length) new MWF.xApplication.process.TaskCenter.Application(app, this); }.bind(this)); json_column.data.each(function (column) { new MWF.xApplication.process.TaskCenter.Column(column, this); }.bind(this)); }.bind(this)); }.bind(this)); }, setResizeStartProcessAreaHeight: function () { if (this.startProcessAreaNode) { var size = this.content.getSize(); var nodeSize = this.startProcessAreaNode.getSize(); var x = (size.x-nodeSize.x)/2; var y = (size.y-nodeSize.y)/2; this.startProcessAreaNode.setStyle("top", "" + y + "px"); this.startProcessAreaNode.setStyle("left", "" + x + "px"); var maskNode = this.content.getParent().getElement("#process_taskcenter_startProcessMask"); //var maskNode = this.window.node.getElement("#process_taskcenter_startProcessMask"); if (maskNode){ maskNode.setStyles({"width": ""+size.x+"px", "height": ""+size.y+"px"}); maskNode.position({ "relativeTo": this.content, "position": "topLeft", "edge": "topLeft" }); } if (this.startProcessProcessListNode){ var topSize = this.startProcessTopNode.getSize(); var searchSize = this.startProcessSearchNode.getSize(); var h = nodeSize.y-topSize.y-searchSize.y; this.startProcessProcessListNode.setStyle("height", ""+h+"px"); } } }, showStartProcessArea_mobile: function(){ if (!this.startProcessAreaNode) { this.createStartProcessArea_mobile(); } this.startProcessAreaNode.setStyle("display", "block"); //document.body.setStyle("-webkit-overflow-scrolling", "auto"); var morph = new Fx.Morph(this.startProcessAreaNode, { "duration": 200, "transition": Fx.Transitions.Expo.easeOut }); morph.start({"left": "0px"}); }, createStartProcessArea_mobile: function(){ this.startProcessAreaNode = new Element("div", {"styles": this.css.startProcessAreaNode_mobile}).inject(this.content); var size = this.content.getSize(); this.startProcessAreaNode.setStyles({ "width": ""+size.x+"px", "height": ""+size.y+"px", "top": "0px", "left": ""+size.x+"px" }); this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode_mobile}).inject(this.startProcessAreaNode); this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode_mobile, "text": this.lp.back}).inject(this.startProcessTopNode); this.startProcessCloseNode.addEvent("click", function (e) { this.closeStartProcessArea(e); }.bind(this)); this.searchProcessNode = new Element("div", {"styles": this.css.searchProcessNode_mobile}).inject(this.startProcessAreaNode); this.searchProcessInput = new Element("input", { "styles": this.css.searchProcessInput_mobile, "placeholder": this.lp.searchProcess }).inject(this.searchProcessNode); this.searchProcessAction = new Element("div", {"styles": this.css.searchProcessAction_mobile}).inject(this.searchProcessNode); this.searchProcessAction.addEvent("click", function (e) { var v = this.searchProcessInput.get("value"); var flag = false; var top5Node = this.startProcessListNode.getElement(".top5Node"); if(top5Node){ top5Node.getElements(".processItem").each(function(el){ var isShow = !v || el.get("text").contains(v); isShow ? el.show() : el.hide(); if( isShow )flag = true; }); flag ? top5Node.show() : top5Node.hide(); } this.startProcessListNode.getElements(".appNode").each(function(appel){ var flag1 = false; appel.getElements(".processItem").each(function(el){ var isShow = !v || el.get("text").contains(v); isShow ? el.show() : el.hide(); if( isShow )flag1 = true; }); flag1 ? appel.show() : appel.hide(); }); }.bind(this)); this.startProcessListNode = new Element("div", {"styles": this.css.startProcessListNode_mobile}).inject(this.startProcessAreaNode); var h = size.y-this.startProcessTopNode.getSize().y - this.searchProcessNode.getSize().y; this.startProcessListNode.setStyle("height", ""+h+"px"); this.app.getAction(function () { o2.Actions.load("x_processplatform_assemble_surface").ApplicationAction.listWithPersonAndTerminal("mobile", function (appjson) { //this.app = this; MWF.UD.getDataJson("taskCenter_startTop", function(json){ this.top5Data = json; if (this.top5Data && this.top5Data.length){ var top5Node = new Element("div.top5Node").inject(this.startProcessListNode); new Element("div.top5Title", {"styles": this.css.applicationChildTitleNode, "text": this.lp.startTop5}).inject(top5Node); var top5ChildNode = new Element("div.top5ChildNode", {"styles": this.css.applicationChildChildNode}).inject(top5Node); this.top5Data.sort(function(p1, p2){ return 0-(p1.count-p2.count); }); this.top5Data.each(function(process, i){ if (i<5) new MWF.xApplication.process.TaskCenter.Process(process, this, {"name": process.applicationName}, top5ChildNode); }.bind(this)); } appjson.data.each(function (app) { if (app.processList && app.processList.length > 0) { var appNode = new Element("div.appNode").inject(this.startProcessListNode); new Element("div.appTitleNode", {"styles": this.css.applicationChildTitleNode, "text": app.name}).inject(appNode); var appChildNode = new Element("div.appChildNode", {"styles": this.css.applicationChildChildNode}).inject(appNode); app.processList.each(function(process){ new MWF.xApplication.process.TaskCenter.Process(process, this, {"name": app.applicationName || app.appName || app.name }, appChildNode); }.bind(this)); } }.bind(this)); }.bind(this)); }.bind(this)); }.bind(this)); }, // getAction: function (callback) { // if (!this.action) { // this.action = MWF.Actions.get("x_processplatform_assemble_surface"); // if (callback) callback(); // } else { // if (callback) callback(); // } // }, closeStartProcessArea: function () { if (layout.mobile){ var size = this.startProcessAreaNode.getSize(); var morph = new Fx.Morph(this.startProcessAreaNode, { "duration": 200, "transition": Fx.Transitions.Expo.easeOut, "onComplete": function(){ this.startProcessAreaNode.setStyle("display", "none"); }.bind(this) }); morph.start({"left": ""+size.x+"px"}); }else{ this.content.unmask(); if (this.startProcessAreaNode) this.startProcessAreaNode.fade("out"); } } }); // MWF.xApplication.process.TaskCenter.AllApplication = new Class({ // Extends: MWF.xApplication.process.TaskCenter.Application, // initialize: function(data, app){ // this.bgColors = ["#30afdc", "#e9573e", "#8dc153", "#9d4a9c", "#ab8465", "#959801", "#434343", "#ffb400", "#9e7698", "#00a489"]; // this.data = data; // this.app = app; // this.container = this.app.startProcessApplicationAreaNode; // this.processContainer = this.app.startProcessProcessAreaNode; // this.css = this.app.css; // this.isLoaded = false; // // this.load(); // }, // load: function(){ // this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container); // this.iconAreaNode = new Element("div", {"styles": this.css.applicationIconAreaNode}).inject(this.node); // this.iconNode = new Element("img", {"styles": this.css.applicationIconNode}).inject(this.iconAreaNode); // this.iconNode.set("src", "../x_component_process_TaskCenter/$Main/default/icon/appAppliction.png"); // // this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.node); // this.textNode.set("text", this.app.lp.all); // this.textNode.set("title", this.app.lp.all); // // this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.processContainer); // //this.loadChild(); // this.node.addEvent("click", function(){ // this.selected(); // }.bind(this)); // this.app.startApplications.push(this); // }, // unselected: function(){ // this.childNode.empty(); // this.isLoaded = false; // this.childNode.setStyle("display", "none"); // this.node.setStyles(this.css.applicationNode); // }, // loadChild: function(){ // //this.loadSearch(); // MWF.UD.getDataJson("taskCenter_startTop", function(json){ // this.top5Data = json; // if (this.top5Data && this.top5Data.length){ // new Element("div", {"styles": this.css.applicationChildTitleNode, "text": this.app.lp.startTop5}).inject(this.childNode); // var top5ChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); // // this.top5Data.sort(function(p1, p2){ // return 0-(p1.count-p2.count); // }); // } // // var allowProcessIds = []; // this.data.each(function (app) { // new Element("div", {"styles": this.css.applicationChildTitleNode, "text": app.name}).inject(this.childNode); // var appChildNode = new Element("div", {"styles": this.css.applicationChildChildNode}).inject(this.childNode); // app.processList.each(function(process){ // allowProcessIds.push(process.id); // new MWF.xApplication.process.TaskCenter.Process(process, this, app, appChildNode); // }.bind(this)); // }.bind(this)); // // if (top5ChildNode){ // saveflag = false; // this.top5Data.each(function(process, i){ // if (allowProcessIds.indexOf(process.id)!==-1){ // if (i<5) new MWF.xApplication.process.TaskCenter.Process(process, this, {"name": process.applicationName}, top5ChildNode); // }else{ // saveflag = true; // process.count=0; // } // }.bind(this)); // if (saveflag) MWF.UD.putData("taskCenter_startTop", this.top5Data); // } // // }.bind(this)); // } // });