<?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:translate>
      <i18n:text i18n:key="logout-from-pub"/>
      <i18n:param></i18n:param>
    </i18n:translate>
  </page:title>
  <page:body>
    <div class="lenya-box">
      <div class="lenya-box-title">
        <i18n:text>Logout</i18n:text>
      </div>

      <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
      
      <div class="lenya-box-body">
        <form id="form-logout">
          <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>
                <input i18n:attr="value" name="submit" type="submit" value="Logout" />
                &#160;
                <input i18n:attr="value" name="cancel" type="submit" value="Cancel" />
              </td>
            </tr>
          </table>
        </form>
      </div>
    </div>
    <div class="lenya-box">
      <div class="lenya-box-title">
        <i18n:text>Your History</i18n:text>
      </div>
      <div class="lenya-box-body">
        <ul>
          <jx:forEach var="url" items="${usecase.getParameter('history')}">
            <li><jx:out value="${url}"/></li>
          </jx:forEach>
        </ul>
      </div>
    </div>
  </page:body>
</page:page>
