MWF.require("MWF.widget.Mask", null, false);
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",
"creatorCompanyList": "creatorCompanyList",
"creatorDepartmentList": "creatorDepartmentList",
"activityNameList": "activityNameList",
"completedTimeMonthList": "completedTimeMonthList",
"key": "key"
}
},
onQueryLoad: function(){
this.lp = MWF.xApplication.process.TaskCenter.LP;
},
loadApplication: function(callback){
this.appIcons = {};
this.tabs = [];
this.tabShadows = [];
this.loadTitle();
this.loadTab();
this.loadContent();
this.currentTab = "";
this.openTab();
},
openTab: function(){
var tab = "task";
if (this.status) 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;
default:
this.showTask();
break;
}
},
loadTitle: function(){
this.loadTitleBar();
this.loadTitleUserNode();
this.loadStartProcessActionNode();
this.loadTitleTextNode();
this.loadSearchNode();
},
//createCreateAction: function(){
// this.createApplicationNode = new Element("div", {
// "styles": this.css.createApplicationNode,
// "title": this.options.tooltip.create
// }).inject(this.toolbarAreaNode);
// this.createApplicationNode.addEvent("click", function(){
// this.createApplication();
// }.bind(this));
//},
loadTitleBar: function(){
this.taskTitleBar = new Element("div", {
"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();
}.bind(this)
});
},
showStartProcessArea: function(){
if (!this.startProcessAreaNode){
this.createStartProcessArea();
}
this.startProcessAreaNode.fade("0.9")
//this.startProcessTween.start("left", "-400px", "0px");
},
closeStartProcessArea: function(){
//if (this.startProcessAreaNode) this.startProcessTween.start("left", "0px", "-400px");
if (this.startProcessAreaNode) this.startProcessAreaNode.fade("out");
},
createStartProcessArea: function(){
this.createStartProcessAreaNode();
this.createStartProcessCloseNode();
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);
this.startProcessAreaNode.addEvent("click", function(e){
this.closeStartProcessArea();
}.bind(this));
},
createStartProcessCloseNode: function(){
this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode}).inject(this.startProcessAreaNode);
this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode}).inject(this.startProcessTopNode);
this.startProcessCloseNode.addEvent("click", function(e){
this.closeStartProcessArea();
}.bind(this));
},
createStartProcessScrollNode: function(){
this.startProcessScrollNode = new Element("div", {"styles": this.css.startProcessScrollNode}).inject(this.startProcessAreaNode);
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(this.startProcessScrollNode, {
"style":"xApp_taskcenter", "where": "after", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}
});
}.bind(this));
this.startProcessContentNode = new Element("div", {"styles": this.css.startProcessContentNode}).inject(this.startProcessScrollNode);
},
listApplications: function(){
this.getAction(function(){
this.action.listApplication(function(json){
json.data.each(function(app){
new MWF.xApplication.process.TaskCenter.Application(app, this, this.startProcessContentNode);
}.bind(this));
}.bind(this));
}.bind(this));
},
getAction: function(callback){
if (!this.action){
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();
}
},
setResizeStartProcessAreaHeight: function(){
var size = this.content.getSize();
if (this.startProcessAreaNode){
var topSize = this.startProcessCloseNode.getSize();
var y = size.y-topSize.y-80;
var x = size.x - 110;
var areay = size.y-60;
var areax = size.x-90;
this.startProcessScrollNode.setStyle("height", ""+y+"px");
this.startProcessScrollNode.setStyle("width", ""+x+"px");
this.startProcessAreaNode.setStyle("height", ""+areay+"px");
this.startProcessAreaNode.setStyle("width", ""+areax+"px");
}
},
loadTitleTextNode: function(){
this.taskTitleTextNode = new Element("div", {
"styles": this.css.taskTitleTextNode,
"text": this.lp.title
}).inject(this.taskTitleBar);
},
loadSearchNode: function(){
this.searchBarAreaNode = new Element("div", {
"styles": this.css.searchBarAreaNode
}).inject(this.taskTitleBar);
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);
this.createTabLeft();
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.createTabRight();
this.createShadowNode();
this.getWorkCounts();
},
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.name);
}.bind(this));
},
createTaskList: function(){
if (!this.contentNode) this.loadContent();
this.taskList = new MWF.xApplication.process.TaskCenter.TaskList(this.contentListAreaNode, this);
},
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();
},
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", "none");
},
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.ReadedList(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");
},
showTab: function(idx){
this.tabs.each(function(node, i){
if (i==idx){
node.setStyles(this.css.tabItemNode_current);
}else{
node.setStyles(this.css.tabItemNode);
}
}.bind(this));
this.tabShadows.each(function(node, i){
if (i==idx){
node.setStyles(this.css.tabShadowItemNode_current);
}else{
node.setStyles(this.css.tabShadowItemNode);
}
}.bind(this));
},
createTabLeft: function(){
var tab = new Element("div", {
"styles": this.css.tabItemLeftNode,
}).inject(this.tabAreaNode);
},
createTabRight: function(){
var tab = new Element("div", {
"styles": this.css.tabItemRightNode,
}).inject(this.tabAreaNode);
var box = new Element("div", {
"styles": this.css.tabItemRightBoxNode,
}).inject(tab);
},
createTabItem: 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,
}).inject(tabItem);
var tabIcon = new Element("div", {
"styles": this.css.tabItemIconNode,
}).inject(tabContent);
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(tabContent);
this[countKey+"CountNode"] = new Element("div", {
"styles": this.css.tabItemCountNode
}).inject(tabContent);
tab.addEvent("click", function(){action();}.bind(this));
this.tabs.push(tab);
},
createShadowNode: function(){
this.tabShadowNode = new Element("div", {
"styles": this.css.tabShadowNode,
}).inject(this.content);
this.createShadowLeftRightNode();
this.createShadowItemNode();
this.createShadowLeftRightNode();
},
createShadowLeftRightNode: function(){
new Element("div", {
"styles": this.css.tabShadowLeftRightNode,
}).inject(this.tabShadowNode);
},
createShadowItemNode: function(){
for (var i=0; i<5; i++){
this.tabShadows.push(new Element("div", {
"styles": this.css.tabShadowItemNode,
}).inject(this.tabShadowNode));
}
},
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 tabSize1 = this.tabAreaNode.getSize();
var tabSize2 = this.tabShadowNode.getSize();
var y = size.y-titleSize.y-tabSize1.y-tabSize2.y-1;
this.contentNode.setStyle("height", ""+y+"px");
var x = 10;
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");
},
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;
}
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 "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;
}
}
}
});
MWF.xApplication.process.TaskCenter.Application = new Class({
initialize: function(data, app, container){
this.bgColors = ["#30afdc", "#e9573e", "#8dc153", "#9d4a9c", "#ab8465", "#959801", "#434343", "#ffb400", "#9e7698", "#00a489"];
this.data = data;
this.app = app;
this.container = container;
this.css = this.app.css;
this.load();
},
load: function(){
this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container);
this.topNode = new Element("div", {"styles": this.css.applicationTopNode}).inject(this.node);
// this.topNode.setStyle("background-color", this.bgColors[(Math.random()*10).toInt()]);
this.iconNode = new Element("div", {"styles": this.css.applicationIconNode}).inject(this.topNode);
if (this.data.icon){
this.iconNode.setStyle("background-image", "url(data:image/png;base64,"+this.data.icon+")");
}else{
this.iconNode.setStyle("background-image", "url("+"/x_component_process_ApplicationExplorer/$Main/default/icon/application.png)")
}
this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.topNode);
this.textNode.set("text", this.data.name);
this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.node);
this.loadChild();
},
loadChild: function(){
this.app.action.listProcess(function(json){
if (json.data.length){
json.data.each(function(process){
new MWF.xApplication.process.TaskCenter.Process(process, this, this.childNode);
}.bind(this));
}else{
this.node.setStyle("display", "none");
}
}.bind(this), null, this.data.id)
}
});
MWF.xApplication.process.TaskCenter.Process = new Class({
initialize: function(data, application, container){
this.data = data;
this.application = application;
this.app = this.application.app;
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);
this.textNode = new Element("div", {"styles": this.css.processTextNode}).inject(this.node);
this.textNode.set({
"text": this.data.name,
"title": this.data.name+"-"+this.data.description
});
var _self = this;
this.node.addEvents({
"mouseover": function(e){this.node.setStyles(this.css.startProcessNode_over);}.bind(this),
"mouseout": function(e){this.node.setStyles(this.css.startProcessNode_out);}.bind(this),
"click": function(e){
this.startProcess(e);
}.bind(this)
});
},
startProcess: function(e){
this.app.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));
},
afterStartProcess: 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){
var options = {"workId": currentTask[0]};
this.app.desktop.openApplication(null, "process.Work", options);
this.createStartWorkResault(workInfors, title, processName, false);
}else{
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){
content += "
"+this.app.lp.nextActivity+""+infor.activity+", "+this.app.lp.nextUser+""+infor.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")};
_self.app.desktop.openApplication(e, "process.Work", options);nbyc
});
}
});
MWF.xApplication.process.TaskCenter.List = new Class({
initialize: function(container, app, filterData){
this.container = $(container);
this.app = app;
this.css = this.app.css;
this.currentPageData = [];
this.nextPageData = [];
this.prevPageData = [];
this.initData();
this.filterData = null;
if (filterData) this.filterData = filterData;
this.load();
},
initData: function(){
this.count = 0;
this.isCountShow = false;
this.currentPage = 1;
this.pageCount = 20;
this.pages = 0;
this.items = [];
this.isItemsLoaded = false;
this.isItemLoadding = false;
this.loadItemQueue = 0;
this.filterApplication = "";
this.currentFilterNode = null;
this.filterListNode = null;
},
load: function(){
this.mask = new MWF.widget.Mask({"style": "desktop"});
this.mask.loadNode(this.app.content);
this.contentNode = new Element("div", {"styles": this.css.listContentNode}).inject(this.container);
this.createActionBarNode();
this.createListAreaNode();
this.resetListAreaHeight();
this.app.addEvent("resize", this.resetListAreaHeight.bind(this));
this.setAppContentSize();
// this.listItemNext();
},
refresh: function(){
this.mask = new MWF.widget.Mask({"style": "desktop"});
this.mask.loadNode(this.app.content);
this.initData();
this.filterData = null;
this.applicationFilterAreaNode.empty();
this.createAppFilterNodes();
this.listAreaNode.empty();
this.resetListAreaHeight();
this.app.getWorkCounts();
},
refilter: function(){
this.mask = new MWF.widget.Mask({"style": "desktop"});
this.mask.loadNode(this.app.content);
this.initData();
this.applicationFilterAreaNode.empty();
this.createAppFilterNodes();
this.listAreaNode.empty();
this.resetListAreaHeight();
},
listItemNext: function(count){
debugger;
if (!this.isItemsLoaded){
if (!this.isItemLoadding){
this.isItemLoadding = true;
this._getCurrentPageData(function(json){
debugger;
this.count = json.count;
if (!this.isCountShow){
this.currentFilterNode.getFirst("span").set("text", "("+this.count+")");
this.isCountShow = true;
}
if (json.count<=this.items.length){
this.isItemsLoaded = true;
}
json.data.each(function(task){
this.items.push(this._createItem(task));
}.bind(this));
this.isItemLoadding = false;
if (this.loadItemQueue>0){
this.loadItemQueue--;
this.listItemNext();
}
this.mask.hide();
}.bind(this), count);
}else{
this.loadItemQueue++;
}
}
},
createActionBarNode: function(){
this.actionBarNode = new Element("div", {"styles": this.css.actionBarNode}).inject(this.contentNode);
this.isFilterOpen = false;
this.filterActionNode = new Element("div", {
"styles": this.css.filterActionNode,
"text": this.app.lp.filter
}).inject(this.actionBarNode);
this.filterActionNode.addEvents({
"click": function (e){this.showOrHideFilter();e.stopPropagation();}.bind(this)
});
this.applicationFilterAreaNode = new Element("div", {"styles": this.css.applicationFilterAreaNode}).inject(this.actionBarNode);
this.createAppFilterNodes();
},
showOrHideFilter: function(){
if (!this.isFilterOpen){
if (!this.filterAreaMorph || !this.filterAreaMorph.isRunning()) this.showFilter();
}else{
if (this.filterAreaMorph || !this.filterAreaMorph.isRunning()) this.hideFilter();
}
},
showFilter: function(){
this.filterActionNode.setStyles(this.css.filterActionNode_check);
if (!this.filterAreaNode) this.createFilterAreaNode();
this.filterAreaTipNode.setStyle("display", "block");
this.filterAreaNode.setStyle("display", "block");
this.resizeFilterAreaNode();
var toStyle = {
"width": "460px",
"height": "500px"
}
this.isFilterOpen = true;
this.filterAreaMorph.start(toStyle).chain(function(){
this.createFilterAreaTitle();
this.createFilterAreaContent();
this.hideFilterFun = this.hideFilter.bind(this);
$(document.body).addEvent("click", this.hideFilterFun);
}.bind(this));
},
hideFilter: function(){
if (this.filterAreaNode){
var toStyle = {
"width": "460px",
"height": "0px"
}
this.filterAreaNode.empty();
this.isFilterOpen = false;
this.filterAreaMorph.start(toStyle).chain(function(){
this.filterAreaNode.eliminate("input");
this.filterAreaNode.setStyle("display", "none");
this.filterAreaTipNode.setStyle("display", "none");
this.filterActionNode.setStyles(this.css.filterActionNode);
}.bind(this));
$(document.body).removeEvent("click", this.hideFilterFun);
}
},
createFilterAreaContent: function(){
var contentScrollNode = new Element("div", {"styles": this.css.applicationFilterAreaContentScrollNode}).inject(this.filterAreaNode);
var contentNode = new Element("div", {"styles": {"overflow": "hidden"}}).inject(contentScrollNode);
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(contentScrollNode, {
"style":"xApp_filter", "where": "after", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}
});
}.bind(this));
var _self = this;
this.app.getAction(function(){
this._getFilterCount(function(json){
var obj = json.data;
Object.each(obj, function(v, key){
var categoryNode = new Element("div", {"styles": this.css.applicationFilterCategoryNode}).inject(contentNode);
categoryNode.set("text", this.app.lp[key]);
var itemAreaNode = new Element("div", {"styles": this.css.applicationFilterItemAreaNode}).inject(contentNode);
// for (var x=0; x<10; x++){
v.each(function(item){
var itemNode = new Element("div", {"styles": this.css.applicationFilterItemNode}).inject(itemAreaNode);
//itemNode.set("text", item.name+"("+item.count+")");
itemNode.set("text", item.name);
itemNode.store("value", item.value);
itemNode.store("textname", item.name);
itemNode.store("key", key);
itemNode.addEvent("click", function(){
if (this.hasClass("applicationFilterItemNode_over")){
_self.unSelectedFilterItem(this);
}else{
_self.selectedFilterItem(this);
}
});
if (this.filterData){
if (this.filterData[key]){
if (item.value == this.filterData[key].value){
this.selectedFilterItem(itemNode);
}
}
}
}.bind(this));
// }
}.bind(this));
}.bind(this));
}.bind(this));
},
_getFilterCount: function(callback){
this.app.action.listTaskCompletedFilterCount(function(json){
if (callback) callback(json);
});
},
unSelectedFilterItem: function(item){
if (item.hasClass("applicationFilterItemNode_over")){
var value = item.retrieve("value");
var name = item.retrieve("textname");
var key = item.retrieve("key");
item.setStyles(this.css.applicationFilterItemNode);
item.removeClass("applicationFilterItemNode_over");
item.addClass("applicationFilterItemNode");
if (!this.filterData) this.filterData = {};
this.filterData[key] = null;
delete this.filterData[key];
item.getParent().eliminate("current");
}
},
selectedFilterItem: function(item){
if (!item.hasClass("applicationFilterItemNode_over")){
var current = item.getParent().retrieve("current");
if (current) this.unSelectedFilterItem(current);
var value = item.retrieve("value");
var key = item.retrieve("key");
var name = item.retrieve("textname");
item.setStyles(this.css.applicationFilterItemNode_over);
item.removeClass("applicationFilterItemNode");
item.addClass("applicationFilterItemNode_over");
if (!this.filterData) this.filterData = {};
this.filterData[key] = {"value": value, "name": name};
item.getParent().store("current", item);
}
},
createFilterAreaTitle: function(){
var titleNode = new Element("div", {"styles": this.app.css.filterAreaTitleNode}).inject(this.filterAreaNode);
var okNode = new Element("div", {"styles": this.app.css.filterAreaTitleActionOkNode, "text": this.app.lp.ok}).inject(titleNode);
var clearNode = new Element("div", {"styles": this.app.css.filterAreaTitleActionClearNode, "text": this.app.lp.clear}).inject(titleNode);
clearNode.addEvent("click", function(){
this.filterAreaNode.getElements(".filterItem").each(function(el){
this.unSelectedFilterItem(el);
}.bind(this));
var input = this.filterAreaNode.retrieve("input");
input.set("value", "");
this.filterData = null;
this.hideFilter();
this.refilter();
}.bind(this));
okNode.addEvent("click", function(){
var input = this.filterAreaNode.retrieve("input");
if (!this.filterData) this.filterData = {};
var key = input.get("value");
if (key && key!=this.app.lp.searchKey){
this.filterData.key = key;
}else{
this.filterData.key = "";
delete this.filterData.key
}
this.hideFilter();
this.refilter();
}.bind(this));
var searchNode = new Element("div", {"styles": this.app.css.filterAreaTitleSearchNode}).inject(titleNode);
var searchIconNode = new Element("div", {"styles": this.app.css.filterAreaTitleSearchIconNode}).inject(searchNode);
var searchInputAreaNode = new Element("div", {"styles": this.app.css.filterAreaTitleSearchInputAreaNode}).inject(searchNode);
var searchInputNode = new Element("input", {"styles": this.app.css.filterAreaTitleSearchInputNode, "value": this.app.lp.searchKey}).inject(searchInputAreaNode);
if (this.filterData){
if (this.filterData.key) searchInputNode.set("value", this.filterData.key);
}
this.filterAreaNode.store("input", searchInputNode);
var key = this.app.lp.searchKey;
searchInputNode.addEvents({
"blur": function(){if (!this.get("value")) this.set("value", key)},
"focus": function(){if (this.get("value")==key) this.set("value", "")}
});
},
createFilterAreaNode: function(){
this.filterAreaNode = new Element("div", {"styles": this.app.css.filterAreaNode}).inject(this.container);
this.filterAreaNode.addEvent("click", function(e){e.stopPropagation();});
this.filterAreaTipNode = new Element("div", {"styles": this.app.css.filterAreaTipNode}).inject(this.container);
//var size = this.filterActionNode.getSize();
this.filterAreaNode.setStyles({
"width": "460px",
"height": "0px"
});
this.filterAreaNode.position({
relativeTo: this.actionBarNode,
position: 'bottomRight',
edge: 'upperRight',
offset: {x:0, y: -2}
});
this.filterAreaTipNode.position({
relativeTo: this.filterAreaNode,
position: 'topRight',
edge: 'bottomRight',
offset: {x:-26, y: 1}
});
this.app.addEvent("resize", function(){
this.resizeFilterAreaNode();
}.bind(this));
this.filterAreaMorph = new Fx.Morph(this.filterAreaNode, {
duration: '100',
transition: Fx.Transitions.Sine.easeInOut
});
},
resizeFilterAreaNode: function(){
if (this.filterAreaNode){
this.filterAreaNode.position({
relativeTo: this.actionBarNode,
position: 'bottomRight',
edge: 'upperRight',
offset: {x:0, y: -2}
});
if (this.filterAreaTipNode){
this.filterAreaTipNode.position({
relativeTo: this.filterAreaNode,
position: 'topRight',
edge: 'bottomRight',
offset: {x:-26, y: 1}
});
}
}
},
createAppFilterNodes: function(){
var allApp = {"name": this.app.lp.all, "application": "", "count": 0};
this.allAppFilterNode = this.createAppFilterNode(allApp, "appFilterNode_current");
this.currentFilterNode = this.allAppFilterNode;
this._getApplicationCount(function(json){
json.data.each(function(app){
this.createAppFilterNode(app);
}.bind(this));
}.bind(this));
},
createAppFilterNode: function(app, style){
style = style || "appFilterNode";
var node = new Element("div", {"styles": this.app.css[style]}).inject(this.applicationFilterAreaNode);
var text = (app.count) ? app.name+"("+app.count+")" : app.name+""
node.set({"html": text, "id": app.value});
var _self = this;
node.addEvent("click", function(e){
_self.filterByApplication(this);
});
return node;
},
filterByApplication: function(node){
var id = node.get("id");
if (!id){
this.refresh();
}else{
if (this.currentFilterNode) this.currentFilterNode.setStyles(this.app.css.appFilterNode);
this.initData();
this.filterApplication = id;
this.listAreaNode.empty();
this.resetListAreaHeight();
this.currentFilterNode = node;
this.currentFilterNode.setStyles(this.app.css.appFilterNode_current);
}
},
createListAreaNode: function(){
this.listScrollAreaNode = new Element("div", {"styles": this.css.listScrollAreaNode}).inject(this.contentNode);
this.listAreaNode = new Element("div", {"styles": this.css.listAreaNode}).inject(this.listScrollAreaNode);
var _self = this;
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(this.listScrollAreaNode, {
"style":"xApp_TaskList", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true},
"onScroll": function(y){
var scrollSize = _self.listScrollAreaNode.getScrollSize();
var clientSize = _self.listScrollAreaNode.getSize();
var scrollHeight = scrollSize.y-clientSize.y;
if (y+200>scrollHeight) {
if (!_self.isElementLoaded) _self.listItemNext();
}
}
});
}.bind(this));
},
setAppContentSize: function(){
var size = this.app.contentNode.getSize();
var x = this.container.getSize().x+size.x;
this.container.setStyle("width", ""+x+"px");
},
resetListAreaHeight: function(){
var contentSize = this.app.contentNode.getSize();
this.contentNode.setStyle("width", ""+contentSize.x+"px");
var size = this.contentNode.getSize();
var barSize = this.actionBarNode.getSize();
var y = size.y - barSize.y;
this.listScrollAreaNode.setStyle("height", ""+y+"px");
if (this.listAreaNode){
var count = (size.x/402).toInt();
var x = 402 * count;
var m = (size.x-x)/2;
this.listAreaNode.setStyles({
"width": ""+x+"px",
"margin-left": ""+m+"px"
});
if (this.actionBarNode) this.actionBarNode.setStyles({
"width": ""+x+"px",
"margin-left": ""+m+"px"
});
var hCount = (y/102).toInt()+1;
this.pageCount = count*hCount;
if (this.items.length1) ? 1 : n);
if (height<5) height = 5;
var mTop = size.y - height;
this.expireIconNode = new Element("div", {
"styles": {"height": ""+height+"px", "margin-top": ""+mTop+"px"}
}).inject(this.timeIconNode);
var color = "#00FF00";
var text = this.list.app.lp.expire1;
text = text.replace(/{time}/g, this.data.expireTime);
if (n<0.6){
}else if(n<0.8){
color = "yellow";
}else if (n<1){
text = this.list.app.lp.expire2;
text = text.replace(/{time}/g, this.data.expireTime);
color = "orange";
}else if (n<2){
color = "red";
text = this.list.app.lp.expire3;
text = text.replace(/{time}/g, this.data.expireTime);
}else{
color = "red";
text = this.list.app.lp.expire3;
text = text.replace(/{time}/g, this.data.expireTime);
}
this.expireIconNode.setStyle("background", color);
this.expireIconNode.set("title", text);
//this.expireIconNode.setStyle("background", "linear-gradient(to top, "+beginColor+", "+middleColor+" "+middlePercent+", "+endColor+")");
}
//this.data.expireTime
},
setEvent: function(){
this.node.addEvents({
"mouseover": function(){this.showAction();}.bind(this),
"mouseout": function(){this.hideAction();}.bind(this)
});
if (this.editNode){
this.editNode.addEvent("click", function(e){
this.editTask();
}.bind(this));
}
if (this.closeNode){
this.closeNode.addEvent("click", function(e){
this.closeEditTask();
}.bind(this));
}
if (this.titleTextNode){
this.titleTextNode.addEvent("click", function(e){
this.openTask(e);
}.bind(this));
}
},
showAction: function(){
// if (this.editNode) this.editNode.fade("in");
// if (this.closeNode) this.closeNode.fade("in");
},
hideAction: function(){
// if (this.editNode) this.editNode.fade("out");
// if (this.closeNode) this.closeNode.fade("out");
},
openTask: function(e){
// this._getJobByTask(function(data){
var options = {"workId": this.data.work};
this.list.app.desktop.openApplication(e, "process.Work", options);
// }.bind(this));
},
closeEditTask: function(callback){
this.closeNode.setStyle("display", "none");
this.flowInforLeftNode.destroy();
this.flowInforRightNode.destroy();
this.flowInforContentNode.destroy();
this.flowInforScrollNode.destroy();
this.flowInforNode.destroy();
this.processNode.destroy();
this.flowInforScrollFx = null;
this.flowInforLeftNode = null;
this.flowInforRightNode = null;
this.flowInforScrollNode = null;
this.flowInforContentNode = null;
delete this.flowInforScrollFx;
delete this.flowInforLeftNode;
delete this.flowInforRightNode;
delete this.flowInforScrollNode;
delete this.flowInforContentNode;
delete this.flowInforNode;
delete this.processNode;
var p = this.nodeClone.getPosition(this.nodeClone.getOffsetParent());
this.list.css.itemNode_edit_from.top = ""+ p.y+"px";
this.list.css.itemNode_edit_from.left = ""+ p.x+"px";
var morph = new Fx.Morph(this.node, {
"duration": 200,
"transition": Fx.Transitions.Expo.easeIn,
"onComplete": function(){
this.nodeClone.destroy();
this.list.app.content.unmask();
this.node.setStyles(this.list.css.itemNode);
this.node.setStyle("opacity", 1);
this.list.app.removeEvent("resize", this.resizeEditNodeFun);
this.editNode.setStyle("display", "block");
if (callback) callback();
}.bind(this)
});
morph.start(this.list.css.itemNode_edit_from);
},
editTask: function(){
this.list.app.content.mask({
"destroyOnHide": true,
"id": "mask_"+this.data.id,
"style": this.list.css.maskNode
});
this._getJobByTask(function(data){
this.nodeClone = this.node.clone(false);
this.nodeClone.inject(this.node, "after");
this.node.setStyles(this.list.css.itemNode_edit_from);
this.node.position({
relativeTo: this.nodeClone,
position: "topleft",
edge: "topleft"
});
this.showEditNode(data);
}.bind(this));
},
setEditTaskNodes: function(data){
this.flowInforNode = new Element("div", {"styles": this.list.css.flowInforNode}).inject(this.node);
this.processNode = new Element("div", {"styles": this.list.css.processNode}).inject(this.node);
this.setFlowInfor(data);
this.setProcessor();
},
setFlowChart: function(data){
var idx = 0;
data.workLogList.each(function(worklog){
if (!worklog.taskCompletedList) worklog.taskCompletedList = [];
if (!worklog.taskList) worklog.taskList = [];
if (worklog.taskCompletedList.length || worklog.taskList.length){
this.createFlowInforWorklogNode(worklog.fromActivityName, worklog.taskCompletedList, worklog.taskList || [], idx, worklog.fromActivityToken == data.task.activityToken);
idx++;
}
}.bind(this));
return idx;
},
setFlowInfor: function(data){
this.flowInforLeftNode = new Element("div", {"styles": this.list.css.flowInforLeftNode}).inject(this.flowInforNode);
this.flowInforRightNode = new Element("div", {"styles": this.list.css.flowInforRightNode}).inject(this.flowInforNode);
this.flowInforScrollNode = new Element("div", {"styles": this.list.css.flowInforScrollNode}).inject(this.flowInforNode);
this.flowInforContentNode = new Element("div", {"styles": this.list.css.flowInforContentNode}).inject(this.flowInforScrollNode);
var idx = this.setFlowChart(data);
var x = (idx*40)+((idx-1)*16);
this.flowInforContentNode.setStyle("width", ""+x+"px");
this.setFlowInforScroll();
},
toFlowInforLeft: function(){
var size = this.flowInforScrollNode.getSize();
var scrollSize = this.flowInforScrollNode.getScrollSize();
var scroll = this.flowInforScrollNode.getScroll();
if (scroll.x>0){
var scrollX = scroll.x-size.x;
if (scrollX<0) scrollX = 0;
if (scrollX>0){
// this.flowInforLeftNode.setStyle("background-image", "url("+"/x_component_process_TaskCenter/$Main/default/processor/left.png)");
}else{
this.flowInforLeftNode.setStyle("background-image", "");
}
if (scrollX+size.xscrollSize.x) scrollX = scrollSize.x;
if (scrollX>0){
this.flowInforLeftNode.setStyle("background-image", "url("+"/x_component_process_TaskCenter/$Main/default/processor/left.png)");
}else{
//this.flowInforLeftNode.setStyle("background-image", "");
}
if (scrollX+size.xsize.x){
if (!this.flowInforScrollFx) this.flowInforScrollFx = new Fx.Scroll(this.flowInforScrollNode, {"wheelStops": false});
this.flowInforScrollFx.toRight();
this.flowInforLeftNode.setStyle("background-image", "url("+"/x_component_process_TaskCenter/$Main/default/processor/left.png)");
this.flowInforLeftNode.addEvent("click", function(){this.toFlowInforLeft();}.bind(this));
this.flowInforRightNode.addEvent("click", function(){this.toFlowInforRight();}.bind(this));
}
},
createFlowInforWorklogNode: function(activityName, taskCompleteList, taskList, idx, isCurrent){
if (idx!=0) var logLineNode = new Element("div", {"styles": this.list.css.logLineNode}).inject(this.flowInforContentNode);
var logActivityNode = new Element("div", {"styles": this.list.css.logActivityNode}).inject(this.flowInforContentNode);
var logActivityIconNode = new Element("div", {"styles": this.list.css.logActivityIconNode}).inject(logActivityNode);
var logActivityTextNode = new Element("div", {"styles": this.list.css.logActivityTextNode, "text": activityName}).inject(logActivityNode);
var iconName = "user";
var iconSuffix = "";
if ((taskCompleteList.length+taskList.length)>1) iconName = "users";
if (isCurrent) iconSuffix = "_red";
var inforNode = new Element("div", {"styles": this.list.css.logInforNode});
taskCompleteList.each(function(route){
var routeNode = new Element("div", {"styles": this.list.css.logRouteNode}).inject(inforNode);
routeNode.set("text", route.person+": ");
var opinionNode = new Element("div", {"styles": this.list.css.logOpinionNode}).inject(inforNode);
if (!route.opinion) route.opinion = "";
opinionNode.set("text", "["+route.routeName+"] "+route.opinion);
var timeNode = new Element("div", {"styles": this.list.css.logTimeNode}).inject(inforNode);
timeNode.set("text", route.completedTime);
if (this.list.app.desktop.session.user.name == route.person) if (!iconSuffix) iconSuffix = "_yellow";
}.bind(this));
taskList.each(function(task){
var taskTextNode = new Element("div", {"styles": this.list.css.taskTextNode}).inject(inforNode);
taskTextNode.set("text", task.person+" "+this.list.app.lp.processing);
}.bind(this));
var icon = "url("+"/x_component_process_TaskCenter/$Main/default/processor/"+iconName+iconSuffix+".png)";
logActivityIconNode.setStyle("background-image", icon);
if (taskList.length){
var countNode = new Element("div", {"styles": this.list.css.logTaskCountNode}).inject(logActivityNode);
var text = (taskList.length>99) ? "99+" : taskList.length;
countNode.set("text", text);
}
new mBox.Tooltip({
content: inforNode,
setStyles: {content: {padding: 10, lineHeight: 20}},
attach: logActivityNode,
transition: 'flyin',
offset: {
x: this.list.app.contentNode.getScroll().x,
y: this.list.listScrollAreaNode.getScroll().y
}
});
},
setProcessor: function(){
var _self = this;
MWF.xDesktop.requireApp("process.Work", "Processor", function(){
new MWF.xApplication.process.Work.Processor(this.processNode, this.data, {
"style": "task",
"onCancel": function(){
_self.closeEditTask();
delete this;
},
"onSubmit": function(routeName, opinion){
_self.submitTask(routeName, opinion, this);
delete this;
}
})
}.bind(this));
},
addMessage: function(data){
var content = "";
if (data.length){
data.each(function(work){
var users = [];
work.taskList.each(function(task){
users.push(task.person+"("+task.department+")");
}.bind(this));
content += ""+this.list.app.lp.nextActivity+""+work.fromActivityName+", "+this.list.app.lp.nextUser+""+users.join(", ")+"
"
}.bind(this));
}else{
content += this.list.app.lp.workCompleted;
}
//
//
//data.taskList.each(function(list){
// content += ""+this.list.app.lp.nextActivity+""+list.activityName+", "+this.list.app.lp.nextUser+""+list.personList.join(", ")+"
"
//}.bind(this));
var msg = {
"subject": this.list.app.lp.taskProcessed,
"content": ""+this.list.app.lp.taskProcessedMessage+"“"+this.data.title+"”
"+content
};
layout.desktop.message.addTooltip(msg);
layout.desktop.message.addMessage(msg);
},
submitTask: function(routeName, opinion, processor){
if (!opinion) opinion = routeName;
this.data.routeName = routeName;
this.data.opinion = opinion;
this.list.app.action.processTask(function(json){
// this.list.app.notice(this.list.app.lp.taskProcessed, "success");
processor.destroy();
this.closeEditTask(function(){
this.node.destroy();
this.list.refresh();
this.addMessage(json.data);
delete this;
}.bind(this));
}.bind(this), null, this.data.id, this.data);
},
resizeEditNode: function(){
var p = this.getEditNodePosition();
var size = this.list.app.content.getSize();
var maskNode = this.list.app.window.node.getElement("#mask_"+this.data.id);
if (maskNode) maskNode.setStyles({"width": ""+size.x+"px", "height": ""+size.y+"px"});
this.node.setStyles({"top": ""+ p.y+"px", "left": ""+ p.x +"px"});
},
getEditNodePosition: function(){
var size = this.list.app.content.getSize();
var top = size.y/2-160;
var left = size.x/2-300;
if (top<0) top = 0;
return {"x": left, "y": top};
},
showEditNode: function(data, callback){
var p = this.getEditNodePosition();
this.list.css.itemNode_edit.top = ""+ p.y+"px";
this.list.css.itemNode_edit.left = ""+ p.x+"px";
this.editNode.setStyle("display", "none");
var morph = new Fx.Morph(this.node, {
"duration": 200,
"transition": Fx.Transitions.Expo.easeOut,
"onComplete": function(){
this.resizeEditNodeFun = this.resizeEditNode.bind(this);
this.list.app.addEvent("resize", this.resizeEditNodeFun);
this.setEditTaskNodes(data);
this.closeNode.setStyle("display", "block");
if (callback) callback();
}.bind(this)
});
morph.start(this.list.css.itemNode_edit);
},
_getJobByTask: function(callback){
this.list.app.action.getSimpleJobByTask(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
},
setContent: function(){
this.titleActionNode = new Element("div", {"styles": this.list.css.titleActionNode}).inject(this.titleNode);
this.titleTextNode = new Element("div", {"styles": this.list.css.titleTextNode, "title": this.data.title}).inject(this.titleNode);
this.titleTextNode.set("html", "["+this.data.processName+"]"+this.data.title);
//var processNode = new Element("div", {"styles": this.list.css.itemInforProcessNode,"text": this.data.processName}).inject(this.inforNode);
var timeNode = new Element("div", {"styles": this.list.css.itemInforTimeNode, "text": this.data.startTime}).inject(this.inforNode);
var activityNode = new Element("div", {"styles": this.list.css.itemInforActivityNode, "text": this.data.activityName, "title": this.data.activityName}).inject(this.inforNode);
this.loadActions();
this.loadApplicationIcon();
// this.setTimeIconNode();
},
loadActions: function(){
if (this.data.allowRapid){
this.editNode = new Element("div", {"styles": this.list.css.titleActionEditNode}).inject(this.titleActionNode);
this.closeNode = new Element("div", {"styles": this.list.css.titleActionCloseNode}).inject(this.titleActionNode);
}
},
loadApplicationIcon: function(){
this.getApplicationIcon(function(icon){
if (icon){
this.applicationIconNode.setStyle("background-image", "url(data:image/png;base64,"+icon+")");
}else{
this.applicationIconNode.setStyle("background-image", "url("+"/x_component_process_ApplicationExplorer/$Main/default/icon/application.png)")
}
}.bind(this));
},
getApplicationIcon: function(callback){
var icon = this.list.app.appIcons[this.data.application];
if (!icon) {
this.list.app.action.getApplicationIcon(function (json) {
if (json.data){
this.list.app.appIcons[this.data.application] = json.data.icon;
if (callback) callback(json.data.icon);
}else{
this.invalidItem = true;
if (callback) callback("iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEgElEQVR4Xu1aPXMTSRB9vUaGQqs6iCgi4Bfgq7I2lqWrSwgQMQHyPzAJIeguvOT4BxbBxYjgkquTrFiiCvkXYCKKCFMSFEjs9tWsrEKWvTtfuyvXrTbd6ZnuN69fz842IecP5Tx+rAFYMyDnCKxTYBUE4MrWta9UuLu49hWeHlJveJy1P6kzQAT7eWPzPgN1MFeI6FpckMx8DKIeAe2iP3mVNiipADALuvAIQAOgLbtd5SGAVtGfvkgDjMQB+Fz1ngXgPdlO64IimOGAnhe7/d90bePGJwbAuOY9AqMJwu0kHTwzF+MIhKbb6b9IYh1rAATdxxub+yRyPMOHgbbrT3Zt08IKgHGlvIUN7NvnuSlyPISPXbc3EDph9BgDMPplu4KAXiad67pRhFXD4Qelf1/3dG3FeCMARPDEzoHJgmnZMAU7JiBoAyBozw4OVr3zy0AKJlCAHd100ALgpL4frC7nZfzhYdGf7ugIoxYAo5r3Mmu1l4V8hglAu9TpP1C1UwZgXC03QLSvOvFKxzHvut1BS8UHDQC8t6kfclQ8VhnDOHK7/TsqQ5UAGFW9JhGeqUy4PIZu3AR/eG9iChtbcPDY7b5+LltYCkB40nMKb01U/9Kv93D5yVN8++N3fP/nb5kvp97b2IqJRFVwg+kdmSBKARhXt/dAzp9a3gOYBzC30wHBxvaUnwoskANQK7/RLXvLAeiAYGN7dpN46HYGP8dtXiwAJ5cZH3V2X+Tt1b/akSZxTIgKfj7Zl4d1bT0p+pPrcWkQC4Bp6ZMFch4IJjZKGyMpibEAjGpem4D7SgstDdIJSGesri8MvCp1+pGf6vEAVMsfTdR/7qRKYGKsqBRRj454njeHqAal7uB61PzxKVDzWBfx5fEyEOLmtw1+Prfb6UfGGfnCRACjgjEBIanghU9GACT9za8DQpLBh4eimLuCSAYkDYBwRAWEpINfA3BRGKCy+zonRh1xNkqB3IugQHic5zIoABjVyscE+kmHbotjZbQXgpf6QQj8qdQZRP6QXR+F43Y39x9DJkL4v/ocDoWw6g1BONXNIdMEm0sNG9szfjEO3W4/tj9BfiOU9yux2e/vwpFJNbC52LSxDY+/4E+uP71tfSkalsM8X4vP82pc9URnxi1Z/l+I94x3brev1Kki1YAfAOT819jsZGh+R5gVM2R3gMt+KDMgFBbR/uZs9nTLYlbBg3FYDCYVmfAt+qMFQHguEA0SG+iZVIU0gRCqTz4qqTZIzANI47bIFpzMWmQWQQBTe9VMEDsP4rpJf5CIRTsFFncqbJNzqLUyTWAcIuCGLu2tNGCZqieNki3TP0im1Bdq7/qTho7gnbeWFQNOsUG00IBEq2y6hyXGO4Cbqi0wMoATA+DHgWl7j4maSWtDqPIsApd3fciCTjQFzltsdl641ACchrU+iDxH0CoG31u2dE81BaJQn4FRqDNRXRylZMwIVR3UI+Z2MZi20wg6dQaoUDDsNV54TMuYylpxYxLXAFuHsrZfA5A14hdtvTUDLtqOZO1P7hnwH8CljF98DV13AAAAAElFTkSuQmCC");
}
}.bind(this), function(){
this.invalidItem = true;
if (callback) callback("iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEgElEQVR4Xu1aPXMTSRB9vUaGQqs6iCgi4Bfgq7I2lqWrSwgQMQHyPzAJIeguvOT4BxbBxYjgkquTrFiiCvkXYCKKCFMSFEjs9tWsrEKWvTtfuyvXrTbd6ZnuN69fz842IecP5Tx+rAFYMyDnCKxTYBUE4MrWta9UuLu49hWeHlJveJy1P6kzQAT7eWPzPgN1MFeI6FpckMx8DKIeAe2iP3mVNiipADALuvAIQAOgLbtd5SGAVtGfvkgDjMQB+Fz1ngXgPdlO64IimOGAnhe7/d90bePGJwbAuOY9AqMJwu0kHTwzF+MIhKbb6b9IYh1rAATdxxub+yRyPMOHgbbrT3Zt08IKgHGlvIUN7NvnuSlyPISPXbc3EDph9BgDMPplu4KAXiad67pRhFXD4Qelf1/3dG3FeCMARPDEzoHJgmnZMAU7JiBoAyBozw4OVr3zy0AKJlCAHd100ALgpL4frC7nZfzhYdGf7ugIoxYAo5r3Mmu1l4V8hglAu9TpP1C1UwZgXC03QLSvOvFKxzHvut1BS8UHDQC8t6kfclQ8VhnDOHK7/TsqQ5UAGFW9JhGeqUy4PIZu3AR/eG9iChtbcPDY7b5+LltYCkB40nMKb01U/9Kv93D5yVN8++N3fP/nb5kvp97b2IqJRFVwg+kdmSBKARhXt/dAzp9a3gOYBzC30wHBxvaUnwoskANQK7/RLXvLAeiAYGN7dpN46HYGP8dtXiwAJ5cZH3V2X+Tt1b/akSZxTIgKfj7Zl4d1bT0p+pPrcWkQC4Bp6ZMFch4IJjZKGyMpibEAjGpem4D7SgstDdIJSGesri8MvCp1+pGf6vEAVMsfTdR/7qRKYGKsqBRRj454njeHqAal7uB61PzxKVDzWBfx5fEyEOLmtw1+Prfb6UfGGfnCRACjgjEBIanghU9GACT9za8DQpLBh4eimLuCSAYkDYBwRAWEpINfA3BRGKCy+zonRh1xNkqB3IugQHic5zIoABjVyscE+kmHbotjZbQXgpf6QQj8qdQZRP6QXR+F43Y39x9DJkL4v/ocDoWw6g1BONXNIdMEm0sNG9szfjEO3W4/tj9BfiOU9yux2e/vwpFJNbC52LSxDY+/4E+uP71tfSkalsM8X4vP82pc9URnxi1Z/l+I94x3brev1Kki1YAfAOT819jsZGh+R5gVM2R3gMt+KDMgFBbR/uZs9nTLYlbBg3FYDCYVmfAt+qMFQHguEA0SG+iZVIU0gRCqTz4qqTZIzANI47bIFpzMWmQWQQBTe9VMEDsP4rpJf5CIRTsFFncqbJNzqLUyTWAcIuCGLu2tNGCZqieNki3TP0im1Bdq7/qTho7gnbeWFQNOsUG00IBEq2y6hyXGO4Cbqi0wMoATA+DHgWl7j4maSWtDqPIsApd3fciCTjQFzltsdl641ACchrU+iDxH0CoG31u2dE81BaJQn4FRqDNRXRylZMwIVR3UI+Z2MZi20wg6dQaoUDDsNV54TMuYylpxYxLXAFuHsrZfA5A14hdtvTUDLtqOZO1P7hnwH8CljF98DV13AAAAAElFTkSuQmCC");
}.bind(this), this.data.application);
}else{
if (callback) callback(icon);
}
},
setNewIcon: function(){
var start = new Date().parse(this.data.startTime);
var now = new Date();
if (now.getTime()-start.getTime()<86400000){
this.newIconNode.setStyle("background-image", "url("+"/x_component_process_TaskCenter/$Main/default/new.png)");
}
},
setTimeIconNode: function(){
var colors = ["#FF0000", "#00d400", "#f6ff0c"];
var idx = (Math.random()*3).toInt();
var color = colors[idx];
this.timeIconNode.setStyle("background-color", color);
},
//load: function(){
// this.node = this.table.insertRow(this.table.rows.length || 0);
// this.node.setStyles(this.list.css.itemLine);
//
// this.appNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.applicationName}).inject(this.node);
// this.titleNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.title}).inject(this.node);
// this.processNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.processName}).inject(this.node);
// this.activityNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.activityName}).inject(this.node);
// this.dateNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.updateTime}).inject(this.node);
//
//
// //this.titleNode = this.node.insertCell(this.node.cells.length || 0);
// //this.titleNode.setStyles(this.list.css.itemCell);
// //this.titleNode.set("text", this.data.title);
//}
});
MWF.xApplication.process.TaskCenter.TaskList.Item = new Class({
Extends: MWF.xApplication.process.TaskCenter.List.Item
});
MWF.xApplication.process.TaskCenter.TaskCompletedList.Item = new Class({
Extends: MWF.xApplication.process.TaskCenter.List.Item,
loadActions: function(){
this.showTaskCompletedNode = new Element("div", {"styles": this.list.css.titleActionShowNode}).inject(this.titleActionNode);
this.closeTaskCompletedNode = new Element("div", {"styles": this.list.css.titleActionCloseNode}).inject(this.titleActionNode);
},
setEvent: function(){
this.node.addEvents({
"mouseover": function(){this.showAction();}.bind(this),
"mouseout": function(){this.hideAction();}.bind(this)
});
if (this.showTaskCompletedNode){
this.showTaskCompletedNode.addEvent("click", function(e){
this.showTaskCompleted();
}.bind(this));
}
if (this.closeTaskCompletedNode){
this.closeTaskCompletedNode.addEvent("click", function(e){
this.closeTaskCompleted();
}.bind(this));
}
if (this.titleTextNode){
this.titleTextNode.addEvent("click", function(e){
this.showTaskCompleted(e);
}.bind(this));
}
},
setFlowChart: function(data){
var idx = 0;
debugger;
data.workLogTokenList = {};
data.workLogList.each(function(worklog){
data.workLogTokenList[worklog.fromActivityToken] = worklog;
if (!worklog.taskCompletedList) worklog.taskCompletedList = [];
if (!worklog.taskList) worklog.taskList = [];
if (worklog.taskCompletedList.length || worklog.taskList.length){
this.createFlowInforWorklogNode(worklog.fromActivityName, worklog.taskCompletedList, worklog.taskList || [], idx, worklog.fromActivityToken == data.taskCompleted.activityToken);
idx++;
}
}.bind(this));
return idx;
},
showAction: function(){
if (this.showTaskCompletedNode) this.showTaskCompletedNode.fade("in");
},
hideAction: function(){
if (this.showTaskCompletedNode) this.showTaskCompletedNode.fade("out");
},
_getJobByTaskComplete: function(){
this.list.app.action.getSimpleJobByTaskCompleted(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
},
showTaskCompleted: function(){
if (!this.nodeClone){
this.list.app.content.mask({
"destroyOnHide": true,
"id": "mask_"+this.data.id,
"style": this.list.css.maskNode
});
this._getSimpleJobByTaskComplete(function(data){
this.nodeClone = this.node.clone(false);
this.nodeClone.inject(this.node, "after");
this.node.setStyles(this.list.css.itemNode_edit_from);
this.node.position({
relativeTo: this.nodeClone,
position: "topleft",
edge: "topleft"
});
this.showEditTaskCompletedNode(data);
}.bind(this));
}
},
_getSimpleJobByTaskComplete: function(callback){
this.list.app.action.getSimpleJobByTaskCompleted(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
},
showEditTaskCompletedNode: function(data, callback){
var p = this.getEditNodePosition();
this.list.css.itemNode_edit.top = ""+ p.y+"px";
this.list.css.itemNode_edit.left = ""+ p.x+"px";
this.showTaskCompletedNode.setStyle("display", "none");
var morph = new Fx.Morph(this.node, {
"duration": 200,
"transition": Fx.Transitions.Expo.easeOut,
"onComplete": function(){
this.resizeEditNodeFun = this.resizeEditNode.bind(this);
this.list.app.addEvent("resize", this.resizeEditNodeFun);
this.setEditTaskCompleledNodes(data);
this.closeTaskCompletedNode.setStyle("display", "block");
if (callback) callback();
}.bind(this)
});
morph.start(this.list.css.itemNode_edit);
},
setEditTaskCompleledNodes: function(data){
this.flowInforNode = new Element("div", {"styles": this.list.css.flowInforNode}).inject(this.node);
// this.processNode = new Element("div", {"styles": this.list.css.processNode}).inject(this.node);
this.workInforNode = new Element("div", {"styles": this.list.css.workInforNode}).inject(this.node);
// this.myDoneInforNode = new Element("div", {"styles": this.list.css.myDoneInforNode}).inject(this.node);
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(this.workInforNode, {
"style":"xApp_Task_infor", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}
});
}.bind(this));
this.setFlowInfor(data);
this.setWorkInfor(data);
// this.setProcessor();
},
setWorkInfor: function(data){
var lp = this.list.app.lp;
var taskCompletedWorkInforTitleNode = new Element("div", {
"styles": this.list.css.taskCompletedWorkInforTitleNode,
"text": lp.currentFileStatus
}).inject(this.workInforNode);
data.workList.each(function(work){
var log = data.workLogTokenList[work.activityToken];
if (log){
var users = [];
log.taskList.each(function(task){
users.push(task.person+"("+task.department+")");
}.bind(this));
var html = "" +
""+
""+lp.fileat+" "+log.fromTime+" "+lp.flowto+" ["+log.fromActivityName+"] " +
" "+lp.list_owner+": "+users.join(", ")+" | " +
"打开 | " +
"
";
var taskCompletedWorkInforNode = new Element("div", {
"styles": this.list.css.taskCompletedWorkInforNode,
"html": html
}).inject(this.workInforNode);
var table = taskCompletedWorkInforNode.getElement("table");
table
var openNode = taskCompletedWorkInforNode.getElement("div");
if (openNode) {
openNode.setStyles(this.list.css.taskCompletedOpenNode);
var _self = this;
openNode.addEvent("click", function(e){
var id = this.get("id");
_self.openWorkByTaskCompleted(e, id);
});
}
}
}.bind(this));
data.workCompletedList.each(function(work){
// var log = data.workLogTokenList[work.activityToken];
// if (log){
var html = "" +
"| “"+work.title+"”"+lp.fileat+""+work.completedTime+""+lp.completed+" | " +
"打开 | " +
"
";
var taskCompletedWorkInforNode = new Element("div", {
"styles": this.list.css.taskCompletedWorkInforNode,
"html": html
}).inject(this.workInforNode);
var openNode = taskCompletedWorkInforNode.getElement("div");
if (openNode) {
openNode.setStyles(this.list.css.taskCompletedOpenNode);
var _self = this;
openNode.addEvent("click", function(e){
var id = this.get("id");
_self.openWorkCompleteedByTaskCompleted(e, id);
});
}
// }
}.bind(this));
},
openWorkByTaskCompleted: function(e, id){
var options = {"workId": id, "readonly": true};
this.list.app.desktop.openApplication(e, "process.Work", options);
},
openWorkCompleteedByTaskCompleted: function(e, id){
var options = {"workCompletedId": id, "readonly": true};
this.list.app.desktop.openApplication(e, "process.Work", options);
},
closeTaskCompleted: function(callback){
this.closeTaskCompletedNode.setStyle("display", "none");
this.flowInforLeftNode.destroy();
this.flowInforRightNode.destroy();
this.flowInforContentNode.destroy();
this.flowInforScrollNode.destroy();
this.flowInforNode.destroy();
this.workInforNode.destroy();
// this.processNode.destroy();
this.flowInforScrollFx = null;
this.flowInforLeftNode = null;
this.flowInforRightNode = null;
this.flowInforScrollNode = null;
this.flowInforContentNode = null;
this.flowInforNode = null;
this.workInforNode = null;
delete this.flowInforScrollFx;
delete this.flowInforLeftNode;
delete this.flowInforRightNode;
delete this.flowInforScrollNode;
delete this.flowInforContentNode;
delete this.flowInforNode;
delete this.workInforNode;
var p = this.nodeClone.getPosition(this.nodeClone.getOffsetParent());
this.list.css.itemNode_edit_from.top = ""+ p.y+"px";
this.list.css.itemNode_edit_from.left = ""+ p.x+"px";
var morph = new Fx.Morph(this.node, {
"duration": 200,
"transition": Fx.Transitions.Expo.easeIn,
"onComplete": function(){
this.nodeClone.destroy();
this.nodeClone = null;
this.list.app.content.unmask();
this.node.setStyles(this.list.css.itemNode);
this.node.setStyle("opacity", 1);
this.list.app.removeEvent("resize", this.resizeEditNodeFun);
this.showTaskCompletedNode.setStyle("display", "block");
if (callback) callback();
}.bind(this)
});
morph.start(this.list.css.itemNode_edit_from);
},
});
MWF.xApplication.process.TaskCenter.ReadList.Item = new Class({
Extends: MWF.xApplication.process.TaskCenter.TaskCompletedList.Item,
setFlowChart: function(data){
var idx = 0;
data.workLogTokenList = {};
data.workLogList.each(function(worklog){
data.workLogTokenList[worklog.fromActivityToken] = worklog;
if (!worklog.taskCompletedList) worklog.taskCompletedList = [];
if (!worklog.taskList) worklog.taskList = [];
if (worklog.taskCompletedList.length || worklog.taskList.length){
this.createFlowInforWorklogNode(worklog.fromActivityName, worklog.taskCompletedList, worklog.taskList || [], idx, worklog.fromActivityToken == data.read.activityToken);
idx++;
}
}.bind(this));
return idx;
},
_getSimpleJobByTaskComplete: function(callback){
this.list.app.action.getSimpleJobByRead(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
},
//loadActions: function(){
// this.editNode = new Element("div", {"styles": this.list.css.titleActionReadedNode, "title": "设置为已阅"}).inject(this.titleActionNode);
// this.closeNode = new Element("div", {"styles": this.list.css.titleActionCloseNode}).inject(this.titleActionNode);
//},
loadActions: function(){
this.showTaskCompletedNode = new Element("div", {"styles": this.list.css.titleActionReadedNode, "title": "设置为已阅"}).inject(this.titleActionNode);
this.closeTaskCompletedNode = new Element("div", {"styles": this.list.css.titleActionCloseNode}).inject(this.titleActionNode);
},
setEvent: function(){
this.node.addEvents({
"mouseover": function(){this.showAction();}.bind(this),
"mouseout": function(){this.hideAction();}.bind(this)
});
if (this.showTaskCompletedNode){
this.showTaskCompletedNode.addEvent("click", function(e){
this.setReadedClose(e);
}.bind(this));
}
if (this.closeTaskCompletedNode){
this.closeTaskCompletedNode.addEvent("click", function(e){
this.closeTaskCompleted();
}.bind(this));
}
if (this.titleTextNode){
this.titleTextNode.addEvent("click", function(e){
this.showTaskCompleted(e);
}.bind(this));
}
},
setEditTaskCompleledNodes: function(data) {
this.flowInforNode = new Element("div", {"styles": this.list.css.flowInforNode}).inject(this.node);
// this.processNode = new Element("div", {"styles": this.list.css.processNode}).inject(this.node);
this.workInforNode = new Element("div", {"styles": this.list.css.workInforNode}).inject(this.node);
// this.myDoneInforNode = new Element("div", {"styles": this.list.css.myDoneInforNode}).inject(this.node);
MWF.require("MWF.widget.ScrollBar", function () {
new MWF.widget.ScrollBar(this.workInforNode, {
"style": "xApp_Task_infor",
"where": "before",
"distance": 30,
"friction": 4,
"axis": {"x": false, "y": true}
});
}.bind(this));
this.setFlowInfor(data);
this.setWorkInfor(data);
this.setReadedButton();
},
setReadedButton: function(){
this.setReadedAction = Element("div", {"styles": this.list.css.setReadedAction, "text": "设置为已阅"}).inject(this.node);
this.setReadedAction.addEvent("click", function(e){
this.setReaded(e);
}.bind(this));
},
setReadedClose: function(e){
var _self = this;
var text = "您确定要将“"+this.data.title+"”标记为已阅吗?"
this.list.app.confirm("infor", e, "标记已阅确认", text, 350, 130, function(){
debugger;
_self.list.app.action.setReaded(function(){
this.node.destroy();
this.list.refresh();
}.bind(_self), null, _self.data.id, _self.data);
this.close();
}, function(){
this.close();
}, null, this.list.app.content);
},
setReaded: function(e){
var _self = this;
var text = "您确定要将“"+this.data.title+"”标记为已阅吗?"
this.list.app.confirm("infor", e, "标记已阅确认", text, 350, 130, function(){
debugger;
_self.list.app.action.setReaded(function(){
this.closeTaskCompleted(function(){
this.node.destroy();
this.list.refresh();
}.bind(this));
}.bind(_self), null, _self.data.id, _self.data);
this.close();
}, function(){
this.close();
}, null, this.list.app.content);
},
closeTaskCompleted: function(callback){
this.closeTaskCompletedNode.setStyle("display", "none");
this.flowInforLeftNode.destroy();
this.flowInforRightNode.destroy();
this.flowInforContentNode.destroy();
this.flowInforScrollNode.destroy();
this.flowInforNode.destroy();
this.workInforNode.destroy();
this.setReadedAction.destroy();
// this.processNode.destroy();
this.flowInforScrollFx = null;
this.flowInforLeftNode = null;
this.flowInforRightNode = null;
this.flowInforScrollNode = null;
this.flowInforContentNode = null;
this.flowInforNode = null;
this.workInforNode = null;
this.setReadedAction = null;
delete this.flowInforScrollFx;
delete this.flowInforLeftNode;
delete this.flowInforRightNode;
delete this.flowInforScrollNode;
delete this.flowInforContentNode;
delete this.flowInforNode;
delete this.workInforNode;
delete this.setReadedAction;
var p = this.nodeClone.getPosition(this.nodeClone.getOffsetParent());
this.list.css.itemNode_edit_from.top = ""+ p.y+"px";
this.list.css.itemNode_edit_from.left = ""+ p.x+"px";
var morph = new Fx.Morph(this.node, {
"duration": 200,
"transition": Fx.Transitions.Expo.easeIn,
"onComplete": function(){
this.nodeClone.destroy();
this.nodeClone = null;
this.list.app.content.unmask();
this.node.setStyles(this.list.css.itemNode);
this.node.setStyle("opacity", 1);
this.list.app.removeEvent("resize", this.resizeEditNodeFun);
this.showTaskCompletedNode.setStyle("display", "block");
if (callback) callback();
}.bind(this)
});
morph.start(this.list.css.itemNode_edit_from);
}
});
MWF.xApplication.process.TaskCenter.ReadedList.Item = new Class({
Extends: MWF.xApplication.process.TaskCenter.TaskCompletedList.Item,
setFlowChart: function(data){
var idx = 0;
data.workLogTokenList = {};
data.workLogList.each(function(worklog){
data.workLogTokenList[worklog.fromActivityToken] = worklog;
if (!worklog.taskCompletedList) worklog.taskCompletedList = [];
if (!worklog.taskList) worklog.taskList = [];
if (worklog.taskCompletedList.length || worklog.taskList.length){
this.createFlowInforWorklogNode(worklog.fromActivityName, worklog.taskCompletedList, worklog.taskList || [], idx, false);
idx++;
}
}.bind(this));
return idx;
},
_getSimpleJobByTaskComplete: function(callback){
this.list.app.action.getSimpleJobByReaded(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
}
});
MWF.xApplication.process.TaskCenter.ReviewList.Item = new Class({
Extends: MWF.xApplication.process.TaskCenter.TaskCompletedList.Item,
setFlowChart: function(data){
var idx = 0;
data.workLogTokenList = {};
data.workLogList.each(function(worklog){
data.workLogTokenList[worklog.fromActivityToken] = worklog;
if (!worklog.taskCompletedList) worklog.taskCompletedList = [];
if (!worklog.taskList) worklog.taskList = [];
if (worklog.taskCompletedList.length || worklog.taskList.length){
this.createFlowInforWorklogNode(worklog.fromActivityName, worklog.taskCompletedList, worklog.taskList || [], idx, false);
idx++;
}
}.bind(this));
return idx;
},
_getSimpleJobByTaskComplete: function(callback){
this.list.app.action.getSimpleJobByReview(function(json){
if (callback) callback(json.data);
}.bind(this), null, this.data.id);
},
setContent: function(){
this.titleActionNode = new Element("div", {"styles": this.list.css.titleActionNode}).inject(this.titleNode);
this.titleTextNode = new Element("div", {"styles": this.list.css.titleTextNode, "title": this.data.title}).inject(this.titleNode);
this.titleTextNode.set("html", "["+this.data.processName+"]"+this.data.title);
//var processNode = new Element("div", {"styles": this.list.css.itemInforProcessNode,"text": this.data.processName}).inject(this.inforNode);
var timeNode = new Element("div", {"styles": this.list.css.itemInforTimeNode, "text": this.data.startTime}).inject(this.inforNode);
var activityNode = new Element("div", {"styles": this.list.css.itemInforActivityNode, "text": this.data.applicationName, "title": this.data.applicationName}).inject(this.inforNode);
this.loadActions();
this.loadApplicationIcon();
// this.setTimeIconNode();
}
});