source: main/trunk/greenstone3/web/interfaces/default/transform/pages/classifier.xsl@ 27876

Last change on this file since 27876 was 27876, checked in by davidb, 11 years ago

title, lat and long were missing from jsonNodes block. Added back in.

File size: 11.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 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
8 extension-element-prefixes="java util"
9 exclude-result-prefixes="java util gsf">
10
11 <!-- use the 'main' layout -->
12 <xsl:import href="layouts/main.xsl"/>
13 <xsl:import href="classifiertools.xsl"/>
14
15 <!-- set page title -->
16 <xsl:template name="pageTitle"><gslib:serviceName/></xsl:template>
17
18 <!-- set page breadcrumbs -->
19 <xsl:template name="breadcrumbs"><gslib:siteLink/><gslib:rightArrow/><gslib:collectionNameLinked/><gslib:rightArrow/></xsl:template>
20
21 <!-- optional cgi-params for links to document pages -->
22 <xsl:variable name="opt-doc-link-args"></xsl:variable>
23 <!-- the page content -->
24 <xsl:template match="/page/pageResponse">
25 <xsl:call-template name="classifierPre"/>
26
27 <script type="text/javascript" src="interfaces/{$interface_name}/js/classifier_scripts.js"><xsl:text> </xsl:text></script>
28 <script type="text/javascript">$(window).load(openStoredClassifiers);</script>
29
30 <!-- this right sidebar -->
31 <xsl:if test="$berryBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))">
32 <div id="rightSidebar">
33 <xsl:if test="$berryBasketOn">
34 <!-- show the berry basket if it's turned on -->
35 <gslib:berryBasket/>
36 <xsl:text> </xsl:text>
37 </xsl:if>
38
39 <xsl:if test="$documentBasketOn">
40 <gslib:documentBasket/>
41 <xsl:text> </xsl:text>
42 </xsl:if>
43 </div>
44 </xsl:if>
45
46 <!--
47 show the clasifier results -
48 you can change the appearance of the results by editing
49 the two templates at the bottom of this file
50 -->
51 <div id="results">
52 <xsl:variable name="collName"><xsl:value-of select="/page/pageRequest/paramList/param[@name='c']/@value"/></xsl:variable>
53 <xsl:variable name="serviceName"><xsl:value-of select="service/@name"/></xsl:variable>
54
55 <xsl:call-template name="classifierResultsPre"/>
56
57 <xsl:apply-templates select="classifier">
58 <xsl:with-param name="collName" select="$collName"/>
59 <xsl:with-param name="serviceName" select="$serviceName"/>
60 </xsl:apply-templates>
61 </div>
62
63 <div class="clear"><xsl:text> </xsl:text></div>
64 </xsl:template>
65
66 <!--
67 TEMPLATE FOR DOCUMENTS
68 -->
69 <xsl:template match="documentNode"><!-- priority="3"-->
70 <!-- The book icon -->
71 <td>
72 <img>
73 <xsl:attribute name="src">
74 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'book_image')"/>
75 </xsl:attribute>
76 </img>
77 </td>
78 <!-- The document link -->
79 <td>
80 <a>
81 <xsl:choose>
82 <xsl:when test="@docType = 'paged'">
83 <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"/></xsl:attribute>
84 </xsl:when>
85 <xsl:otherwise>
86 <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>
87 </xsl:otherwise>
88 </xsl:choose>
89 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
90 </a>
91 </td>
92 <!-- The berry (optional) -->
93 <td>
94 <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
95 </td>
96 </xsl:template>
97
98 <!--
99 TEMPLATE FOR GROUPS OF DOCUMENTS
100 -->
101 <xsl:template match="classifierNode"><!-- priority="3"-->
102
103 <table id="title{@nodeID}"><tbody><tr>
104 <!-- Bookshelf icon -->
105 <td>
106 <img>
107 <xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')"/></xsl:attribute>
108 </img>
109 </td>
110 <!-- Link title -->
111 <td>
112 <a href="javascript:toggleSection('{@nodeID}');">
113 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/>
114 </a>
115 </td>
116 </tr></tbody></table>
117
118 <!-- Show any documents or sub-groups in this group -->
119 <xsl:if test="documentNode|classifierNode">
120 <div id="div{@nodeID}" class="classifierContainer">
121 <table>
122 <xsl:for-each select="documentNode|classifierNode">
123 <tr>
124 <xsl:apply-templates select="."/>
125 </tr>
126 </xsl:for-each>
127 </table>
128 </div>
129 </xsl:if>
130 </xsl:template>
131
132 <xsl:template name="classifierPre">
133 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
134 <xsl:call-template name="mapFeaturesJSONNodes"/>
135 </xsl:if>
136
137 <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
138 <xsl:call-template name="panoramaViewerFeaturesJSONNodes"/>
139 </xsl:if>
140
141 </xsl:template>
142
143 <xsl:template name="classifierResultsPre">
144 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
145 <xsl:call-template name="mapFeaturesMap"/>
146 </xsl:if>
147 <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
148 <xsl:call-template name="panoramaViewerFeatures"/>
149 </xsl:if>
150 </xsl:template>
151
152 <xsl:template name="mapFeaturesJSONNodes">
153 <div id="jsonNodes" style="display:none;">
154 <xsl:text>[</xsl:text>
155 <xsl:for-each select="//documentNode">
156 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
157 <xsl:text>{</xsl:text>
158 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text>
159 <xsl:value-of select="@nodeID"/>
160 <xsl:text disable-output-escaping="yes">",</xsl:text>
161
162 <xsl:text disable-output-escaping="yes">"title":"</xsl:text>
163 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
164 <xsl:text disable-output-escaping="yes">",</xsl:text>
165
166 <xsl:text disable-output-escaping="yes">"lat":</xsl:text>
167 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/>
168 <xsl:text>,</xsl:text>
169
170 <xsl:text disable-output-escaping="yes">"lng":</xsl:text>
171 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
172
173
174 <xsl:text>}</xsl:text>
175 <xsl:if test="not(position() = count(//documentNode))">
176 <xsl:text>,</xsl:text>
177 </xsl:if>
178 </xsl:if>
179 </xsl:for-each>
180 <xsl:text>]</xsl:text>
181 </div>
182
183 <!-- Although these aren't visible, they are necessary because it forces Greenstone to include this metadata in the page xml -->
184 <gsf:metadata name="Latitude" hidden="true"/>
185 <gsf:metadata name="Longitude" hidden="true"/>
186 </xsl:template>
187
188 <xsl:template name="mapFeaturesMap">
189 <div id="map_canvas" class="map_canvas_half"><xsl:text> </xsl:text></div>
190 </xsl:template>
191
192 <xsl:template name="panoramaViewerFeaturesJSONNodes">
193 <div id="jsonPanoNodes" style="display:none;">
194 <xsl:text>[</xsl:text>
195 <xsl:for-each select="//documentNode">
196 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'] and metadataList/metadata[@name = 'PhotoType']='Panorama'">
197 <xsl:text>{</xsl:text>
198 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text>
199 <xsl:text disable-output-escaping="yes">"source":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Source']"/>"<xsl:text>,</xsl:text>
200 <xsl:text disable-output-escaping="yes">"lat":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/><xsl:text>,</xsl:text>
201 <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
202 <xsl:text>}</xsl:text>
203 <xsl:if test="not(position() = count(//documentNode))">
204 <xsl:text>,</xsl:text>
205 </xsl:if>
206 </xsl:if>
207 </xsl:for-each>
208 <xsl:text>]</xsl:text>
209 </div>
210 <!-- Although these aren't visible, they are necessary because it forces Greenstone to include this metadata in the page xml -->
211 <gsf:metadata name="Latitude" hidden="true"/>
212 <gsf:metadata name="Longitude" hidden="true"/>
213 <gsf:metadata name="Image" hidden="true"/>
214 <gsf:metadata name="SourceFile" hidden="true"/>
215 <gsf:metadata name="assocfilepath" hidden="true"/>
216 <gsf:metadata name="PhotoType" hidden="true"/>
217 <gsf:metadata name="cv.rotation" hidden="true"/>
218 <gsf:metadata name="ex.Angle" hidden="true"/>
219 <gsf:metadata name="Angle" hidden="true"/>
220
221 </xsl:template>
222
223 <xsl:template name="panoramaViewerFeatures">
224
225
226 <div id="asdf">
227 <div id="pano-container" class="pano_canvas_half" style="position: relative">
228 <div style="position: absolute; top: 0px; right: 0px;"><a id="gofullscreen" style="background-color: #008000;" href="">Go Fullscreen</a></div>
229 <xsl:text> </xsl:text>
230 </div>
231 </div>
232
233
234
235
236 <gsf:script>
237<![CDATA[
238 var cgiargs = '<xsl:template name="mainTemplate"> \
239 <html> \
240 <head> \
241 <xsl:call-template name="create-html-header"/> \
242 </head> \
243 \
244 <body><xsl:call-template name="textDirectionAttribute"/><xsl:call-template name="actionClass"/> \
245 <div id="containerXX"> \
246 <div id="gs_contentXX"> \
247 <xsl:apply-templates select="/page"/> \
248 </div> \
249 </div> \
250 </body> \
251 </html> \
252 </xsl:template> \
253 \
254 <xsl:template match="/page/pageResponse"> \
255 <xsl:call-template name="panoramaViewerFeaturesJSONNodes"/> \
256 <div id="asdf"> \
257 <div id="pano-container" class="pano_canvas_fullscreen"> \
258 <xsl:text> </xsl:text> \
259 </div> \
260 </div> \
261 </xsl:template>';
262
263 // encodeURIComponent(cgiargs);
264 // cgiargs.replace(/ /g,"%20")
265
266 var full_url = document.location + "?ilt=" + escape(cgiargs);
267 $('#gofullscreen').attr('href',full_url);
268]]>
269 </gsf:script>
270
271
272 </xsl:template>
273
274</xsl:stylesheet>
275
Note: See TracBrowser for help on using the repository browser.