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

Last change on this file since 25720 was 25720, checked in by sjm84, 12 years ago

Fixing missing annotations from searching

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