<?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.
-->
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
    version="1.0">
  <xsl:param name="path"/>
  <xsl:param name="versionNumber"/>
  <xsl:param name="projectInfo.changes.sort"/>
  <xsl:param name="projectInfo.changes.includeCommitterList"/>
  <xsl:param name="projectInfo.changes.includeContributorList"/>
  <xsl:include href="lm://transform.xml.dotdots"/>
<!-- Calculate path to site root, eg '../../' -->
  <xsl:variable name="root">
    <xsl:call-template name="dotdots">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="bugzilla" select="'http://issues.apache.org/bugzilla/buglist.cgi?bug_id='"/>
  <xsl:param name="bugtracking-url" select="$bugzilla"/>
  <xsl:key name="contexts" match="changes/release/action" use="concat(../@version, '_', @context)"/>
  <xsl:key name="types" match="changes/release/action" use="@type"/>
  <xsl:key name="committers" match="developers/person" use="@id"/>
  <xsl:key name="distinct-committer" match="changes/release/action" use="concat(../@version, '_', @dev)"/>
  <xsl:key name="distinct-contributor" match="changes/release/action" use="concat(../@version, '_', @due-to)"/>
  <xsl:template match="/">
    <xsl:apply-templates select="//changes"/>
  </xsl:template>
  <xsl:template match="changes">
    <document>
      <header>
        <title><xsl:choose>
            <xsl:when test="@title!=''">
              <xsl:value-of select="@title"/>
            </xsl:when>
            <xsl:otherwise>
              <i18n:text i18n:key="title">History of Changes</i18n:text>
<xsl:text> </xsl:text>
              <xsl:value-of select="$versionNumber"/>
            </xsl:otherwise>
          </xsl:choose></title>
      </header>
      <body>
        <p>
          <link href="changes.rss">
          <img src="{$root}images/rss.png" alt="RSS"/>
          </link>
        </p>
        <section id="introduction">
          <title><i18n:text i18n:key="introduction">Introduction and explanation of symbols</i18n:text></title>
          <p>
            <i18n:text i18n:key="intro_s1_begin">Changes are sorted</i18n:text>
<xsl:text> </xsl:text>
            <xsl:if test="$projectInfo.changes.sort!='none'">
              <i18n:translate>
                <i18n:text i18n:key="intro_s1_bythen">by "{0}" and then</i18n:text>
                <i18n:param>
                  <i18n:text>
                    <xsl:value-of select="$projectInfo.changes.sort"/>
                  </i18n:text>
                </i18n:param>
              </i18n:translate>
<xsl:text> </xsl:text>
            </xsl:if>
            <i18n:text i18n:key="intro_s1_end">chronologically with the most recent at the top.</i18n:text>
<xsl:text> </xsl:text>
            <i18n:text i18n:key="intro_s2_begin">These symbols denote the various action types:</i18n:text>
            <xsl:for-each select="//release/action[generate-id()=generate-id(key('types', @type))]">
              <xsl:sort select="@type"/>
              <icon src="{$root}images/{@type}.jpg" alt="{@type}"/>
<xsl:text>=</xsl:text>
              <i18n:text>
                <xsl:value-of select="@type"/>
              </i18n:text>
              <xsl:if test="not(position()=last())">
<xsl:text>, </xsl:text>
              </xsl:if>
            </xsl:for-each>
          </p>
        </section>
        <xsl:choose>
          <xsl:when test="$versionNumber">
            <xsl:choose>
              <xsl:when test="$versionNumber='current'">
                <xsl:apply-templates select="//release[1]"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:apply-templates select="//release[@version=$versionNumber]"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:when>
          <xsl:otherwise>
            <xsl:apply-templates/>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:if test="$projectInfo.changes.includeCommitterList = 'true' and //developers">
          <section id="all-committers">
            <title><i18n:text i18n:key="committers">All Committers</i18n:text></title>
            <p>
              <i18n:text i18n:key="committers_s1">This is a list of all people who have ever participated
           as committers on this project.</i18n:text>
            </p>
            <ul>
              <xsl:for-each select="//developers/person">
                <li><xsl:value-of select="@name"/> (<xsl:value-of select="@id"/>)</li>
              </xsl:for-each>
            </ul>
          </section>
        </xsl:if>
      </body>
    </document>
  </xsl:template>
  <xsl:template match="release">
    <section id="version_{@version}">
      <title><i18n:text i18n:key="version">Version</i18n:text>
