source: main/trunk/greenstone3/web/interfaces/default/transform/pages/authen.xsl@ 37476

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

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

  • Property svn:executable set to *
File size: 27.3 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:gslib="http://www.greenstone.org/skinning"
6 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
7 extension-element-prefixes="java util"
8 exclude-result-prefixes="java util">
9
10 <!-- use the 'main' layout -->
11 <xsl:import href="layouts/main.xsl"/>
12 <xsl:output method="html"/>
13
14 <!-- add recaptcha js to the head -->
15 <xsl:template name="additionalHeaderContent-page">
16 <script src='https://www.google.com/recaptcha/api.js?hl={/page/@lang}'><xsl:text> </xsl:text></script>
17 </xsl:template>
18
19 <!-- set page title -->
20 <xsl:template name="pageTitle">
21 <xsl:choose>
22 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AddUser'">
23 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.add_a_new_user_title')"/>
24 </xsl:when>
25 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'Register'">
26 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.register')"/>
27 </xsl:when>
28 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'EditUser'">
29 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.edit_user_information')"/>
30 </xsl:when>
31 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AccountSettings'">
32 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.account_settings')"/>
33 </xsl:when>
34 <xsl:otherwise>
35 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.authentication')"/>
36 </xsl:otherwise>
37 </xsl:choose>
38 </xsl:template>
39
40 <!-- set page breadcrumbs -->
41 <xsl:template name="breadcrumbs">
42 <gslib:siteLink/><xsl:if test="/page/pageResponse/authenticationNode/service/@operation = 'ListUsers' or /page/pageResponse/authenticationNode/service/@operation = 'EditUser' or /page/pageResponse/authenticationNode/service/@operation = 'PerformEdit' or /page/pageResponse/authenticationNode/service/@operation = 'AddUser' or /page/pageResponse/authenticationNode/service/@operation = 'PerformAdd' or /page/pageResponse/authenticationNode/service/@operation = 'PerformDeleteUser'"><gslib:rightArrow/><a href="{$library_name}/admin/ListUsers"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.authentication')"/></a></xsl:if>
43 </xsl:template>
44
45 <xsl:template match="/page">
46 <xsl:if test="/page/pageResponse/error">
47 <div id="gs_error" class="ui-state-error ui-corner-all">
48 <span class="ui-icon ui-icon-alert" style="float: left;"><xsl:text> </xsl:text></span><xsl:value-of select="/page/pageResponse/error"/>
49 </div>
50 <br/>
51 </xsl:if>
52 <div id="main">
53 <xsl:choose>
54 <!-- ********** -->
55 <!-- LOGIN PAGE: this page is used when the user has been directed to Login by trying to access a restricted page when they are not already logged in
56 If they click the login button, then the login.xsl is used -->
57 <!-- ********** -->
58 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'Login'">
59
60 <form method="POST" action="{$library_name}/admin/{/page/pageRequest/paramList/param[@name = 's1.authpage']/@value}">
61 <table id="loginTable">
62 <tr><td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.username')"/>: </td><td><input type="text" name="username"/></td></tr>
63 <tr><td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.password')"/>: </td><td><input type="password" name="password"/></td></tr>
64 <tr><td><input type="submit" value="Login"/></td><td><xsl:text> </xsl:text></td></tr>
65 </table>
66 </form>
67 <script type="text/javascript">
68 <xsl:text disable-output-escaping="yes">
69 {
70 $("#loginTable input[name=\"username\"]").focus();
71 }
72 </xsl:text>
73 </script>
74 </xsl:when>
75
76 <!-- *************** -->
77 <!-- LIST USERS PAGE -->
78 <!-- *************** -->
79 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'ListUsers'">
80 <table id="userListTable">
81 <tr class="ui-widget-header">
82 <td colspan="7"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.list_of_current_users_title')"/></td>
83 </tr>
84 <tr class="ui-state-default">
85 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.username')"/></td>
86 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.account_status')"/></td>
87 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.groups')"/></td>
88 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.comment')"/></td>
89 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.email')"/></td>
90 <td><xsl:text> </xsl:text></td>
91 <td><xsl:text> </xsl:text></td>
92 </tr>
93 <xsl:for-each select="/page/pageResponse/authenticationNode/service/userNodeList/userNode">
94 <tr class="ui-widget-content">
95 <td><xsl:value-of select="@username"/></td>
96 <td>
97 <xsl:choose>
98 <xsl:when test="@status = 'true'">
99 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.enabled')"/>
100 </xsl:when>
101 <xsl:otherwise>
102 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.disabled')"/>
103 </xsl:otherwise>
104 </xsl:choose>
105 </td>
106 <td><xsl:value-of select='util:replace(@groups, ",", " ")'/></td>
107 <td><xsl:value-of select="@comment"/></td>
108 <td><xsl:value-of select="@email"/></td>
109 <td><a href="{$library_name}/admin/EditUser?s1.username={@username}"><button><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.edit')"/></button></a></td>
110 <td>
111 <xsl:variable name="user-pos">username<xsl:number value="position()"/></xsl:variable>
112 <xsl:variable name="message-pos">confirmMessage<xsl:number value="position()"/></xsl:variable>
113 <form method="GET" action="{$library_name}/admin/PerformDeleteUser">
114 <input type="hidden" name="s1.username" value="{@username}"/>
115 <input id="delUser{@username}" type="submit" value="{util:getInterfaceText($interface_name, /page/@lang, 'authen.delete')}"/>
116 <script type="text/javascript">
117 <xsl:text disable-output-escaping="yes">
118 {
119 var </xsl:text><xsl:value-of select="$user-pos"/><xsl:text disable-output-escaping="yes"> = "</xsl:text><xsl:value-of select="@username"/><xsl:text disable-output-escaping="yes">";
120 var </xsl:text><xsl:value-of select="$message-pos"/><xsl:text disable-output-escaping="yes"> = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.delete_warning')"/><xsl:text disable-output-escaping="yes">" + </xsl:text><xsl:value-of select="$user-pos"/><xsl:text disable-output-escaping="yes"> + "?";
121 var button = $("#delUser" + </xsl:text><xsl:value-of select="$user-pos"/><xsl:text disable-output-escaping="yes">);
122 button.on("click", function()
123 {
124 if(confirm(</xsl:text><xsl:value-of select="$message-pos"/><xsl:text disable-output-escaping="yes">))
125 {
126 return true;
127 }
128 else
129 {
130 return false;
131 }
132 });
133 }
134 </xsl:text>
135 </script>
136 </form>
137 </td>
138 </tr>
139 </xsl:for-each>
140 </table>
141 <div id="auth_navbar">
142 <!-- Add User link-->
143 <span class="ui-state-default ui-corner-all">
144 <a href="{$library_name}/admin/AddUser"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.add_a_new_user')"/></a>
145 </span>
146 </div>
147 </xsl:when>
148
149 <!-- ********************************* -->
150 <!-- EDIT USER / ACCOUNT SETTINGS PAGE -->
151 <!-- ********************************* -->
152 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'EditUser' or /page/pageResponse/authenticationNode/service/@operation = 'AccountSettings'">
153 <form id="editForm" method="POST">
154 <xsl:attribute name="action">
155 <xsl:choose>
156 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'EditUser'">
157 <xsl:value-of select="$library_name"/><xsl:text>/admin/PerformEdit</xsl:text>
158 </xsl:when>
159 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AccountSettings'">
160 <xsl:value-of select="$library_name"/><xsl:text>/admin/PerformAccEdit</xsl:text>
161 </xsl:when>
162 </xsl:choose>
163 </xsl:attribute>
164 <input type="hidden" name="s1.prevUsername" value="{/page/pageResponse/authenticationNode/service/userNodeList/userNode/@username}"/>
165 <table>
166 <tr>
167 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.username')"/><xsl:text>: </xsl:text></td>
168 <td>
169 <input type="text" name="s1.newUsername" value="{/page/pageResponse/authenticationNode/service/userNodeList/userNode/@username}"/>
170 </td>
171 </tr>
172 <tr>
173 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.email')"/><xsl:text>: </xsl:text></td>
174 <td>
175 <input type="text" name="s1.newEmail" value="{/page/pageResponse/authenticationNode/service/userNodeList/userNode/@email}"/>
176 </td>
177 </tr>
178 <xsl:choose>
179 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'EditUser'">
180 <tr>
181 <td id="passwordLabelCell">
182 <button id="changePasswordButton"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.change_password')"/>...</button>
183 <script type="text/javascript">
184 <xsl:text disable-output-escaping="yes">
185 var passwordLabelText = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.password')"/><xsl:text disable-output-escaping="yes">";
186 var changePasswordButton = document.getElementById("changePasswordButton");
187 changePasswordButton.onclick = function()
188 {
189 changePasswordButton.parentNode.removeChild(changePasswordButton);
190
191 var passwordLabel = document.createTextNode(passwordLabelText + ": ");
192 document.getElementById("passwordLabelCell").appendChild(passwordLabel);
193
194 var passwordInput = document.createElement("INPUT");
195 passwordInput.setAttribute("name", "s1.password");
196 passwordInput.setAttribute("type", "password");
197 document.getElementById("passwordInputCell").appendChild(passwordInput);
198 }
199 </xsl:text>
200 </script>
201 </td>
202 <td id="passwordInputCell">
203 <xsl:text> </xsl:text>
204 </td>
205 </tr>
206 </xsl:when>
207 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AccountSettings'">
208 <tr>
209 <xsl:if test="not(/page/pageResponse/error/@type = 'INCORRECT_PASSWORD')">
210 <td><button id="changePasswordButton"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.change_password')"/>...</button></td>
211 <script type="text/javascript">
212 <xsl:text disable-output-escaping="yes">
213 var oldPasswordLabelText = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.old_password')"/><xsl:text disable-output-escaping="yes">";
214 var newPasswordLabelText = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.new_password')"/><xsl:text disable-output-escaping="yes">";
215 var rtNewPasswordLabelText = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.retype_password')"/><xsl:text disable-output-escaping="yes">";
216
217 var changePasswordButton = document.getElementById("changePasswordButton");
218 changePasswordButton.onclick = function()
219 {
220 changePasswordButton.parentNode.removeChild(changePasswordButton);
221
222 var names = ["s1.oldPassword", "s1.newPassword", ""];
223 var ids = ["oldPassword", "passwordOne", "passwordTwo"];
224 var labels = [oldPasswordLabelText, newPasswordLabelText, rtNewPasswordLabelText];
225 var parents = ["oldPassword", "password", "retypePassword"];
226
227 for(var i = 0; i &lt; names.length; i++)
228 {
229 $("#" + parents[i] + "LabelCell").append(labels[i] + ": ");
230
231 var input = $("&lt;input&gt;");
232 input.attr("name", names[i]);
233 input.attr("type", "password");
234 input.attr("id", ids[i]);
235
236 $("#" + parents[i] + "InputCell").append(input);
237 }
238 }
239 </xsl:text>
240 </script>
241 </xsl:if>
242 </tr>
243
244 <xsl:choose>
245 <xsl:when test="not(/page/pageResponse/error/@type = 'INCORRECT_PASSWORD')">
246 <tr>
247 <td id="oldPasswordLabelCell"><xsl:text> </xsl:text></td>
248 <td id="oldPasswordInputCell"><xsl:text> </xsl:text></td>
249 </tr>
250 <tr>
251 <td id="passwordLabelCell"><xsl:text> </xsl:text></td>
252 <td id="passwordInputCell"><xsl:text> </xsl:text></td>
253 </tr>
254 <tr>
255 <td id="retypePasswordLabelCell"><xsl:text> </xsl:text></td>
256 <td id="retypePasswordInputCell"><xsl:text> </xsl:text></td>
257 </tr>
258 </xsl:when>
259 <xsl:otherwise>
260 <tr>
261 <td id="oldPasswordLabelCell"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.old_password')"/></td>
262 <td id="oldPasswordInputCell"><input id="oldPassword" name="s1.oldPassword" type="password"/></td>
263 </tr>
264 <tr>
265 <td id="passwordLabelCell"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.new_password')"/></td>
266 <td id="passwordInputCell"><input id="passwordOne" name="s1.newPassword" type="password"/></td>
267 </tr>
268 <tr>
269 <td id="retypePasswordLabelCell"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.retype_password')"/></td>
270 <td id="retypePasswordInputCell"><input id="passwordTwo" type="password"/></td>
271 </tr>
272 </xsl:otherwise>
273 </xsl:choose>
274 </xsl:when>
275 </xsl:choose>
276 <xsl:if test="/page/pageResponse/authenticationNode/service/@operation = 'EditUser'">
277 <!-- if you want to add a group by default to a user, so that it shows up automatically in the edit user page, use this instead of the following
278 <xsl:call-template name="addGroupInputField"><xsl:with-param name="default_value"><xsl:call-template name="addDefaultGroupToExistingGroups"/></xsl:with-param></xsl:call-template> -->
279 <xsl:call-template name="addGroupInputField"><xsl:with-param name="default_value"><xsl:value-of select="/page/pageResponse/authenticationNode/service/userNodeList/userNode/@groups"/></xsl:with-param></xsl:call-template>
280 <tr>
281 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.comment')"/><xsl:text>: </xsl:text></td>
282 <td>
283 <textarea name="s1.comment" style="width:100%;"><xsl:value-of select="/page/pageResponse/authenticationNode/service/userNodeList/userNode/@comment"/></textarea>
284 </td>
285 </tr>
286 <tr>
287 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.status')"/><xsl:text>: </xsl:text></td>
288 <td>
289 <input type="radio" name="s1.status" value="true">
290 <xsl:if test="/page/pageResponse/authenticationNode/service/userNodeList/userNode/@status = 'true'">
291 <xsl:attribute name="checked">true</xsl:attribute>
292 </xsl:if>
293 </input>
294 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.enabled')"/><xsl:text> </xsl:text>
295
296 <input type="radio" name="s1.status" value="false">
297 <xsl:if test="/page/pageResponse/authenticationNode/service/userNodeList/userNode/@status = 'false'">
298 <xsl:attribute name="checked">true</xsl:attribute>
299 </xsl:if>
300 </input>
301 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.disabled')"/><xsl:text> </xsl:text>
302 </td>
303 </tr>
304 </xsl:if>
305 <xsl:call-template name="addRecaptcha">
306 <xsl:with-param name="formName">editForm</xsl:with-param>
307 </xsl:call-template>
308 <tr>
309 <td>
310 <input id="submitButton" type="submit" value="{util:getInterfaceText($interface_name, /page/@lang, 'authen.submit')}"/>
311 <xsl:if test="/page/pageResponse/authenticationNode/service/@operation = 'AccountSettings'">
312 <xsl:call-template name="addPasswordCheckJavascript"/>
313 </xsl:if>
314 </td>
315 </tr>
316 <!--<tr>
317 <td style="font-size:0.6em;"><a href="{$library_name}/admin/PerformResetPassword?s1.username={/page/pageResponse/authenticationNode/service/userNodeList/userNode/@username}"><br/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.reset_password')"/>...</a></td>
318 </tr>-->
319 </table>
320 </form>
321 </xsl:when>
322
323 <!-- ************************ -->
324 <!-- ADD USER / REGISTER PAGE -->
325 <!-- ************************ -->
326 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AddUser' or /page/pageResponse/authenticationNode/service/@operation = 'Register'">
327 <div id="errorArea"><xsl:text> </xsl:text></div>
328 <form method="POST" id="registerForm">
329 <xsl:attribute name="action">
330 <xsl:choose>
331 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'AddUser'">
332 <xsl:value-of select="$library_name"/><xsl:text>/admin/PerformAdd</xsl:text>
333 </xsl:when>
334 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'Register'">
335 <xsl:value-of select="$library_name"/><xsl:text>/admin/PerformRegister</xsl:text>
336 </xsl:when>
337 </xsl:choose>
338 </xsl:attribute>
339 <table>
340 <tr>
341 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.username')"/><xsl:text>: </xsl:text></td>
342 <td>
343 <input type="text" name="s1.username" autocomplete="off" />
344 </td>
345 </tr>
346 <tr>
347 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.password')"/><xsl:text>: </xsl:text></td>
348 <td>
349 <input id="passwordOne" type="password" name="s1.password" autocomplete="off" />
350 </td>
351 </tr>
352 <tr>
353 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.retype_password')"/><xsl:text>: </xsl:text></td>
354 <td>
355 <input id="passwordTwo" type="password" autocomplete="off" />
356 </td>
357 </tr>
358 <tr>
359 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.email')"/><xsl:text>: </xsl:text></td>
360 <td>
361 <input type="text" name="s1.email" autocomplete="off" />
362 </td>
363 </tr>
364 <xsl:if test="/page/pageResponse/authenticationNode/service/@operation = 'AddUser'">
365 <!-- if you want to add a default group to the groups field with AdddUser, then use this instead, replacing xxx with the default group/s
366 <xsl:call-template name="addGroupInputField"><xsl:with-param name="default_value">xxx</xsl:with-param></xsl:call-template>-->
367 <xsl:call-template name="addGroupInputField"/>
368 <tr>
369 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.comment')"/><xsl:text>: </xsl:text></td>
370 <td>
371 <textarea name="s1.comment" style="width:100%;"><xsl:text> </xsl:text></textarea>
372 </td>
373 </tr>
374 <tr>
375 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.status')"/><xsl:text>: </xsl:text></td>
376 <td>
377 <input type="radio" name="s1.status" value="true" checked="true"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.enabled')"/><xsl:text> </xsl:text>
378 <input type="radio" name="s1.status" value="false"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.disabled')"/><xsl:text> </xsl:text>
379 </td>
380 </tr>
381 </xsl:if>
382 <xsl:call-template name="addRecaptcha">
383 <xsl:with-param name="formName">registerForm</xsl:with-param>
384 </xsl:call-template>
385 <tr>
386 <td>
387 <input id="submitButton" type="submit" value="{util:getInterfaceText($interface_name, /page/@lang, 'authen.submit')}"/>
388 <xsl:call-template name="addPasswordCheckJavascript"/>
389 </td>
390 </tr>
391 </table>
392 </form>
393 </xsl:when>
394
395 <!-- ********************** -->
396 <!-- REGISTER RESPONSE PAGE -->
397 <!-- ********************** -->
398 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'PerformRegister'">
399 <xsl:choose>
400 <!-- don't think we ever get here, as we revert back to Register if there was an error with PerformRegister -->
401 <xsl:when test="/page/pageResponse/error">
402 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.error_failed_to_add')"/>
403 </xsl:when>
404
405 <xsl:otherwise>
406 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.user_added_success')"/>
407 <meta http-equiv="refresh" content="2; url={/page/pageRequest/@baseURL}{$library_name}"/>
408 </xsl:otherwise>
409 </xsl:choose>
410 </xsl:when>
411
412 <xsl:when test="/page/pageResponse/authenticationNode/service/@operation = 'Info'">
413 <!-- do nothing -->
414 </xsl:when>
415 <xsl:otherwise>
416 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.page_not_found')"/>
417 </xsl:otherwise>
418 </xsl:choose>
419 </div>
420 </xsl:template>
421
422 <xsl:template name="addGroupInputField">
423 <xsl:param name="default_value"/>
424 <tr>
425 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.groups')"/><xsl:text>: </xsl:text></td>
426 <td>
427 <input id="groupsInput" size="50" type="text" name="s1.groups" value="{$default_value}"/>
428 </td>
429 <td>
430 <select id="groupSelector">
431 <option>COLLNAME-collection-editor</option>
432 <option>personal-collections-editor</option>
433 <option>all-collections-editor</option>
434 <option>administrator</option>
435 </select>
436 </td>
437 <td>
438 <button id="addGroupButton"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.add_group')"/></button>
439 <script type="text/javascript">
440 <xsl:text disable-output-escaping="yes">
441 var addGroupButton = document.getElementById("addGroupButton");
442 addGroupButton.onclick = function()
443 {
444 var groupsInput = document.getElementById("groupsInput");
445 var groupSelector = document.getElementById("groupSelector");
446 var options = groupSelector.getElementsByTagName("OPTION");
447 var selectedGroup = options[groupSelector.selectedIndex].innerHTML;
448 var currentValue = groupsInput.value;
449
450 if(currentValue &amp;&amp; currentValue.search(/\w/) != -1)
451 {
452 groupsInput.value = currentValue + "," + selectedGroup;
453 }
454 else
455 {
456 groupsInput.value = selectedGroup;
457 }
458 return false;
459 }
460 </xsl:text>
461 </script>
462 </td>
463 </tr>
464 <tr><td colspan="4"><xsl:value-of select="util:getInterfaceText('default', /page/@lang, 'authen.group_desc')"/><ul><li><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.admin_desc')"/></li><li><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.all_coll_edit_desc')"/> </li> <li><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.pers_coll_edit_desc')"/></li><li><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'authen.single_coll_edit_desc')"/> </li></ul></td></tr>
465
466 </xsl:template>
467
468 <!-- replace xxx here with the group/s you want added by default -->
469 <xsl:template name="addDefaultGroupToExistingGroups"><xsl:variable name="default">xxx</xsl:variable><xsl:variable name="current_groups"><xsl:value-of select="/page/pageResponse/authenticationNode/service/userNodeList/userNode/@groups"/></xsl:variable><xsl:if test="not(contains($current_groups, $default))"><xsl:value-of select="$default"/>,</xsl:if><xsl:value-of select="$current_groups"/></xsl:template>
470
471 <xsl:template name="addPasswordCheckJavascript">
472 <script type="text/javascript">
473 <xsl:text disable-output-escaping="yes">
474 $("#submitButton").on("click", function()
475 {
476 var passwordOne = $("#passwordOne");
477 var passwordTwo = $("#passwordTwo");
478
479 if(passwordOne.val() != passwordTwo.val())
480 {
481 alert("The passwords you have entered do not match");
482 passwordOne.val("");
483 passwordTwo.val("");
484 return false;
485 }
486 else
487 {
488 return true;
489 }
490 });
491 </xsl:text>
492 </script>
493
494 </xsl:template>
495
496 <!-- adds in recaptcha box if the recaptcha_key attribute is set for authenticationNode/service - this is determined by operations element in Authentication serviceRack -->
497 <xsl:template name="addRecaptcha">
498 <xsl:param name="formName"/>
499 <xsl:variable name="recaptcha_key"><xsl:value-of select="/page/pageResponse/authenticationNode/service/@recaptcha_key"/></xsl:variable>
500 <xsl:if test="$recaptcha_key">
501 <tr>
502 <td colspan="2">
503 <div class="g-recaptcha" data-sitekey="{$recaptcha_key}"><xsl:text> </xsl:text></div>
504 <!-- need to add s1. to the name of g-recaptcha-response, so that it gets passed to the service -->
505 <script type="text/javascript">
506 <xsl:text disable-output-escaping="yes">
507 $( "#</xsl:text><xsl:value-of select="$formName"/><xsl:text disable-output-escaping="yes">").submit(function( event ) {
508 var captchaelem = $("#g-recaptcha-response");
509 captchaelem.attr("name", "s1.g-recaptcha-response");
510 return true;
511 });
512
513 </xsl:text>
514 </script>
515 </td></tr>
516 </xsl:if>
517 </xsl:template>
518</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.