2012-09-19 36 views

回答

4

你想触发弹出窗口?我可以在这里看到两件你可能试图完成的事情,每一件都有很多不同的实现。

如果您想在工作流的某个特定任务的任务编辑页面中创建一个弹出窗口,您可以使用javascript添加一个控件来产生该窗口(我猜你已经知道工作流设计的基础知识,如果不是,杰夫波茨的教程很棒 - >http://ecmarchitect.com/images/articles/alfresco-workflow/advanced-workflow-article-2ed.pdf)。为此,请在tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/form/controls中创建一个文件,例如:tomcat/shared/classes/alfresco/web-extension/site -webscripts /组织/露天/组件/形式/控制/ myWorkflowPopup.ftl。 使用包括javascript在内的freemarker语法设置文件,以便在喜欢的事件中创建一个弹出窗口 - 我不确定您的帖子是否需要弹出式浏览器窗口,小javascript警报或YUI对话框,但你可以做任何这些。同样,我不知道你是如何触发这个的 - 从一个按钮,当某个人在表单字段中选择“批准”时,无论如何。一旦您设置了控件,就可以将其添加到工作流程任务中。 要添加控件,请编辑tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml;找到以下元素,并添加一个字段元素如图所示([这样的值]应通过适当的值从您的设置替换):

<config evaluator="task-type" condition="[workflowNS]:[someTask]"> 
    <forms> 
     <form> 
      <field-visibility> 
       ... 
      </field-visibility> 
      <appearance> 
       ... 
       <field id="[workflowNS]:[someField]"> 
        <control template="/org/alfresco/components/form/controls/[myWorkflowPopup].ftl" /> 
       </field> 
      </appearance> 
     </form> 
    </forms> 
</config> 

如果您需要在您的弹出使用它,值[ workflowNS]:[someField]将作为field.value在模板中提供给您。这些步骤有点高,但我甚至不知道这是否是您正在寻找的解决方案,所以如果您需要,我可以提供更多详细信息。

另一种可能性是您正在查找由工作流触发的弹出式窗口,但似乎与任何工作流用户界面无关。在这种情况下,我们分成另外两种可能性-

a)当工作流程完成或达到x状态时,您希望在用户桌面上显示弹出窗口。我会用java通知区域应用程序来做到这一点。我实际上考虑过以前这样做,并选择使用电子邮件,而当我意识到需要多少工作时。祝你好运,如果你决定尝试这个 - 你是一个比我懒惰的人。

b)你希望有一个弹出窗口出现在浏览器中(也可能是另一个浏览器窗口,yui对话框或jscript/vbscript alert/msgbox)。这可以通过AJAX完成。如果是我,我会在每个用户主文件夹中保留一个xml文件。我将其设置为对用户查看权限过高,但使用工作流定义中的run-as选项以admin用户身份运行脚本任务以更新这些文件。例如,您可能有财务审批工作流程,需要在提出新请求时通知财务部门的每个人。脚本任务将循环通过财务组,选择每个用户,并将一个元素附加到其用户主目录中的xml文件。

对于弹出式逻辑,我会在share-config-custom.xml中添加一个javascript依赖项,以便每个页面都可以包含外部脚本文件。在该脚本文件中,每隔x秒使用setInterval来GET一个uri(x的正确值取决于您自己决定 - 通过功能来平衡性能/带宽使用情况)。

在被脚本击中的uri中,设置一个repo webscript将数据从当前用户的用户主目录xml文件中提取出来。在每个元素上使用属性来保持消息的查看状态。当webscript运行时,它应该返回任何未查看的消息(可能通过json)并将其设置为查看。

再次 - 非常高水平的指导,仍然期望你的工作很多,但如果你有问题发回你想要完成的这些(如果有的话),我可能会帮助你更多详情。

+0

哇,非常感谢你的答案,并把这么多的细节。对此,我真的非常感激!我试图在点击一个按钮时弹出一个新的HTML窗口,所以我将按照你的指示的前半部分。因为很难找到许多好的Alfresco资源来处理某些细节,如果你不介意我问一个侧面问题,你知道如何自定义数据表项的突出显示方式吗?它基于此:http://stackoverflow.com/questions/12410185/how-to-change-highlighted-items-color-in-alfresco-share-form/12422066#12422066。 –

+0

(我用我的问题跑出了上面的空间),但对于另一个问题,我发现编辑skin.css更改了所有的数据表,并且我只是希望能够突出显示在Items/packageItems中使用的数据表中的第一项流程。 –

+0

嗨,我的Alfresco安装现在实际上已经停止迁移,所以我很难检查这一点。我猜你只需要使用更具体的CSS选择器。你能告诉我你正在使用的CSS选择器和它给你的结果吗?以及一些你想要达到什么的进一步解释? –