如何覆盖一些基于ajax的选择器逻辑?

时间:2017-03-02 07:37:25

标签: alfresco alfresco-share alfresco-webscripts

Alfresco Community v5.2(其他版本)还包括页面/share/page/start-workflow上提供的一些预配置工作流程

我对"审核和批准(一个或多个审核人员)感兴趣 - 将审核任务分配给多个审核人员

实际上,更确切地说 - 在分配逻辑中。

例如,我想进行一些自定义 - Customization of the user task screen

我想在表格中显示成员,而不是在列表中。为此,我需要了解它们在列表中的显示方式。

在文件share-config-custom.xml中,我可以找到模板的路径。

例如,对于bpm:workflowDueDate,它将是:

...
<field id="bpm:workflowDueDate" set="info" label-id="workflow.field.due">
  <control template="/org/alfresco/components/form/controls/info.ftl" />
</field>
...

但对于bpm:assignees,未指定模板:

...
<field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee" />
...

我认为,有一些后端bean可以执行大部分逻辑。

如何覆盖一些基于ajax的选择器逻辑?

我将非常感谢这些信息。谢谢大家。

1 个答案:

答案 0 :(得分:2)

如果共享表单配置中未提供表单控件,则Alfresco Share会根据字段类型回退到某些默认值。

bpm:assignee is an association个人节点,所以我希望它默认指向association.ftl

我建议将该文件复制到新文件中,例如src/main/amp/alfresco/site-webscripts/${project.groupId}/form/controls/custom-association.ftl

然后在share-config-custom.xml副本中通过一个小更新来完成任务的表单配置:

...
<field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee" >
  <control template="/${project.groupId}/form/controls/custom-association.ftl" />
</field>
...

然后你可以安全地摆弄custom-association.ftl,因为覆盖露天默认值几乎绝不是一个好主意!

UPDATE:该控件的值是nodeRefs的列表,引用所选用户的节点。 ObjectFinder Java脚本对象正在管理场景背后的事物,调用一个特殊的端点来获取要显示的所有类型的数据,然后相应地操作DOM!您可能需要查看object-finder.jspicker.inc.ftl