如何显示所选评论者的所有属性?

时间:2017-03-02 14:14:38

标签: alfresco alfresco-share alfresco-webscripts

考虑业务流程"审核和批准(一个或多个审核人员) - 将审核任务分配给多个审核人员

当我choose审核者时,我只看到他们的属性cm:userName。如何显示cm:person类型的所有属性?

例如:

cm:userName
cm:firstName
cm:middleName
cm:email
cm:organizationId
cm:jobtitle
cm:googleusername

等等......

而不是此容器(association.ftl的一部分):

...
<div id="${controlId}-currentValueDisplay" class="current-values"></div> 
...

我想用表。恕我直言,我应该覆盖的一些部分 Alfresco.ObjectFinder,例如:

if (this.options.displayMode == "items")
{
   Dom.get(this.id + "-currentValueDisplay").innerHTML = displayValue;
}

...等。但是如何显示所选评论者的所有属性

让我们说,这一部分:

displayValue += 
    this.options.objectRenderer.renderItem(
        item, 
        16, 
        "<div class='itemtype-" + $html(item.type) + 
        "' style='word-wrap: break-word;'>{icon} {name}</div>"
    );

我认为它的属性是name

好的,然后在哪里找到映射"property in object-finder : property in the person type"?..

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

2 个答案:

答案 0 :(得分:2)

要显示公司名称,电子邮件等字段,您需要在repo端修改以下文件。

C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\templates\webscripts\org\alfresco\repository\forms\pickerresults.lib.js

C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\templates\webscripts\org\alfresco\repository\forms\pickerresults.lib.ftl

在pickerresults.lib.js中,我在CreatePersonResult(node)方法中添加了所需的额外属性。

function createPersonResult(node)
{
   var personObject = 
   {
      typeShort: node.typeShort,
      isContainer: false,
      properties: {},
      displayPath: node.displayPath,
      nodeRef: "" + node.nodeRef
   }

   // define properties for person
   personObject.properties.userName = node.properties.userName;
   personObject.properties.name = (node.properties.firstName ? node.properties.firstName + " " : "") + 
      (node.properties.lastName ? node.properties.lastName : "") +
         " (" + node.properties.userName + ")";
   personObject.properties.jobtitle = (node.properties.jobtitle ? node.properties.jobtitle  : "");
   //Add the extra properties here
   personObject.properties.organization =(node.properties.organization ? node.properties.organization  : "");
   personObject.properties.googleusername =(node.properties.googleusername ? node.properties.googleusername  : "");   

   return personObject;
}

在pickerresults.lib.ftl中,我在结果集中添加了额外的属性,下面是"selectable" : ${row.selectable?string}</#if>

"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
"selectable" : ${row.selectable?string}</#if>,
"company": "${row.item.properties.organization!""}",
"googleusername": "${row.item.properties.googleusername!""}",
"jobtitle": "${row.item.properties.jobtitle!""}"

enter image description here

希望这对你有帮助。

答案 1 :(得分:1)

Object-finder.js用于不同类型的对象,如人物,标签等。

item.typecm:person,但它没有人物对象的所有人。请参阅下图。

enter image description here