<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.forms.layouts.webapp.base.override">

  <require>org.nuxeo.ecm.platform.forms.layouts.webapp.base</require>

  <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">

    <layout name="gridUserLayout">
      <templates>
        <template mode="any">
          /layouts/layout_grid_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>userPanelTop</widget>
        </row>
        <row>
          <widget>userPanelLeft</widget>
          <widget>userPanelRight</widget>
        </row>
        <row>
          <widget>userPanelBottom</widget>
        </row>
      </rows>
    </layout>

    <layout name="user">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>firstname</widget>
        </row>
        <row>
          <widget>lastname</widget>
        </row>
        <row>
          <widget>company</widget>
        </row>
        <row>
          <widget>email</widget>
        </row>
        <row>
          <widget>groups</widget>
        </row>
        <row>
          <widget>groupsValidator</widget>
        </row>
        <row>
          <widget>vgroups</widget>
        </row>
        <row>
          <widget>passwordMatcher</widget>
        </row>
        <row>
          <widget>userAdditionalWidgets</widget>
        </row>
      </rows>
      <widget name="username" type="text">
        <labels>
          <label mode="any">username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">username</field>
        </fields>
        <widgetModes>
          <mode value="create">edit</mode>
          <mode value="editPassword">********</mode>
          <mode value="any">view</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="styleClass">dataInputText</property>
          <property name="validator">
            #{userManagementActions.validateUserName}
          </property>
        </properties>
      </widget>
      <widget name="firstname" type="text">
        <labels>
          <label mode="any">firstName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">firstName</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="lastname" type="text">
        <labels>
          <label mode="any">lastName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">lastName</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="company" type="text">
        <labels>
          <label mode="any">company</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">company</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="email" type="text">
        <labels>
          <label mode="any">email</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">email</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="groups" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.userManager.userGroups</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">groups</field>
        </fields>
        <widgetModes>
          <mode value="edit">
            #{nxu:test(webActions.checkFilter('usersGroupsManagementAccess'),
            'edit', 'view')}
          </mode>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="any">
          <property name="hideVirtualGroups">true</property>
          <property name="userSuggestionSearchType">GROUP_TYPE</property>
        </properties>
      </widget>

      <widget name="groupsValidator" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <translated>true</translated>
        <widgetModes>
          <mode value="create">edit</mode>
          <mode value="editPassword">********</mode>
          <mode value="view">hidden</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <!-- XXX: depends on firstPassword and secondPassword widget names -->
          <property name="template">
            /widgets/user_groups_validation_widget_template.xhtml
          </property>
        </properties>
      </widget>

      <widget name="vgroups" type="userVirtualGroups">
        <labels>
          <label mode="any">label.userManager.userVirtualGroups</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">username</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
          <mode value="editPassword">********</mode>
        </widgetModes>
      </widget>
       <widget name="passwordMatcher" type="template">
        <labels>
          <label mode="create">label.immediateCreation</label>
          <label mode="any"/>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="user">password</field>
        </fields>
        <widgetModes>
          <mode value="create">edit</mode>
          <mode value="editPassword">********</mode>
          <mode value="any">hidden</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="styleClass">dataInputText</property>
          <property name="template">
            /widgets/user_password_widget_template.xhtml
          </property>
        </properties>
        <properties widgetMode="editPassword">********<property name="required">true</property>
          <property name="styleClass">dataInputText</property>
          <property name="template">
            /widgets/user_password_validation_widget_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="profile_password">********<templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>profilePasswordMatcher</widget>
        </row>
      </rows>
      <widget name="profilePasswordMatcher" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <fields>
          <field schema="user">password</field>
        </fields>
        <widgetModes>
          <mode value="editProfilePassword">********</mode>
          <mode value="any">hidden</mode>
        </widgetModes>
        <properties widgetMode="editProfilePassword">********<property name="required">true</property>
          <property name="styleClass">dataInputText</property>
          <property name="template">
            /widgets/user_profile_password_validation_widget_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="user_registration">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>firstname</widget>
        </row>
        <row>
          <widget>lastname</widget>
        </row>
        <row>
          <widget>company</widget>
        </row>
        <row>
          <widget>email</widget>
        </row>
        <row>
          <widget>groups</widget>
        </row>
        <row>
          <widget>groupsValidator</widget>
        </row>
        <row>
          <widget>vgroups</widget>
        </row>
      </rows>
      <widget name="username" type="text">
        <labels>
          <label mode="any">username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">login</field>
        </fields>
        <widgetModes>
          <mode value="create">edit</mode>
          <mode value="editPassword">********</mode>
          <mode value="any">view</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="styleClass">dataInputText</property>
          <property name="validator">
            #{userManagementActions.validateUserName}
          </property>
        </properties>
      </widget>
      <widget name="firstname" type="text">
        <labels>
          <label mode="any">firstName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">firstName</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="lastname" type="text">
        <labels>
          <label mode="any">lastName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">lastName</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="company" type="text">
        <labels>
          <label mode="any">company</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">company</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="email" type="text">
        <labels>
          <label mode="any">email</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">email</field>
        </fields>
        <widgetModes>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="styleClass">dataInputText</property>
        </properties>
      </widget>
      <widget name="groups" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.userManager.userGroups</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">groups</field>
        </fields>
        <widgetModes>
          <mode value="edit">
            #{nxu:test(webActions.checkFilter('usersGroupsManagementAccess'),
            'edit', 'view')}
          </mode>
          <mode value="editPassword">********</mode>
        </widgetModes>
        <properties widgetMode="any">
          <property name="hideVirtualGroups">true</property>
          <property name="userSuggestionSearchType">GROUP_TYPE</property>
        </properties>
      </widget>
      <widget name="groupsValidator" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <translated>true</translated>
        <widgetModes>
          <mode value="create">edit</mode>
          <mode value="editPassword">********</mode>
          <mode value="view">hidden</mode>
        </widgetModes>
        <properties widgetMode="edit">
          <!-- XXX: depends on firstPassword and secondPassword widget names -->
          <property name="template">
            /widgets/user_groups_validation_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="vgroups" type="userVirtualGroups">
        <labels>
          <label mode="any">label.userManager.userVirtualGroups</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field schema="userinfo">login</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
          <mode value="editPassword">********</mode>
        </widgetModes>
      </widget>
    </layout>

    <layout name="group">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>group_name</widget>
        </row>
        <row>
          <widget>group_label</widget>
        </row>
        <row>
          <widget>group_members</widget>
        </row>
        <row>
          <widget>group_subgroups</widget>
        </row>
      </rows>
    </layout>

    <layout name="user_group_suggestion">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>selection</widget>
        </row>
      </rows>
      <widget name="selection" type="multipleUsersSuggestion">
        <!-- add empty field to map layout value directly -->
        <fields>
          <field/>
        </fields>
        <labels>
          <label mode="any">label.security.usersOrGroups</label>
        </labels>
        <properties widgetMode="edit">
          <property name="hideHelpLabel">true</property>
          <property name="placeholder">label.security.search</property>
        </properties>
        <widgetModes>
          <mode value="create">edit</mode>
        </widgetModes>
      </widget>
    </layout>

    <layout name="user_group_prefixed_suggestion">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>selection</widget>
        </row>
      </rows>
      <widget name="selection" type="multipleUsersSuggestion">
        <!-- add empty field to map layout value directly -->
        <fields>
          <field/>
        </fields>
        <labels>
          <label mode="any">label.security.usersOrGroups</label>
        </labels>
        <properties widgetMode="edit">
          <property name="prefixed">true</property>
          <property name="hideHelpLabel">true</property>
          <property name="placeholder">label.security.search</property>
        </properties>
        <properties widgetMode="view">
          <property name="prefixed">true</property>
        </properties>
        <widgetModes>
          <mode value="create">edit</mode>
        </widgetModes>
      </widget>
    </layout>

    <layout name="document_content_filter">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>search_title</widget>
        </row>
        <row>
          <widget>search_modified_min</widget>
          <widget>search_modified_max</widget>
        </row>
      </rows>
    </layout>

    <layout name="document_edit_form_options">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>document_edit_comment</widget>
        </row>
        <row>
          <widget>document_edit_current_version</widget>
        </row>
        <row>
          <widget>document_edit_versioning_options</widget>
        </row>
      </rows>
    </layout>

  </extension>

</component>
