source: main/trunk/greenstone3/web/interfaces/oran/transform/pages/pref.xsl@ 25431

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

Don

File size: 13.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 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
27 <!--
28 Add some javascript to the page that notices when a preference is changed
29 so that, if the user tries to navigate away from the page without clicking
30 the "Set preferences" button, it asks them if they want their preferences
31 saved or not
32 -->
33 <script type="text/javascript"><xsl:text disable-output-escaping="yes">
34 var modified = false;
35 var bypass = false;
36
37 function assembleURLFromForm(formElem)
38 {
39 var url = "dev";
40 var selectNodes = formElem.getElementsByTagName("select");
41 var inputNodes = formElem.getElementsByTagName("input");
42
43 for (var i = 0; i &lt; selectNodes.length; i++)
44 {
45 var current = selectNodes[i];
46 url += (url == "dev") ? "?" : "&amp;";
47 url += current.name + "=";
48 url += current.options[current.selectedIndex].text;
49 }
50
51 for (var i = 0; i &lt; inputNodes.length; i++)
52 {
53 var current = inputNodes[i];
54 if (current.type == "hidden" || current.type == "text")
55 {
56 url += (url == "dev") ? "?" : "&amp;";
57 url += current.name + "=";
58 url += current.value;
59 }
60 }
61 return url;
62 }
63
64 function checkModified(e)
65 {
66 if (modified &amp;&amp; !bypass)
67 {
68 var ok = confirm("Would you like to save your preferences?");
69
70 if (ok)
71 {
72 var formElem = document.getElementById("prefform");
73 formElem.submit();
74 var xmlhttp;
75 if (window.XMLHttpRequest)
76 {
77 xmlhttp=new XMLHttpRequest();
78 }
79 else
80 {
81 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
82 }
83
84 xmlhttp.open("GET",assembleURLFromForm(formElem),false);
85 xmlhttp.send();
86 }
87 }
88 }
89
90 function changed()
91 {
92 modified = true;
93 bypass = false;
94 }
95
96 function pageLoad()
97 {
98 var formElem = document.getElementById("prefform");
99
100 var selectNodes = formElem.getElementsByTagName("select");
101 var inputNodes = formElem.getElementsByTagName("input");
102
103 YAHOO.util.Event.addListener(selectNodes, 'change', changed);
104
105 for(var i = 0; i &lt; inputNodes.length; i++)
106 {
107 current = inputNodes[i];
108 if(current.getAttribute("type") == null)
109 {
110 YAHOO.util.Event.on(current, 'keyup', changed);
111 }
112 }
113 }
114
115 YAHOO.util.Event.addListener(window, 'load', pageLoad);
116 YAHOO.util.Event.addListener(window, 'beforeunload', checkModified);
117 </xsl:text></script>
118
119 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
120 <xsl:variable name="tidyoption"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='tidyoption']"/></xsl:variable>
121
122 <div id="queryform">
123 <form name="PrefForm" method="get" action="{$library_name}" id="prefform">
124
125 <input type='hidden' name='a' value='p'/>
126 <input type='hidden' name='sa' value='pref'/>
127 <input type='hidden' name='c' value="{$collName}"/>
128
129 <!-- presentation preferences -->
130 <h3 class="formheading"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.prespref')"/></h3>
131 <div id="presprefs">
132
133 <!-- language -->
134 <div class="paramLabel">
135 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.interfacelang')"/>
136 </div>
137 <div class="paramValue">
138 <select name="l">
139 <xsl:for-each select="/page/pageResponse/languageList/language">
140 <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>
141 </xsl:for-each>
142 </select>
143
144 </div>
145 <br class="clear"/>
146
147 <!-- encoding -->
148 <div class="paramValue">
149 <span class="rightspace"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.encoding')"/></span>
150 </div>
151 <br class="clear"/>
152
153 <!-- format editing -->
154 <xsl:if test="/page/pageResponse/collection/serviceList/service[@name='CoverageMetadataRetrieve']">
155 <div id="formateditprefs">
156 <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>
157 <div class="paramLabel">
158 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.formatedit')"/>
159 </div>
160 <div class="paramValue">
161 <select name="formatedit">
162 <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>
163 <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>
164 </select>
165 </div>
166 <br class="clear"/>
167 </div>
168 </xsl:if>
169 </div>
170
171 <!-- berry baskets -->
172 <div id="berrybasketprefs">
173 <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>
174 <div class="paramLabel">
175 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket')"/>
176 </div>
177 <div class="paramValue">
178 <select name="berrybasket">
179 <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>
180 <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>
181 </select>
182 </div>
183 <br class="clear"/>
184 </div>
185
186 <!-- document maker -->
187 <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))">
188 <div id="documentmakerprefs">
189 <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>
190 <div class="paramLabel">Document basket</div>
191 <div class="paramValue">
192 <select name="documentbasket">
193 <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>
194 <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>
195 </select>
196 </div>
197 <br class="clear"/>
198 </div>
199 </xsl:if>
200
201 <!-- tidy (?) -->
202 <xsl:if test="$tidyoption='tidy'">
203 <xsl:variable name="book"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='book']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose></xsl:variable>
204 <div class="paramLabel">
205 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.book')"/>
206 </div>
207 <div class="paramValue">
208 <select name="book">
209 <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>
210 <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>
211 </select>
212 </div>
213 <br class="clear"/>
214 </xsl:if>
215
216 <!-- Theme Changer -->
217 <xsl:if test="/page/pageRequest/userInformation and util:contains(/page/pageRequest/userInformation/@groups, 'administrator')">
218 <script type="text/javascript">
219 <xsl:text disable-output-escaping="yes">
220 $(document).ready(function(){
221 $("#switcher").themeswitcher({
222 imgpath: "interfaces/" + gs.xsltParams.interface_name + "/style/images/",
223 additionalThemes: [
224 {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"},
225 {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"},
226 {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"},
227 {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"}
228 ]
229 });
230 });
231 </xsl:text>
232 </script>
233 <div id="switcher"><xsl:text> </xsl:text></div>
234 </xsl:if>
235
236 <!-- search preferences -->
237 <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3>
238 <div id="searchprefs">
239 <xsl:variable name="hits">
240 <xsl:choose>
241 <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
242 <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/>
243 </xsl:when>
244 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
245 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value"/>
246 </xsl:when>
247 <xsl:otherwise>
248 20
249 </xsl:otherwise>
250 </xsl:choose>
251 </xsl:variable>
252 <div class="paramLabel">
253 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/>
254 </div>
255 <div class="paramValue">
256 <select name="s1.hitsPerPage">
257 <option value="20">
258 <xsl:if test="$hits=20">
259 <xsl:attribute name="selected" />
260 </xsl:if>
261 20
262 </option>
263 <option value="50">
264 <xsl:if test="$hits=50">
265 <xsl:attribute name="selected" />
266 </xsl:if>
267 50
268 </option>
269 <option value="100">
270 <xsl:if test="$hits=100">
271 <xsl:attribute name="selected" />
272 </xsl:if>
273 100
274 </option>
275 <option value="-1">
276 <xsl:if test="$hits=-1">
277 <xsl:attribute name="selected" />
278 </xsl:if>
279 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/>
280 </option>
281 </select>
282 </div>
283
284 <br class="clear"/>
285
286 <xsl:variable name="mdocs">
287 <xsl:choose>
288 <xsl:when test="/page/pageRequest/paramList/param[@name='maxDocs']">
289 <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/>
290 </xsl:when>
291 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.maxDocs']">
292 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.maxDocs']/@value"/>
293 </xsl:when>
294 <xsl:otherwise>100</xsl:otherwise>
295 </xsl:choose>
296 </xsl:variable>
297 <div class="paramLabel">
298 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.maxDocs')"/>
299 </div>
300 <div class="paramValue">
301 <input name="s1.maxDocs" size="3" value="{$mdocs}" />
302 </div>
303
304 <br class="clear"/>
305 </div>
306
307 <br/>
308
309 <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>
310
311 </form>
312 </div>
313
314 </xsl:template>
315
316</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.