<?xml version="1.0" encoding="UTF-8"?>
<!--
  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: userGroups.jx 164233 2005-04-22 13:01:45Z jwkaltz $ -->

<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"    
  >
  
  <page:body>
    <jx:import uri="fallback://lenya/modules/usecase/templates/tabs.jx"/>
    <div id="contentblock1" class="lenya-tab">
      <h1><i18n:text>Group Affiliation</i18n:text></h1>
    <form method="post" id="form-group_affiliation">
      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
      <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>

       <table class="lenya-table-noborder">
        <tr>
          <td colspan="2">
            <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
          </td>
        </tr>
      </table>

      <table class="lenya-table-noborder-nopadding">
        <tr>
          <td>
            <strong>
              <i18n:text>IP Range Groups</i18n:text>
            </strong>
          </td>
          <td/>
          <td>
            <strong>
              <i18n:text>All Groups</i18n:text>
            </strong>
          </td>
        </tr>
        <tr>
          <td valign="middle">
            <select name="ipRangeGroup" size="15" class="lenya-form-element-narrow">
              <jx:forEach var="group" items="${usecase.getParameter('ipRangeGroups')}">
                <option value="${group}"><jx:out value="${group}"/></option>
              </jx:forEach>
            </select>
          </td>
          <td valign="middle">
            <input name="add" type="submit" value="&lt;"/>
            <br/>
            <input name="remove" type="submit" value="&gt;"/>
          </td>
          <td valign="middle">
            <select name="otherGroup" size="15" class="lenya-form-element-narrow">
              <jx:forEach var="otherGroup" items="${usecase.getParameter('otherGroups')}">
                <option value="${otherGroup}"><jx:out value="${otherGroup}"/></option>
              </jx:forEach>
            </select>
          </td>
        </tr>
        <tr>
          <td colspan="3" style="text-align: center">
            <br/>
            <input i18n:attr="value" type="submit" name="submit" value="Save"/>
            <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
          </td>
        </tr>
      </table>

    </form>
    </div>
  </page:body>
</page:page>