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