現在、失敗したクラス名を含むメッセージ ボックスが表示されます。
Alfresco でデフォルトの動作をオーバーライドすることは可能ですか? フォーム サービスを使用して別のメッセージを表示できますか?
現在、失敗したクラス名を含むメッセージ ボックスが表示されます。
Alfresco でデフォルトの動作をオーバーライドすることは可能ですか? フォーム サービスを使用して別のメッセージを表示できますか?
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.ShareFormManager
alfresco.js で)。start-workflow.js で onBeforeFormRuntimeInit イベントをオーバーライドできます。これがあなたの助けになることを願っています。
今はコードを見ていませんが、これは通常の YUI ダイアログのように見えます。だから、YUI によって解雇されます。したがって、この YUI はクライアント側であり、おそらくマイタスク ダッシュレットまたはマイ タスク ページにあります。
さらに、エラー メッセージは、失敗したバックエンド メッセージ/サービスからの status.message のように見えます。
おそらく、そのクライアント側の JavaScript ファイルを見つけて、タスクを開始するメソッドを見つけ、その「failureCallbackハンドラ」が何であるかを確認できます。次に、そのfailureCallbackメソッドを編集して、 response.status.messageなどとは異なるものを表示するようにします。おそらくthis.msg("message.my-custom-error-message"); のようなものです。その後、独自にカスタマイズします。