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

Last change on this file was 38355, checked in by kjdon, 6 months ago

placeholder for allowing collection specific preferences - add in a collection's transform/pages/pref.xsl

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