source: main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl@ 25144

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

The document editor functionality can no longer be used if you are not authorised to use it

File size: 25.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
14 <!-- style includes global params interface_name, library_name -->
15 <xsl:include href=".old/berrytools.xsl"/>
16
17 <xsl:variable name="bookswitch">
18 <xsl:choose>
19 <xsl:when test="/page/pageRequest/paramList/param[@name='book']/@value">
20 <xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/>
21 </xsl:when>
22 <xsl:otherwise>off</xsl:otherwise>
23 </xsl:choose>
24 </xsl:variable>
25
26 <!-- set page title -->
27 <xsl:template name="pageTitle"><gslib:documentTitle/></xsl:template>
28
29 <!-- set page breadcrumbs -->
30 <xsl:template name="breadcrumbs">
31 <gslib:siteLink/><gslib:rightArrow/>
32 <gslib:collectionNameLinked/><gslib:rightArrow/>
33 <a>
34 <xsl:attribute name="href">
35 <xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="$collName"/>&amp;d=<xsl:value-of select="/page/pageResponse/document/documentNode[1]/@nodeID"/>&amp;dt=<xsl:value-of select="/page/pageResponse/document/documentNode/@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>
36 </xsl:attribute>
37 <xsl:variable name="documentTitleVar">
38 <gslib:documentTitle/>
39 </xsl:variable>
40 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.document')"/>
41 </a>
42 </xsl:template>
43
44 <xsl:template match="/">
45 <xsl:choose>
46 <!-- if this is the realistic books version of the page -->
47 <xsl:when test="$bookswitch = 'flashxml'">
48 <html>
49 <body>
50 <xsl:apply-templates select="/page/pageResponse/document"/>
51 </body>
52 </html>
53 </xsl:when>
54 <!-- if this is the regular version of the page -->
55 <xsl:otherwise>
56 <xsl:apply-imports/>
57 </xsl:otherwise>
58 </xsl:choose>
59 </xsl:template>
60
61 <!-- Used to make sure that regardless what the collection designer uses for the title and content we can wrap it properly -->
62 <!-- If editing, be aware that the Document Basket looks for specific classes that this template bakes in (key points marked with ***) -->
63 <xsl:template name="wrapDocumentNodes">
64 <xsl:for-each select="documentNode">
65 <a name="{@nodeID}"><xsl:text> </xsl:text></a>
66 <!-- Section header -->
67 <table class="sectionHeader"><tr>
68
69 <!-- Expand/collapse button -->
70 <td class="headerTD">
71 <img id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">
72 <xsl:attribute name="src">
73 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
74 </xsl:attribute>
75 </img>
76 </td>
77
78 <!-- Title -->
79 <td id="header{@nodeID}" class="headerTD sectionTitle"><!-- *** -->
80 <!-- Get the title from the title sectionTitle template -->
81 <xsl:choose>
82 <xsl:when test="not(/page/pageRequest/paramList/param[@name = 'dmd']) or /page/pageRequest/paramList/param[@name = 'dmd']/@value = 'false'">
83 <xsl:apply-templates select="." mode="sectionTitleFormat"/>
84 </xsl:when>
85 <xsl:otherwise>
86 <xsl:apply-templates select="." mode="sectionTitle"/>
87 </xsl:otherwise>
88 </xsl:choose>
89 </td>
90
91 <!-- "back to top" link -->
92 <xsl:if test="util:hashToDepthClass(@nodeID) != 'sectionHeaderDepthTitle'">
93 <td class="backToTop headerTD">
94 <a href="#top">
95 <xsl:text disable-output-escaping="yes">&#9650;</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.back_to_top')"/>
96 </a>
97 </td>
98 </xsl:if>
99 </tr></table>
100
101 <div id="doc{@nodeID}" class="sectionContainer"><!-- *** -->
102 <xsl:if test="/page/pageRequest/paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">
103 <table id="meta{@nodeID}">
104 <xsl:attribute name="style">
105 <xsl:choose>
106 <xsl:when test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'">
107 <xsl:text>display:block;</xsl:text>
108 </xsl:when>
109 <xsl:otherwise>
110 <xsl:text>display:none;</xsl:text>
111 </xsl:otherwise>
112 </xsl:choose>
113 </xsl:attribute>
114 <xsl:value-of select="util:clearMetadataStorage()"/>
115 <xsl:for-each select="metadataList/metadata">
116 <xsl:sort select="@name"/>
117 <xsl:if test="util:checkMetadataNotDuplicate(@name, .)">
118 <tr>
119 <td class="metaTableCellName"><xsl:value-of select="@name"/></td>
120 <td class="metaTableCell"><xsl:value-of select="."/></td>
121 </tr>
122 </xsl:if>
123 </xsl:for-each>
124 </table>
125 </xsl:if>
126 <div id="text{@nodeID}" class="sectionText"><!-- *** -->
127 <!-- Get the section content from the document template -->
128 <xsl:apply-templates select="." mode="document"/>
129 </div>
130 <xsl:if test="documentNode">
131 <xsl:call-template name="wrapDocumentNodes"/>
132 </xsl:if>
133 </div>
134 </xsl:for-each>
135 </xsl:template>
136
137 <!-- the page content -->
138 <xsl:template match="/page/pageResponse/document">
139 <xsl:if test="/page/pageRequest/paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">
140 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts.js"><xsl:text> </xsl:text></script>
141 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts_util.js"><xsl:text> </xsl:text></script>
142 <gsf:metadata name="all"/>
143 </xsl:if>
144
145 <xsl:if test="$bookswitch = 'off'">
146 <div id="bookdiv" style="visibility:hidden; height:0px; display:inline;"><xsl:text> </xsl:text></div>
147
148 <script type="text/javascript" src="interfaces/{$interface_name}/js/document_scripts.js"><xsl:text> </xsl:text></script>
149
150 <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
151 <script type="text/javascript">
152 <xsl:text disable-output-escaping="yes">
153 if(document.URL.indexOf("book=on") != -1)
154 {
155 loadBook();
156 }
157 </xsl:text>
158 </script>
159 </xsl:if>
160
161 <!-- show the little berries for this document -->
162 <xsl:call-template name="documentBerryForDocumentPage"/>
163
164 <xsl:if test="/page/pageRequest/paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">
165 <table style="width:100%"><tr>
166 <td id="editBarLeft" style="width:70%"><xsl:text> </xsl:text></td>
167 <td id="editBarRight">
168 <div style="text-align:center;">
169 <div style="margin:5px;" class="ui-state-default ui-corner-all">
170 <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}">Edit structure</a>
171 </div>
172 <div style="margin:5px;" class="ui-state-default ui-corner-all">
173 <a style="padding: 3px; text-decoration:none;" href="javascript:readyPageForEditing();">Edit content</a>
174 </div>
175 </div>
176 </td>
177 </tr></table>
178 </xsl:if>
179
180 <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'">
181 <table id="rightSidebar">
182 <tr><td>
183 <xsl:call-template name="viewOptions"/>
184 </td></tr>
185 <tr><td>
186 <div id="contentsArea">
187 <!-- show the berry basket if it's turned on -->
188 <gslib:berryBasket/>
189
190 <!-- the book's cover image -->
191 <div id="coverImage">
192 <xsl:attribute name="class">
193 <xsl:choose>
194 <xsl:when test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']) or /page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']/@value='true'">visible</xsl:when>
195 <xsl:otherwise>hidden</xsl:otherwise>
196 </xsl:choose>
197 </xsl:attribute>
198 <gslib:coverImage/><xsl:text> </xsl:text>
199 </div>
200
201 <!-- the contents (if enabled) -->
202 <xsl:choose>
203 <xsl:when test="/page/pageResponse/document/@docType = 'paged' and not(/page/pageRequest/paramList/param[@name = 'ed']/@value = '1')">
204 <!-- Table of contents will be dynamically retrieved when viewing a paged document -->
205 <script type="text/javascript">
206 <xsl:text disable-output-escaping="yes">
207 retrieveTableOfContents();
208 </xsl:text>
209 </script>
210 </xsl:when>
211 <xsl:otherwise>
212 <div id="tableOfContents">
213 <xsl:attribute name="class">
214 <xsl:choose>
215 <xsl:when test="count(//documentNode) > 1 and not(/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']) or /page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">visible</xsl:when>
216 <xsl:otherwise>hidden</xsl:otherwise>
217 </xsl:choose>
218 </xsl:attribute>
219 <xsl:apply-templates select="documentNode" mode="TOC"/>
220 <xsl:if test="@docType = 'paged'">
221 <table style="width:100%;"><tbody><tr>
222 <td style="width:10%; text-align:left;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}"><img src="interfaces/{$interface_name}/images/previous.png"/></a></td>
223 <td style="width:20%; text-align:left;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}">Previous</a></td>
224 <td style="width:40%; text-align:center;"><xsl:text>Go to page</xsl:text><input type="text" size="3"/></td>
225 <td style="width:20%; text-align:right;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}">Next</a></td>
226 <td style="width:10%; text-align:right;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}"><img src="interfaces/{$interface_name}/images/next.png"/></a></td>
227 </tr></tbody></table>
228 </xsl:if>
229 </div>
230 </xsl:otherwise>
231 </xsl:choose>
232 </div>
233 </td></tr>
234 </table>
235 </xsl:if>
236 </xsl:if>
237
238 <!-- display the document -->
239 <xsl:choose>
240 <xsl:when test="@external != ''">
241 <xsl:call-template name="externalPage">
242 <xsl:with-param name="external" select="@external"/>
243 </xsl:call-template>
244 </xsl:when>
245 <xsl:when test="$bookswitch = 'flashxml'">
246 <xsl:apply-templates mode="flashxml"/>
247 </xsl:when>
248 <xsl:when test="$bookswitch = 'on'">
249 <div id="bookdiv" style="display:inline;"><xsl:text> </xsl:text></div>
250 <!-- *** in document-scripts.js *** -->
251 <script type="text/javascript">
252 <xsl:text disable-output-escaping="yes">
253 if(document.URL.indexOf("book=on") != -1)
254 {
255 loadBook();
256 }
257 </xsl:text>
258 </script>
259 </xsl:when>
260 <xsl:otherwise>
261 <div id="gs-document">
262 <div id="gs-document-image">
263 <xsl:attribute name="class">
264 <xsl:text>sectionImage</xsl:text>
265 <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"><xsl:text> hidden</xsl:text></xsl:if>
266 </xsl:attribute>
267 <!-- Get the section content from the document template -->
268 <xsl:call-template name="documentImage"/>
269 <xsl:text> </xsl:text>
270 </div>
271 <div id="gs-document-text" collection="{/page/pageResponse/collection/@name}"><!-- *** -->
272 <xsl:attribute name="class">
273 <xsl:text>documenttext</xsl:text>
274 <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"><xsl:text> hidden</xsl:text></xsl:if>
275 </xsl:attribute>
276 <xsl:call-template name="wrapDocumentNodes"/>
277 </div>
278 </div>
279 </xsl:otherwise>
280 </xsl:choose>
281
282 <div class="clear"><xsl:text> </xsl:text></div>
283 </xsl:template>
284
285 <!-- Highlight annotations if requested -->
286 <xsl:template match="annotation">
287 <xsl:choose>
288 <xsl:when test="/page/pageRequest/paramList/param[@name='hl' and @value='on']">
289 <span class="termHighlight"><xsl:value-of select="."/></span>
290 </xsl:when>
291 <xsl:otherwise>
292 <span class="noTermHighlight"><xsl:value-of select="."/></span>
293 </xsl:otherwise>
294 </xsl:choose>
295 </xsl:template>
296
297 <xsl:template match="documentNode" mode="sectionTitleFormat">
298 <p>
299 <xsl:attribute name="class"><xsl:value-of select="util:hashToDepthClass(@nodeID)"/> sectionHeader</xsl:attribute>
300
301 <xsl:if test="util:hashToSectionId(@nodeID)">
302 <span class="sectionNumberSpan">
303 <xsl:value-of select="util:hashToSectionId(@nodeID)"/>
304 <xsl:text> </xsl:text>
305 </span>
306 </xsl:if>
307 <!-- Display the title for the section regardless of whether automatic section numbering is turned on -->
308 <span><xsl:apply-templates select="." mode="sectionTitle"/></span>
309 </p>
310 </xsl:template>
311
312 <!-- The default template for displaying section titles -->
313 <xsl:template match="documentNode" mode="sectionTitle">
314 <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
315 </xsl:template>
316
317 <!-- The default template for displaying the document content -->
318 <xsl:template match="documentNode" mode="document">
319 <xsl:call-template name="documentNodePre"/>
320 <!-- Section text -->
321 <xsl:for-each select="nodeContent">
322 <xsl:for-each select="node()">
323 <xsl:choose>
324 <xsl:when test="not(name())">
325 <xsl:value-of select="." disable-output-escaping="yes"/>
326 </xsl:when>
327 <xsl:otherwise>
328 <xsl:apply-templates select="."/>
329 </xsl:otherwise>
330 </xsl:choose>
331 </xsl:for-each>
332 </xsl:for-each><xsl:text> </xsl:text>
333 </xsl:template>
334
335 <!-- The default template for displaying the document image -->
336 <xsl:template name="documentImage">
337 <xsl:variable name="imageTest"><gsf:metadata name="ScreenWidth"/></xsl:variable>
338 <xsl:if test="$imageTest != ''">
339 <h3>
340 <gsf:choose-metadata>
341 <gsf:metadata name="dc.Title"/>
342 <gsf:metadata name="ex.Title"/>
343 <gsf:metadata name="Title"/>
344 <gsf:default>Untitled</gsf:default>
345 </gsf:choose-metadata>
346 </h3>
347 <gsf:image type="screen"/>
348 </xsl:if>
349 </xsl:template>
350
351 <!-- This template is used to display the table of contents -->
352 <xsl:template match="documentNode" mode="TOC">
353
354 <!-- check if this is the currently selected table of contents item -->
355 <xsl:variable name="isCurrent" select="nodeContent"/>
356
357 <!-- formulate the link -->
358 <xsl:variable name="contentsLink">
359 <xsl:value-of select='$library_name'/>?a=d&amp;c=<gslib:collectionNameShort/>&amp;d=<xsl:value-of select='@nodeID'/><xsl:if test="documentNode">.pr</xsl:if>&amp;sib=1
360 </xsl:variable>
361
362 <ul>
363 <table><tr>
364 <!-- The expand/collapse button (not displayed for the top level node) -->
365 <xsl:if test="util:hashToDepthClass(@nodeID) != 'sectionHeaderDepthTitle'">
366 <td>
367 <xsl:choose>
368 <xsl:when test="not(nodeContent and not(documentNode))">
369 <img id="ttoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">
370 <xsl:attribute name="src">
371 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
372 </xsl:attribute>
373 </img>
374 </xsl:when>
375 <xsl:otherwise>
376 <xsl:attribute name="class">emptyIcon</xsl:attribute>
377 </xsl:otherwise>
378 </xsl:choose>
379 </td>
380 </xsl:if>
381
382 <!-- The chapter/page icon -->
383 <td>
384 <img>
385 <xsl:if test="nodeContent and not(documentNode)">
386 <xsl:attribute name="class">leafNode</xsl:attribute>
387 </xsl:if>
388
389 <xsl:attribute name="src">
390 <xsl:choose>
391 <xsl:when test="nodeContent and not(documentNode)">
392 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'page_image')"/>
393 </xsl:when>
394 <xsl:otherwise>
395 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'chapter_image')"/>
396 </xsl:otherwise>
397 </xsl:choose>
398 </xsl:attribute>
399 </img>
400 </td>
401
402 <!-- The section name, links to the section in the document -->
403 <td>
404 <a>
405 <xsl:choose>
406 <xsl:when test="/page/pageResponse/document/@docType = 'paged'">
407 <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>
408 </xsl:when>
409 <xsl:otherwise>
410 <xsl:attribute name="href">#<xsl:value-of select="@nodeID"/></xsl:attribute>
411 </xsl:otherwise>
412 </xsl:choose>
413 <xsl:if test="util:hashToSectionId(@nodeID)">
414 <xsl:value-of select="util:hashToSectionId(@nodeID)"/>
415 <xsl:text> </xsl:text>
416 </xsl:if>
417 <xsl:apply-templates select="." mode="sectionTitle"/>
418 </a>
419 </td>
420 </tr></table>
421
422 <!-- display any child items -->
423 <xsl:if test="documentNode">
424 <li id="toc{@nodeID}" style="display:block;">
425 <xsl:apply-templates select="documentNode" mode="TOC"/>
426 </li>
427 </xsl:if>
428
429 </ul>
430 </xsl:template>
431
432 <!-- Used to produce a version of the page in a format that can be read by the realistic books plugin -->
433 <xsl:template match="documentNode" mode="flashxml">
434 <xsl:text disable-output-escaping="yes">
435 &lt;Section&gt;
436 &lt;Description&gt;
437 &lt;Metadata name="Title"&gt;
438 </xsl:text>
439 <xsl:value-of select="normalize-space(metadataList/metadata[@name = 'Title'])"/>
440 <xsl:text disable-output-escaping="yes">
441 &lt;/Metadata&gt;
442 &lt;/Description&gt;
443 </xsl:text>
444
445 <xsl:value-of select="normalize-space(nodeContent)" disable-output-escaping="yes"/>
446
447 <xsl:if test="documentNode">
448 <xsl:apply-templates select="documentNode" mode="flashxml"/>
449 </xsl:if>
450
451 <xsl:text disable-output-escaping="yes">
452 &lt;/Section&gt;
453 </xsl:text>
454 </xsl:template>
455
456 <xsl:template name="externalPage">
457 <xsl:param name="external"/>
458 <xsl:variable name="go_forward_link">
459 <a>
460 <xsl:attribute name="href">
461 <xsl:value-of select="$external"/>
462 </xsl:attribute>
463 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'external.go_forward')"/>
464 </a>
465 </xsl:variable>
466 <h2><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'external.title')"/></h2>
467 <p><xsl:value-of select="util:getInterfaceTextWithDOM($interface_name, /page/@lang, 'external.text', $go_forward_link)" disable-output-escaping="yes"/></p>
468 </xsl:template>
469
470 <xsl:template match="/page"><xsl:apply-templates select="/page/pageResponse/document"/></xsl:template> <!-- this to be deleted eventually -->
471
472 <xsl:template name="viewOptions">
473 <table class="viewOptions ui-state-default ui-corner-all"><tr>
474
475 <!-- Paged-image options -->
476 <xsl:if test="/page/pageResponse/document/@docType = 'paged'">
477 <td>
478 <select id="viewSelection" onchange="changeView();">
479 <xsl:choose>
480 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'">
481 <option>Default view</option>
482 <option selected="true">Image view</option>
483 <option>Text view</option>
484 </xsl:when>
485 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'">
486 <option>Default view</option>
487 <option>Image view</option>
488 <option selected="true">Text view</option>
489 </xsl:when>
490 <xsl:otherwise>
491 <option selected="true">Default view</option>
492 <option>Image view</option>
493 <option>Text view</option>
494 </xsl:otherwise>
495 </xsl:choose>
496 </select>
497 </td>
498 </xsl:if>
499
500 <!-- Realistic books link -->
501 <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
502 <td>
503 <img>
504 <xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'realistic_books_image')"/></xsl:attribute>
505 </img>
506 <input id="rbOption" type="checkbox" onclick="bookInit();" class="optionCheckBox"/>
507 </td>
508 </xsl:if>
509
510 <!-- Highlight on/off button -->
511 <xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q' and count(//annotation) > 0">
512 <td>
513 <img>
514 <xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'highlight_image')"/></xsl:attribute>
515 </img>
516 <input id="highlightOption" type="checkbox" class="optionCheckBox">
517 <xsl:choose>
518 <xsl:when test="/page/pageRequest/paramList/param[@name = 'hl']/@value = 'on'">
519 <xsl:attribute name="onclick">
520 <xsl:text>removeHighlight();</xsl:text>
521 </xsl:attribute>
522 <xsl:attribute name="checked">true</xsl:attribute>
523 </xsl:when>
524 <xsl:otherwise>
525 <xsl:attribute name="onclick">
526 <xsl:text>addHighlight();</xsl:text>
527 </xsl:attribute>
528 </xsl:otherwise>
529 </xsl:choose>
530 </input>
531 </td>
532 </xsl:if>
533 <td style="vertical-align:top; text-align:right;">
534 <xsl:if test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']) or /page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">
535 <span class="tableOfContentsTitle">Table of Contents</span>
536 </xsl:if>
537 <a id="sidebarMinimizeButton" href="javascript:minimizeSidebar();" style="float: right; font-size:0.6em;">
538 <img class="icon" style="padding-top:3px;">
539 <xsl:attribute name="src">
540 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
541 </xsl:attribute>
542 </img>
543 </a>
544 <a id="sidebarMaximizeButton" href="javascript:maximizeSidebar();" style="float: right; font-size:0.6em; display:none;">
545 <img class="icon" style="padding-top:3px;">
546 <xsl:attribute name="src">
547 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/>
548 </xsl:attribute>
549 </img>
550 </a>
551 </td>
552 </tr></table>
553 </xsl:template>
554
555 <xsl:template name="documentNodePre">
556 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
557 <xsl:call-template name="mapFeatures"/>
558 </xsl:if>
559 </xsl:template>
560
561 <xsl:template name="mapFeatures">
562 <div id="map_canvas" style="margin:0px auto; width:900px; height:500px;"><xsl:text> </xsl:text></div>
563
564 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
565 <div style="background:#BBFFBB; padding: 5px; margin:0px auto; width:890px;">
566 <xsl:text>Show documents near here </xsl:text>
567 <img id="nearbyDocumentsToggle" src="interfaces/oran/images/expand.png">
568 <xsl:attribute name="onclick">
569 <xsl:text>performDistanceSearch('</xsl:text>
570 <xsl:value-of select="@nodeID"/>
571 <xsl:text>', '</xsl:text>
572 <gsf:metadata name="Latitude"/>
573 <xsl:text>', '</xsl:text>
574 <gsf:metadata name="Longitude"/>
575 <xsl:text>', 2);</xsl:text>
576 </xsl:attribute>
577 </img>
578 <div id="nearbyDocuments"><xsl:text> </xsl:text></div>
579 </div>
580 </xsl:if>
581
582 <div id="jsonNodes" style="display:none;">
583 <xsl:text>[</xsl:text>
584 <xsl:for-each select="//documentNode">
585 <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
586 <xsl:text>{</xsl:text>
587 <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text>
588 <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>
589 <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>
590 <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
591 <xsl:text>}</xsl:text>
592 <xsl:if test="not(position() = count(//documentNode))">
593 <xsl:text>,</xsl:text>
594 </xsl:if>
595 </xsl:if>
596 </xsl:for-each>
597 <xsl:text>]</xsl:text>
598 </div>
599 </xsl:template>
600</xsl:stylesheet>
601
Note: See TracBrowser for help on using the repository browser.