答案 0 :(得分:5)
除了zladuric答案,
您可以使用 failureCallback 方法向您显示所需内容。 但是很难在新的工作流表单中搜索failureCallback方法,因为工作流表单如“开始工作流”,“任务编辑”,“任务详细信息”都用于引擎。
例如,在“开始工作流程”表单中,您可以通过在 onBeforeFormRuntimeInit 事件处理程序中添加我们自己的successCallBack
和failureCallBack
strong> start-workflow.js 就像这样。
onBeforeFormRuntimeInit: function StartWorkflow_onBeforeFormRuntimeInit(layer, args)
{
var startWorkflowForm = Dom.get(this.generateId + "-form");
Event.addListener(startWorkflowForm, "submit", this._submitInvoked, this);
args[1].runtime.setAJAXSubmit(true,
{
successCallback:
{
fn: this.onFormSubmitSuccess,
scope: this
},
failureCallback:
{
fn: this.onFormSubmitFailure,
scope: this
}
});
}
onFormSubmitSuccess: function StartWorkflow_onFormSubmitSuccess(response)
{
this.navigateForward(true);
// Show your success message or do something.
}
onFormSubmitFailure: function StartWorkflow_onFormSubmitFailure(response)
{
var msgTitle = this.msg(this.options.failureMessageKey);
var msgBody = this.msg(this.options.failureMessageKey);
// example of showing processing response message
// you can write your own logic
if (response.json && response.json.message)
{
if(response.json.message.indexOf("ConcurrencyFailureException") != -1)
{
msgTitle = this.msg("message.concurrencyFailure");
msgBody = this.msg("message.startedAgain");
}
else
msgBody = response.json.message;
}
Alfresco.util.PopupManager.displayPrompt(
{
title: msgTitle,
text: msgBody
});
}
由于Alfresco.component.StartWorkflow
(在start-workflow.js中)扩展了Alfresco.component.ShareFormManager
(在alfresco.js中)。您可以在start-workflow.js中覆盖onBeforeFormRuntimeInit事件。我希望你帮助你。
答案 1 :(得分:4)
我现在不是在查看代码,但这看起来像是一个常规的YUI对话框。所以它被YUI解雇了。所以这个YUI是客户端,可能在My-tasks dashlet或我的任务页面中。
此外,错误消息看起来像是来自失败的后端消息/服务的status.message。
您可能找到该客户端javascript文件,找到启动任务的方法,并查看其“ failureCallback 处理程序是什么。然后编辑 failureCallback 方法,使其显示与 response.status.message 或其他任何内容不同的内容。也许类似 this.msg(“message.my-custom-error-message”); ,然后您可以自己定制。
答案 2 :(得分:0)
修改YUI对话框脚本也可能会影响其他功能。 如果我们定制启动工作流程。 js,它只能在启动工作流程表中实现。
因此,作为通用解决方案,以下是建议。
当alfresco渲染工作流表单时,它使用activiti-transition.js文件呈现转换按钮。基本上这个按钮除了提交工作流表单外什么也没做。
所以最好的方法是,自定义这个activiti-transition.ftl和activiti-transition.js文件,进行ajax调用并按我们的意愿处理响应。
我刚刚看了一下这个前端错误的显示方式。