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

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

Lots of upgrades to the oran skin, getting it ready to be the default skin for Greenstone3

File size: 8.9 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
31 function assembleURLFromForm(formElem)
32 {
33 var url = "dev";
34 var selectNodes = formElem.getElementsByTagName("select");
35 var inputNodes = formElem.getElementsByTagName("input");
36
37 for (var i = 0; i &lt; selectNodes.length; i++)
38 {
39 var current = selectNodes[i];
40 url += (url == "dev") ? "?" : "&amp;";
41 url += current.name + "=";
42 url += current.options[current.selectedIndex].text;
43 }
44
45 for (var i = 0; i &lt; inputNodes.length; i++)
46 {
47 var current = inputNodes[i];
48 if (current.type == "hidden" || current.type == "text")
49 {
50 url += (url == "dev") ? "?" : "&amp;";
51 url += current.name + "=";
52 url += current.value;
53 }
54 }
55 return url;
56 }
57
58 function checkModified(e)
59 {
60 if (modified)
61 {
62 var ok = confirm("Would you like to save your preferences?");
63
64 if (ok)
65 {
66 var formElem = document.getElementById("prefform");
67 formElem.submit();
68 var xmlhttp;
69 if (window.XMLHttpRequest)
70 {
71 xmlhttp=new XMLHttpRequest();
72 }
73 else
74 {
75 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
76 }
77 //assembleURLFromForm(formElem);
78 xmlhttp.open("GET",assembleURLFromForm(formElem),false);
79 xmlhttp.send();
80 }
81 }
82 }
83
84 function changed()
85 {
86 modified = true;
87 }
88
89 function pageLoad()
90 {
91 var formElem = document.getElementById("prefform");
92
93 var selectNodes = formElem.getElementsByTagName("select");
94 var inputNodes = formElem.getElementsByTagName("input");
95
96 YAHOO.util.Event.addListener(selectNodes, 'change', changed);
97
98 for(var i = 0; i &lt; inputNodes.length; i++)
99 {
100 current = inputNodes[i];
101 if(current.getAttribute("type") == null)
102 {
103 YAHOO.util.Event.on(current, 'keyup', changed);
104 }
105 }
106 }
107
108 YAHOO.util.Event.addListener(window, 'load', pageLoad);
109 YAHOO.util.Event.addListener(window, 'beforeunload', checkModified);
110 </xsl:text></script>
111
112 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
113 <xsl:variable name="tidyoption"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='tidyoption']"/></xsl:variable>
114
115 <div id="queryform">
116 <form name="PrefForm" method="get" action="{$library_name}" id="prefform">
117
118 <input type='hidden' name='a' value='p'/>
119 <input type='hidden' name='sa' value='pref'/>
120 <input type='hidden' name='c' value="{$collName}"/>
121
122 <!-- presentation preferences -->
123 <h3 class="formheading"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.prespref')"/></h3>
124 <div id="presprefs">
125
126 <!-- language -->
127 <div class="paramLabel">
128 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.interfacelang')"/>
129 </div>
130 <div class="paramValue">
131 <select name="l">
132 <xsl:for-each select="/page/pageResponse/languageList/language">
133 <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>
134 </xsl:for-each>
135 </select>
136
137 </div>
138 <br class="clear"/>
139
140 <!-- encoding -->
141 <div class="paramValue">
142 <span class="rightspace"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.encoding')"/></span>
143 </div>
144 <br class="clear"/>
145
146 </div>
147
148 <!-- berry baskets -->
149 <div id="berrybasketprefs">
150 <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>
151 <div class="paramLabel">
152 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket')"/>
153 </div>
154 <div class="paramValue">
155 <select name="berrybasket">
156 <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>
157 <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>
158 </select>
159 </div>
160 <br class="clear"/>
161 </div>
162
163 <!-- tidy (?) -->
164 <xsl:if test="$tidyoption='tidy'">
165 <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>
166 <div class="paramLabel">
167 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.book')"/>
168 </div>
169 <div class="paramValue">
170 <select name="book">
171 <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>
172 <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>
173 </select>
174 </div>
175 <br class="clear"/>
176 </xsl:if>
177
178 <!-- search preferences -->
179 <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.searchpref')"/></h3>
180 <div id="searchprefs">
181 <xsl:variable name="hits">
182 <xsl:choose>
183 <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
184 <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/>
185 </xsl:when>
186 <xsl:otherwise>
187 20
188 </xsl:otherwise>
189 </xsl:choose>
190 </xsl:variable>
191 <div class="paramLabel">
192 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.hitsperpage')"/>
193 </div>
194 <div class="paramValue">
195 <select name="hitsPerPage">
196 <option value="20">
197 <xsl:if test="$hits=20">
198 <xsl:attribute name="selected" />
199 </xsl:if>
200 20
201 </option>
202 <option value="50">
203 <xsl:if test="$hits=50">
204 <xsl:attribute name="selected" />
205 </xsl:if>
206 50
207 </option>
208 <option value="100">
209 <xsl:if test="$hits=100">
210 <xsl:attribute name="selected" />
211 </xsl:if>
212 100
213 </option>
214 <option value="-1">
215 <xsl:if test="$hits=-1">
216 <xsl:attribute name="selected" />
217 </xsl:if>
218 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.all')"/>
219 </option>
220 </select>
221 </div>
222
223 <br class="clear"/>
224
225 <xsl:variable name="mdocs">
226 <xsl:choose>
227 <xsl:when test="/page/pageRequest/paramList/param[@name='maxDocs']">
228 <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/>
229 </xsl:when>
230 <xsl:otherwise>100</xsl:otherwise>
231 </xsl:choose>
232 </xsl:variable>
233 <div class="paramLabel">
234 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.maxDocs')"/>
235 </div>
236 <div class="paramValue">
237 <input name="maxDocs" size="3" value="{$mdocs}" />
238 </div>
239
240 <br class="clear"/>
241 </div>
242
243 <br/>
244
245 <input type='submit'><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.set_prefs')"/></xsl:attribute></input>
246
247 </form>
248 </div>
249
250 </xsl:template>
251
252</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.