目前,出现一个带有失败类名称的消息框:

workflow - 自定义或更改由工作流对话框发出的关于 Alfresco 中错误的默认消息框-LMLPHP

是否可以覆盖 Alfresco 中的默认行为?我们可以使用表单服务来呈现不同的信息吗?

最佳答案

除了 zladuric 的回答,

您可以使用 failureCallback 方法来显示您想要的消息。
但是很难找到新的工作流表单的 failureCallback 方法,因为“开始工作流”、“任务编辑”、“任务详细信息”等工作流表单使用了表单引擎。

例如,在“ Start Workflow ”表单中,可以像这样在 start-workflow.js 中通过编写 onBeforeFormRuntimeInit 事件处理程序来添加我们自己的successCallBackfailureCallBack

 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/

10-10 18:09