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

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

A major rework of document templates so that the display templates are easier to modify

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