<xsl:text> </xsl:text>
        <xsl:value-of select="@version"/> (<xsl:value-of select="@date"/>)</title>
      <xsl:apply-templates select="introduction"/>
      <xsl:for-each select="action[generate-id()=generate-id(key('contexts',concat(../@version, '_', @context)))]">
        <xsl:sort select="@context"/>
        <xsl:variable name="context" select="@context"/>
        <xsl:variable name="title">
          <xsl:choose>
            <xsl:when test="//contexts/context[@id=$context]">
              <xsl:value-of select="//contexts/context[@id=$context]/@title"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="@context"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:choose>
          <xsl:when test="$title != ''">
            <section>
              <title><xsl:value-of select="$title"/></title>
              <ul>
                <xsl:choose>
                  <xsl:when test="contains($projectInfo.changes.sort, 'type')">
                    <xsl:apply-templates select="key('contexts',concat(../@version, '_', @context) )">
                      <xsl:sort select="@type"/>
                    </xsl:apply-templates>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:apply-templates select="key('contexts',concat(../@version, '_', @context) )"/>
                  </xsl:otherwise>
                </xsl:choose>
              </ul>
            </section>
          </xsl:when>
          <xsl:otherwise>
            <ul>
              <xsl:choose>
                <xsl:when test="contains($projectInfo.changes.sort, 'type')">
                  <xsl:apply-templates select="key('contexts',concat(../@version, '_', @context) )">
                    <xsl:sort select="@type"/>
                  </xsl:apply-templates>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:apply-templates select="key('contexts',concat(../@version, '_', @context) )"/>
                </xsl:otherwise>
              </xsl:choose>
            </ul>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
      <xsl:if test="$projectInfo.changes.includeContributorList = 'true'">
        <section>
          <title><i18n:text i18n:key="release_committers">Contributors to this release</i18n:text></title>
          <p>
            <i18n:text i18n:key="release_committers_s1">We thank the following people for their contributions to this release.</i18n:text>
          </p>
          <p>
            <i18n:text i18n:key="release_committers_s2">This is a list of all people who participated as committers:</i18n:text>
            <br/>
            <xsl:for-each select="action[generate-id()=generate-id(key('distinct-committer', concat(../@version, '_', @dev)))]">
              <xsl:sort select="@dev"/>
              <xsl:value-of select="key('committers', @dev)/@name"/>
<xsl:text> (</xsl:text>
              <xsl:value-of select="@dev"/>
<xsl:text>)</xsl:text>
              <xsl:if test="not(position()=last())">
<xsl:text>, </xsl:text>
              </xsl:if>
              <xsl:if test="position()=last()">
<xsl:text>.</xsl:text>
              </xsl:if>
            </xsl:for-each>
          </p>
          <xsl:if test="action[@due-to]">
            <p>
              <i18n:text i18n:key="release_committers_s3">This is a list of other contributors:</i18n:text>
              <br/>
              <xsl:for-each select="action[generate-id()=generate-id(key('distinct-contributor', concat(../@version, '_', @due-to)))]">
                <xsl:sort select="@due-to"/>
                <xsl:value-of select="@due-to"/>
<!-- FIXME: There must be an extra node here from the entries
                  that do not have @due-to. Workaround is to skip position #1 -->
                <xsl:if test="not(position()=1) and not(position()=last())">
<xsl:text>, </xsl:text>
                </xsl:if>
                <xsl:if test="position()=last()">
<xsl:text>.</xsl:text>
                </xsl:if>
              </xsl:for-each>
            </p>
          </xsl:if>
        </section>
      </xsl:if>
    </section>
  </xsl:template>
  <xsl:template match="action">
    <li><icon src="{$root}images/{@type}.jpg" alt="{@type}"/>
      <xsl:apply-templates/>
<xsl:text> </xsl:text>
      <i18n:text i18n:key="committedby">Committed by</i18n:text>
<xsl:text> </xsl:text>
      <xsl:value-of select="@dev"/>
<xsl:text>.</xsl:text>
      <xsl:if test="@due-to and @due-to!=''">
<xsl:text> </xsl:text>
        <i18n:text i18n:key="thanksto">Thanks to</i18n:text>
<xsl:text> </xsl:text>
        <xsl:choose>
          <xsl:when test="@due-to-email and @due-to-email!=''"><link href="mailto:{@due-to-email}">
            <xsl:value-of select="@due-to"/></link>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@due-to"/>
          </xsl:otherwise>
        </xsl:choose>
<xsl:text>.</xsl:text>
      </xsl:if>
      <xsl:if test="@fixes-bug">
<xsl:text> </xsl:text>
        <i18n:text i18n:key="seeissue">See Issue</i18n:text>
<xsl:text> </xsl:text>
        <xsl:call-template name="print-bugs">
          <xsl:with-param name="buglist" select="translate(normalize-space(@fixes-bug),' ','')"/>
        </xsl:call-template>
<!--
     <xsl:choose>
       <xsl:when test="contains(@fixes-bug, ',')">
         <!-<link href="{$bugtracking-url}{translate(normalize-space(@fixes-bug),' ','')}">->
           <link href="{$bugtracking-url}">
             <xsl:text>bugs </xsl:text><xsl:value-of select="normalize-space(@fixes-bug)"/>
           </link>
         </xsl:when>
         <xsl:otherwise>
           <link href="{$bugtracking-url}{@fixes-bug}">
             <xsl:text>bug </xsl:text><xsl:value-of select="@fixes-bug"/>
           </link>
         </xsl:otherwise>
       </xsl:choose>
       -->
<xsl:text>.</xsl:text>
      </xsl:if></li>
  </xsl:template>
<!-- Print each bug id in a comma-separated list -->
  <xsl:template name="print-bugs">
    <xsl:param name="buglist"/>
    <xsl:choose>
      <xsl:when test="contains($buglist, ',')">
        <xsl:variable name="current" select="substring-before($buglist, ',')"/><link href="{concat($bugtracking-url, $current)}">
        <xsl:value-of select="$current"/></link>
<xsl:text>, </xsl:text>
        <xsl:call-template name="print-bugs">
          <xsl:with-param name="buglist" select="substring-after($buglist, ',')"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise><link href="{concat($bugtracking-url, $buglist)}">
        <xsl:value-of select="$buglist"/></link>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="introduction">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="@*|*|text()|processing-instruction()|comment()">
    <xsl:copy>
      <xsl:apply-templates select="@*|*|text()|processing-instruction()|comment()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
