複数の操作プログレスバーを作成する


18

私は現在Tridion 2011 SP1を使用しており、長時間実行されているプロセスを作成したいと考えています。

プロセスは、完了するまで外部サービスをポーリングすることによって更新を受け取ります。このバーの

例:

enter image description here

だから私は起こるしたいものを:サービス

  1. スタート動作をし、私はポーリングすることができ、トークンを受け取ります。
  2. 複数の操作バーを表示
  3. コードはx ms/sごとにサービスに対してポーリングを行います。
  4. エラーが発生した場合は、複数の操作バーのステータスが更新されるか、エラー が表示されます。
  5. ステータスが完了したときにコールバックを実行して、結果をユーザーに表示させます。

Outbound E-Mailがこの実装をどのように処理しているかを見てきましたが、実際のサンプルを取得できません。

これを実装する最も簡単な方法は何ですか? Outbound E-Mailはそれをモデルとして定義し、モデルファクトリからモデルを返します。これが唯一の方法ですか?

ヘルプ/アドバイスはありますか?

=====更新

はクリス・サマーズの答えを使用して終了し、次のようにそれを実装:

// Create a progress message 
var progress_msg = $messages.registerProgress('Doing something 1/3', 'Really important'); 

// For each Update 
progress_msg.setTitle('Doing something n/3'); 

// When you are done hide the progress 
progress_msg.finish(); 
progress_msg.dispose(); 

// Show Success or Failure (Error)$ messages.registerGoal("Your success"); 
$messages.registerError("Your error"); 
20

PowerTools Example Toolを見てみましょう。ツールのJSはhttp://code.google.com/p/tridion-2011-power-tools/source/browse/trunk/PowerTools.Editor/PowerTools/Client/Example/Example.jsに表示されています - バックグラウンドサービスをポーリングする進行状況バーがあり、PowerTools.Popups.Example.prototype._onExecuteButtonClicked()メソッドを見てください。デフォルトの電源ツールバーではなく、メッセージセンターにこの情報が必要な場合は、代わりにメッセージセンターにメッセージを出力してください。あなたは、次のようなものを使用することができます:アンギラFrameworkはあなたのためにあなたのサービスのためのあなたのJavaScriptプロキシのすべてが生成されますよう

 $messages.registerNotification("Your message");$ messages.registerGoal("Your success"); 
$messages.registerError("Your error"); 

一般モデルを作成するには、これを実現する最も簡単な方法です。

  0

リンクありがとうございます!現在それを見ている。だからあなたが推薦する方法は、アイテムをコピー/ペーストするときとまったく同じですか?上記の方法でログを記録しますか? 20 2月. 132013-02-20 15:03:32

  0

正しい - $ messagesオブジェクトのすべてのメソッドが表示されます。 20 2月. 132013-02-20 18:55:44

  0

私に正しい方法を教えていただきありがとうございます。$ messages.registerProgressで1つの進捗アイテムを作成し、各ポーリング後にタイトルを変更しました。それを閉じて、エラーや成功を示します。 21 2月. 132013-02-21 07:14:02