<?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: renameLabel.jx 123364 2004-12-26 16:11:27Z gregor $ -->
<page:page xmlns:c="http://apache.org/cocoon/templates/jx/1.0" 
           xmlns="http://www.w3.org/1999/xhtml" 
           xmlns:i18n="http://apache.org/cocoon/i18n/2.1" 
           xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
           xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
           >
           
  <page:title>
    <i18n:text>Change Document URL</i18n:text>
  </page:title>
  <page:body>
    <div class="lenya-box">
      <div class="lenya-box-title">
        <i18n:translate>
          <i18n:text key="change-document-url"/>
          <i18n:param><jx:out value="${usecase.getParameter('document').getLink().getLabel()}"/></i18n:param>
        </i18n:translate>
      </div>
      <div class="lenya-box-body">
        <form method="post" action="" id="form-change_node_id">
          <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>
            <tr>
              <td class="lenya-entry-caption"><label for="nodeId"><i18n:text>New URL Fragment</i18n:text>: *</label></td>
              <td><input type="text" class="lenya-form-element" name="nodeId" value="${usecase.getParameter('nodeId')}"/></td>
            </tr>
            <tr>
              <td/>
              <td>
                <br/>
                <input i18n:attr="value" type="submit" name="submit" value="Save"/>
                &#160;
                <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
              </td>
            </tr>
          </table>
        </form>
      </div>
    </div>
  </page:body>
</page:page>
