<?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>getting-started</i18n:text></page:title>
  <page:body>

    <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>

    <jx:choose>
      <jx:when test="${! usecase.hasErrors()}">
        <p><i18n:text>thanks</i18n:text></p>
        <form name="import" method="post">
          <p>
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="submit" name="submit" value="import-example-content" i18n:attr="value"/>
            <i18n:text>may-take-a-while</i18n:text>
          </p>
        </form>
        <form name="create" method="get">
          <p>
            <input type="hidden" name="lenya.usecase" value="sitemanagement.create"/>
            <input type="hidden" name="path" value="/index"/>
            <input type="submit" name="submit" value="create-own-page" i18n:attr="value"/>
          </p>
        </form>
      </jx:when>
      <jx:otherwise>
        <p>
          <form method="post">
            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
            <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
            <input type="submit" value="Cancel" i18n:attr="value"/>
          </form>
        </p>
      </jx:otherwise>
    </jx:choose>

  </page:body>
</page:page>
