source: main/trunk/greenstone3/web/interfaces/oran/transform/javascript-global-setup.xsl@ 24467

Last change on this file since 24467 was 24467, checked in by sjm84, 13 years ago

Committing a file I seemed to have missed in my previous commit, also document-scripts.xsl is now in a javascirpt file

  • Property svn:executable set to *
File size: 8.7 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 gs = new Array();
12 gs.cgiParams = new Array();
13 gs.siteMetadata = new Array();
14 gs.collectionMetadata = new Array();
15 gs.documentMetadata = new Array();
16 gs.imageURLs = new Array();
17 gs.variables = new Array();
18 </script>
19 <xsl:call-template name="populate-cgi-param-values"/>
20 <xsl:call-template name="populate-image-url-values"/>
21 <xsl:call-template name="populate-metadata-values"/>
22 <script type="text/javascript">
23 alert(gs.cgiParams.c);
24 alert(gs.cgiParams.book);
25 alert(gs.siteMetadata.siteDescription);
26 alert(gs.siteMetadata.fr.siteDescription);
27 alert(gs.collectionMetadata.httpPath);
28 alert(gs.documentMetadata.assocfilepath);
29 </script>
30 </xsl:template>
31
32 <xsl:template name="populate-cgi-param-values">
33 <xsl:for-each select="/page/pageRequest/paramList/param">
34 <script type="text/javascript">
35 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
36 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of select="@value"/><xsl:text disable-output-escaping="yes">";</xsl:text>
37 <xsl:text disable-output-escaping="yes">name = name.replace(".", "_");</xsl:text>
38 gs.cgiParams[name] = value;
39 </script>
40 </xsl:for-each>
41 </xsl:template>
42
43 <xsl:template name="populate-metadata-values">
44 <script type="text/javascript">
45 <xsl:text disable-output-escaping="yes">
46 function addMetadataToList(name, value, list, lang)
47 {
48 name = name.replace(".", "_");
49 if(lang == "" || lang == "en")
50 {
51 list[name] = value;
52 }
53 else
54 {
55 if (list[lang] == undefined)
56 {
57 list[lang] = new Array();
58 }
59 var langList = list[lang];
60 langList[name] = value;
61 }
62 }
63 </xsl:text>
64 </script>
65 <xsl:for-each select="/page/pageResponse/metadataList/metadata">
66 <script type="text/javascript">
67 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
68 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="."/><xsl:text disable-output-escaping="yes">";</xsl:text>
69 <xsl:text disable-output-escaping="yes">var lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
70 addMetadataToList(name, value, gs.siteMetadata, lang);
71 </script>
72 </xsl:for-each>
73
74 <xsl:for-each select="/page/pageResponse/collection/metadataList/metadata">
75 <script type="text/javascript">
76 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
77 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="."/><xsl:text disable-output-escaping="yes">";</xsl:text>
78 <xsl:text disable-output-escaping="yes">var lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
79 addMetadataToList(name, value, gs.collectionMetadata, lang);
80 </script>
81 </xsl:for-each>
82
83 <xsl:for-each select="/page/pageResponse/document/metadataList/metadata">
84 <script type="text/javascript">
85 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
86 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of disable-output-escaping="yes" select="."/><xsl:text disable-output-escaping="yes">";</xsl:text>
87 <xsl:text disable-output-escaping="yes">var lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
88 addMetadataToList(name, value, gs.documentMetadata, lang);
89 </script>
90 </xsl:for-each>
91 </xsl:template>
92
93 <xsl:template name="populate-image-url-values">
94 <script type="text/javascript">
95 <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>
96 <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>
97 <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>
98 <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>
99 <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>
100 <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>
101 <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>
102 <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>
103 <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>
104 <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>
105 </script>
106 </xsl:template>
107</xsl:stylesheet>
108
109 <!--
110 USEFUL FOR TESTING ASSOCIATIVE ARRAYS
111 function getKeys(obj)
112 {
113 var keys = [];
114 for(var key in obj)
115 {
116 keys.push(key);
117 }
118 return keys;
119 }
120 -->
121
122 <!-- CAN WE FIND SOME WAY TO MAKE THIS WORK?
123 <xsl:call-template name="populate-metadata-values">
124 <xsl:with-param name="path">/page/pageResponse/metadataList/metadata</xsl:with-param>
125 <xsl:with-param name="metadataListName">siteMetadata</xsl:with-param>
126 </xsl:call-template>
127
128 <xsl:call-template name="populate-metadata-values">
129 <xsl:with-param name="path">/page/pageResponse/collection/metadataList/metadata</xsl:with-param>
130 <xsl:with-param name="metadataListName">collectionMetadata</xsl:with-param>
131 </xsl:call-template>
132
133 <xsl:call-template name="populate-metadata-values">
134 <xsl:with-param name="path">/page/pageResponse/document/metadataList/metadata</xsl:with-param>
135 <xsl:with-param name="metadataListName">documentMetadata</xsl:with-param>
136 </xsl:call-template>
137 -->
138
139 <!-- NOT WORKING BUT IT WOULD BE TIDIER IF IT DID
140 <xsl:template name="populate-metadata-values">
141 <xsl:param name="path"/>
142 <xsl:param name="metadataListName"/>
143
144 <xsl:for-each select="$path">
145 <script type="text/javascript">
146 <xsl:text disable-output-escaping="yes">var name = "</xsl:text><xsl:value-of select="@name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
147 <xsl:text disable-output-escaping="yes">var value = "</xsl:text><xsl:value-of select="."/><xsl:text disable-output-escaping="yes">";</xsl:text>
148 <xsl:text disable-output-escaping="yes">var lang = "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">";</xsl:text>
149 <xsl:text disable-output-escaping="yes">var metadataListName = "</xsl:text><xsl:value-of select="$metadataListName"/><xsl:text disable-output-escaping="yes">";</xsl:text>
150 var list = gs[metadataListName];
151 if(lang == "")
152 {
153 list[name] = value;
154 }
155 else
156 {
157 if (list[lang] == undefined)
158 {
159 list[lang] = new Array();
160 }
161 var langList = list[lang];
162 langList[name] = value;
163 }
164 </script>
165 </xsl:for-each>
166 </xsl:template>
167 -->
Note: See TracBrowser for help on using the repository browser.