diff options
Diffstat (limited to 'xslt/report-templates/Loan_View.xsl')
-rw-r--r-- | xslt/report-templates/Loan_View.xsl | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/xslt/report-templates/Loan_View.xsl b/xslt/report-templates/Loan_View.xsl new file mode 100644 index 0000000..d52f74c --- /dev/null +++ b/xslt/report-templates/Loan_View.xsl @@ -0,0 +1,201 @@ +<?xml version="1.0"?> +<!-- WARNING: Tellico uses tc as the internal namespace declaration, and it must be identical here!! --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tc="http://periapsis.org/tellico/" + xmlns:str="http://exslt.org/strings" + extension-element-prefixes="str" + exclude-result-prefixes="tc" + version="1.0"> + +<!-- + =================================================================== + Tellico XSLT file - Group View Report + + Copyright (C) 2005-2006 Robby Stephenson - [email protected] + + This XSLT stylesheet is designed to be used with the 'Tellico' + application, which can be found at http://www.periapsis.org/tellico/ + + =================================================================== +--> + +<!-- import common templates --> +<!-- location depends on being installed correctly --> +<xsl:import href="../tellico-common.xsl"/> + +<xsl:output method="html" + indent="yes" + doctype-public="-//W3C//DTD HTML 4.01//EN" + doctype-system="http://www.w3.org/TR/html4/strict.dtd" + encoding="utf-8"/> + +<xsl:param name="filename"/> +<xsl:param name="cdate"/> + +<!-- Sort using user's preferred language --> +<xsl:param name="lang"/> + +<xsl:key name="entriesById" match="tc:entry" use="@id"/> +<xsl:key name="loansByDate" match="tc:loan" use="@dueDate"/> + +<xsl:template match="/"> + <xsl:apply-templates select="tc:tellico"/> +</xsl:template> + +<xsl:template match="tc:tellico"> + <html> + <head> + <style type="text/css"> + body { + font-family: sans-serif; + background-color: #fff; + } + #header-left { + margin-top: 0; + float: left; + font-size: 80%; + font-style: italic; + } + #header-right { + margin-top: 0; + float: right; + font-size: 80%; + font-style: italic; + } + h1.colltitle { + margin: 0px; + padding-bottom: 5px; + font-size: 2em; + text-align: center; + } + table { + margin-left: auto; + margin-right: auto; + margin-bottom: 30px; + } + td.groupName { + margin-top: 10px; + margin-bottom: 2px; + padding-left: 4px; + background: #ccc; + font-size: 1.1em; + font-weight: bolder; + } + td.fieldName { + margin-top: 10px; + margin-bottom: 2px; + color: #666; + background-color: #ccc; + font-size: 1.1em; + text-align: center; + font-style: italic; + padding-left: 4px; + padding-right: 4px; + } + tr.r0 { + } + tr.r1 { + background-color: #eee; + } + td.field { + margin: 0px; + padding: 0px 10px 0px 10px; + border: 1px solid #eee; + text-align: left; + } + </style> + <title>Tellico</title> + </head> + <body> + <xsl:apply-templates select="tc:collection"/> + </body> + </html> +</xsl:template> + +<xsl:template match="tc:collection"> + <p id="header-left"><xsl:value-of select="$filename"/></p> + <p id="header-right"><xsl:value-of select="$cdate"/></p> + <h1 class="colltitle"> + <xsl:value-of select="@title"/> + </h1> + + <table> + <tbody> + <!-- TODO: this would need to be fixed for multiple collections --> + <xsl:for-each select="../tc:borrowers/tc:borrower/tc:loan[generate-id(.)=generate-id(key('loansByDate', @dueDate)[1])]"> + <xsl:sort lang="$lang" select="@dueDate"/> + <tr> + <td class="groupName"> + <xsl:value-of select="@dueDate"/> + </td> + <td class="fieldName"><i18n>Borrower</i18n></td> + <td class="fieldName"><i18n>Loan Date</i18n></td> + <td class="fieldName"><i18n>Note</i18n></td> + </tr> + + <xsl:for-each select="key('loansByDate', @dueDate)"> + <tr class="r{position() mod 2}"> + <td class="field"> + <xsl:value-of select="key('entriesById', @entryRef)//tc:title"/> + </td> + <td class="field"> + <xsl:value-of select="../@name"/> + </td> + <td class="field"> + <xsl:value-of select="@loanDate"/> + </td> + <td class="field"> + <p><xsl:value-of select="text()"/></p> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + + </tbody> + </table> + + <table> + <tbody> + <!-- TODO: this would need to be fixed for multiple collections --> + <xsl:for-each select="../tc:borrowers/tc:borrower"> + <xsl:sort lang="$lang" select="@name"/> + <tr> + <td class="groupName"> + <xsl:value-of select="@name"/> + </td> + <td class="fieldName"><i18n>Loan Date</i18n></td> + <td class="fieldName"><i18n>Due Date</i18n></td> + <td class="fieldName"><i18n>Note</i18n></td> + </tr> + + <xsl:for-each select="tc:loan"> + <tr class="r{position() mod 2}"> + <td class="field"> + <xsl:value-of select="key('entriesById', @entryRef)//tc:title"/> + </td> + <td class="field"> + <xsl:value-of select="@loanDate"/> + </td> + <td class="field"> + <xsl:value-of select="@dueDate"/> + </td> + <td class="field"> + <p><xsl:value-of select="text()"/></p> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + + </tbody> + </table> + + <!-- + <h4><a href="http://www.periapsis.org/tellico/"><i18n>Generated by Tellico</i18n></a></h4> +--> +</xsl:template> + +</xsl:stylesheet> +<!-- Local Variables: --> +<!-- sgml-indent-step: 1 --> +<!-- sgml-indent-data: 1 --> +<!-- End: --> |