创建多个操作进度条


18

我目前使用Tridion 2011 SP1,并且想要创建一个长时间运行的进程。

该进程通过轮询外部服务来接收更新,直到完成。这家酒吧的

例子:

enter image description here

所以我想什么情况发生:

  1. 开始操作的服务,并获得令牌,我可以轮询。
  2. 显示多个操作栏
  3. 该代码会针对每x毫秒/秒的服务进行轮询。
  4. 然后更新多个操作栏上的状态或显示错误 (如果遇到错误)。
  5. 当收到完成状态后,执行我的回调让我向用户显示结果。

我已经看过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()方法。如果您想在信息中心(如图中所示)而不是默认powertool栏中显示此信息,则只需将您的信息输出到信息中心。您可以使用类似以下内容:

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

一般创建模型是实现这一目标的最简单的方法,因为安圭拉框架会为您服务,为您的所有的JavaScript代理。

  0

感谢您的链接!目前在看。因此,您推荐的方法与复制/粘贴项目时发生的方法完全相同?它使用上述方法记录日志? 20 2月. 132013-02-20 15:03:32

  0

正确 - 如果您使用Firefox,您将看到$ messages对象上的所有方法 20 2月. 132013-02-20 18:55:44

  0

感谢您指点正确的方式,最终创建了一个带有$ messages.registerProgress的进度项并在每次轮询后更改其标题。然后关闭它并显示错误或成功。 21 2月. 132013-02-21 07:14:02