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

Last change on this file since 36636 was 36636, checked in by kjdon, 19 months ago

I want the group breadcrumbs to appear on all pages, so adding it into help, pref, classifier, query, document

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