source: main/trunk/greenstone3/web/interfaces/default/transform/javascript-global-setup.xsl

Last change on this file was 38933, checked in by anupama, 7 days ago
  1. The webswing code uses more dynamically values for parameters. 2. For which some extra javascript variables are set up in javascript-global-setup.xsl (for example, the collage app needs to know the servlet_context). 3. The applet element still exists in classifier.xsl, though it is not used by the webswing collage application on the page, nor would it be used if the webswing collage was an applet. But as browsers don't display applet elements anymore, rendering them inactive, leaving the applet element in allows us to still run the appletviewer on the collage URL. 4. The applet element includings its parameters now work out the dynamic parameters instead of leaving them hardcoded in there.
  • Property svn:executable set to *
File size: 16.5 KB
Line 
1<xsl:stylesheet version="1.0"
2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:java="http://xml.apache.org/xslt/java"
4 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
5 xmlns:gslib="http://www.greenstone.org/skinning"
6 extension-element-prefixes="java util"
7 exclude-result-prefixes="java util">
8
9 <xsl:template name="setup-gs-variable">
10 <script type="text/javascript">
11 <xsl:text disable-output-escaping="yes">
12 if (typeof gs === "undefined" ) {
13 gs={};
14 }
15 if(typeof gs.cgiParams==="undefined"){gs.cgiParams={};} //gs.cgiParams ??= {};
16 if(typeof gs.xsltParams==="undefined"){gs.xsltParams={};} //gs.xsltParams ??= {};
17 if(typeof gs.siteMetadata==="undefined"){gs.siteMetadata={};} //gs.siteMetadata ??= {};
18 if(typeof gs.collectionMetadata==="undefined"){gs.collectionMetadata={};} //gs.collectionMetadata ??= {};
19 if(typeof gs.documentMetadata==="undefined"){gs.documentMetadata={};} //gs.documentMetadata ??= {};
20 if(typeof gs.imageURLs==="undefined"){gs.imageURLs={};} //gs.imageURLs ??= {};
21 if(typeof gs.variables==="undefined"){gs.variables={};} //gs.variables ??= {};
22 if(typeof gs.requestInformation==="undefined"){gs.requestInformation={};} //gs.requestInformation ??= {};
23 </xsl:text>
24 </script>
25 <xsl:call-template name="populate-cgi-param-values"/>
26 <xsl:call-template name="populate-xslt-param-values"/>
27 <xsl:call-template name="populate-image-url-values"/>
28 <xsl:call-template name="populate-metadata-values"/>
29 <xsl:call-template name="populate-request-information-values"/>
30 <xsl:call-template name="populate-user-information-values"/>
31 <xsl:call-template name="include-global-javascript-functions"/>
32 </xsl:template>
33
34 <xsl:template name="populate-cgi-param-values">
35 <script type="text/javascript">
36 var name;
37 var value;
38 <xsl:for-each select="/page/pageRequest/paramList/param">
39 <xsl:text disable-output-escaping="yes">name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
40 <xsl:text disable-output-escaping="yes">value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="util:escapeNewLinesQuotesAngleBracketsForJSString(@value)"/><xsl:text disable-output-escaping="yes">";</xsl:text>
41 <xsl:text disable-output-escaping="yes">name = name.replace(".", "_");</xsl:text>
42 gs.cgiParams[name] = value;
43 </xsl:for-each>
44 </script>
45 </xsl:template>
46
47 <xsl:template name="populate-xslt-param-values">
48 <script type="text/javascript">
49 <xsl:text disable-output-escaping="yes">gs.xsltParams.library_name = "</xsl:text><xsl:value-of select="$library_name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
50 <xsl:text disable-output-escaping="yes">gs.xsltParams.interface_name = "</xsl:text><xsl:value-of select="$interface_name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
51 <xsl:text disable-output-escaping="yes">gs.xsltParams.site_name = "</xsl:text><xsl:value-of select="$site_name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
52 <!-- servlet_context isn't part of the xsltparams element list when
53 viewing o=xml, but I need it set and gs.xsltParams setup is using it
54 for setting gs.xsltParams.cookie_path already anyway -->
55 <xsl:text disable-output-escaping="yes">gs.xsltParams.servlet_context = "</xsl:text><xsl:value-of select="$servlet_context"/><xsl:text disable-output-escaping="yes">";</xsl:text>
56 <xsl:text disable-output-escaping="yes">gs.xsltParams.use_client_side_xslt = "</xsl:text><xsl:value-of select="$use_client_side_xslt"/><xsl:text disable-output-escaping="yes">";</xsl:text>
57 <xsl:text disable-output-escaping="yes">gs.xsltParams.filepath = "</xsl:text><xsl:value-of select="$filepath"/><xsl:text disable-output-escaping="yes">";</xsl:text>
58 <xsl:text disable-output-escaping="yes">gs.xsltParams.cookie_path = "</xsl:text><xsl:choose><xsl:when test="$cookie_path"><xsl:value-of select="$cookie_path"/></xsl:when><xsl:otherwise>/<xsl:value-of select="$servlet_context"/></xsl:otherwise></xsl:choose><xsl:text disable-output-escaping="yes">";</xsl:text>
59 </script>
60 </xsl:template>
61
62 <xsl:template name="populate-metadata-values">
63 <script type="text/javascript">
64 <xsl:text disable-output-escaping="yes">
65 function addMetadataToList(name, value, list, lang)
66 {
67 name = name.replace(".", "_");
68 if(lang == "" || lang == "en")
69 {
70 list[name] = value;
71 }
72 else
73 {
74 if (list[lang] == undefined)
75 {
76 list[lang] = new Array();
77 }
78 var langList = list[lang];
79 langList[name] = value;
80 }
81 }
82 var name;
83 var value;
84 var lang;
85 </xsl:text>
86 <xsl:for-each select="/page/pageResponse/metadataList/metadata">
87 <xsl:text disable-output-escaping="yes">name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
88 <xsl:text disable-output-escaping="yes">value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="util:escapeNewLinesQuotesAngleBracketsForJSString(.)"/><xsl:text disable-output-escaping="yes">";</xsl:text>
89 <xsl:text disable-output-escaping="yes">lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
90 addMetadataToList(name, value, gs.siteMetadata, lang);
91 </xsl:for-each>
92
93 <xsl:for-each select="/page/pageResponse/collection/metadataList/metadata">
94 <xsl:text disable-output-escaping="yes">name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
95 <xsl:text disable-output-escaping="yes">value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="util:escapeNewLinesQuotesAngleBracketsForJSString(.)"/><xsl:text disable-output-escaping="yes">";</xsl:text>
96 <xsl:text disable-output-escaping="yes">lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
97 addMetadataToList(name, value, gs.collectionMetadata, lang);
98 </xsl:for-each>
99
100 <xsl:for-each select="/page/pageResponse/document/metadataList/metadata">
101 <xsl:text disable-output-escaping="yes">name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
102 <xsl:text disable-output-escaping="yes">value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="util:escapeNewLinesQuotesAngleBracketsForJSString(.)"/><xsl:text disable-output-escaping="yes">";</xsl:text>
103 <xsl:text disable-output-escaping="yes">lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
104 addMetadataToList(name, value, gs.documentMetadata, lang);
105 </xsl:for-each>
106
107 <xsl:for-each select="/page/pageResponse/classifier/documentNode">
108 {
109 <xsl:text disable-output-escaping="yes">var nodeID = "</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">";</xsl:text>
110 <xsl:text disable-output-escaping="yes">var emptyLang = "";</xsl:text>
111 <xsl:text disable-output-escaping="yes">var metaList = new Array();</xsl:text>
112 <xsl:for-each select="metadataList/metadata">
113 <xsl:text disable-output-escaping="yes">name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
114 <xsl:text disable-output-escaping="yes">value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="util:escapeNewLinesQuotesAngleBracketsForJSString(.)"/><xsl:text disable-output-escaping="yes">";</xsl:text>
115 <xsl:text disable-output-escaping="yes">lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
116 addMetadataToList(name, value, metaList, lang);
117 </xsl:for-each>
118 addMetadataToList(nodeID, metaList, gs.documentMetadata, emptyLang);
119 }
120 </xsl:for-each>
121
122 <xsl:text disable-output-escaping="yes">addMetadataToList("docType", "</xsl:text><xsl:value-of select="/page/pageResponse/document/@docType"/><xsl:text disable-output-escaping="yes">", gs.documentMetadata, "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">");</xsl:text>
123 </script>
124 </xsl:template>
125
126 <xsl:template name="populate-image-url-values">
127 <script type="text/javascript">
128 <xsl:text disable-output-escaping="yes">gs.imageURLs.expand = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
129 <xsl:text disable-output-escaping="yes">gs.imageURLs.collapse = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
130 <xsl:text disable-output-escaping="yes">gs.imageURLs.page = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'page_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
131 <xsl:text disable-output-escaping="yes">gs.imageURLs.chapter = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'chapter_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
132 <xsl:text disable-output-escaping="yes">gs.imageURLs.realisticBook = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'realistic_books_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
133 <xsl:text disable-output-escaping="yes">gs.imageURLs.highlight = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'highlight_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
134 <xsl:text disable-output-escaping="yes">gs.imageURLs.bookshelf = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
135 <xsl:text disable-output-escaping="yes">gs.imageURLs.book = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'book_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
136 <xsl:text disable-output-escaping="yes">gs.imageURLs.loading = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'loading_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
137 <xsl:text disable-output-escaping="yes">gs.imageURLs.pageIcon = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'page_icon_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
138 <xsl:text disable-output-escaping="yes">gs.imageURLs.trashFull = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'trash_full_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
139 <xsl:text disable-output-escaping="yes">gs.imageURLs.blank = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'blank_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
140 <xsl:text disable-output-escaping="yes">gs.imageURLs.next = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'next_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
141 <xsl:text disable-output-escaping="yes">gs.imageURLs.prev = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'prev_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
142 <xsl:text disable-output-escaping="yes">gs.imageURLs.trashEmpty = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'trash_empty_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
143 <xsl:text disable-output-escaping="yes">gs.imageURLs.trashFull = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'trash_full_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
144 <xsl:text disable-output-escaping="yes">gs.imageURLs.greenBug = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'green_bug_image')"/><xsl:text disable-output-escaping="yes">";</xsl:text>
145 </script>
146 </xsl:template>
147
148 <xsl:template name="populate-request-information-values">
149 <script type="text/javascript">
150 <xsl:text disable-output-escaping="yes">
151 gs.requestInformation.fullURL = "</xsl:text><xsl:value-of select="/page/pageRequest/@fullURL"/><xsl:text disable-output-escaping="yes">";
152 gs.requestInformation.baseURL = "</xsl:text><xsl:value-of select="/page/pageRequest/@baseURL"/><xsl:text disable-output-escaping="yes">";
153 </xsl:text>
154 </script>
155 </xsl:template>
156
157 <xsl:template name="populate-user-information-values">
158 <xsl:if test="/page/pageRequest/userInformation">
159 <script type="text/javascript">
160 <xsl:text disable-output-escaping="yes">
161 gs.userInformation = new Array();
162 gs.userInformation.username = "</xsl:text><xsl:value-of select="/page/pageRequest/userInformation/@username"/><xsl:text disable-output-escaping="yes">";
163 gs.userInformation.groups = "</xsl:text><xsl:value-of select="/page/pageRequest/userInformation/@groups"/><xsl:text disable-output-escaping="yes">";
164 gs.userInformation.editEnabled = "</xsl:text><xsl:value-of select="/page/pageRequest/userInformation/@editEnabled"/><xsl:text disable-output-escaping="yes">";
165 </xsl:text>
166 </script>
167 </xsl:if>
168 <!-- check if we have a JSessionID and fill in any user details we haven't captured in JS vars yet as well as JSessionID -->
169 <xsl:if test="/page/pageRequest/userContext/@uid">
170 <script type="text/javascript">
171 <xsl:text disable-output-escaping="yes">
172 if (typeof gs.userInformation === "undefined") {
173 gs.userInformation={};
174 }
175 gs.userInformation.username = "</xsl:text><xsl:value-of select="/page/pageRequest/userContext/@username"/><xsl:text disable-output-escaping="yes">";
176 gs.userInformation.groups = "</xsl:text><xsl:value-of select="/page/pageRequest/userContext/@groups"/><xsl:text disable-output-escaping="yes">";
177
178 gs.userInformation.uid = "</xsl:text><xsl:value-of select="/page/pageRequest/userContext/@uid"/><xsl:text disable-output-escaping="yes">";
179 </xsl:text>
180 </script>
181 </xsl:if>
182 </xsl:template>
183
184 <xsl:template name="include-global-javascript-functions">
185 <script type="text/javascript" src="interfaces/{$interface_name}/js/javascript-global-functions.js"><xsl:text> </xsl:text></script>
186 <script type="text/javascript" src="interfaces/{$interface_name}/js/GSMetadata.js"><xsl:text> </xsl:text></script>
187 <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script>
188 </xsl:template>
189</xsl:stylesheet>
190
191 <!-- CAN WE FIND SOME WAY TO MAKE THIS WORK?
192 <xsl:call-template name="populate-metadata-values">
193 <xsl:with-param name="path">/page/pageResponse/metadataList/metadata</xsl:with-param>
194 <xsl:with-param name="metadataListName">siteMetadata</xsl:with-param>
195 </xsl:call-template>
196
197 <xsl:call-template name="populate-metadata-values">
198 <xsl:with-param name="path">/page/pageResponse/collection/metadataList/metadata</xsl:with-param>
199 <xsl:with-param name="metadataListName">collectionMetadata</xsl:with-param>
200 </xsl:call-template>
201
202 <xsl:call-template name="populate-metadata-values">
203 <xsl:with-param name="path">/page/pageResponse/document/metadataList/metadata</xsl:with-param>
204 <xsl:with-param name="metadataListName">documentMetadata</xsl:with-param>
205 </xsl:call-template>
206 -->
207
208 <!-- NOT WORKING BUT IT WOULD BE TIDIER IF IT DID
209 <xsl:template name="populate-metadata-values">
210 <xsl:param name="path"/>
211 <xsl:param name="metadataListName"/>
212
213 <xsl:for-each select="$path">
214 <script type="text/javascript">
215 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
216 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of select="."/><xsl:text disable-output-escaping="yes">";</xsl:text>
217 <xsl:text disable-output-escaping="yes">var lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
218 <xsl:text disable-output-escaping="yes">var metadataListName = "</xsl:text><xsl:value-of select="$metadataListName"/><xsl:text disable-output-escaping="yes">";</xsl:text>
219 var list = gs[metadataListName];
220 if(lang == "")
221 {
222 list[name] = value;
223 }
224 else
225 {
226 if (list[lang] == undefined)
227 {
228 list[lang] = new Array();
229 }
230 var langList = list[lang];
231 langList[name] = value;
232 }
233 </script>
234 </xsl:for-each>
235 </xsl:template>
236 -->
Note: See TracBrowser for help on using the repository browser.