source: trunk/gsdl3/web/interfaces/default/transform/classifiertools.xsl@ 6308

Last change on this file since 6308 was 5687, checked in by kjdon, 21 years ago

changes to get the document linking back to the place in the browse list it was clicked from

  • Property svn:keywords set to Author Date Id Revision
File size: 6.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:java="http://xml.apache.org/xslt/java"
5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6 extension-element-prefixes="java util"
7 exclude-result-prefixes="java util">
8
9 <xsl:template match="classifier">
10 <xsl:param name="collName"/>
11 <xsl:param name="serviceName"/>
12 <xsl:variable name="cl_name"><xsl:value-of select="@name"/></xsl:variable>
13 <xsl:choose>
14 <xsl:when test="/page/pageResponse/service/classifierList/classifier[@name=$cl_name]/@horizontalAtTop">
15 <xsl:apply-templates select="." mode="horizontal-at-top">
16 <xsl:with-param name="collName" select="$collName"/>
17 <xsl:with-param name="serviceName" select="$serviceName"/>
18 </xsl:apply-templates>
19 </xsl:when>
20 <xsl:otherwise>
21 <xsl:apply-templates select="." mode="default">
22 <xsl:with-param name="collName" select="$collName"/>
23 <xsl:with-param name="serviceName" select="$serviceName"/>
24 </xsl:apply-templates>
25 </xsl:otherwise>
26 </xsl:choose>
27 </xsl:template>
28
29
30 <xsl:template match="classifier" mode="horizontal-at-top">
31 <xsl:param name="collName"/>
32 <xsl:param name="serviceName"/>
33 <xsl:choose>
34 <xsl:when test="classifierNode">
35 <table width='100%'>
36 <tr valign='top'>
37 <xsl:for-each select='classifierNode'>
38 <xsl:apply-templates select='.' mode="horizontal"><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>
39 </xsl:for-each>
40 </tr>
41 </table>
42 <table width='100%'>
43 <tr valign='top'>
44 <xsl:for-each select='classifierNode'>
45 <xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>
46 </xsl:for-each>
47 </tr>
48 </table>
49 </xsl:when>
50 <xsl:otherwise>
51 <!-- there were no classifier nodes -->
52 <table width='100%'>
53 <xsl:for-each select='documentNode'>
54 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
55 </xsl:for-each>
56 </table>
57 </xsl:otherwise>
58 </xsl:choose>
59 <xsl:call-template name="dividerBar"/>
60 </xsl:template>
61
62 <xsl:template match="classifier" mode="default"> <!-- the default -->
63 <xsl:param name="collName"/>
64 <xsl:param name="serviceName"/>
65 <table width='100%'>
66 <xsl:for-each select='classifierNode|documentNode'>
67 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
68 <xsl:if test='name()="classifierNode"'>
69 <!--recurse into the children-->
70 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
71 </xsl:if>
72 </xsl:for-each>
73 </table>
74 <xsl:call-template name="dividerBar"/>
75 </xsl:template>
76 <!-- recursively process all nodes and documents -->
77
78 <xsl:template match="documentNode">
79 <xsl:param name="collName"/>
80 <xsl:param name="serviceName"/>
81 <td><a href="{$library_name}?a=d&amp;c={$collName}&amp;d={@nodeID}&amp;dt={@docType}&amp;p.a=b&amp;p.s={$serviceName}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
82 </xsl:template>
83
84 <!-- icon + title template-->
85 <xsl:template match="classifierNode">
86 <xsl:param name="collName"/>
87 <xsl:param name="serviceName"/>
88 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&amp;rt=r&amp;s=<xsl:value-of select='$serviceName'/>&amp;c=<xsl:value-of select='$collName'/>&amp;cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><xsl:call-template name="bookshelfimg"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
89 </xsl:template>
90
91 <!-- the title is a link: an alternative template -->
92 <xsl:template match="classifierNode" mode="horizontal">
93 <xsl:param name="collName"/>
94 <xsl:param name="serviceName"/>
95 <xsl:choose>
96 <xsl:when test="classifierNode|documentNode"><!-- the opened one -->
97 <td><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td>
98 </xsl:when>
99 <xsl:otherwise>
100 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&amp;rt=r&amp;s=<xsl:value-of select='$serviceName'/>&amp;c=<xsl:value-of select='$collName'/>&amp;cl=<xsl:value-of select='@nodeID'/></xsl:attribute><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></a></td>
101 </xsl:otherwise>
102 </xsl:choose>
103 </xsl:template>
104
105
106<!-- processing for the recursive bit -->
107<!-- if interleave=true, process all child nodes and documents, else just do nodes -->
108
109
110 <xsl:template match="classifierNode" mode="process-all-children">
111 <xsl:param name="collName"/>
112 <xsl:param name="serviceName"/>
113 <!-- only do this if there are children -->
114 <xsl:if test="classifierNode|documentNode">
115 <td>
116 <table>
117 <xsl:for-each select='classifierNode|documentNode'>
118 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
119 <xsl:if test='name()="classifierNode"'>
120 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-all-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr>
121 </xsl:if>
122 </xsl:for-each>
123 </table>
124 </td>
125 </xsl:if>
126 </xsl:template>
127
128</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.