提交 6f270ee5 编写于 作者: NoSubject's avatar NoSubject

Merge branch 'fix/bug_5.2' into 'release'

草稿模式下,启动流程错误修复、保存、继续流转优化

See merge request o2oa/o2oa!1710
......@@ -1224,15 +1224,31 @@ MWF.xScript.CMSEnvironment = function(ev){
"identity": identity,
"latest": latest,
"onStarted": function(data, title, processName){
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
if (data.work){
var work = data.work;
var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}else{
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}
// var currentTask = [];
// data.each(function(work){
// if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
// }.bind(this));
//
// if (currentTask.length==1){
// var options = {"workId": currentTask[0], "appId": currentTask[0]};
// layout.desktop.openApplication(null, "process.Work", options);
// }else{}
if (callback) callback(data);
}.bind(this)
......
......@@ -1350,15 +1350,21 @@ debugger;
"identity": identity,
"latest": latest,
"onStarted": function(data, title, processName){
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
if (data.work){
var work = data.work;
var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}else{
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}
if (callback) callback(data);
}.bind(this)
......
......@@ -1178,15 +1178,31 @@ MWF.xScript.PageEnvironment = function (ev) {
"identity": identity,
"latest": latest,
"onStarted": function (data, title, processName) {
var currentTask = [];
data.each(function (work) {
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length == 1) {
var options = { "workId": currentTask[0], "appId": currentTask[0] };
if (data.work){
var work = data.work;
var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
layout.desktop.openApplication(null, "process.Work", options);
} else { }
}else{
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}
// var currentTask = [];
// data.each(function (work) {
// if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
// }.bind(this));
//
// if (currentTask.length == 1) {
// var options = { "workId": currentTask[0], "appId": currentTask[0] };
// layout.desktop.openApplication(null, "process.Work", options);
// } else { }
if (callback) callback(data);
}.bind(this)
......
......@@ -1066,15 +1066,31 @@ MWF.xScript.ViewEnvironment = function (ev) {
"identity": identity,
"latest": latest,
"onStarted": function (data, title, processName) {
var currentTask = [];
data.each(function (work) {
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length == 1) {
var options = { "workId": currentTask[0], "appId": currentTask[0] };
if (data.work){
var work = data.work;
var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
layout.desktop.openApplication(null, "process.Work", options);
} else { }
}else{
var currentTask = [];
data.each(function(work){
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length==1){
var options = {"workId": currentTask[0], "appId": currentTask[0]};
layout.desktop.openApplication(null, "process.Work", options);
}else{}
}
// var currentTask = [];
// data.each(function (work) {
// if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
// }.bind(this));
//
// if (currentTask.length == 1) {
// var options = { "workId": currentTask[0], "appId": currentTask[0] };
// layout.desktop.openApplication(null, "process.Work", options);
// } else { }
if (callback) callback(data);
}.bind(this)
......
......@@ -1063,8 +1063,6 @@ MWF.xApplication.process.TaskCenter.Process = new Class({
afterStartProcess: function(data, title, processName){
this.recordProcessData();
//if (data[0].startMode==="draft"){
debugger;
if (data.work){
this.startProcessDraft(data, title, processName);
}else{
......
......@@ -606,6 +606,12 @@ MWF.xApplication.process.Work.Main = new Class({
layout.appForm = this.appForm;
window.webkit.messageHandlers.appFormLoaded.postMessage(JSON.stringify(this.appForm.mobileTools));
}
debugger;
if (this.options.action=="processTask"){
this.appForm.processWork();
this.options.action = "";
}
this.fireEvent("postLoadForm");
......
......@@ -1519,7 +1519,7 @@ MWF.xApplication.process.Xform.Documenteditor = MWF.APPDocumenteditor = new Cla
}
}
if (this.json.canDoublePage!=="n" && !layout.mobile){
//if (this.json.canDoublePage!=="n" && !layout.mobile){
this.doublePageAction = new Element("div", {"styles": this.css.doc_toolbar_doublePage, "text": MWF.xApplication.process.Xform.LP.doublePage}).inject(this.toolbarNode);
this.doublePageAction.addEvent("click", function(){
if (this.options.pageShow!=="double"){
......@@ -1530,8 +1530,8 @@ MWF.xApplication.process.Xform.Documenteditor = MWF.APPDocumenteditor = new Cla
//this._singlePage();
}
}.bind(this));
//if (layout.mobile) this.doublePageAction.hide();
}
if (this.json.canDoublePage!=="n" && !layout.mobile) this.doublePageAction.hide();
//}
......
......@@ -1235,11 +1235,11 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
}
},
saveFormData: function (callback, failure, history, data, issubmit) {
saveFormData: function (callback, failure, history, data, issubmit, isstart) {
if (this.businessData.work.startTime) {
this.saveFormDataInstance(callback, failure, history, data, issubmit);
} else {
this.saveFormDataDraft(callback, failure, history, data, issubmit);
this.saveFormDataDraft(callback, failure, history, data, issubmit, isstart);
}
},
saveFormDataInstance: function (callback, failure, history, data, issubmit) {
......@@ -1258,7 +1258,7 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
this.businessData.originalData = null;
this.businessData.originalData = Object.clone(data);
},
saveFormDataDraft: function (callback, failure, history, data, issubmit) {
saveFormDataDraft: function (callback, failure, history, data, issubmit, isstart) {
if (this.officeList) {
this.officeList.each(function (module) {
module.save(history);
......@@ -1274,17 +1274,27 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
this.workAction.getDraft(json.data.id, function (json) {
this.businessData.work = json.data.work;
this.app.options.draftId = json.data.work.id;
this.app.options.desktopReload = true;
this.app.appId = "process.Work" + json.data.work.id;
if (layout.desktop.apps) {
delete layout.desktop.apps[this.app.options.appId];
} else {
layout.desktop.apps = {};
if (layout.app && layout.app.inBrowser){
if (layout.app) layout.app.$openWithSelf = true;
if (callback) callback();
if (!isstart) layout.desktop.openApplication(null, "process.Work", {"draftId": this.app.options.draftId});
}else{
this.app.options.desktopReload = true;
this.app.appId = "process.Work" + json.data.work.id;
if (layout.desktop.apps) {
delete layout.desktop.apps[this.app.options.appId];
} else {
layout.desktop.apps = {};
}
layout.desktop.apps[this.app.appId] = this.app;
if (callback) callback();
if (!isstart) this.app.reload();
}
layout.desktop.apps[this.app.appId] = this.app;
if (callback) callback();
}.bind(this));
}.bind(this), failure);
this.businessData.originalData = null;
......@@ -1840,20 +1850,26 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
this.saveFormData(function () {
this.workAction.startDraft(this.businessData.work.id, function (json) {
this.app.options.workId = json.data[0].work;
if (layout.mobile) {
if (layout.mobile || !layout.desktop.message) {
if (layout.notice) {
layout.notice(MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject));
}
} else {
var msg = {
"subject": MWF.xApplication.process.Xform.LP.processStarted,
"content": "<div>" + MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject) + "”</div>"
};
var tooltip = layout.desktop.message.addTooltip(msg);
var item = layout.desktop.message.addMessage(msg);
if (layout.desktop.message){
var msg = {
"subject": MWF.xApplication.process.Xform.LP.processStarted,
"content": "<div>" + MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject) + "”</div>"
};
var tooltip = layout.desktop.message.addTooltip(msg);
var item = layout.desktop.message.addMessage(msg);
}
}
if (layout.app && layout.app.inBrowser){
if (layout.app) layout.app.$openWithSelf = true;
layout.desktop.openApplication(null, "process.Work", {"workId": this.app.options.workId, "action": "processTask"});
}
this.app.options.action = "processTask";
this.app.reload();
//this.app.notice(MWF.xApplication.process.Xform.LP.dataSaved, "success");
......@@ -1892,7 +1908,7 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
// }.bind(this), "failure": function(){}}, json.data[0].work);
}.bind(this));
}.bind(this), null, false, null, false)
}.bind(this), null, false, null, false, true)
},
getCurrentTaskData: function (data) {
if ((data.currentTaskIndex || data.currentTaskIndex === 0) && data.currentTaskIndex != -1) {
......
......@@ -225,14 +225,24 @@ o2.xDesktop.requireApp = function (module, clazz, callback, async) {
var par = "app=" + encodeURIComponent(appNames) + "&status=" + encodeURIComponent((statusObj) ? JSON.encode(statusObj) : "") + "&option=" + encodeURIComponent((options) ? JSON.encode(options) : "");
switch (appNames) {
case "process.Work":
var url = "../x_desktop/work.html";
if (options.workId) {
url += "?workid=" + options.workId;
//window.location = o2.filterUrl("../x_desktop/workmobilewithaction.html?workid=" + options.workId + ((layout.debugger) ? "&debugger" : "") + "&redirectlink=" + redirectlink);
} else if (options.workCompletedId) {
url += "?workcompletedid=" + options.workCompletedId;
//window.location = o2.filterUrl("../x_desktop/workmobilewithaction.html?workcompletedid=" + options.workCompletedId + ((layout.debugger) ? "&debugger" : "") + "&redirectlink=" + redirectlink);
var url = "../x_desktop/work.html".toURI();
if (options.draft){
url = "../x_desktop/app.html?" + par;
}else{
url = url.setData(options).toString();
}
// if (options.workId) {
// url += "?workid=" + options.workId+"&"+par;
// //window.location = o2.filterUrl("../x_desktop/workmobilewithaction.html?workid=" + options.workId + ((layout.debugger) ? "&debugger" : "") + "&redirectlink=" + redirectlink);
// } else if (options.workCompletedId) {
// url += "?workcompletedid=" + options.workCompletedId+"&"+par;;
// //window.location = o2.filterUrl("../x_desktop/workmobilewithaction.html?workcompletedid=" + options.workCompletedId + ((layout.debugger) ? "&debugger" : "") + "&redirectlink=" + redirectlink);
// } else if (options.draftId){
// url += "?draftId=" + options.draftId+"&"+par;;
// } else if (options.draft) {
// url = "../x_desktop/app.html?" + par;
// }
var job = (options.jobid || options.jobId || options.job);
if (job) url += ((url.indexOf("?")!=-1) ? "&" : "?") + "jobid="+job;
url +=((layout.debugger) ? "&debugger" : "");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册