目前,出现一个带有失败类名称的消息框:
是否可以覆盖 Alfresco 中的默认行为?我们可以使用表单服务来呈现不同的信息吗?
最佳答案
除了 zladuric 的回答,
您可以使用 failureCallback 方法来显示您想要的消息。
但是很难找到新的工作流表单的 failureCallback 方法,因为“开始工作流”、“任务编辑”、“任务详细信息”等工作流表单使用了表单引擎。
例如,在“ Start Workflow ”表单中,可以像这样在 start-workflow.js 中通过编写 onBeforeFormRuntimeInit 事件处理程序来添加我们自己的successCallBack
和failureCallBack
。
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 事件。我希望这对你有帮助。关于workflow - 自定义或更改由工作流对话框发出的关于 Alfresco 中错误的默认消息框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14469231/