4

現在、失敗したクラス名を含むメッセージ ボックスが表示されます。

ここに画像の説明を入力

Alfresco でデフォルトの動作をオーバーライドすることは可能ですか? フォーム サービスを使用して別のメッセージを表示できますか?

4

3 に答える 3

5

zladuric の回答に加えて、

failureCallbackメソッドを使用して、必要なメッセージを表示できます。しかし、「ワークフロー開始」、「タスク編集」、「タスク詳細」などのワークフローフォームはフォームエンジンを利用しているため、ワークフローフォームのfailureCallbackメソッドで新しいものを探すのは大変です。

たとえば、「Start Workflow 」フォームでは、 onBeforeFormRuntimeInitイベント ハンドラを次のようにstart-workflow.jsに記述すること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.ShareFormManageralfresco.js で)。start-workflow.js で onBeforeFormRuntimeInit イベントをオーバーライドできます。これがあなたの助けになることを願っています。

于 2013-01-25T03:49:17.727 に答える
4

今はコードを見ていませんが、これは通常の YUI ダイアログのように見えます。だから、YUI によって解雇されます。したがって、この YUI はクライアント側であり、おそらくマイタスク ダッシュレットまたはマイ タスク ページにあります。

さらに、エラー メッセージは、失敗したバックエンド メッセージ/サービスからの status.message のように見えます。

おそらく、そのクライアント側の JavaScript ファイルを見つけて、タスクを開始するメソッドを見つけ、その「failureCallbackハンドラ」が何であるかを確認できます。次に、そのfailureCallbackメソッドを編集して、 response.status.messageなどとは異なるものを表示するようにします。おそらくthis.msg("message.my-custom-error-message"); のようなものです。その後、独自にカスタマイズします。

于 2013-01-23T22:31:56.533 に答える