Changeset 4872
- Timestamp:
- 2003-07-03T15:26:58+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/web/interfaces/default/transform/classifier.xsl
r4866 r4872 10 10 11 11 <xsl:output method="html"/> 12 13 12 14 13 <xsl:template name="pageHead"> 15 14 <head> … … 54 53 <xsl:call-template name="greenBar"/> 55 54 </xsl:template> 56 57 <!-- 58 <xsl:template match="classifier|classifierNode" mode="process-children"> 59 <xsl:param name="collName"/> 60 <xsl:param name="serviceName"/> 61 <xsl:if test="classifierNode|documentNode"> 62 <table width='100%'> 63 <xsl:for-each select="classifierNode|documentNode"> 64 <tr><xsl:apply-templates select="."/> 65 <xsl:if test="name()='classifierNode' and @interleave='true'"> 66 <p /> 67 <xsl:apply-templates select="." mode="process-children"/> 68 </tr> 69 </xsl:for-each> 70 </table> 71 <xsl:if test="@interleave='false' and classifierNode"> 72 <table width='100%'> 73 <xsl:for-each select="classifierNode"> 74 <tr><xsl:apply-templates select="." mode="process-children"/></tr> 75 </xsl:for-each> 76 </table> 77 </xsl:if> 78 </xsl:if> 79 </xsl:template> 80 --> 81 82 <!-- default doc node template: icon and title --> 83 <xsl:template match="documentNode"> 84 <xsl:param name="collName"/> 85 <td><a href="{$library_name}?a=d&c={$collName}&d={@nodeID}&dt={@documentType}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td align='left'><xsl:value-of select="metadataList/metadata[@name='Title']"/></td> 86 </xsl:template> 87 88 <!-- default classifier node template: icon + title --> 89 <xsl:template match="classifierNode"> 90 <xsl:param name="collName"/> 91 <xsl:param name="serviceName"/> 92 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&rt=r&s=<xsl:value-of select='$serviceName'/>&c=<xsl:value-of select='$collName'/>&cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><img src='interfaces/default/images/bshelf.gif' border='0' width='20' height='16' /></a></td><td align='left'><xsl:value-of select="metadataList/metadata[@name='Title']"/></td> 93 </xsl:template> 94 95 <!-- recursively process all nodes and documents --> 96 55 97 56 <xsl:template match="classifier"> 98 57 <xsl:param name="collName"/> 99 58 <xsl:param name="serviceName"/> 100 59 <xsl:variable name="cl_name"><xsl:value-of select="@name"/></xsl:variable> 101 <xsl:variable name="interleave"><xsl:value-of select="/page/pageResponse/service/classifierList/classifier[@name=$cl_name]/@documentInterleave"/></xsl:variable>102 <xsl:variable name="orientation"><xsl:value-of select="/page/pageResponse/service/classifierList/classifier[@name=$cl_name]/@orientation"/></xsl:variable>103 <xsl:variable name='mode'><xsl:value-of select='$orientation'/>-<xsl:value-of select='$interleave'/></xsl:variable>104 <!-- cant seem to do this any other way, ie mode='{$mode}' doesn't work -->105 60 <xsl:choose> 106 <xsl:when test="$mode='horizontal-true'"> 107 <xsl:apply-templates select="." mode='horizontal-true'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 61 <xsl:when test="/page/pageResponse/service/classifierList/classifier[@name=$cl_name]/@horizontalAtTop"> 62 <xsl:apply-templates select="." mode="horizontal-at-top"> 63 <xsl:with-param name="collName" select="$collName"/> 64 <xsl:with-param name="serviceName" select="$serviceName"/> 65 </xsl:apply-templates> 108 66 </xsl:when> 109 <xsl:when test="$mode='horizontal-false'"> 110 <xsl:apply-templates select="." mode='horizontal-false'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 111 </xsl:when> 112 <xsl:when test="$mode='vertical-true'"> 113 <xsl:apply-templates select="." mode='vertical-true'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 114 </xsl:when> 115 <xsl:when test="$mode='vertical-false'"> 116 <xsl:apply-templates select="." mode='vertical-false'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 117 </xsl:when> 67 <xsl:otherwise> 68 <xsl:apply-templates select="." mode="default"> 69 <xsl:with-param name="collName" select="$collName"/> 70 <xsl:with-param name="serviceName" select="$serviceName"/> 71 </xsl:apply-templates> 72 </xsl:otherwise> 118 73 </xsl:choose> 119 74 </xsl:template> 120 75 121 <!-- vertical and interleave = true: process all document and classifier children together, recursively --> 122 <xsl:template match="classifier" mode="vertical-true"> 76 77 <xsl:template match="classifier" mode="horizontal-at-top"> 78 <xsl:param name="collName"/> 79 <xsl:param name="serviceName"/> 80 <table width='537'> 81 <tr valign='top'> 82 <xsl:for-each select='classifierNode'> 83 <xsl:apply-templates select='.' mode="horizontal"><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 84 </xsl:for-each> 85 </tr> 86 </table> 87 <table width='537'> 88 <tr valign='top'> 89 <xsl:for-each select='classifierNode'> 90 <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> 91 </xsl:for-each> 92 </tr> 93 </table> 94 <xsl:call-template name="greenBar"/> 95 </xsl:template> 96 97 <xsl:template match="classifier" mode="default"> <!-- the default --> 123 98 <xsl:param name="collName"/> 124 99 <xsl:param name="serviceName"/> … … 134 109 <xsl:call-template name="greenBar"/> 135 110 </xsl:template> 111 <!-- recursively process all nodes and documents --> 136 112 137 <!--vertical and interleave = false: process all classifier nodes, recursively, then do the document ones separately --> 138 <xsl:template match="classifier" mode="vertical-false"> 113 <xsl:template match="documentNode"> 114 <xsl:param name="collName"/> 115 <td><a href="{$library_name}?a=d&c={$collName}&d={@nodeID}&dt={@documentType}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td> 116 </xsl:template> 117 118 <!-- icon + title template--> 119 <xsl:template match="classifierNode"> 139 120 <xsl:param name="collName"/> 140 121 <xsl:param name="serviceName"/> 141 <!-- process the nodes and documents separately--> 142 <table width='537'> 143 <xsl:for-each select='classifierNode'> 144 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/></xsl:apply-templates></tr> 145 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-node-children'><xsl:with-param name='collName' select='$collName'/></xsl:apply-templates></tr></xsl:for-each> 146 </table> 147 <xsl:if test="descendant::documentNode"><!--netscape doesn't like empty tables--> 148 <table width='537'> 149 <xsl:for-each select='descendant::documentNode'> 150 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/></xsl:apply-templates></tr> 151 </xsl:for-each> 152 </table> 153 </xsl:if> 154 <xsl:call-template name="greenBar"/> 122 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&rt=r&s=<xsl:value-of select='$serviceName'/>&c=<xsl:value-of select='$collName'/>&cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><img src='interfaces/default/images/bshelf.gif' border='0' width='20' height='16' /></a></td><td align='left'><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td> 155 123 </xsl:template> 156 157 158 <xsl:template match="classifier " mode="horizontal-true">124 125 <!-- the title is a link: an alternative template --> 126 <xsl:template match="classifierNode" mode="horizontal"> 159 127 <xsl:param name="collName"/> 160 128 <xsl:param name="serviceName"/> 161 <!-- process the nodes and documents together --> 162 163 <table> 164 <tr valign='top'> 165 <xsl:for-each select='classifierNode|documentNode'> 166 <xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 167 </xsl:for-each> 168 </tr> 169 <tr valign='top'> 170 <xsl:for-each select='classifierNode|documentNode'> 171 <td><xsl:text> </xsl:text></td> <!-- the empty cell for the icon --> 172 <xsl:choose><xsl:when test='name()="classifierNode" and classifierNode|documentNode'> 173 <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> 174 </xsl:when> 175 <xsl:otherwise> 176 <td><xsl:text> </xsl:text></td> 177 </xsl:otherwise> 178 </xsl:choose> 179 </xsl:for-each> 180 </tr> 181 </table> 182 <xsl:call-template name="greenBar"/> 129 <xsl:choose> 130 <xsl:when test="classifierNode|documentNode"><!-- the opened one --> 131 <td><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></td> 132 </xsl:when> 133 <xsl:otherwise> 134 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&rt=r&s=<xsl:value-of select='$serviceName'/>&c=<xsl:value-of select='$collName'/>&cl=<xsl:value-of select='@nodeID'/></xsl:attribute><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></a></td> 135 </xsl:otherwise> 136 </xsl:choose> 183 137 </xsl:template> 184 185 <xsl:template match="classifier" mode="horizontal-false">186 <xsl:param name="collName"/>187 <xsl:param name="serviceName"/>188 <!-- process the nodes and documents separately-->189 190 <table width='537'><tr valign='top'>191 <xsl:for-each select='classifierNode'>192 <xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates>193 </xsl:for-each></tr>194 <tr valign='top'>195 <xsl:for-each select='classifierNode'>196 <xsl:apply-templates select='.' mode='process-node-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></xsl:for-each></tr>197 </table>198 <xsl:if test="descendant::documentNode"> <!-- netscape complains about an empty table-->199 <table width='537'>200 <xsl:for-each select='descendant::documentNode'>201 <tr valign='top'><xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/></xsl:apply-templates></tr>202 </xsl:for-each>203 </table>204 </xsl:if>205 <xsl:call-template name="greenBar"/>206 </xsl:template>207 208 <!-- default doc node template: icon and title -->209 <!-- <xsl:template match="documentNode">210 <xsl:param name="collName"/>211 <td><a href="{$library_name}?a=d&c={$collName}&d={@nodeID}&dt={@documentType}"><xsl:apply-templates select="." mode="displayNodeIcon"/></a></td><td><xsl:value-of select="metadataList/metadata[@name='Title']"/></td>212 </xsl:template>-->213 138 214 <!-- default classifier node template: icon + title -->215 <!-- <xsl:template match="classifierNode">216 <xsl:param name="collName"/>217 <xsl:param name="serviceName"/>218 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&rt=r&s=<xsl:value-of select='$serviceName'/>&c=<xsl:value-of select='$collName'/>&cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><img src='interfaces/default/images/bshelf.gif' border='0' width='20' height='16' /></a></td><td align='left'><xsl:value-of select="metadataList/metadata[@name='Title']"/></td>219 </xsl:template>-->220 221 <!-- an alternative classifier node template: the title is a link -->222 <!--223 <xsl:template match="classifierNode">224 <xsl:param name="collName"/>225 <xsl:param name="serviceName"/>226 <td><a><xsl:attribute name='href'><xsl:value-of select='$library_name'/>?a=b&rt=r&s=<xsl:value-of select='$serviceName'/>&c=<xsl:value-of select='$collName'/>&cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute><xsl:value-of select="metadataList/metadata[@name='Title']"/></a></td>227 </xsl:template>228 -->229 139 230 140 <!-- processing for the recursive bit --> 231 141 <!-- if interleave=true, process all child nodes and documents, else just do nodes --> 232 142 143 233 144 <xsl:template match="classifierNode" mode="process-all-children"> 234 145 <xsl:param name="collName"/> 235 146 <xsl:param name="serviceName"/> 236 <td><p/> 237 <!-- only do this if there are children --> 238 <xsl:if test="classifierNode|documentNode"> 239 <xsl:choose> 240 <xsl:when test='@orientation="vertical"'> 241 <table> 242 <xsl:for-each select='classifierNode|documentNode'> 243 <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> 244 <xsl:if test='name()="classifierNode"'> 245 <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:apply-templates></tr> 246 </xsl:if> 247 </xsl:for-each> 248 </table> 249 </xsl:when> 250 <xsl:otherwise> <!-- horizontal --> 251 <table> 252 <tr valign='top'> 253 <xsl:for-each select='classifierNode|documentNode'> 254 <xsl:apply-templates select='.'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 255 <xsl:if test='name()="classifierNode"'> 256 <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> 257 </xsl:if> 258 </xsl:for-each> 259 </tr> 260 </table> 261 </xsl:otherwise> 262 </xsl:choose> 263 </xsl:if> 264 </td> 147 <!-- only do this if there are children --> 148 <xsl:if test="classifierNode|documentNode"> 149 <td> 150 <table> 151 <xsl:for-each select='classifierNode|documentNode'> 152 <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> 153 <xsl:if test='name()="classifierNode"'> 154 <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:apply-templates></tr> 155 </xsl:if> 156 </xsl:for-each> 157 </table> 158 </td> 159 </xsl:if> 265 160 </xsl:template> 266 267 <xsl:template match="classifierNode" mode="process-node-children"> 268 <xsl:param name="collName"/> 269 <xsl:param name="serviceName"/> 270 <td><p/> 271 <xsl:if test='classifierNode'><!-- only do this if there are child nodes - netscape craps out at an empty table like <table /> --> 272 <xsl:choose> 273 <xsl:when test='@orientation="vertical"'> 274 <table> 275 <xsl:for-each select='classifierNode'> 276 <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> 277 <tr valign='top'><td><xsl:text> </xsl:text></td><xsl:apply-templates select='.' mode='process-node-children'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates></tr> 278 </xsl:for-each> 279 </table> 280 </xsl:when> 281 <xsl:otherwise> 282 <table> 283 <tr valign='top'><xsl:apply-templates select='classifierNode'><xsl:with-param name='collName' select='$collName'/><xsl:with-param name='serviceName' select='$serviceName'/></xsl:apply-templates> 284 <xsl:apply-templates select='classifierNode' mode='process-node-children'><xsl:with-param name='collName' select='$collName'/></xsl:apply-templates></tr> 285 </table> 286 </xsl:otherwise> 287 </xsl:choose> 288 </xsl:if> 289 </td> 290 </xsl:template> 291 161 292 162 </xsl:stylesheet> 293 163
Note:
See TracChangeset
for help on using the changeset viewer.