<?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.
-->
<status>
<!-- Define here the Title of the Context you want to display in the Changes pages.
       id = the context value of actions
       title = Title of the Context
  -->
  <contexts>
    <context id="code" title="Changes to the Code Base"/>
    <context id="docs" title="Changes to Documentation"/>
    <context id="admin" title="Changes to Project Administration"/>
    <context id="design" title="Changes to Design"/>
    <context id="build" title="Changes to Build"/>
  </contexts>
  <changes>
    <release version="0.3-dev" date="not-released">
      <action type="update" context="code" dev="RDG" importance="high">
        uses locationmap for resource resolution.
      </action>
      <action type="update" context="admin" dev="RDG">
        Changed plugin name to conform to naming conventions.
      </action>
    </release>
    <release version="0.2" date="not-released">
      <action type="add" context="Document Properties" dev="js">
        Put Description from Excel document properties as a paragraph
        at the beginning of the document
      </action>
      <action type="add" context="Document Properties" dev="js">
        Put Description from Excel document properties as a paragraph
        at the beginning of the document
      </action>
      <action type="fix" context="Figure" dev="js">
        Removed table around figures
      </action>
      <action type="add" context="Stylesheet" dev="js">
        New feature: put id=sheet name in to allow #id links
      </action>
      <action type="add" context="Stylesheet" dev="js">
        New feature: content containing .png, .gif or .jpg is
        displayed as image; use path below image directory
      </action>
      <action type="add" context="xsl" dev="RDG" due-to="Johannes Schaefer">
        New feature: 'text' in first column to create descriptive
        text.
      </action>
      <action type="fix" context="caption" dev="RDG" due-to="Johannes Schaefer">
        Minor issue: captions are now included even if Excel skips
        cell at position three and writes weird "ss:Index=4".
      </action>
    </release>
    <release version="0.1" date="not-released">
      <action dev="RDG" type="fix" due-to="Johannes Schaefer" fixes-bug="FOR-432">
        Fixed bug: input.xmap pointed to the project's resources dir
        not the plugin's. So, plugin documentation worked fine, but
        any other project didn't.
      </action>
      <action dev="RDG" type="add" context="admin" due-to="Johannes Schaefer" fixes-bug="FOR-373">
        Initial plugin code.
      </action>
    </release>
  </changes>
  <todo>
    <actions priority="high">
      <action context="Stylesheet" dev="open">
        Resolve empty cell issue: insert empty cell in output
        if any cell in column is non-empty. Workaround: put
	spaces in the Excel cells.
      </action>
      <action context="xmap" dev="open">
        Match the Excel document type definition rather than <code>**-table.xml</code>.
      </action>
      <action context="Stylesheet" dev="open">
        New feature: include Excel tables in other xml documents.
      </action>
      <action context="Stylesheet" dev="open">
        New feature: allow xdoc tags in Cells. Problem: Excel saves
	tags escaped, i.e. <code>&amp;lt;tag&amp;gt;</code>.
      </action>
      <action context="Documentation" dev="open">
        Put in the English wording from Excel (sorry, I only have German available).
      </action>
      <action context="Documentation" dev="open">
        Add sections: feature description and implementation details.
      </action>
    </actions>
  </todo>
</status>
