<?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>workflow.submit</i18n:text></page:title>
  <page:body>
    <div class="lenya-box">
      
      <jx:set var="title" value="${usecase.getParameter('document')
        .getMetaData('http://purl.org/dc/elements/1.1/')
        .getFirstValue('title')}"/>
      
      <div class="lenya-box-title">
        <i18n:text>workflow.submit</i18n:text>
      </div>
      
      <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
      
      <div class="lenya-box-body">
        <form id="form-submit">
          <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="submit-for-approval?"/>
                  <i18n:param><jx:out value="${title}"/></i18n:param>
                </i18n:translate>
              </td>
            </tr>
            <tr>
              <td class="lenya-entry-caption">
                <i18n:text>notify-reviewers</i18n:text>:
              </td>
              <td>
                <jx:choose>
                  <jx:when test="${usecase.getParameter('sendNotification').equals('true')}">
                    <input name="sendNotification" type="checkbox" checked="checked"/>
                  </jx:when>
                  <jx:otherwise>
                    <input name="sendNotification" type="checkbox"/>
                  </jx:otherwise>
                </jx:choose>
              </td>
            </tr>
            <tr>
              <td/>
              <td>
                <input i18n:attr="value" type="submit" name="submit" value="Submit"/>
                &#160;
                <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
              </td>
            </tr>
          </table>
        </form>
      </div>
    </div>
  </page:body>
</page:page>
