<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<!-- $Id: ac.jx 156161 2005-03-04 15:23:21Z andreas $ -->
<page:page xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
  xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
  
  <jx:import uri="fallback://lenya/modules/sitemanagement/usecases/tab/head.jx"/>
  <page:body>
    <jx:import
      uri="fallback://lenya/modules/sitemanagement/usecases/tab/sitetree.jx"/>
    <jx:import uri="fallback://lenya/modules/usecase/templates/tabs.jx"/>
    
    <jx:set var="area" value="${usecase.getParameter('acArea')}"/>
    
    <div id="contentblock1" class="lenya-tab-sitetree">
      
      <h1><i18n:text><jx:out value="${usecase.getView().getTab().getLabel()}"/></i18n:text></h1>

      <!--
      <div class="lenya-box-toggled">
        <div class="lenya-box-title"><i18n:text>Help</i18n:text></div>
        <div class="lenya-box-body">
          I guess a help text would be necessary for this page.
          Would someone mind adding some hints? Or maybe we should add a
          link to the documentation.
        </div>
      </div>
      -->
      
      <table class="lenya-table-list-noborder">
        <tr>
          <td colspan="5" style="border-left: 0; border-right: 0; border-top: 0px;">
            <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
          </td>
        </tr>
        <tr>
          <td colspan="5">
            <jx:import
              uri="fallback://lenya/modules/sitemanagement/usecases/tab/ac/ssl-form.jx"/>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="border-left: 0; border-right: 0;">
            <h4 style="margin: 30px 0 0 0;">
              <i18n:text>Inherited credentials</i18n:text>
            </h4>
          </td>
        </tr>
        <tr>
          <th><i18n:text>Type</i18n:text></th>
          <th><i18n:text>ID</i18n:text></th>
          <th><i18n:text>Role</i18n:text></th>
          <th colspan="2"><i18n:text>Method</i18n:text></th>
        </tr>
        <jx:forEach var="credential"
          items="${usecase.getParameter('parentCredentials')}">
          <tr>
            <td>
              <i18n:text><jx:out value="${credential.getType()}"/></i18n:text>
            </td>
            <td>
              <jx:out value="${credential.getAccreditableId()}"/>
            </td>
            <td>
              <jx:out value="${credential.getRoleId()}"/>
            </td>
            <td colspan="2">
              <i18n:text><jx:out value="${credential.getMethod()}"/></i18n:text>
            </td>
          </tr>
        </jx:forEach>
        
        
        <tr>
          <td colspan="5" style="border-left: 0; border-right: 0;">
            <h4 style="margin: 30px 0 0 0;">
              <i18n:text>Subtree credentials</i18n:text>
            </h4>
          </td>
        </tr>
        <tr>
          <th><i18n:text>Type</i18n:text></th>
          <th><i18n:text>ID</i18n:text></th>
          <th><i18n:text>Role</i18n:text></th>
          <th><i18n:text>Method</i18n:text></th>
          <th>&#160;
          </th>
        </tr>
        <jx:forEach var="credential" varStatus="status"
          items="${usecase.getParameter('subCredentials')}">
          <form method="post" id="form-deleteSubCredential">
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="submit" value="Submit"/>
            <tr>
              <td>
                <i18n:text><jx:out value="${credential.getType()}"/></i18n:text>
              </td>
              <td>
                <input type="hidden" name="${credential.getType()}" value="${credential.getAccreditableId()}"/>
                <jx:out value="${credential.getAccreditableId()}"/>
              </td>
              <td>
                <input type="hidden" name="role" value="${credential.getRoleId()}"/>
                <jx:out value="${credential.getRoleId()}"/>
              </td>
              <td>
                <input type="hidden" name="method" value="${credential.getMethod()}"/>
                <i18n:text><jx:out value="${credential.getMethod()}"/></i18n:text>
              </td>
              <td>
                <input type="submit"
                  name="deleteCredential_${credential.getType()}"
                  i18n:attr="value" value="Delete"/>
                <jx:if test="${status.count>1}">
                  <input type="submit"
                    name="upCredential_${credential.getType()}"
                    i18n:attr="value" value="Move Up"/>
                </jx:if>
                <jx:if test="${!status.last}">
                  <input type="submit"
                    name="downCredential_${credential.getType()}"
                    i18n:attr="value" value="Move Down"/>
                </jx:if>
              </td>
            </tr>
          </form>
        </jx:forEach>
        
        <tr>
          <td colspan="5" style="border-left: 0; border-right: 0; border-top: 0px;">
            <h4 style="margin: 30px 0 0 0;">
              <i18n:text>New subtree credential</i18n:text>
            </h4>
          </td>
        </tr>
        <tr>
          <th><i18n:text>Type</i18n:text></th>
          <th><i18n:text>ID</i18n:text></th>
          <th><i18n:text>Role</i18n:text></th>
          <th><i18n:text>Method</i18n:text></th>
          <th>&#160;
          </th>
        </tr>
        <tr>
          
          <form method="post" id="form-addCredential_user">
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="submit" value="Submit"/>
            <td>
              <i18n:text>user</i18n:text>
            </td>
            <td>
              <select name="user" class="lenya-form-element-verynarrow">
                <jx:forEach var="user" items="${usecase.getParameter('users')}">
                  <option value="${user}">
                    <jx:out value="${user}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="role" class="lenya-form-element-verynarrow">
                <jx:forEach var="role" items="${usecase.getParameter('roles')}">
                  <option value="${role}">
                    <jx:out value="${role}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="method" class="lenya-form-element-verynarrow">
                <option value="deny"><i18n:text>deny</i18n:text></option>
                <option value="grant"><i18n:text>grant</i18n:text></option>
              </select>
            </td>
            <td>
              <input i18n:attr="value" type="submit" name="addCredential_user"
                value="Add"/>
            </td>
          </form>
          
        </tr>
        <tr>
          <form method="post" id="form-addCredential_group">
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="submit" value="Submit"/>
            <td>
              <i18n:text>group</i18n:text>
            </td>
            <td>
              <select name="group" class="lenya-form-element-verynarrow">
                <jx:forEach var="group" items="${usecase.getParameter('groups')}">
                  <option value="${group}">
                    <jx:out value="${group}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="role" class="lenya-form-element-verynarrow">
                <jx:forEach var="role" items="${usecase.getParameter('roles')}">
                  <option value="${role}">
                    <jx:out value="${role}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="method" class="lenya-form-element-verynarrow">
                <option value="deny"><i18n:text>deny</i18n:text></option>
                <option value="grant"><i18n:text>grant</i18n:text></option>
              </select>
            </td>
            <td>
              <input i18n:attr="value" type="submit" name="addCredential_group"
                value="Add"/>
            </td>
          </form>
        </tr>
        
        <tr>
          <form method="post" id="form-addCredential_ipRange">
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="submit" value="Submit"/>
            <td>
              <i18n:text>IP Range</i18n:text>
            </td>
            <td>
              <select name="ipRange" class="lenya-form-element-verynarrow">
                <jx:forEach var="ipRange" items="${usecase.getParameter('ipRanges')}">
                  <option value="${ipRange}">
                    <jx:out value="${ipRange}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="role" class="lenya-form-element-verynarrow">
                <jx:forEach var="role" items="${usecase.getParameter('roles')}">
                  <option value="${role}">
                    <jx:out value="${role}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="method" class="lenya-form-element-verynarrow">
                <option value="deny"><i18n:text>deny</i18n:text></option>
                <option value="grant"><i18n:text>grant</i18n:text></option>
              </select>
            </td>
            <td>
              <input i18n:attr="value" type="submit" name="addCredential_ipRange"
                value="Add"/>
            </td>
          </form>
        </tr>
        
        <tr>
          <form method="post" id="form-addCredential_world">
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="submit" value="Submit"/>
            <td>
              <i18n:text>world</i18n:text>
            </td>
            <td/>
            <td>
              <select name="role" class="lenya-form-element-verynarrow">
                <jx:forEach var="role" items="${usecase.getParameter('roles')}">
                  <option value="${role}">
                    <jx:out value="${role}"/>
                  </option>
                </jx:forEach>
              </select>
            </td>
            <td>
              <select name="method" class="lenya-form-element-verynarrow">
                <option value="deny"><i18n:text>deny</i18n:text></option>
                <option value="grant"><i18n:text>grant</i18n:text></option>
              </select>
            </td>
            <td>
              <input i18n:attr="value" type="submit" name="addCredential_world"
                value="Add"/>
            </td>
          </form>
        </tr>
        
      </table>
    </div>
  </page:body>
</page:page>