<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE hierarchy-config PUBLIC "-//Appian Corporation//DTD Hierarchy Configuration //EN" "/com/appiancorp/asi/components/hierarchy/internal/hierarchy-config.dtd">

<hierarchy-config>
  <dynamic-node-builders>
    <builder name="GroupBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="GroupAndPageBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="build-pages" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="GroupsOfSameTypeBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="same-group-type" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="GroupsOfSameTypeAndPageBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="build-pages" value="true"/>
      <config-param name="same-group-type" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="GroupPagesBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="build-pages" value="true"/>
      <config-param name="build-groups" value="false"/>
      <config-param name="same-group-type" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="RootGroupsAndPagesBuilder" type="com.appiancorp.ag.group.hierarchy.GroupTypeBuilder">
      <config-param name="build-pages" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="RootGroupsOfSameTypeAndPagesBuilder" type="com.appiancorp.ag.group.hierarchy.GroupTypeBuilder">
      <config-param name="build-pages" value="true"/>
      <config-param name="same-group-type" value="true"/>
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="RootGroupsBuilder" type="com.appiancorp.ag.group.hierarchy.GroupTypeBuilder">
      <config-param name="check-children" value="true"/>
    </builder>
    <builder name="RootGroupsOfSameTypeBuilder" type="com.appiancorp.ag.group.hierarchy.GroupTypeBuilder">
      <config-param name="check-children" value="true"/>
      <config-param name="build-pages" value="false"/>
      <config-param name="same-group-type" value="true"/>
    </builder>
    <builder name="AdminRootGroupsOfSameTypeBuilder" type="com.appiancorp.ag.group.hierarchy.GroupTypeBuilder">
      <config-param name="check-children" value="true"/>
      <config-param name="build-pages" value="false"/>
      <config-param name="same-group-type" value="true"/>
      <config-param name="only-admin-groups" value="true"/>
    </builder>

    <builder name="TeamBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="check-children" value="true"/>
      <config-param name="group-types" value="Teams"/>
    </builder>

    <builder name="TeamDepartmentBuilder" type="com.appiancorp.ag.group.hierarchy.GroupBuilder">
      <config-param name="check-children" value="true"/>
      <config-param name="group-types" value="Teams,Departments"/>
    </builder>

  </dynamic-node-builders>

  <dynamic-node-types>
    <node-type name="group_with_image">
      <class type="com.appiancorp.suiteapi.personalization.Group">
        <name>
          <token name="expr" value="{groupName}"/>
        </name>
      </class>
      <icon alt="Group">/components/toolbar/img/group.gif</icon>  
    </node-type>
    <node-type name="group">
      <class type="com.appiancorp.suiteapi.personalization.Group">
        <name>
          <token name="expr" value="{groupName}"/>
        </name>
      </class>
      <icon alt="Group">/components/toolbar/img/group.gif</icon>  
    </node-type>
    <node-type name="group_type">
      <class type="com.appiancorp.suiteapi.personalization.GroupType">
        <name>
          <token name="expr" value="{groupTypeName}"/>
        </name>
      </class>
    </node-type>
    <node-type name="group_team">
      <class type="com.appiancorp.suiteapi.personalization.Group">
        <name>
          <token name="jsp" value="/personalization/team_display.jsp"/>
          <token name="expr" value="{groupName}"/>
        </name>
      </class>
    </node-type>
  </dynamic-node-types>
  
  <menu-type name="groups" type="dynamic">
    <node name="group" builder="GroupBuilder" />
  </menu-type>
  <menu-type name="groups_img" type="dynamic">
    <node name="group_with_image" builder="GroupBuilder" href="/personalization/getgroupmemberssecurity.do" paramId="gid" target="fProcess" />
    <node name="group_type" builder="RootGroupsBuilder" />
  </menu-type>
  <menu-type name="groups_and_pages" type="dynamic">
    <node name="group" builder="GroupAndPageBuilder" href="/personalization/grouppage.bg" target="fProcess" paramId="groupid"/>
    <node name="page" href="/portal.do" paramId="$p" />
  </menu-type>
  <menu-type name="navigation_groups_and_pages" type="dynamic">
    <node name="group_team" builder="GroupAndPageBuilder" href="/personalization/grouppage.bg" target="fProcess" paramId="groupid"/>
    <node name="page" href="/portal.do" paramId="$p" />
    <node name="group_type" builder="RootGroupsAndPagesBuilder"/>
  </menu-type>
  <menu-type name="navigation_groups_and_pages_same_group_type" type="dynamic">
    <node name="group" builder="GroupsOfSameTypeAndPageBuilder" href="/personalization/grouppage.bg" target="fProcess" paramId="groupid"/>
    <node name="page" href="/portal.do" paramId="$p" />
    <node name="group_type" builder="RootGroupsOfSameTypeAndPagesBuilder"/>
  </menu-type>
  <menu-type name="navigation_groups" type="dynamic">
    <node name="group_team" builder="GroupBuilder" href="/personalization/grouppage.bg" target="fProcess" paramId="groupid"/>
    <node name="group_type" builder="RootGroupsBuilder"/>
  </menu-type>
</hierarchy-config>
