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

Last change on this file since 24340 was 24340, checked in by ak19, 13 years ago

Getting a normal hierarchical classifier view to work in oran skin: this will be the look for the the default format statements that are present in collectionconfig.xml. Remove those format statements and Sam's much better interface will be displayed. To get things to work, needed to include some template match statements from default/gs3library as these were missing for dev/oran, including lots of elements from classifiertools.xsl. Dev therefore has a new file now: its own classifiertools.xsl.

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