<?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: oneform.jx 510073 2007-02-21 16:01:52Z 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:cinclude="http://apache.org/cocoon/include/1.0"
  >
  
  <page:title><i18n:text>news-settings</i18n:text></page:title>
  <page:body>
    
    <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
    
    <form method="post" id="form-news-edit">
      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
      <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
      
      <jx:set var="newsWrapper" value="${usecase.getParameter('newsWrapper')}"/>
      <jx:set var="includeItems" value="${usecase.getParameter('includeItems')}"/>
      
      <p><i18n:text>acquire-news-from</i18n:text>:</p>
      
      <jx:set var="type" value="${usecase.getParameter('type')}"/>
      <p style="padding-left: 3em;">
        <jx:choose>
          <jx:when test="${type.equals('children')}">
            <input type="radio" name="type" value="children" checked="checked"/>
          </jx:when>
          <jx:otherwise>
            <input type="radio" name="type" value="children"/>
          </jx:otherwise>
        </jx:choose>
        <i18n:text>type-children</i18n:text>
      </p>
      <p style="padding-left: 3em; color: #999999;">
        <i18n:text>note-feed-module</i18n:text>
      </p>
      <p style="padding-left: 3em;">
        <jx:choose>
          <jx:when test="${type.equals('link')}">
            <input type="radio" name="type" value="link" checked="checked"/>
          </jx:when>
          <jx:otherwise>
            <input type="radio" name="type" value="link"/>
          </jx:otherwise>
        </jx:choose>
        <i18n:text>external-source</i18n:text>:
        <input type="text" name="href" size="50" value="${usecase.getParameter('href')}"/>
      </p>
      
      <p style="margin: 3em 0;">
        <label for="includeItems"><i18n:text>include-items</i18n:text>:</label>
        <select name="includeItems">
          <jx:forEach var="number" items="${usecase.getParameter('numbers')}">
            <jx:choose>
              <jx:when test="${includeItems == number}">
                <option value="${number}" selected="selected"><jx:out value="${number}"/></option>
              </jx:when>
              <jx:otherwise>
                <option value="${number}"><jx:out value="${number}"/></option>
              </jx:otherwise>
            </jx:choose>
          </jx:forEach>
        </select>
      </p>
      
      <p>
        <input type="submit" value="Save" name="submit" i18n:attr="value"/>
        <input type="submit" value="Cancel" name="cancel" i18n:attr="value"/>
      </p>
      
    </form>
    
  </page:body>
</page:page>