source: main/trunk/greenstone3/web/interfaces/default/transform/pages/document.xsl@ 25949

Last change on this file since 25949 was 25949, checked in by davidb, 12 years ago

Two layers of div tags added around the 'simple' document view, to provide the same ids 'gs-document' and 'gs-document-text' as in the more complex document views

File size: 23.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 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="layouts/toc.xsl"/>
14
15 <!-- style includes global params interface_name, library_name -->
16 <xsl:include href=".old/berrytools.xsl"/>
17
18 <xsl:variable name="bookswitch">
19 <xsl:choose>
20 <xsl:when test="/page/pageRequest/paramList/param[@name='book']/@value">
21 <xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/>
22 </xsl:when>
23 <xsl:otherwise>off</xsl:otherwise>
24 </xsl:choose>
25 </xsl:variable>
26
27 <!-- set page title -->
28 <xsl:template name="pageTitle"><gslib:documentTitle/></xsl:template>
29
30 <!-- set page breadcrumbs -->
31 <xsl:template name="breadcrumbs">
32 <gslib:siteLink/><gslib:rightArrow/>
33 <gslib:collectionNameLinked/><gslib:rightArrow/>
34 <a>
35 <xsl:attribute name="href">
36 <xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="$collName"/>/document/<xsl:value-of select="/page/pageResponse/document/documentNode[1]/@nodeID"/>
37 </xsl:attribute>
38 <xsl:variable name="documentTitleVar">
39 <gslib:documentTitle/>
40 </xsl:variable>
41 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.document')"/>
42 </a>
43 </xsl:template>
44
45 <xsl:template match="/">
46 <xsl:choose>
47 <!-- if this is the realistic books version of the page -->
48 <xsl:when test="$bookswitch = 'flashxml'">
49 <html>
50 <body>
51 <xsl:apply-templates select="/page/pageResponse/document"/>
52 </body>
53 </html>
54 </xsl:when>
55 <!-- if this is the regular version of the page -->
56 <xsl:otherwise>
57 <xsl:call-template name="mainTemplate"/>
58 </xsl:otherwise>
59 </xsl:choose>
60 </xsl:template>
61
62 <xsl:template name="sectionHeader">
63 <xsl:call-template name="sectionTitle"/>
64 </xsl:template>
65
66 <!-- Used to make sure that regardless what the collection designer uses for the title and content we can wrap it properly -->
67 <!-- If editing, be aware that the Document Basket looks for specific classes that this template bakes in (key points marked with ***) -->
68 <xsl:template name="wrapDocumentNodes">
69 <a name="{@nodeID}"><xsl:text> </xsl:text></a>
70
71 <!-- Section header -->
72 <table class="sectionHeader"><tr>
73
74 <!-- Expand/collapse button -->
75 <xsl:if test="not(/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='sectionExpandCollapse']/@value) or /page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='sectionExpandCollapse']/@value = 'true'">
76 <td class="headerTD">
77 <img id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">
78 <xsl:attribute name="src">
79 <xsl:choose>
80 <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent(@nodeID, /page/pageResponse/document/@selectedNode)">
81 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
82 </xsl:when>
83 <xsl:otherwise>
84 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/>
85 </xsl:otherwise>
86 </xsl:choose>
87 </xsl:attribute>
88 </img>
89 </td>
90 </xsl:if>
91
92 <!-- Title -->
93 <td id="header{@nodeID}" class="headerTD sectionTitle"><!-- *** -->
94 <p>
95 <xsl:attribute name="class"><xsl:value-of select="util:hashToDepthClass(@nodeID)"/> sectionHeader</xsl:attribute>
96
97 <xsl:if test="util:hashToSectionId(@nodeID)">
98 <span class="sectionNumberSpan">
99 <xsl:value-of select="util:hashToSectionId(@nodeID)"/>
100 <xsl:text> </xsl:text>
101 </span>
102 </xsl:if>
103 <!-- Display the title for the section regardless of whether automatic section numbering is turned on -->
104 <span><xsl:call-template name="sectionHeader"/></span>
105 </p>
106 </td>
107
108 <!-- "back to top" link -->
109 <xsl:if test="util:hashToDepthClass(@nodeID) != 'sectionHeaderDepthTitle'">
110 <td class="backToTop headerTD">
111 <a href="javascript:scrollToTop();">
112 <xsl:text disable-output-escaping="yes">&#9650;</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.back_to_top')"/>
113 </a>
114 </td>
115 </xsl:if>
116 </tr></table>
117
118 <div id="doc{@nodeID}"><!-- *** -->
119 <xsl:choose>
120 <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or /page/pageResponse/document/@selectedNode = @nodeID">
121 <xsl:attribute name="class">
122 <xsl:text>sectionContainer hasText</xsl:text>
123 </xsl:attribute>
124 <xsl:attribute name="style">
125 <xsl:text>display:block;</xsl:text>
126 </xsl:attribute>
127 </xsl:when>
128 <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent(@nodeID, /page/pageResponse/document/@selectedNode)">
129 <xsl:attribute name="class">
130 <xsl:text>sectionContainer noText</xsl:text>
131 </xsl:attribute>
132 <xsl:attribute name="style">
133 <xsl:text>display:block;</xsl:text>
134 </xsl:attribute>
135 </xsl:when>
136 <xsl:otherwise>
137 <xsl:attribute name="class">
138 <xsl:text>sectionContainer noText</xsl:text>
139 </xsl:attribute>
140 <xsl:attribute name="style">
141 <xsl:text>display:none;</xsl:text>
142 </xsl:attribute>
143 </xsl:otherwise>
144 </xsl:choose>
145
146 <xsl:if test="/page/pageRequest/userInformation 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))">
147 <table id="meta{@nodeID}">
148 <xsl:attribute name="style">
149 <xsl:choose>
150 <xsl:when test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'">
151 <xsl:text>display:block;</xsl:text>
152 </xsl:when>
153 <xsl:otherwise>
154 <xsl:text>display:none;</xsl:text>
155 </xsl:otherwise>
156 </xsl:choose>
157 </xsl:attribute>
158 <xsl:value-of select="util:clearMetadataStorage()"/>
159 <xsl:for-each select="metadataList/metadata">
160 <xsl:sort select="@name"/>
161 <xsl:if test="util:checkMetadataNotDuplicate(@name, .)">
162 <tr>
163 <td class="metaTableCellName"><xsl:value-of select="@name"/></td>
164 <td class="metaTableCell"><xsl:value-of disable-output-escaping="yes" select="."/></td>
165 </tr>
166 </xsl:if>
167 </xsl:for-each>
168 </table>
169 </xsl:if>
170
171 <xsl:call-template name="sectionImage"/>
172
173 <div id="text{@nodeID}" class="sectionText"><!-- *** -->
174 <xsl:attribute name="style">
175 <xsl:choose>
176 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'">
177 <xsl:text>display:none;</xsl:text>
178 </xsl:when>
179 <xsl:otherwise>
180 <xsl:text>display:block;</xsl:text>
181 </xsl:otherwise>
182 </xsl:choose>
183 </xsl:attribute>
184 <!-- Get the section content from the document template -->
185 <xsl:call-template name="documentNodeText"/>
186 </div>
187 <xsl:if test="documentNode">
188 <xsl:for-each select="documentNode">
189 <xsl:call-template name="wrapDocumentNodes"/>
190 </xsl:for-each>
191 </xsl:if>
192 </div>
193 </xsl:template>
194
195 <!-- the page content -->
196 <xsl:template match="/page/pageResponse/document">
197 <xsl:if test="/page/pageRequest/userInformation 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))">
198 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts.js"><xsl:text> </xsl:text></script>
199 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts_util.js"><xsl:text> </xsl:text></script>
200 <script type="text/javascript">
201 <xsl:text disable-output-escaping="yes">
202 $(window).load(function()
203 {
204 if(gs.cgiParams.docEdit == "1")
205 {
206 readyPageForEditing();
207 }
208 });
209 </xsl:text>
210 </script>
211 <gsf:metadata name="all"/>
212 </xsl:if>
213
214 <xsl:if test="$bookswitch = 'off'">
215 <div id="bookdiv" style="visibility:hidden; height:0px; display:inline;"><xsl:text> </xsl:text></div>
216
217 <script type="text/javascript" src="interfaces/{$interface_name}/js/document_scripts.js"><xsl:text> </xsl:text></script>
218
219 <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
220 <script type="text/javascript">
221 <xsl:text disable-output-escaping="yes">
222 if(document.URL.indexOf("book=on") != -1)
223 {
224 loadBook();
225 }
226 </xsl:text>
227 </script>
228 </xsl:if>
229
230 <!-- show the little berries for this document -->
231 <xsl:call-template name="documentBerryForDocumentPage"/>
232
233 <xsl:if test="/page/pageRequest/userInformation 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))">
234 <xsl:call-template name="editBar"/>
235 </xsl:if>
236
237 <xsl:if test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='sideBar']) or /page/pageResponse/format[@type='display']/gsf:option[@name='sideBar']/@value='true'">
238 <xsl:call-template name="rightSidebar"/>
239 </xsl:if>
240 </xsl:if>
241
242 <!-- display the document -->
243 <xsl:choose>
244 <xsl:when test="@external != ''">
245 <xsl:call-template name="externalPage">
246 <xsl:with-param name="external" select="@external"/>
247 </xsl:call-template>
248 </xsl:when>
249 <xsl:when test="$bookswitch = 'flashxml'">
250 <xsl:call-template name="documentNodeFlashXML"/>
251 </xsl:when>
252 <xsl:when test="$bookswitch = 'on'">
253 <div id="bookdiv" style="display:inline;"><xsl:text> </xsl:text></div>
254 <!-- *** in document-scripts.js *** -->
255 <script type="text/javascript">
256 <xsl:text disable-output-escaping="yes">
257 if(document.URL.indexOf("book=on") != -1)
258 {
259 loadBook();
260 }
261 </xsl:text>
262 </script>
263 </xsl:when>
264 <xsl:when test="@docType='simple'">
265 <xsl:call-template name="documentHeading"/><br/>
266 <xsl:call-template name="documentContent"/>
267 </xsl:when>
268 <xsl:otherwise> <!-- display the standard greenstone document -->
269 <xsl:call-template name="documentContent"/>
270 </xsl:otherwise>
271 </xsl:choose>
272 </xsl:template>
273 <xsl:template name="documentContent">
274 <xsl:choose>
275 <xsl:when test="@docType='simple'">
276 <div id="gs-document">
277 <div id="gs-document-text">
278 <xsl:call-template name="documentNodeText"/>
279 </div>
280 </div>
281
282 </xsl:when>
283 <xsl:otherwise>
284 <xsl:call-template name="wrappedDocument"/>
285 </xsl:otherwise>
286 </xsl:choose>
287 </xsl:template>
288
289 <xsl:template name="wrappedDocument">
290 <xsl:choose>
291 <!-- NOTE: alb = ajax load bypass -->
292 <xsl:when test="/page/pageResponse/document/@docType = 'hierarchy' and (/page/pageRequest/paramList/param[@name = 'alb']/@value = '1' or (string-length(/page/pageRequest/paramList/param[@name = 'd']/@value) > 0 and (/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or not(util:contains(/page/pageResponse/document/@selectedNode, '.')))))">
293 <div id="gs-document">
294 <xsl:call-template name="documentPre"/>
295 <div id="gs-document-text" class="documenttext" collection="{/page/pageResponse/collection/@name}"><!-- *** -->
296 <xsl:for-each select="documentNode">
297 <xsl:call-template name="wrapDocumentNodes"/>
298 </xsl:for-each>
299 </div>
300 </div>
301 </xsl:when>
302 <xsl:when test="/page/pageResponse/document/@docType = 'paged'">
303 <div id="gs-document">
304 <div id="tocLoadingImage" style="text-align:center;">
305 <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text>
306 </div>
307 </div>
308 <script type="text/javascript">
309 <xsl:text disable-output-escaping="yes">
310 $(window).load(function()
311 {
312 var url = gs.xsltParams.library_name + "?a=d&amp;c=" + gs.cgiParams.c + "&amp;excerptid=gs-document&amp;dt=hierarchy&amp;d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1");
313 loadTopLevelPage(null, url);
314 });
315 </xsl:text>
316 </script>
317 </xsl:when>
318 <xsl:otherwise>
319 <div id="gs-document">
320 <div id="tocLoadingImage" style="text-align:center;">
321 <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text>
322 </div>
323 </div>
324 <script type="text/javascript">
325 <xsl:text disable-output-escaping="yes">
326 $(window).load(function()
327 {
328 loadTopLevelPage(function()
329 {
330 //Don't focus the section until the table of contents is loaded
331 var tocCheck = function()
332 {
333 if(gs.variables.tocLoaded)
334 {
335 focusSection("</xsl:text><xsl:value-of select="/page/pageResponse/document/@selectedNode"/><xsl:text disable-output-escaping="yes">");
336 }
337 else
338 {
339 setTimeout(tocCheck, 500);
340 }
341 }
342 tocCheck();
343 });
344 });
345 </xsl:text>
346 </script>
347 </xsl:otherwise>
348 </xsl:choose>
349
350 <div class="clear"><xsl:text> </xsl:text></div>
351 </xsl:template>
352
353 <xsl:template name="editBar">
354 <table style="width:100%"><tr>
355 <td id="editBarLeft" style="width:70%"><xsl:text> </xsl:text></td>
356 <td id="editBarRight">
357 <div style="text-align:center;">
358 <div style="margin:5px;" class="ui-state-default ui-corner-all">
359 <a style="padding: 3px; text-decoration:none;" href="{$library_name}?a=g&amp;sa=documentbasket&amp;c=&amp;s=DisplayDocumentList&amp;rt=r&amp;p.c={/page/pageResponse/collection/@name}&amp;docToEdit={/page/pageResponse/document/documentNode/@nodeID}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_structure')"/></a>
360 </div>
361 <div style="margin:5px;" class="ui-state-default ui-corner-all">
362 <a id="editContentButton" style="padding: 3px; text-decoration:none;">
363 <xsl:attribute name="href">
364 <xsl:value-of select="$library_name"/>
365 <xsl:text>/collection/</xsl:text>
366 <xsl:value-of select="$collName"/>
367 <xsl:text>/document/</xsl:text>
368 <xsl:value-of select="/page/pageResponse/document/documentNode/@nodeID"/>
369 <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'docEdit']/@value = '1')">
370 <xsl:text>?ed=1&amp;docEdit=1</xsl:text>
371 </xsl:if>
372 </xsl:attribute>
373 <xsl:choose>
374 <xsl:when test="/page/pageRequest/paramList/param[@name = 'docEdit']/@value = '1'">
375 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.hide_editor')"/>
376 </xsl:when>
377 <xsl:otherwise>
378 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_content')"/>
379 </xsl:otherwise>
380 </xsl:choose>
381 </a>
382 </div>
383 </div>
384 </td>
385 </tr></table>
386 <gslib:langfrag name="dse"/>
387 </xsl:template>
388
389 <!-- Highlight annotations if requested -->
390 <xsl:template name="displayAnnotation">
391 <xsl:choose>
392 <xsl:when test="/page/pageRequest/paramList/param[@name = 'hl']/@value = 'on'">
393 <span class="termHighlight"><xsl:value-of select="."/></span>
394 </xsl:when>
395 <xsl:otherwise>
396 <span class="noTermHighlight"><xsl:value-of select="."/></span>
397 </xsl:otherwise>
398 </xsl:choose>
399 </xsl:template>
400
401 <!-- The default template for displaying section titles -->
402 <xsl:template name="sectionTitle">
403 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
404 </xsl:template>
405
406 <xsl:template name="sectionImage">
407 <gsf:variable name="screenImageWidth"><gsf:metadata name="ScreenWidth"/></gsf:variable>
408 <gsf:variable name="screenImageHeight"><gsf:metadata name="ScreenHeight"/></gsf:variable>
409 <gsf:variable name="imageWidth"><gsf:metadata name="ImageWidth"/></gsf:variable>
410 <gsf:variable name="imageHeight"><gsf:metadata name="ImageHeight"/></gsf:variable>
411
412 <xsl:choose>
413 <xsl:when test="metadataList/metadata[@name = 'Screen'] and metadataList/metadata[@name = 'Source'] and ($imageWidth div $screenImageWidth > 1.2)">
414 <div id="image{@nodeID}">
415 <div id="wrap{util:replace(@nodeID, '.', '_')}" class="zoomImage" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;">
416 <div id="small{util:replace(@nodeID, '.', '_')}" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;">
417 <gsf:image type="screen"/>
418 </div>
419 <div id="mover{util:replace(@nodeID, '.', '_')}" style="border: 1px solid green; position: absolute; top: 0; left: 0; width: 198px; height: 198px; overflow: hidden; z-index: 100; background: white; display: none;">
420 <div id="overlay{util:replace(@nodeID, '.', '_')}" style="width: 200px; height: 200px; position: absolute; top: 0; left: 0; z-index: 200;">
421 <xsl:text> </xsl:text>
422 </div>
423 <div id="large{util:replace(@nodeID, '.', '_')}" style="position: relative; width: {$imageWidth}px; height: {$imageHeight}px;">
424 <gsf:image type="source"/>
425 </div>
426 </div>
427 </div>
428 <script type="text/javascript">
429 <xsl:text disable-output-escaping="yes">
430 {
431 var nodeID = "</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">";
432 nodeID = nodeID.replace(/\./g, "_");
433
434 var bigHeight = </xsl:text><xsl:value-of select="$imageHeight"/><xsl:text disable-output-escaping="yes">;
435 var smallHeight = </xsl:text><xsl:value-of select="$screenImageHeight"/><xsl:text disable-output-escaping="yes">;
436
437 var multiplier = bigHeight / smallHeight;
438
439 $("#wrap" + nodeID).anythingZoomer({
440 smallArea: "#small" + nodeID,
441 largeArea: "#large" + nodeID,
442 zoomPort: "#overlay" + nodeID,
443 mover: "#mover" + nodeID,
444 expansionSize:50,
445 speedMultiplier:multiplier
446 });
447
448 $("#zoomOptions").css("display", null);
449 }
450 </xsl:text>
451 </script>
452 </div>
453 </xsl:when>
454 <xsl:when test="metadataList/metadata[@name = 'Screen']">
455 <div id="image{@nodeID}">
456 <xsl:attribute name="style">
457 <xsl:choose>
458 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'">
459 <xsl:text>display:none;</xsl:text>
460 </xsl:when>
461 <xsl:otherwise>
462 <xsl:text>display:block;</xsl:text>
463 </xsl:otherwise>
464 </xsl:choose>
465 </xsl:attribute>
466 <gsf:image type="screen"/>
467 </div>
468 </xsl:when>
469 </xsl:choose>
470 </xsl:template>
471
472 <xsl:template name="documentHeading">
473 <b><gsf:metadata name="Title"/></b><br/>
474 </xsl:template>
475
476 <!-- The default template for displaying the document node text -->
477 <!-- equivalent to gsf:text -->
478 <xsl:template name="documentNodeText">
479 <!-- Hides the "This document has no text." message -->
480 <xsl:variable name="noText"><gsf:metadata name="NoText"/></xsl:variable>
481 <xsl:if test="not($noText = '1')">
482 <!-- Section text -->
483 <xsl:for-each select="nodeContent">
484 <xsl:for-each select="node()">
485 <xsl:choose>
486 <xsl:when test="not(name())">
487 <xsl:value-of select="." disable-output-escaping="yes"/>
488 </xsl:when>
489 <xsl:when test="name() = 'annotation'">
490 <xsl:call-template name="displayAnnotation"/>
491 </xsl:when>
492 <xsl:otherwise>
493 <xsl:apply-templates/>
494 </xsl:otherwise>
495 </xsl:choose>
496 </xsl:for-each>
497 </xsl:for-each>
498 </xsl:if><xsl:text> </xsl:text>
499 </xsl:template>
500
501 <!-- Used to produce a version of the page in a format that can be read by the realistic books plugin -->
502 <xsl:template name="documentNodeFlashXML">
503 <xsl:text disable-output-escaping="yes">
504 &lt;Section&gt;
505 &lt;Description&gt;
506 &lt;Metadata name="Title"&gt;
507 </xsl:text>
508 <xsl:value-of select="normalize-space(metadataList/metadata[@name = 'Title'])"/>
509 <xsl:text disable-output-escaping="yes">
510 &lt;/Metadata&gt;
511 &lt;/Description&gt;
512 </xsl:text>
513
514 <xsl:value-of select="normalize-space(nodeContent)" disable-output-escaping="yes"/>
515
516 <xsl:for-each select="documentNode">
517 <xsl:call-template name="documentNodeFlashXML"/>
518 </xsl:for-each>
519
520 <xsl:text disable-output-escaping="yes">
521 &lt;/Section&gt;
522 </xsl:text>
523 </xsl:template>
524
525 <xsl:template name="externalPage">
526 <xsl:param name="external"/>
527 <xsl:variable name="go_forward_link">
528 <a>
529 <xsl:attribute name="href">
530 <xsl:value-of select="$external"/>
531 </xsl:attribute>
532 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'external.go_forward')"/>
533 </a>
534 </xsl:variable>
535 <h2><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'external.title')"/></h2>
536 <p><xsl:value-of select="util:getInterfaceTextWithDOM($interface_name, /page/@lang, 'external.text', $go_forward_link)" disable-output-escaping="yes"/></p>
537 </xsl:template>
538
539 <xsl:template match="/page"><xsl:apply-templates select="/page/pageResponse/document"/></xsl:template> <!-- this to be deleted eventually -->
540
541 <xsl:template name="documentPre">
542 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
543 <xsl:call-template name="mapFeatures"/>
544 </xsl:if>
545 </xsl:template>
546
547 <xsl:template name="mapFeatures">
548 <div id="map_canvas" class="map_canvas_full"><xsl:text> </xsl:text></div>
549
550 <xsl:for-each select="documentNode">
551 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
552 <div style="background:#BBFFBB; padding: 5px; margin:0px auto; width:890px;">
553 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.maps.nearby_docs')"/>
554 <img id="nearbyDocumentsToggle" style="margin-left:5px;" src="interfaces/{$interface_name}/images/expand.png">
555 <xsl:attribute name="onclick">
556 <xsl:text>performDistanceSearch('</xsl:text>
557 <xsl:value-of select="@nodeID"/>
558 <xsl:text>', '</xsl:text>
559 <gsf:metadata name="Latitude"/>
560 <xsl:text>', '</xsl:text>
561 <gsf:metadata name="Longitude"/>
562 <xsl:text>', 2);</xsl:text>
563 </xsl:attribute>
564 </img>
565 <div id="nearbyDocuments"><xsl:text> </xsl:text></div>
566 </div>
567 </xsl:if>
568 </xsl:for-each>
569
570 <div id="jsonNodes" style="display:none;">
571 <xsl:text>[</xsl:text>
572 <xsl:for-each select="//documentNode">
573 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
574 <xsl:text>{</xsl:text>
575 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text>
576 <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/><xsl:text disable-output-escaping="yes">",</xsl:text>
577 <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>
578 <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
579 <xsl:text>}</xsl:text>
580 <xsl:if test="not(position() = count(//documentNode))">
581 <xsl:text>,</xsl:text>
582 </xsl:if>
583 </xsl:if>
584 </xsl:for-each>
585 <xsl:text>]</xsl:text>
586 </div>
587 </xsl:template>
588</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.