source: main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl@ 24512

Last change on this file since 24512 was 24512, checked in by sjm84, 13 years ago

Fixed an error that was causing the footer to sometimes be incorrectly placed on the page

File size: 8.0 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 xmlns:gslib="http://www.greenstone.org/skinning"
7 extension-element-prefixes="java util"
8 exclude-result-prefixes="java util">
9
10 <!-- use the 'main' layout -->
11 <xsl:include href="layouts/main.xsl"/>
12 <xsl:include href="classifiertools.xsl"/>
13
14 <!-- set page title -->
15 <xsl:template name="pageTitle"><gslib:serviceName/></xsl:template>
16
17 <!-- set page breadcrumbs -->
18 <xsl:template name="breadcrumbs"><gslib:siteLink/><gslib:rightArrow/> <gslib:collectionNameLinked/><gslib:rightArrow/></xsl:template>
19
20 <!-- the page content -->
21 <xsl:template match="/page/pageResponse">
22 <xsl:call-template name="classifierLoadScript"/>
23 <!-- this right sidebar -->
24 <xsl:if test="$berryBasketOn or $documentBasketOn">
25 <div id="rightSidebar">
26 <xsl:if test="$berryBasketOn">
27 <!-- show the berry basket if it's turned on -->
28 <gslib:berryBasket/>
29 <xsl:text> </xsl:text>
30 </xsl:if>
31
32 <xsl:if test="$documentBasketOn">
33 <gslib:documentBasket/>
34 <xsl:text> </xsl:text>
35 </xsl:if>
36 </div>
37 </xsl:if>
38
39 <!--
40 show the clasifier results -
41 you can change the appearance of the results by editing
42 the two templates at the bottom of this file
43 -->
44 <div id="results">
45 <xsl:variable name="collName"><xsl:value-of select="/page/pageRequest/paramList/param[@name='c']/@value"/></xsl:variable>
46 <xsl:variable name="serviceName"><xsl:value-of select="service/@name"/></xsl:variable>
47
48 <xsl:apply-templates select="classifier">
49 <xsl:with-param name="collName" select="$collName"/>
50 <xsl:with-param name="serviceName" select="$serviceName"/>
51 </xsl:apply-templates>
52 </div>
53 <div class="clear"><xsl:text> </xsl:text></div>
54 </xsl:template>
55
56
57 <!--
58 TEMPLATE FOR DOCUMENTS
59 -->
60
61 <!--<xsl:template match="documentNode" priority="3">-->
62 <!-- show the document details -->
63 <!--<li class="document">
64 <a>
65 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;ed=1</xsl:attribute><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
66 </a>
67 </li>
68 </xsl:template>-->
69
70 <xsl:template match="documentNode"><!-- priority="3"-->
71 <!-- The book icon -->
72 <td>
73 <img>
74 <xsl:attribute name="src">
75 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'book_image')"/>
76 </xsl:attribute>
77 </img>
78 </td>
79 <!-- The document link -->
80 <td>
81 <a>
82 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;ed=1</xsl:attribute>
83 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
84 </a>
85 </td>
86 <!-- The berry (optional) -->
87 <td>
88 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
89 </td>
90 </xsl:template>
91
92
93 <!--
94 TEMPLATE FOR GROUPS OF DOCUMENTS
95 -->
96 <xsl:template match="classifierNode"><!-- priority="3"-->
97
98 <table id="title{@nodeID}"><tbody><tr>
99 <!-- Expand/collapse button -->
100 <td class="headerTD">
101 <img id="toggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">
102 <xsl:attribute name="src">
103 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/>
104 </xsl:attribute>
105 </img>
106 </td>
107 <!-- Bookshelf icon -->
108 <td>
109 <img>
110 <xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')"/></xsl:attribute>
111 </img>
112 </td>
113 <!-- Link title -->
114 <td>
115 <a href="javascript:toggleSection('{@nodeID}');">
116 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
117 </a>
118 </td>
119 </tr></tbody></table>
120
121 <!-- Show any documents or sub-groups in this group -->
122 <xsl:if test="documentNode|classifierNode">
123 <div id="div{@nodeID}" class="classifierContainer">
124 <table>
125 <xsl:for-each select="documentNode|classifierNode">
126 <tr>
127 <xsl:apply-templates select="."/>
128 </tr>
129 </xsl:for-each>
130 </table>
131 </div>
132 </xsl:if>
133 </xsl:template>
134
135 <xsl:template name="classifierLoadScript">
136 <script type="text/javascript">
137 <xsl:text disable-output-escaping="yes">
138 var collapseImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/><xsl:text disable-output-escaping="yes">";
139 var expandImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/><xsl:text disable-output-escaping="yes">";
140 var loadingImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'loading_image')"/><xsl:text disable-output-escaping="yes">";
141 var berryBaskets = "</xsl:text><xsl:value-of select="/page/pageRequest/paramList/param[@name='berrybasket']/@value"/><xsl:text disable-output-escaping="yes">";
142 var inProgress = new Array();
143
144 function isExpanded(sectionID)
145 {
146 var divElem = document.getElementById("div" + sectionID);
147 if(!divElem.style.display || divElem.style.display == "block")
148 {
149 return true;
150 }
151 return false;
152 }
153
154 function toggleSection(sectionID)
155 {
156 var section = document.getElementById("div" + sectionID);
157 var sectionToggle = document.getElementById("toggle" + sectionID);
158
159 if(section)
160 {
161 if(isExpanded(sectionID))
162 {
163 section.style.display = "none";
164 sectionToggle.setAttribute("src", expandImageURL);
165 }
166 else
167 {
168 section.style.display = "block";
169 sectionToggle.setAttribute("src", collapseImageURL);
170 }
171 }
172 else
173 {
174 httpRequest(sectionID);
175 }
176 }
177
178 function httpRequest(sectionID)
179 {
180 if(!inProgress[sectionID])
181 {
182 inProgress[sectionID] = true;
183 var httpRequest;
184 if (window.XMLHttpRequest) {
185 httpRequest = new XMLHttpRequest();
186 }
187 else if (window.ActiveXObject) {
188 httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
189 }
190
191 var sectionToggle = document.getElementById("toggle" + sectionID);
192 sectionToggle.setAttribute("src", loadingImageURL);
193
194 var url = document.URL;
195 url = url.replace(/(&amp;|\?)cl=[a-z\.0-9]+/gi, "$1cl=" + sectionID + "&amp;excerptid=div" + sectionID);
196
197 if(berryBaskets == "on")
198 {
199 url = url + "&amp;berrybasket=on";
200 }
201
202 httpRequest.open('GET', url, true);
203 httpRequest.onreadystatechange = function()
204 {
205 if (httpRequest.readyState == 4)
206 {
207 if (httpRequest.status == 200)
208 {
209 var newDiv = document.createElement("div");
210 var sibling = document.getElementById("title" + sectionID);
211 var parent = sibling.parentNode;
212
213 if(sibling.nextSibling)
214 {
215 parent.insertBefore(newDiv, sibling.nextSibling);
216 }
217 else
218 {
219 parent.appendChild(newDiv);
220 }
221
222 newDiv.innerHTML = httpRequest.responseText;
223 sectionToggle.setAttribute("src", collapseImageURL);
224
225 if(berryBaskets == "on")
226 {
227 checkout();
228 }
229 }
230 else
231 {
232 sectionToggle.setAttribute("src", expandImageURL);
233 }
234 inProgress[sectionID] = false;
235 }
236 }
237 httpRequest.send();
238 }
239 }
240 </xsl:text>
241 </script>
242 </xsl:template>
243
244</xsl:stylesheet>
245
Note: See TracBrowser for help on using the repository browser.