source: other-projects/tipple-android/i-greenstone-server-files/greenstone/webapps/greenstone3/interfaces/default/transform/pages/pref.xsl@ 26899

Last change on this file since 26899 was 26899, checked in by davidb, 11 years ago

Tipple reborn after Chris's Summer of Code 2013

  • Property svn:mime-type set to application/xml
File size: 15.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 extension-element-prefixes="java util"
8 exclude-result-prefixes="java util">
9
10 <!-- use the 'main' layout -->
11 <xsl:include href="layouts/main.xsl"/>
12
13 <!-- set page title -->
14 <xsl:template name="pageTitle"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/></xsl:template>
15
16 <!-- set page breadcrumbs -->
17 <xsl:template name="breadcrumbs">
18 <gslib:siteLink/><gslib:rightArrow/>
19 <xsl:if test="/page/pageResponse/collection">
20 <gslib:collectionNameLinked/><gslib:rightArrow/>
21 </xsl:if>
22 </xsl:template>
23
24 <!-- the page content -->
25 <xsl:template match="/page">
26 <xsl:call-template name="prefs-javascript"/>
27 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
28
29 <div id="queryform">
30 <form name="PrefForm" method="get" action="{$library_name}" id="prefform">
31
32 <input type='hidden' name='a' value='p'/>
33 <input type='hidden' name='sa' value='pref'/>
34 <input type='hidden' name='c' value="{$collName}"/>
35
36 <xsl:call-template name="presentation-prefs"/>
37 <xsl:call-template name="search-prefs"/>
38 <br/>
39
40 <input type='submit' onclick="bypass=true;"><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.set_prefs')"/></xsl:attribute></input>
41
42 </form>
43 </div>
44
45 </xsl:template>
46 <xsl:template name="presentation-prefs">
47 <h3 class="formheading"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.prespref')"/></h3>
48 <div id="presprefs">
49 <xsl:call-template name="lang-param"/>
50 <!-- <xsl:call-template name="encoding-param"/>-->
51 <xsl:call-template name="format-edit-param"/>
52 <xsl:call-template name="berry-basket-param"/>
53 <xsl:call-template name="document-maker-param"/>
54 <xsl:call-template name="book-param"/>
55 <xsl:call-template name="theme-change-param"/>
56 </div>
57 </xsl:template>
58<xsl:template name="search-prefs">
59 <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3>
60 <div id="searchprefs">
61 <xsl:call-template name="hits-param"/>
62 <xsl:call-template name="max-docs-param"/>
63 </div>
64</xsl:template>
65 <xsl:template name="prefs-javascript">
66 <!--
67 Add some javascript to the page that notices when a preference is changed
68 so that, if the user tries to navigate away from the page without clicking
69 the "Set preferences" button, it asks them if they want their preferences
70 saved or not
71 -->
72 <script type="text/javascript"><xsl:text disable-output-escaping="yes">
73 var modified = false;
74 var bypass = false;
75
76 function assembleURLFromForm(formElem)
77 {
78 var url = "dev";
79 var selectNodes = formElem.getElementsByTagName("select");
80 var inputNodes = formElem.getElementsByTagName("input");
81
82 for (var i = 0; i &lt; selectNodes.length; i++)
83 {
84 var current = selectNodes[i];
85 url += (url == "dev") ? "?" : "&amp;";
86 url += current.name + "=";
87 url += current.options[current.selectedIndex].text;
88 }
89
90 for (var i = 0; i &lt; inputNodes.length; i++)
91 {
92 var current = inputNodes[i];
93 if (current.type == "hidden" || current.type == "text")
94 {
95 url += (url == "dev") ? "?" : "&amp;";
96 url += current.name + "=";
97 url += current.value;
98 }
99 }
100 return url;
101 }
102
103 function checkModified(e)
104 {
105 if (modified &amp;&amp; !bypass)
106 {
107 var ok = confirm("Would you like to save your preferences?");
108
109 if (ok)
110 {
111 var formElem = document.getElementById("prefform");
112 formElem.submit();
113 var xmlhttp;
114 if (window.XMLHttpRequest)
115 {
116 xmlhttp=new XMLHttpRequest();
117 }
118 else
119 {
120 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
121 }
122
123 xmlhttp.open("GET",assembleURLFromForm(formElem),false);
124 xmlhttp.send();
125 }
126 }
127 }
128
129 function changed()
130 {
131 modified = true;
132 bypass = false;
133 }
134
135 function pageLoad()
136 {
137 var formElem = document.getElementById("prefform");
138
139 var selectNodes = formElem.getElementsByTagName("select");
140 var inputNodes = formElem.getElementsByTagName("input");
141
142 YAHOO.util.Event.addListener(selectNodes, 'change', changed);
143
144 for(var i = 0; i &lt; inputNodes.length; i++)
145 {
146 current = inputNodes[i];
147 if(current.getAttribute("type") == null)
148 {
149 YAHOO.util.Event.on(current, 'keyup', changed);
150 }
151 }
152 }
153
154 YAHOO.util.Event.addListener(window, 'load', pageLoad);
155 YAHOO.util.Event.addListener(window, 'beforeunload', checkModified);
156 </xsl:text></script>
157 </xsl:template>
158
159
160 <xsl:template name="lang-param">
161 <div class="paramLabel">
162 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.interfacelang')"/>
163 </div>
164 <div class="paramValue">
165 <select name="l">
166 <xsl:for-each select="/page/pageResponse/languageList/language">
167 <option value="{@name}"><xsl:if test="@name=/page/@lang"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></option>
168 </xsl:for-each>
169 </select>
170
171 </div>
172 <br class="clear"/>
173
174</xsl:template>
175
176
177 <xsl:template name="encoding-param">
178 <div class="paramValue">
179 <span class="rightspace"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.encoding')"/></span>
180 </div>
181 <br class="clear"/>
182
183 </xsl:template>
184
185
186 <xsl:template name="format-edit-param">
187 <xsl:if test="/page/pageResponse/collection/serviceList/service[@name='CoverageMetadataRetrieve']">
188 <div id="formateditprefs">
189 <xsl:variable name="formatedit"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='formatedit']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='formatedit']/@value"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose></xsl:variable>
190 <div class="paramLabel">
191 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.formatedit')"/>
192 </div>
193 <div class="paramValue">
194 <select name="formatedit">
195 <option value="on"><xsl:if test="$formatedit='on'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.formatedit.on')"/></option>
196 <option value="off"><xsl:if test="$formatedit='off'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.formatedit.off')"/></option>
197 </select>
198 </div>
199 <br class="clear"/>
200 </div>
201 </xsl:if>
202</xsl:template>
203
204<xsl:template name="berry-basket-param">
205 <div id="berrybasketprefs">
206 <xsl:variable name="berrybasket"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='berrybasket']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='berrybasket']/@value"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose></xsl:variable>
207 <div class="paramLabel">
208 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket')"/>
209 </div>
210 <div class="paramValue">
211 <select name="berrybasket">
212 <option value="on"><xsl:if test="$berrybasket='on'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.on')"/></option>
213 <option value="off"><xsl:if test="$berrybasket='off'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.off')"/></option>
214 </select>
215 </div>
216 <br class="clear"/>
217 </div>
218</xsl:template>
219 <xsl:template name="document-maker-param">
220 <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))">
221 <div id="documentmakerprefs">
222 <xsl:variable name="documentbasket"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='documentbasket']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='documentbasket']/@value"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose></xsl:variable>
223 <div class="paramLabel">Document basket</div>
224 <div class="paramValue">
225 <select name="documentbasket">
226 <option value="on"><xsl:if test="$documentbasket='on'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.on')"/></option>
227 <option value="off"><xsl:if test="$documentbasket='off'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.off')"/></option>
228 </select>
229 </div>
230 <br class="clear"/>
231 </div>
232 </xsl:if>
233 </xsl:template>
234 <xsl:template name="book-param">
235 <!-- tidy (?) -->
236 <xsl:variable name="tidyoption"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='tidyoption']"/></xsl:variable>
237 <xsl:if test="$tidyoption='tidy'">
238 <xsl:variable name="book">
239 <xsl:choose>
240 <xsl:when test="/page/pageRequest/paramList/param[@name='book']">
241 <xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/>
242 </xsl:when>
243 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.book']">
244 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.book']/@value"/>
245 </xsl:when>
246 <xsl:otherwise>off</xsl:otherwise>
247 </xsl:choose>
248 </xsl:variable>
249 <div class="paramLabel">
250 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.book')"/>
251 </div>
252 <div class="paramValue">
253 <select name="s1.book">
254 <option value="on"><xsl:if test="$book='on'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.on')"/></option>
255 <option value="off"><xsl:if test="$book='off'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket.off')"/></option>
256 </select>
257 </div>
258 <br class="clear"/>
259 </xsl:if>
260 </xsl:template>
261 <xsl:template name="theme-change-param">
262 <!-- Theme Changer -->
263 <xsl:if test="/page/pageRequest/userInformation and util:contains(/page/pageRequest/userInformation/@groups, 'administrator')">
264 <div>
265 <div class="paramLabel"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.theme')"/></div>
266 <script type="text/javascript">
267 <xsl:text disable-output-escaping="yes">
268 $(document).ready(function(){
269 $("#switcher").themeswitcher({
270 imgpath: "interfaces/" + gs.xsltParams.interface_name + "/style/images/",
271 additionalThemes: [
272 {title:"Greenstone Default", name:"custom-theme0", icon:"theme_90_greenstone.png", url:"interfaces/" + gs.xsltParams.interface_name + "/style/themes/main/jquery-ui-1.8.16.custom.css"},
273 {title:"Greenstone Custom 1", name:"custom-theme1", icon:"theme_90_start_menu.png", url:"interfaces/" + gs.xsltParams.interface_name + "/style/themes/alt_theme_1/jquery-ui-1.8.16.custom.css"},
274 {title:"Greenstone Custom 2", name:"custom-theme2", icon:"theme_90_mint_choco.png", url:"interfaces/" + gs.xsltParams.interface_name + "/style/themes/alt_theme_2/jquery-ui-1.8.16.custom.css"},
275 {title:"Greenstone Custom 3", name:"custom-theme3", icon:"theme_90_trontastic.png", url:"interfaces/" + gs.xsltParams.interface_name + "/style/themes/alt_theme_3/jquery-ui-1.8.16.custom.css"}
276 ]
277 });
278 });
279 </xsl:text>
280 </script>
281 <div class="paramValue" id="switcher"><xsl:text> </xsl:text></div>
282 </div>
283 <br class="clear"/>
284 </xsl:if>
285</xsl:template>
286
287<xsl:template name="hits-param">
288 <xsl:variable name="hits">
289 <xsl:choose>
290 <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
291 <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/>
292 </xsl:when>
293 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
294 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value"/>
295 </xsl:when>
296 <xsl:otherwise>
297 20
298 </xsl:otherwise>
299 </xsl:choose>
300 </xsl:variable>
301 <div class="paramLabel">
302 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/>
303 </div>
304 <div class="paramValue">
305 <select name="s1.hitsPerPage">
306 <option value="20">
307 <xsl:if test="$hits=20">
308 <xsl:attribute name="selected" />
309 </xsl:if>
310 20
311 </option>
312 <option value="50">
313 <xsl:if test="$hits=50">
314 <xsl:attribute name="selected" />
315 </xsl:if>
316 50
317 </option>
318 <option value="100">
319 <xsl:if test="$hits=100">
320 <xsl:attribute name="selected" />
321 </xsl:if>
322 100
323 </option>
324 <option value="-1">
325 <xsl:if test="$hits=-1">
326 <xsl:attribute name="selected" />
327 </xsl:if>
328 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/>
329 </option>
330 </select>
331 </div>
332
333 <br class="clear"/>
334 </xsl:template>
335 <xsl:template name="max-docs-param">
336 <xsl:variable name="mdocs">
337 <xsl:choose>
338 <xsl:when test="/page/pageRequest/paramList/param[@name='maxDocs']">
339 <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/>
340 </xsl:when>
341 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.maxDocs']">
342 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.maxDocs']/@value"/>
343 </xsl:when>
344 <xsl:otherwise>100</xsl:otherwise>
345 </xsl:choose>
346 </xsl:variable>
347 <div class="paramLabel">
348 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.maxDocs')"/>
349 </div>
350 <div class="paramValue">
351 <input name="s1.maxDocs" size="3" value="{$mdocs}" />
352 </div>
353
354 <br class="clear"/>
355</xsl:template>
356
357 <!-- what happens if more than one query service??-->
358 <xsl:template name="casefold-param">
359 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@type='query']/paramList/param[@name='case']"><xsl:call-template name="param-display"/></xsl:for-each>
360 </xsl:template>
361 <xsl:template name="stem-param">
362 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@type='query']/paramList/param[@name='stem']"><xsl:call-template name="param-display"/></xsl:for-each>
363 </xsl:template>
364 <xsl:template name="accentfold-param">
365 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@type='query']/paramList/param[@name='accent']"><xsl:call-template name="param-display"/></xsl:for-each>
366 </xsl:template>
367</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.