source: main/trunk/greenstone3/web/interfaces/default/transform/pages/pref.xsl@ 36027

Last change on this file since 36027 was 36027, checked in by cstephen, 2 years ago

Migrate to using jQuery3 and jQuery-UI-1.13.2; and integrate cookie consent manager

File size: 12.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 <button type="button" data-cc="c-settings" class="cc-link">Cookie Consent Manager</button>
37 <p id="SaveInstructions" style="color:red; text-align:center; display:none;"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.set_prefs_help')"/></p>
38 <xsl:call-template name="presentation-prefs"/>
39 <br/>
40
41 <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>
42
43 </form>
44 </div>
45
46 </xsl:template>
47 <xsl:template name="presentation-prefs">
48 <h3 class="formheading"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.prespref')"/></h3>
49 <div id="presprefs">
50 <xsl:call-template name="lang-param"/>
51 <!-- <xsl:call-template name="encoding-param"/>-->
52 <xsl:call-template name="format-edit-param"/>
53 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'">
54 <xsl:call-template name="berry-basket-param"/>
55 </xsl:if>
56 <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'">
57 <xsl:call-template name="favourite-basket-param"/>
58 </xsl:if>
59 <!--<xsl:call-template name="document-maker-param"/> not working at moment-->
60 <xsl:call-template name="book-param"/>
61 <xsl:call-template name="theme-change-param"/>
62 </div>
63 </xsl:template>
64
65 <xsl:template name="prefs-javascript">
66 <!--
67 Add some javascript to the page that notices when a preference
68 is changed so that, if the user tries to navigate away from
69 the page without clicking the "Set preferences" button, it
70 gives a stay/leave dialog. -->
71 <script type="text/javascript"><xsl:text disable-output-escaping="yes">
72 var modified = false;
73 var bypass = false;
74
75 function unsavedChanges(e) {
76 if (modified &amp;&amp; !bypass) {
77 document.getElementById("SaveInstructions").style.display="block";
78 return "Provide the prompt";
79 }
80 // no return statement - no dialog will be shown
81 }
82
83 function changed()
84 {
85 modified = true;
86 bypass = false;
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 $(window).on("beforeunload", unsavedChanges);
110 </xsl:text></script>
111 </xsl:template>
112
113
114 <xsl:template name="lang-param">
115 <xsl:if test="/page/pageResponse/languageList/language">
116 <div class="paramLabel">
117 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.interfacelang')"/>
118 </div>
119 <div class="paramValue">
120 <select name="l">
121 <xsl:for-each select="/page/pageResponse/languageList/language">
122 <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>
123 </xsl:for-each>
124 </select>
125
126 </div>
127 <br class="clear"/>
128 </xsl:if>
129 </xsl:template>
130
131
132 <xsl:template name="encoding-param">
133 <div class="paramValue">
134 <span class="rightspace"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.encoding')"/></span>
135 </div>
136 <br class="clear"/>
137
138 </xsl:template>
139
140
141 <xsl:template name="format-edit-param">
142 <xsl:if test="/page/pageResponse/collection/serviceList/service[@name='CoverageMetadataRetrieve']">
143 <div id="formateditprefs">
144 <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>
145 <div class="paramLabel">
146 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.formatedit')"/>
147 </div>
148 <div class="paramValue">
149 <select name="formatedit">
150 <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.on')"/></option>
151 <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.off')"/></option>
152 </select>
153 </div>
154 <br class="clear"/>
155 </div>
156 </xsl:if>
157</xsl:template>
158
159<xsl:template name="berry-basket-param">
160 <div id="berrybasketprefs">
161 <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>
162 <div class="paramLabel">
163 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.berrybasket')"/>
164 </div>
165 <div class="paramValue">
166 <select name="berrybasket">
167 <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.on')"/></option>
168 <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.off')"/></option>
169 </select>
170 </div>
171 <br class="clear"/>
172 </div>
173</xsl:template>
174
175
176<xsl:template name="favourite-basket-param">
177 <div id="favouritebasketprefs">
178 <xsl:variable name="favouritebasket"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='favouritebasket']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='favouritebasket']/@value"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose></xsl:variable>
179 <div class="paramLabel">
180 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.favouritebasket')"/>
181 </div>
182 <div class="paramValue">
183 <select name="favouritebasket">
184 <option value="on"><xsl:if test="$favouritebasket='on'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.on')"/></option>
185 <option value="off"><xsl:if test="$favouritebasket='off'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.off')"/></option>
186 </select>
187 </div>
188 <br class="clear"/>
189 </div>
190</xsl:template>
191
192 <xsl:template name="document-maker-param">
193 <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))">
194 <div id="documentmakerprefs">
195 <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>
196 <div class="paramLabel"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.documentbasket')"/></div>
197 <div class="paramValue">
198 <select name="documentbasket">
199 <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.on')"/></option>
200 <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.off')"/></option>
201 </select>
202 </div>
203 <br class="clear"/>
204 </div>
205 </xsl:if>
206 </xsl:template>
207
208 <xsl:template name="book-param">
209 <!-- tidy (?) -->
210 <xsl:variable name="tidyoption">
211 <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='tidyoption']" />
212 </xsl:variable>
213
214 <xsl:if test="$tidyoption='tidy'">
215 <xsl:variable name="book">
216 <xsl:choose>
217 <xsl:when test="/page/pageRequest/paramList/param[@name='book']">
218 <xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value" />
219 </xsl:when>
220 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.book']">
221 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.book']/@value" />
222 </xsl:when>
223 <xsl:otherwise>off</xsl:otherwise>
224 </xsl:choose>
225 </xsl:variable>
226 <div class="paramLabel">
227 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.book')" />
228 </div>
229 <div class="paramValue">
230 <select name="s1.book">
231 <option value="on">
232 <xsl:if test="$book='on'">
233 <xsl:attribute name="selected"></xsl:attribute>
234 </xsl:if>
235 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.on')" />
236 </option>
237 <option value="off">
238 <xsl:if test="$book='off'">
239 <xsl:attribute name="selected"></xsl:attribute>
240 </xsl:if>
241 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.off')" />
242 </option>
243 </select>
244 </div>
245 <br class="clear"/>
246 </xsl:if>
247 </xsl:template>
248
249 <xsl:template name="theme-change-param">
250 <!-- Theme Changer -->
251 <xsl:if test="/page/pageRequest/userInformation and util:contains(/page/pageRequest/userInformation/@groups, 'administrator')">
252 <div>
253 <div class="paramLabel">
254 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref.theme')" />
255 </div>
256
257 <script type="text/javascript">
258 <xsl:text disable-output-escaping="yes">
259 $(function() {
260 $("#switcher").themeswitcher({
261 imgpath: "interfaces/" + gs.xsltParams.interface_name + "/style/images/",
262 additionalThemes: [
263 {
264 title: gs.text.pref.theme_default,
265 name: "custom-theme0",
266 icon: "theme_90_greenstone.png",
267 url: "interfaces/" + gs.xsltParams.interface_name + "/style/themes/main/jquery-ui.theme.css"
268 },
269 ]
270 });
271 });
272 </xsl:text>
273 </script>
274
275 <div class="paramValue" id="switcher">
276 <xsl:text> </xsl:text>
277 </div>
278 </div>
279 <br class="clear" />
280 </xsl:if>
281 </xsl:template>
282
283</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.