Создание панели операций с несколькими операциями


18

В настоящее время я использую Tridion 2011 SP1 и хотел бы создать длительный процесс.

Процесс получает обновление путем опроса внешней службы до ее завершения.

Пример этого бара:

enter image description here

Так что я хотел бы случиться:

  1. начать операцию по службе и получить маркер, который я могу опрашивать.
  2. Показать несколько операций bar
  3. Код выполняет опрос против службы каждые x мс/с.
  4. Состояние на панели нескольких операций затем обновляется или отображается ошибка , если возникла ошибка.
  5. Когда статус получен как выполнен, выполните мой обратный вызов, чтобы показать результаты для пользователя.

Я ознакомился с тем, как Outbound E-Mail обрабатывает эту реализацию, но я не могу получить рабочий образец.

Что было бы самым простым способом для меня реализовать это? Я вижу, что Outbound E-Mail определяет его как модель, а затем возвращает модель из Factory Factory. Это единственный способ?

Любая помощь/совет?

===== Обновление

Закончился используя ответ Криса Саммерса и реализовал его следующим образом:

// 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(). Если вы хотите эту информацию в центре сообщений (как показано на рисунке), а не по умолчанию, то просто отправьте свое сообщение в центр сообщений. Вы можете использовать что-то вроде следующего:

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

Обычно создание модели является самым простым способом для достижения этой цели, как Anguilla Framework будет генерировать все ваши прокси JavaScript для ваших услуг для Вас.

  0

Спасибо за ссылку! В настоящее время смотрю на это. Таким образом, метод, который вы рекомендуете, точно такой же, как при копировании/вставке элементов? Он регистрируется с использованием методов, упомянутых выше? 20 фев. 132013-02-20 15:03:32

  0

Правильно. Если вы используете firefox, вы увидите все методы в объекте $ messages. 20 фев. 132013-02-20 18:55:44

  0

Спасибо, что указали мне правильный путь, и создали единый элемент прогресса с $ messages.registerProgress и изменили название его после каждого опроса. А затем закрываем его и показываем ошибку или успех. 21 фев. 132013-02-21 07:14:02