Platform Explorer / Nuxeo Platform LTS 2015 7.10

Component org.nuxeo.platform.admin.layoutContrib

Services

Extension points

Contributions

XML source

<?xml version="1.0"?>
<component name="org.nuxeo.platform.admin.layoutContrib">

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

    <layout name="fullauditsearch">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>startDate</widget>
          <widget>endDate</widget>
        </row>
        <row>
          <widget>eventId</widget>
          <widget>eventCategory</widget>
        </row>
        <row>
          <widget>userId</widget>
        </row>
      </rows>
      <widget name="startDate" type="datetime">
        <labels>
          <label mode="any">label.audit.startDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:startDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="endDate" type="datetime">
        <labels>
          <label mode="any">label.audit.endDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:endDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="eventId" type="selectManyDirectory">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventIds</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventTypes</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventCategory" type="selectOneDirectory">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventCategory</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventCategories</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="userId" type="singleUserSuggestion">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:principalName</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
        <properties mode="any">
          <property name="userSuggestionSearchType">USER_TYPE</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: define global widgets to be shared with event logs displayed in document
      tabs -->
    <layout name="event_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">/layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">eventId</property>
          </properties>
          <widget>eventId</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.eventDate</property>
          </properties>
          <widget>eventDate</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.principalName</property>
          </properties>
          <widget>username</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.category</property>
          </properties>
          <widget>eventCategory</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventDoc</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventComment</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventLC</widget>
        </column>
      </columns>
      <widget name="eventId" type="text">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventId</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDate" type="datetime">
        <labels>
          <label mode="any">label.date</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventDate</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
          <property name="timezone">#{timeZone}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="username" type="text">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.principalName</field>
        </fields>
      </widget>
      <widget name="eventCategory" type="text">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data:category</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDoc" type="template">
        <labels>
          <label mode="any">label.document</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/auditdoc_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="eventComment" type="text">
        <labels>
          <label mode="any">label.comment</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.comment</field>
        </fields>
      </widget>
      <widget name="eventLC" type="text">
        <labels>
          <label mode="any">label.lifecycle</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.docLifeCycle</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: debug/dev mode -->
    <layout name="admin_setup_main">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.mainSetup</property>
      </properties>
      <rows>
        <row>
          <widget>url</widget>
        </row>
        <row>
          <widget>product.name</widget>
        </row>
        <row>
          <widget>product.version</widget>
        </row>
        <row>
          <widget>bind.address</widget>
        </row>
        <row>
          <widget>nuxeo.conf</widget>
        </row>
        <row>
          <widget>data.dir</widget>
        </row>
        <row>
          <widget>log.dir</widget>
        </row>
        <row>
          <widget>org.nuxeo.dev</widget>
        </row>
        <row>
          <widget>dbtemplate</widget>
        </row>
        <row>
          <widget>database_ajax_decorator</widget>
        </row>
        <row>
          <widget>chooseDirectoryType</widget>
        </row>
        <row>
          <widget>ldap_ajax_decorator</widget>
        </row>
      </rows>
      <widget name="url" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.url']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.name" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.version" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.version']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="bind.address" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.bind.address</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.bind.address']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="nuxeo.conf" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.conf</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.conf']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="data.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.data.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.data.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="log.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.log.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.log.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="org.nuxeo.dev" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
        </labels>
        <helpLabels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
        </helpLabels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.dev']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="dbtemplate" type="template">
        <labels>
          <label mode="any">label.setup.database.templates</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.dbtemplate']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
          </property>
          <property name="reRender">database_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="database_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">database_ajaxPanel</property>
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise proxy selection misbehaves after
            first non-default database
            selection -->
          <property name="rendered">
            #{value['nuxeo.dbtemplate']!='default'}
          </property>
        </properties>
        <subWidgets>
          <widget name="database" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_database</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>
      <widget name="chooseDirectoryType" type="template">
        <labels>
          <label mode="any">label.setup.directory.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.directoryType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="ldap_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">ldap_ajaxPanel</property>
          <property name="rendered">
            #{setupWizardAction.directoryType != 'default'}
          </property>
        </properties>
        <subWidgets>
          <widget name="directories" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories</property>
            </properties>
          </widget>
          <widget name="directories_group" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_group</property>
            </properties>
          </widget>
          <widget name="directories_extra" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_extra</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>

    </layout>

    <layout name="admin_setup_database">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.dataBase</property>
      </properties>
      <rows>
        <row>
          <widget>dbName</widget>
        </row>
        <row>
          <widget>dbUser</widget>
        </row>
        <row>
          <widget>dbPwd</widget>
        </row>
        <row>
          <widget>dbHost</widget>
        </row>
        <row>
          <widget>dbPort</widget>
        </row>
        <row>
          <widget>dbMinPoolSize</widget>
        </row>
        <row>
          <widget>dbMaxPoolSize</widget>
        </row>
        <row>
          <widget>vcsMinPoolSize</widget>
        </row>
        <row>
          <widget>vcsMaxPoolSize</widget>
        </row>
        <row>
          <widget>checkDatabaseParameters</widget>
        </row>
      </rows>
      <widget name="dbName" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbUser" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.user']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPwd" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.db.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.password']</field>
        </fields>
      </widget>
      <widget name="dbHost" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.host']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPort" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="dbMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="dbMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="checkDatabaseParameters" type="template">
        <labels>
          <label mode="any"></label>
        </labels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_check_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.directories</property>
      </properties>
      <rows>
        <row>
          <widget>ldapStorage</widget>
        </row>
        <row>
          <widget>ldapUrl</widget>
          <!-- <widget>checkNetwork</widget> -->
        </row>
        <row>
          <widget>ldapBindDn</widget>
        </row>
        <row>
          <widget>ldapBindPassword</widget>
          <widget>checkAuth</widget>
        </row>
        <row>
          <widget>userLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>userLdapSearchClass</widget>
        </row>
        <row>
          <widget>userLdapSearchFilter</widget>
        </row>
        <row>
          <widget>userLdapSearchScope</widget>
        </row>
        <row>
          <widget>userLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingUserRdn</widget>
        </row>
        <row>
          <widget>mappingUsername</widget>
        </row>
        <row>
          <widget>mappingPassword</widget>
        </row>
        <row>
          <widget>mappingFirstname</widget>
        </row>
        <row>
          <widget>mappingLastname</widget>
        </row>
        <row>
          <widget>mappingEmail</widget>
        </row>
        <row>
          <widget>mappingCompany</widget>
        </row>
      </rows>
      <widget name="ldapStorage" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
          </property>
          <property name="reRender">ldap_group_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="multiStorage" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <selectOptions>
          <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup" />
          <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup" />
          <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup" />
        </selectOptions>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.directoryType == 'multi'}
          </property>
        </properties>
      </widget>
      <widget name="ldapUrl" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.url']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.binddn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.binddn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindPassword" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.bindpassword']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
      </widget>
      <widget name="ldapRetries" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.retries</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.retries']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">2</property>
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchClass" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchClass']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchFilter']</field>
        </fields>
      </widget>
      <widget name="userLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel" />
          <option itemLabel="subtree" itemValue="subtree" />
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="userLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingUserRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingPassword" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.firstname']</field>
        </fields>
      </widget>
      <widget name="mappingLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.lastname']</field>
        </fields>
      </widget>
      <widget name="mappingEmail" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.email']</field>
        </fields>
      </widget>
      <widget name="mappingCompany" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.company']</field>
        </fields>
      </widget>
      <widget name="checkNetwork" type="template">
        <labels>
          <label mode="any"></label>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="checkAuth" type="template">
        <labels>
          <label mode="any"></label>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories_group">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
        <property name="rendered">
          #{setupWizardAction.needGroupConfiguration}
        </property>
      </properties>
      <rows>
        <row>
          <widget>groupLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>groupLdapSearchFilter</widget>
        </row>
        <row>
          <widget>groupLdapSearchScope</widget>
        </row>
        <row>
          <widget>groupLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingGroupRdn</widget>
        </row>
        <row>
          <widget>mappingGroupname</widget>
        </row>
        <row>
          <widget>mappingGrouplabel</widget>
        </row>
        <row>
          <widget>mappingStaticMembers</widget>
        </row>
        <row>
          <widget>mappingDynamicMembers</widget>
        </row>
      </rows>
      <widget name="groupLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchFilter']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel" />
          <option itemLabel="subtree" itemValue="subtree" />
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="groupLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingGroupRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGroupname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.name']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGrouplabel" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.label']</field>
        </fields>
      </widget>
      <widget name="mappingStaticMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
        </fields>
      </widget>
      <widget name="mappingDynamicMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
        </fields>
      </widget>
    </layout>

    <layout name="admin_setup_directories_extra">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label"></property>
      </properties>
      <rows>
        <row>
          <widget>defaultAdministrator</widget>
        </row>
        <row>
          <widget>defaultMembersGroup</widget>
        </row>
        <row>
          <widget>anonymousUser</widget>
        </row>
        <row>
          <widget>emergencyUser</widget>
        </row>
        <row>
          <widget>emergencyUsername</widget>
        </row>
        <row>
          <widget>emergencyPassword</widget>
        </row>
        <row>
          <widget>emergencyFirstname</widget>
        </row>
        <row>
          <widget>emergencyLastname</widget>
        </row>
      </rows>
      <widget name="defaultAdministrator" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultAdministratorId']</field>
        </fields>
      </widget>
      <widget name="defaultMembersGroup" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultMembersGroup']</field>
        </fields>
      </widget>
      <widget name="anonymousUser" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.anonymous.enable']</field>
        </fields>
      </widget>
      <widget name="emergencyUser" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.enable']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="emergencyUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyPassword" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.firstname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.lastname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_choose_proxy">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.httpProxy</property>
        <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>chooseProxy</widget>
        </row>
        <row>
          <widget>proxy.host</widget>
        </row>
        <row>
          <widget>proxy.port</widget>
        </row>
        <row>
          <widget>proxy.login</widget>
        </row>
        <row>
          <widget>proxy.password</widget>
        </row>
      </rows>
      <widget name="chooseProxy" type="template">
        <labels>
          <label mode="any">label.setup.httpProxy.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.proxyType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
          </property>
          <property name="reRender">admin_choose_proxy_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="proxy.host" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.host']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise smtp auth misbehaves after
            first non-default proxy type selection -->
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.port" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.login" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.login</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.login']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.password" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_mail">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.email</property>
        <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>eMailSubjectPrefix</widget>
        </row>
        <row>
          <widget>mailservice.user</widget>
        </row>
        <row>
          <widget>mailservice.password</widget>
        </row>
        <row>
          <widget>mail.store.protocol</widget>
        </row>
        <row>
          <widget>mail.transport.protocol</widget>
        </row>
        <row>
          <widget>mail.store.host</widget>
        </row>
        <row>
          <widget>mail.store.port</widget>
        </row>
        <row>
          <widget>mail.store.user</widget>
        </row>
        <row>
          <widget>mail.store.password</widget>
        </row>
        <row>
          <widget>mail.debug</widget>
        </row>
        <row>
          <widget>mail.transport.host</widget>
        </row>
        <row>
          <widget>mail.transport.port</widget>
        </row>
        <row>
          <widget>mail.transport.auth</widget>
        </row>
        <row>
          <widget>mail.transport.user</widget>
        </row>
        <row>
          <widget>mail.transport.password</widget>
        </row>
        <row>
          <widget>mail.from</widget>
        </row>
        <row>
          <widget>mail.transport.usetls</widget>
        </row>
        <row>
          <widget>mail.user</widget>
        </row>
      </rows>
      <widget name="eMailSubjectPrefix" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
          </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.notification.eMailSubjectPrefix']</field>
        </fields>
      </widget>
      <widget name="mailservice.user" type="text">
        <labels>
          <label mode="any">label.setup.mailservice.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.user']</field>
        </fields>
      </widget>
      <widget name="mailservice.password" type="secret">
        <labels>
          <label mode="any">label.setup.mailservice.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.password']</field>
        </fields>
      </widget>
      <widget name="mail.store.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.transport.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.store.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.host']</field>
        </fields>
      </widget>
      <widget name="mail.store.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.store.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.user']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.password" type="secret">
        <labels>
          <label mode="any">label.setup.mail.store.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.password']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.debug" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.debug</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.debug']</field>
        </fields>
      </widget>
      <widget name="mail.transport.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.host']</field>
        </fields>
        <properties mode="edit">
        </properties>
      </widget>
      <widget name="mail.transport.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.transport.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="mail.transport.auth" type="template">
        <labels>
          <label mode="any">label.setup.mail.transport.auth</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.auth']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">admin_setup_mail_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="mail.transport.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.user']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.transport.password" type="secret">
        <labels>
          <label mode="any">label.setup.mail.transport.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.from" type="text">
        <labels>
          <label mode="any">label.setup.mail.from</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.from']</field>
        </fields>
      </widget>
      <widget name="mail.transport.usetls" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.transport.usetls</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.usetls']</field>
        </fields>
      </widget>
      <widget name="mail.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.user']</field>
        </fields>
      </widget>
    </layout>

    <!-- placeholder layout for custom properties -->
    <layout name="admin_setup_custom_properties">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.custom</property>
      </properties>
    </layout>

    <!-- permissions search -->
    <layout name="permissions_search_filter">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>creator</widget>
        </row>
        <row>
          <widget>location</widget>
        </row>
        <row>
          <widget>permission</widget>
        </row>
        <row>
          <widget>date_range</widget>
        </row>
        <row>
          <widget>status</widget>
        </row>
        <row>
          <widget>aclName</widget>
        </row>
      </rows>
      <widget name="username" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_username</field>
        </fields>
      </widget>
      <widget name="creator" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.grantedBy</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_creator</field>
        </fields>
        <properties mode="any">
          <property name="userSuggestionSearchType">USER_TYPE</property>
        </properties>
      </widget>
      <widget name="location" type="multipleDocumentsSuggestion">
        <labels>
          <label mode="any">label.search.locationSearch</label>
        </labels>
        <fields>
          <field>rs:ecm_ancestorIds</field>
        </fields>
        <translated>true</translated>
        <properties mode="any">
          <property name="documentSuggestion_pageProviderName">
            permissions_search_folders
          </property>
        </properties>
      </widget>
      <widget name="permission" type="selectManyListbox">
        <labels>
          <label mode="any">label.permissions.right</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_permission</field>
        </fields>
        <selectOptions>
          <options value="#{securityActions.getUserVisiblePermissionSelectItems('')}"
            var="item" itemValue="#{item.value}" itemLabel="#{item.label}" />
        </selectOptions>
      </widget>
      <widget name="date_range" type="datetimeRange">
        <labels>
          <label mode="any">label.permissions.timeFrame</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_begin</field>
          <field>rs:ace_end</field>
        </fields>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputTextDate</property>
          <property name="format">#{nxu:basicDateAndTimeFormatter()}</property>
        </properties>
      </widget>
      <widget name="status" type="template">
        <labels>
          <label mode="any">label.permissions.ace.status</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{adminPermissionsActions.selectedACEStatus}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/ace_status_widget.xhtml
          </property>
        </properties>
      </widget>
      <widget name="aclName" type="text">
        <labels>
          <label mode="any">label.permissions.search.aclName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_acl_name</field>
        </fields>
      </widget>
    </layout>

    <layout name="permissions_purge_filter">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>location</widget>
        </row>
      </rows>
      <widget name="username" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_username</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="location" type="multipleDocumentsSuggestion">
        <labels>
          <label mode="any">label.search.locationSearch</label>
        </labels>
        <fields>
          <field>rs:ecm_ancestorIds</field>
        </fields>
        <translated>true</translated>
        <properties mode="any">
          <property name="documentSuggestion_pageProviderName">
            permissions_search_folders
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="permissions_search_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">/layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:title</property>
          </properties>
          <widget>document_title</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/principal</property>
          </properties>
          <widget>ace_username</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/permission</property>
          </properties>
          <widget>ace_permission</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/creator</property>
          </properties>
          <widget>ace_creator</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/begin</property>
          </properties>
          <widget>ace_begin</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/end</property>
          </properties>
          <widget>ace_end</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/status</property>
          </properties>
          <widget>ace_status</widget>
        </column>
      </columns>
      <widget name="document_title" type="listing_id_title_link">
        <labels>
          <label mode="any">label.dublincore.title</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:uuid"]</field>
          <field>#{navigationContext.currentServerLocation.name}</field>
          <field>data["dc:title"]</field>
        </fields>
      </widget>
      <widget name="ace_permission" type="text">
        <labels>
          <label mode="any">label.permissions.right</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{messages[securityActions.getLabel(layoutValue.data["ecm:acl/*1/permission"])]}</field>
        </fields>
      </widget>
      <widget name="ace_username" type="singleUserSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/principal"]</field>
        </fields>
      </widget>
      <widget name="ace_creator" type="text">
        <labels>
          <label mode="any">label.permissions.grantedBy</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/creator"]</field>
        </fields>
      </widget>
      <widget name="ace_begin" type="datetime">
        <labels>
          <label mode="any">label.permissions.from</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/begin"].time</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateFormatter()}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="ace_end" type="datetime">
        <labels>
          <label mode="any">label.permissions.to</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/end"].time</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateFormatter()}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="ace_status" type="template">
        <labels>
          <label mode="any">label.permissions.ace.status</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/status"]</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/ace_status_widget.xhtml
          </property>
        </properties>
      </widget>
    </layout>
  </extension>

</component>

Documentation