<?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: forms.jx 416646 2006-06-23 09:02:03Z 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"
  xmlns:ci="http://apache.org/cocoon/include/1.0"
  >
  
  <page:title><i18n:text>Import</i18n:text></page:title>
  <page:body>
    
    <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
    
    <form method="post">
      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
      <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
      
      <jx:choose>
        <jx:when test="${! usecase.hasErrors()}">
          <p><i18n:text>Select import directory</i18n:text>:</p>
          <p style="margin-bottom: 0">
            <jx:set var="path" value="${usecase.getParameter('path')}"/>
            <jx:set var="lastIndex" value="${path.lastIndexOf('/')}"/>
            <jx:if test="${lastIndex &gt; -1}">
              <a href="?lenya.usecase=${usecase.getName()}&amp;lenya.continuation=${continuation.id}&amp;path=${path.substring(0, lastIndex)}">..</a>
            </jx:if>
          </p>
          <ci:include src="cocoon://modules/export/directory/${usecase.getParameter('path')}:${continuation.id}"/>
          <p>
            <input type="submit" name="submit" value="Import" i18n:attr="value"/>
            <input type="submit" value="Cancel" i18n:attr="value"/>
          </p>
        </jx:when>
        <jx:otherwise>
          <p>
            <input type="submit" value="Cancel" i18n:attr="value"/>
          </p>
        </jx:otherwise>
      </jx:choose>
      
    </form>
    
  </page:body>
</page:page>