<?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$ -->

<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:title><i18n:text>Deactivate</i18n:text></page:title>
  <page:body>
    <div class="lenya-box">
      <div class="lenya-box-title">
        <i18n:text>Deactivate</i18n:text>
      </div>
      
      <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
      
      <div class="lenya-box-body">
        
        <jx:set var="title" value="${usecase.getParameter('document')
          .getMetaData('http://purl.org/dc/elements/1.1/')
          .getFirstValue('title')}"/>
        
        <form id="form-deactivate">
          <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" class="lenya-entry-caption">
                <i18n:translate>
                  <i18n:text i18n:key="deactivate-doc?"/>
                  <i18n:param><jx:out value="${title}"/></i18n:param>
                </i18n:translate>
                <br/><br/>
              </td>
            </tr>
            <jx:set var="linksToDocument" value="${usecase.getParameter('linksToDocument').getDocuments()}"/>
            <jx:if test="${!usecase.hasErrors() &amp;&amp; linksToDocument.size() &gt; 0}">
              <tr>
                <td class="lenya-entry-caption" valign="top">
                  <p>
                    <i18n:text>links-to-document</i18n:text>
                  </p>
                </td>
                <td>
                  <ul>
                    <jx:forEach var="link" items="${linksToDocument}">
                      <li>
                        <a href="${link.getCanonicalWebappURL()}">
                          <jx:out value="${link.getMetaData('http://purl.org/dc/elements/1.1/').getFirstValue('title')}"/></a>
                        <span>
                          (<jx:out value="${link.getPath()}"/>,
                          <jx:out value="${link.getLanguage()}"/>)
                        </span>
                      </li>
                    </jx:forEach>
                  </ul>
                </td>
              </tr>
            </jx:if>
            <tr>
              <td/>
              <td>
                <input i18n:attr="value" type="submit" name="submit" value="Deactivate"/>
                &#160;
                <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
              </td>
            </tr>
          </table>
        </form>
      </div>
    </div>
  </page:body>
</page:page>
