root/trunk/deployment/webadmin/webapp/resources/default/default/default.xsl

Revision 1027 (checked in by johnsa, 7 years ago)

expanded calendar and event sharing options for user client.

Line 
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <xsl:output
4   method="html"
5   indent="yes"
6   media-type="text/html"
7   doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
8   doctype-system="http://www.w3.org/TR/html4/strict.dtd"
9   standalone="yes"
10   omit-xml-declaration="yes"/>
11
12   <!-- ======================================== -->
13   <!--      BEDEWORK ADMIN CLIENT STYLESHEET     -->
14   <!-- ========================================= -->
15
16   <!-- **********************************************************************
17     Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
18
19     Redistribution and use of this distribution in source and binary forms,
20     with or without modification, are permitted provided that:
21        The above copyright notice and this permission notice appear in all
22         copies and supporting documentation;
23
24         The name, identifiers, and trademarks of Rensselaer Polytechnic
25         Institute are not used in advertising or publicity without the
26         express prior written permission of Rensselaer Polytechnic Institute;
27
28     DISCLAIMER: The software is distributed" AS IS" without any express or
29     implied warranty, including but not limited to, any implied warranties
30     of merchantability or fitness for a particular purpose or any warrant)'
31     of non-infringement of any current or pending patent rights. The authors
32     of the software make no representations about the suitability of this
33     software for any particular purpose. The entire risk as to the quality
34     and performance of the software is with the user. Should the software
35     prove defective, the user assumes the cost of all necessary servicing,
36     repair or correction. In particular, neither Rensselaer Polytechnic
37     Institute, nor the authors of the software are liable for any indirect,
38     special, consequential, or incidental damages related to the software,
39     to the maximum extent the law permits. -->
40
41   <!-- DEFINE INCLUDES -->
42   <xsl:include href="errors.xsl"/>
43   <xsl:include href="messages.xsl"/>
44
45   <!-- DEFINE GLOBAL CONSTANTS -->
46   <!-- URL of html resources (images, css, other html); by default this is
47        set to the application root, but for the admin client
48        this should be changed to point to a
49        web server over https to avoid mixed content errors, e.g.,
50   <xsl:variable name="resourcesRoot" select="'https://mywebserver.edu/myresourcesdir'"/>
51     -->
52   <xsl:variable name="resourcesRoot" select="/bedeworkadmin/approot"/>
53
54   <!-- URL of the XSL template directory -->
55   <!-- The approot is an appropriate place to put
56        included stylesheets and xml fragments. These are generally
57        referenced relatively (like errors.xsl and messages.xsl above);
58        this variable is here for your convenience if you choose to
59        reference it explicitly.  It is not used in this stylesheet, however,
60        and can be safely removed if you so choose. -->
61   <xsl:variable name="appRoot" select="/bedeworkadmin/approot"/>
62
63   <!-- Properly encoded prefixes to the application actions; use these to build
64        urls; allows the application to be used without cookies or within a portal. -->
65   <xsl:variable name="setup" select="/bedeworkadmin/urlPrefixes/setup/a/@href"/> <!-- used -->
66   <xsl:variable name="logout" select="/bedeworkadmin/urlPrefixes/logout/a/@href"/><!-- used -->
67   <xsl:variable name="event-showEvent" select="/bedeworkadmin/urlPrefixes/event/showEvent/a/@href"/>
68   <xsl:variable name="event-showModForm" select="/bedeworkadmin/urlPrefixes/event/showModForm/a/@href"/>
69   <xsl:variable name="event-showUpdateList" select="/bedeworkadmin/urlPrefixes/event/showUpdateList/a/@href"/><!-- used -->
70   <xsl:variable name="event-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/event/showDeleteConfirm/a/@href"/>
71   <xsl:variable name="event-initAddEvent" select="/bedeworkadmin/urlPrefixes/event/initAddEvent/a/@href"/><!-- used -->
72   <xsl:variable name="event-initUpdateEvent" select="/bedeworkadmin/urlPrefixes/event/initUpdateEvent/a/@href"/><!-- used -->
73   <xsl:variable name="event-delete" select="/bedeworkadmin/urlPrefixes/event/delete/a/@href"/>
74   <xsl:variable name="event-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/event/fetchForDisplay/a/@href"/>
75   <xsl:variable name="event-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/event/fetchForUpdate/a/@href"/>
76   <xsl:variable name="event-update" select="/bedeworkadmin/urlPrefixes/event/update/a/@href"/>
77   <xsl:variable name="sponsor-showSponsor" select="/bedeworkadmin/urlPrefixes/sponsor/showSponsor/a/@href"/>
78   <xsl:variable name="sponsor-showReferenced" select="/bedeworkadmin/urlPrefixes/sponsor/showReferenced/a/@href"/>
79   <xsl:variable name="sponsor-showModForm" select="/bedeworkadmin/urlPrefixes/sponsor/showModForm/a/@href"/>
80   <xsl:variable name="sponsor-showUpdateList" select="/bedeworkadmin/urlPrefixes/sponsor/showUpdateList/a/@href"/>
81   <xsl:variable name="sponsor-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/sponsor/showDeleteConfirm/a/@href"/>
82   <xsl:variable name="sponsor-initAdd" select="/bedeworkadmin/urlPrefixes/sponsor/initAdd/a/@href"/><!-- used -->
83   <xsl:variable name="sponsor-initUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/initUpdate/a/@href"/>
84   <xsl:variable name="sponsor-delete" select="/bedeworkadmin/urlPrefixes/sponsor/delete/a/@href"/>
85   <xsl:variable name="sponsor-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForDisplay/a/@href"/>
86   <xsl:variable name="sponsor-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForUpdate/a/@href"/>
87   <xsl:variable name="sponsor-update" select="/bedeworkadmin/urlPrefixes/sponsor/update/a/@href"/>
88   <xsl:variable name="location-showLocation" select="/bedeworkadmin/urlPrefixes/location/showLocation/a/@href"/>
89   <xsl:variable name="location-showReferenced" select="/bedeworkadmin/urlPrefixes/location/showReferenced/a/@href"/>
90   <xsl:variable name="location-showModForm" select="/bedeworkadmin/urlPrefixes/location/showModForm/a/@href"/>
91   <xsl:variable name="location-showUpdateList" select="/bedeworkadmin/urlPrefixes/location/showUpdateList/a/@href"/>
92   <xsl:variable name="location-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/location/showDeleteConfirm/a/@href"/>
93   <xsl:variable name="location-initAdd" select="/bedeworkadmin/urlPrefixes/location/initAdd/a/@href"/><!-- used -->
94   <xsl:variable name="location-initUpdate" select="/bedeworkadmin/urlPrefixes/location/initUpdate/a/@href"/>
95   <xsl:variable name="location-delete" select="/bedeworkadmin/urlPrefixes/location/delete/a/@href"/>
96   <xsl:variable name="location-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/location/fetchForDisplay/a/@href"/>
97   <xsl:variable name="location-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/location/fetchForUpdate/a/@href"/>
98   <xsl:variable name="location-update" select="/bedeworkadmin/urlPrefixes/location/update/a/@href"/>
99   <!-- cals should all be good -->
100   <xsl:variable name="calendar-fetch" select="/bedeworkadmin/urlPrefixes/calendar/fetch/a/@href"/><!-- used -->
101   <xsl:variable name="calendar-fetchDescriptions" select="/bedeworkadmin/urlPrefixes/calendar/fetchDescriptions/a/@href"/><!-- used -->
102   <xsl:variable name="calendar-initAdd" select="/bedeworkadmin/urlPrefixes/calendar/initAdd/a/@href"/><!-- used -->
103   <xsl:variable name="calendar-delete" select="/bedeworkadmin/urlPrefixes/calendar/delete/a/@href"/>
104   <xsl:variable name="calendar-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/calendar/fetchForDisplay/a/@href"/>
105   <xsl:variable name="calendar-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/calendar/fetchForUpdate/a/@href"/><!-- used -->
106   <xsl:variable name="calendar-update" select="/bedeworkadmin/urlPrefixes/calendar/update/a/@href"/><!-- used -->
107   <xsl:variable name="calendar-setAccess" select="/bedeworkadmin/urlPrefixes/calendar/setAccess/a/@href"/>
108   <!-- all good - no need to clean any of these out  -->
109   <xsl:variable name="subscriptions-fetch" select="/bedeworkadmin/urlPrefixes/subscriptions/fetch/a/@href"/>
110   <xsl:variable name="subscriptions-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/subscriptions/fetchForUpdate/a/@href"/>
111   <xsl:variable name="subscriptions-initAdd" select="/bedeworkadmin/urlPrefixes/subscriptions/initAdd/a/@href"/>
112   <xsl:variable name="subscriptions-subscribe" select="/bedeworkadmin/urlPrefixes/subscriptions/subscribe/a/@href"/>
113   <xsl:variable name="view-fetch" select="/bedeworkadmin/urlPrefixes/view/fetch/a/@href"/>
114   <xsl:variable name="view-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/view/fetchForUpdate/a/@href"/>
115   <xsl:variable name="view-addView" select="/bedeworkadmin/urlPrefixes/view/addView/a/@href"/>
116   <xsl:variable name="view-update" select="/bedeworkadmin/urlPrefixes/view/update/a/@href"/>
117   <xsl:variable name="view-remove" select="/bedeworkadmin/urlPrefixes/view/remove/a/@href"/>
118   <xsl:variable name="system-fetch" select="/bedeworkadmin/urlPrefixes/system/fetch/a/@href"/>
119   <xsl:variable name="system-update" select="/bedeworkadmin/urlPrefixes/system/update/a/@href"/>
120   <xsl:variable name="calsuite-fetch" select="/bedeworkadmin/urlPrefixes/calsuite/fetch/a/@href"/>
121   <xsl:variable name="calsuite-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/calsuite/fetchForUpdate/a/@href"/>
122   <xsl:variable name="calsuite-add" select="/bedeworkadmin/urlPrefixes/calsuite/add/a/@href"/>
123   <xsl:variable name="calsuite-update" select="/bedeworkadmin/urlPrefixes/calsuite/update/a/@href"/>
124   <xsl:variable name="calsuite-showAddForm" select="/bedeworkadmin/urlPrefixes/calsuite/showAddForm/a/@href"/>
125   <xsl:variable name="calsuite-setAccess" select="/bedeworkadmin/urlPrefixes/calsuite/setAccess/a/@href"/>
126   <xsl:variable name="calsuite-fetchPrefsForUpdate" select="/bedeworkadmin/urlPrefixes/calsuite/fetchPrefsForUpdate/a/@href"/>
127   <xsl:variable name="calsuite-updatePrefs" select="/bedeworkadmin/urlPrefixes/calsuite/updatePrefs/a/@href"/>
128   <xsl:variable name="timezones-initUpload" select="/bedeworkadmin/urlPrefixes/timezones/initUpload/a/@href"/>
129   <xsl:variable name="timezones-upload" select="/bedeworkadmin/urlPrefixes/timezones/upload/a/@href"/>
130   <xsl:variable name="stats-update" select="/bedeworkadmin/urlPrefixes/stats/update/a/@href"/>
131   <!-- === -->
132   <xsl:variable name="authuser-showModForm" select="/bedeworkadmin/urlPrefixes/authuser/showModForm/a/@href"/>
133   <xsl:variable name="authuser-showUpdateList" select="/bedeworkadmin/urlPrefixes/authuser/showUpdateList/a/@href"/>
134   <xsl:variable name="authuser-initUpdate" select="/bedeworkadmin/urlPrefixes/authuser/initUpdate/a/@href"/>
135   <xsl:variable name="authuser-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/authuser/fetchForUpdate/a/@href"/><!-- used -->
136   <xsl:variable name="authuser-update" select="/bedeworkadmin/urlPrefixes/authuser/update/a/@href"/>
137   <xsl:variable name="prefs-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/prefs/fetchForUpdate/a/@href"/><!-- used -->
138   <xsl:variable name="prefs-update" select="/bedeworkadmin/urlPrefixes/prefs/update/a/@href"/><!-- used -->
139   <xsl:variable name="admingroup-showModForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModForm/a/@href"/>
140   <xsl:variable name="admingroup-showModMembersForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModMembersForm/a/@href"/>
141   <xsl:variable name="admingroup-showUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/showUpdateList/a/@href"/>
142   <xsl:variable name="admingroup-showChooseGroup" select="/bedeworkadmin/urlPrefixes/admingroup/showChooseGroup/a/@href"/>
143   <xsl:variable name="admingroup-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/admingroup/showDeleteConfirm/a/@href"/>
144   <xsl:variable name="admingroup-initAdd" select="/bedeworkadmin/urlPrefixes/admingroup/initAdd/a/@href"/><!-- used -->
145   <xsl:variable name="admingroup-initUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/initUpdate/a/@href"/><!-- used -->
146   <xsl:variable name="admingroup-delete" select="/bedeworkadmin/urlPrefixes/admingroup/delete/a/@href"/>
147   <xsl:variable name="admingroup-fetchUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/fetchUpdateList/a/@href"/><!-- used -->
148   <xsl:variable name="admingroup-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdate/a/@href"/><!-- used -->
149   <xsl:variable name="admingroup-fetchForUpdateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdateMembers/a/@href"/><!-- used -->
150   <xsl:variable name="admingroup-update" select="/bedeworkadmin/urlPrefixes/admingroup/update/a/@href"/><!-- used -->
151   <xsl:variable name="admingroup-updateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/updateMembers/a/@href"/><!-- used -->
152   <xsl:variable name="admingroup-switch" select="/bedeworkadmin/urlPrefixes/admingroup/switch/a/@href"/>
153
154   <!-- URL of the web application - includes web context
155   <xsl:variable name="urlPrefix" select="/bedeworkadmin/urlprefix"/> -->
156
157   <!-- Other generally useful global variables -->
158   <xsl:variable name="publicCal">/cal</xsl:variable>
159
160   <!--==== MAIN TEMPLATE  ====-->
161   <xsl:template match="/">
162     <html lang="en">
163       <head>
164         <title>Calendar Admin: Events Calendar Administration</title>
165         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
166         <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/>
167         <xsl:if test="/bedeworkadmin/page='modEvent'">
168           <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script>
169           <script type="text/javascript" src="{$resourcesRoot}/resources/bwClock.js"></script>
170           <link rel="stylesheet" href="{$resourcesRoot}/resources/bwClock.css"/>
171           <script type="text/javascript" src="{$resourcesRoot}/resources/dynCalendarWidget.js"></script>
172           <link rel="stylesheet" href="{$resourcesRoot}/resources/dynCalendarWidget.css"/>
173           <script type="text/javascript" src="{$resourcesRoot}/resources/browserSniffer.js"></script>
174         </xsl:if>
175         <xsl:if test="/bedeworkadmin/page='calendarDescriptions' or
176                       /bedeworkadmin/page='displayCalendar'">
177           <link rel="stylesheet" href="{$resourcesRoot}/resources/calendarDescriptions.css"/>
178         </xsl:if>
179         <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" />
180         <script language="JavaScript" type="text/javascript">
181         <xsl:comment>
182         <![CDATA[
183         // places the cursor in the first available form element when the page is loaded
184         // (if a form exists on the page)
185         function focusFirstElement() {
186           if (window.document.forms[0]) {
187             window.document.forms[0].elements[0].focus();
188           }
189         }]]>
190         </xsl:comment>
191       </script>
192       </head>
193       <body onLoad="focusFirstElement()">
194         <xsl:call-template name="header"/>
195         <div id="content">
196           <xsl:choose>
197             <xsl:when test="/bedeworkadmin/page='eventList'">
198               <xsl:call-template name="eventList"/>
199             </xsl:when>
200             <xsl:when test="/bedeworkadmin/page='modEvent'">
201               <xsl:call-template name="modEvent"/>
202             </xsl:when>
203             <xsl:when test="/bedeworkadmin/page='displayEvent' or
204                             /bedeworkadmin/page='deleteEventConfirm'">
205               <xsl:apply-templates select="/bedeworkadmin/event" mode="displayEvent"/>
206             </xsl:when>
207             <xsl:when test="/bedeworkadmin/page='sponsorList'">
208               <xsl:call-template name="sponsorList"/>
209             </xsl:when>
210             <xsl:when test="/bedeworkadmin/page='modSponsor'">
211               <xsl:call-template name="modSponsor"/>
212             </xsl:when>
213             <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm' or
214                             /bedeworkadmin/page='sponsorReferenced'">
215               <xsl:call-template name="deleteSponsorConfirm"/>
216             </xsl:when>
217             <xsl:when test="/bedeworkadmin/page='locationList'">
218               <xsl:call-template name="locationList"/>
219             </xsl:when>
220             <xsl:when test="/bedeworkadmin/page='modLocation'">
221               <xsl:call-template name="modLocation"/>
222             </xsl:when>
223             <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'">
224               <xsl:call-template name="deleteLocationConfirm"/>
225             </xsl:when>
226             <xsl:when test="/bedeworkadmin/page='calendarList' or
227                             /bedeworkadmin/page='calendarDescriptions' or
228                             /bedeworkadmin/page='displayCalendar' or
229                             /bedeworkadmin/page='modCalendar' or
230                             /bedeworkadmin/page='deleteCalendarConfirm' or
231                             /bedeworkadmin/page='calendarReferenced'">
232               <xsl:apply-templates select="/bedeworkadmin/calendars"/>
233             </xsl:when>
234             <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'">
235               <xsl:apply-templates select="/bedeworkadmin/subscriptions"/>
236             </xsl:when>
237             <xsl:when test="/bedeworkadmin/page='views'">
238               <xsl:apply-templates select="/bedeworkadmin/views" mode="viewList"/>
239             </xsl:when>
240             <xsl:when test="/bedeworkadmin/page='modView'">
241               <xsl:call-template name="modView"/>
242             </xsl:when>
243             <xsl:when test="/bedeworkadmin/page='deleteViewConfirm'">
244               <xsl:call-template name="deleteViewConfirm"/>
245             </xsl:when>
246             <xsl:when test="/bedeworkadmin/page='modSyspars'">
247               <xsl:call-template name="modSyspars"/>
248             </xsl:when>
249             <xsl:when test="/bedeworkadmin/page='calSuiteList'">
250               <xsl:apply-templates select="/bedeworkadmin/calSuites" mode="calSuiteList"/>
251             </xsl:when>
252             <xsl:when test="/bedeworkadmin/page='addCalSuite'">
253               <xsl:call-template name="addCalSuite"/>
254             </xsl:when>
255             <xsl:when test="/bedeworkadmin/page='modCalSuite'">
256               <xsl:apply-templates select="/bedeworkadmin/calSuite"/>
257             </xsl:when>
258             <xsl:when test="/bedeworkadmin/page='calSuitePrefs'">
259               <xsl:call-template name="calSuitePrefs"/>
260             </xsl:when>
261             <xsl:when test="/bedeworkadmin/page='authUserList'">
262               <xsl:call-template name="authUserList"/>
263             </xsl:when>
264             <xsl:when test="/bedeworkadmin/page='modAuthUser'">
265               <xsl:call-template name="modAuthUser"/>
266             </xsl:when>
267             <xsl:when test="/bedeworkadmin/page='modPrefs'">
268               <xsl:call-template name="modPrefs"/>
269             </xsl:when>
270             <xsl:when test="/bedeworkadmin/page='chooseGroup'">
271               <xsl:apply-templates select="/bedeworkadmin/groups" mode="chooseGroup"/>
272             </xsl:when>
273             <xsl:when test="/bedeworkadmin/page='adminGroupList'">
274               <xsl:call-template name="listAdminGroups"/>
275             </xsl:when>
276             <xsl:when test="/bedeworkadmin/page='modAdminGroup'">
277               <xsl:call-template name="modAdminGroup"/>
278             </xsl:when>
279             <xsl:when test="/bedeworkadmin/page='modAdminGroupMembers'">
280               <xsl:call-template name="modAdminGroupMembers"/>
281             </xsl:when>
282             <xsl:when test="/bedeworkadmin/page='deleteAdminGroupConfirm'">
283               <xsl:call-template name="deleteAdminGroupConfirm"/>
284             </xsl:when>
285             <xsl:when test="/bedeworkadmin/page='noGroup'">
286               <h2>No administrative group</h2>
287               <p>Your userid has not been assigned to an administrative group.
288                 Please inform your administrator.</p>
289             </xsl:when>
290             <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
291               <xsl:call-template name="uploadTimezones"/>
292             </xsl:when>
293             <xsl:when test="/bedeworkadmin/page='showSysStats'">
294               <xsl:apply-templates select="/bedeworkadmin/sysStats" mode="showSysStats"/>
295             </xsl:when>
296             <xsl:when test="/bedeworkadmin/page='noAccess'">
297               <h2>No Access</h2>
298               <p>
299                 You have no access to the action you just attempted. If you believe
300                 you should have access and the problem persists, contact your
301                 administrator.
302               </p>
303               <p><a href="{$setup}">continue</a></p>
304             </xsl:when>
305             <xsl:when test="/bedeworkadmin/page='error'">
306               <h2>Application error</h2>
307               <p>An application error occurred.</p>
308               <p><a href="{$setup}">continue</a></p>
309             </xsl:when>
310             <xsl:otherwise>
311               <xsl:call-template name="mainMenu"/>
312             </xsl:otherwise>
313           </xsl:choose>
314         </div>
315         <!-- footer -->
316         <xsl:call-template name="footer"/>
317       </body>
318     </html>
319   </xsl:template>
320
321   <!--==============================================-->
322   <!--==============================================-->
323   <!--============= PAGE TEMPLATES =================-->
324   <!--==============================================-->
325   <!--==============================================-->
326
327   <!--+++++++++++++++ Main Menu ++++++++++++++++++++-->
328   <xsl:template name="mainMenu">
329     <h2 class="menuTitle">Main Menu</h2>
330     <table id="mainMenuTable">
331       <tr>
332         <th>Events</th>
333         <td>
334           <a id="addEventLink" href="{$event-initAddEvent}" >
335             Add
336           </a>
337         </td>
338         <td>
339           <a href="{$event-initUpdateEvent}" >
340             Edit / Delete
341           </a>
342         </td>
343         <!--
344         Disable direct selection by ID; we'll need to find another way
345         of quickly getting to events: search and grid views should be implemented. -->
346         <!--
347         <td>
348           Event ID:
349           <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
350         </td>-->
351       </tr>
352       <tr>
353         <th>Contacts</th>
354         <td>
355           <a id="addSponsorLink" href="{$sponsor-initAdd}" >
356             Add
357           </a>
358         </td>
359         <td>
360           <a href="{$sponsor-initUpdate}" >
361             Edit / Delete
362           </a>
363         </td>
364       </tr>
365       <tr>
366         <th>Locations</th>
367         <td>
368           <a id="addLocationLink" href="{$location-initAdd}" >
369             Add
370           </a>
371         </td>
372         <td>
373           <a href="{$location-initUpdate}" >
374             Edit / Delete
375           </a>
376         </td>
377       </tr>
378     </table>
379
380     <xsl:if test="/bedeworkadmin/currentCalSuite/currentAccess/current-user-privilege-set/privilege/write or /bedeworkadmin/userInfo/superUser='true'">
381       <h4 class="menuTitle">
382         Manage Calendar Suite:
383         <em><xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/></em>
384       </h4>
385       <ul class="adminMenu">
386         <li>
387           <a href="{$calendar-fetch}">
388             Manage calendars
389           </a>
390         </li>
391         <li>
392           <a href="{$subscriptions-fetch}">
393             Manage subscriptions
394           </a>
395         </li>
396         <li>
397           <a href="{$view-fetch}">
398             Manage views
399           </a>
400         </li>
401         <li>
402           <a href="{$calsuite-fetchPrefsForUpdate}">
403             Manage preferences
404           </a>
405         </li>
406       </ul>
407     </xsl:if>
408
409     <xsl:if test="/bedeworkadmin/userInfo/contentAdminUser='true'">
410       <h4 class="menuTitle">User management</h4>
411       <ul class="adminMenu">
412         <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
413           <li>
414             <a href="{$authuser-initUpdate}" >
415               Manage public event administrators
416             </a>
417           </li>
418         </xsl:if>
419         <xsl:if test="/bedeworkadmin/userInfo/adminGroupMaintOk='true'">
420           <li>
421             <a href="{$admingroup-initUpdate}">
422               Manage admin groups
423             </a>
424           </li>
425         </xsl:if>
426         <li>
427           <a href="{$admingroup-switch}">
428             Choose/change group...
429           </a>
430         </li>
431         <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
432           <li>
433             <form action="{$prefs-fetchForUpdate}" method="post">
434               Edit user preferences (enter userid): <input type="text" name="user" size="15"/>
435               <input type="submit" name="getPrefs" value="go"/>
436             </form>
437           </li>
438         </xsl:if>
439       </ul>
440     </xsl:if>
441
442     <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
443       <h4 class="menuTitle">Super user features</h4>
444       <ul class="adminMenu">
445         <li>
446           <a href="{$calsuite-fetch}">
447             Manage calendar suites
448           </a>
449         </li>
450         <li>
451           <a href="{$system-fetch}">
452             Manage system preferences
453           </a>
454         </li>
455         <li>
456           <a href="{$timezones-initUpload}" >
457             Upload and replace system timezones
458           </a>
459         </li>
460         <li>
461           System statistics:
462           <ul>
463             <li>
464               <a href="{$stats-update}&amp;fetch=yes">
465                 admin web client
466               </a>
467             </li>
468             <li>
469               <a href="{$publicCal}/stats.do" target="pubClient">
470                 public web client
471               </a>
472             </li>
473           </ul>
474         </li>
475       </ul>
476     </xsl:if>
477   </xsl:template>
478
479   <!--++++++++++++++++++ Events ++++++++++++++++++++-->
480   <xsl:template name="eventList">
481     <h2>Edit Events</h2>
482     <p>
483       Select the event that you would like to update:
484       <input type="button" name="return" value="Add new event" onclick="javascript:location.replace('{$event-initAddEvent}')"/>
485     </p>
486
487     <form name="peForm" method="post" action="{$event-initUpdateEvent}">
488       <table>
489         <tr>
490           <td style="padding-right: 1em;">Show:</td>
491           <td>
492             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchFalse/*"/>
493             Active
494           </td>
495           <td>
496             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchTrue/*"/>
497             All
498           </td>
499         </tr>
500       </table>
501     </form>
502
503     <table id="commonListTable">
504       <tr>
505         <th>Title</th>
506         <th>Start Date</th>
507         <th>End Date</th>
508         <th>Calendar</th>
509         <th>Description</th>
510       </tr>
511
512       <xsl:for-each select="/bedeworkadmin/events/event">
513         <xsl:variable name="subscriptionId" select="subscription/id"/>
514         <xsl:variable name="calPath" select="calendar/encodedPath"/>
515         <xsl:variable name="guid" select="guid"/>
516         <xsl:variable name="recurrenceId" select="recurrenceId"/>
517         <tr>
518           <td>
519             <a href="{$event-fetchForUpdate}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
520               <xsl:value-of select="title"/>
521             </a>
522           </td>
523           <td class="date">
524             <xsl:value-of select="start"/>
525           </td>
526           <td class="date">
527             <xsl:value-of select="end"/>
528           </td>
529           <td>
530             <xsl:value-of select="calendar/name"/>
531           </td>
532           <td>
533             <xsl:value-of select="desc"/>
534           </td>
535         </tr>
536       </xsl:for-each>
537     </table>
538   </xsl:template>
539
540   <xsl:template name="modEvent">
541     <h2>Event Information</h2>
542
543     <xsl:variable name="modEventAction" select="/bedeworkadmin/formElements/form/@action"/>
544     <form  name="peForm" method="post" action="{$modEventAction}">
545       <table class="eventFormTable">
546         <tr>
547           <td class="fieldName">
548             Title:
549           </td>
550           <td>
551             <xsl:copy-of select="/bedeworkadmin/formElements/form/title/*"/>
552           </td>
553         </tr>
554         <tr>
555           <td class="fieldName">
556             Calendar**:
557           </td>
558           <td>
559             <xsl:if test="/bedeworkadmin/formElements/form/calendar/preferred/select/option">
560               <select name="prefCalendarId">
561                 <option value="-1">
562                   Select preferred:
563                 </option>
564                 <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/preferred/select/*"/>
565               </select>
566               or Calendar (all):
567             </xsl:if>
568             <select name="calendarId">
569               <option value="-1">
570                 Select:
571               </option>
572               <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/all/select/*"/>
573             </select>
574             <xsl:text> </xsl:text>
575             <span id="calDescriptionsLink"><a href="javascript:launchSimpleWindow('{$calendar-fetchDescriptions}')">calendar descriptions</a></span>
576           </td>
577         </tr>
578
579         <tr>
580           <td class="fieldName">
581             Date &amp; Time:
582           </td>
583           <td>
584             <!-- Set the timefields class for the first load of the page;
585                  subsequent changes will take place using javascript without a
586                  page reload. -->
587             <xsl:variable name="timeFieldsClass">
588               <xsl:choose>
589                 <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
590                 <xsl:otherwise>timeFields</xsl:otherwise>
591               </xsl:choose>
592             </xsl:variable>
593             <xsl:choose>
594               <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">
595                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/>
596                 <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/>
597                 <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/>
598               </xsl:when>
599               <xsl:otherwise>
600                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/>
601                 <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/>
602                 <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/>
603               </xsl:otherwise>
604             </xsl:choose>
605             all day event<br/>
606             <div class="dateStartEndBox">
607               <strong>Start:</strong>
608               <div class="dateFields">
609                 <span class="startDateLabel">Date </span>
610                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/month/*"/>
611                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/day/*"/>
612                 <xsl:choose>
613                   <xsl:when test="/bedeworkadmin/creating = 'true'">
614                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/year/*"/>
615                   </xsl:when>
616                   <xsl:otherwise>
617                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/yearText/*"/>
618                   </xsl:otherwise>
619                 </xsl:choose>
620               </div>
621               <script language="JavaScript" type="text/javascript">
622               <xsl:comment>
623                 startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', 'startDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/');
624               </xsl:comment>
625               </script>
626               <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
627               <div class="{$timeFieldsClass}" id="startTimeFields">
628                 <span id="calWidgetStartTimeHider" class="show">
629                   <xsl:copy-of select="/bedeworkadmin/formElements/form/start/hour/*"/>
630                   <xsl:copy-of select="/bedeworkadmin/formElements/form/start/minute/*"/>
631                   <xsl:if test="/bedeworkadmin/formElements/form/start/ampm">
632                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/ampm/*"/>
633                   </xsl:if>
634                   <xsl:text> </xsl:text>
635                   <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
636                 </span>
637               </div>
638             </div>
639             <div class="dateStartEndBox">
640               <strong>End:</strong>
641               <xsl:choose>
642                 <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">
643                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
644                 </xsl:when>
645                 <xsl:otherwise>
646                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
647                 </xsl:otherwise>
648               </xsl:choose>
649               Date
650               <xsl:variable name="endDateTimeClass">
651                 <xsl:choose>
652                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">shown</xsl:when>
653                   <xsl:otherwise>invisible</xsl:otherwise>
654                 </xsl:choose>
655               </xsl:variable>
656               <div class="{$endDateTimeClass}" id="endDateTime">
657                 <div class="dateFields">
658                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/month/*"/>
659                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/day/*"/>
660                   <xsl:choose>
661                     <xsl:when test="/bedeworkadmin/creating = 'true'">
662                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/year/*"/>
663                     </xsl:when>
664                     <xsl:otherwise>
665                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/yearText/*"/>
666                     </xsl:otherwise>
667                   </xsl:choose>
668                 </div>
669                 <script language="JavaScript" type="text/javascript">
670                 <xsl:comment>
671                   endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', 'endDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/');
672                 </xsl:comment>
673                 </script>
674                 <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
675                 <div class="{$timeFieldsClass}" id="endTimeFields">
676                   <span id="calWidgetEndTimeHider" class="show">
677                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/hour/*"/>
678                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/minute/*"/>
679                     <xsl:if test="/bedeworkadmin/formElements/form/end/dateTime/ampm">
680                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/ampm/*"/>
681                     </xsl:if>
682                     <xsl:text> </xsl:text>
683                     <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
684                   </span>
685                 </div>
686               </div><br/>
687               <div id="clock" class="invisible">
688                 <xsl:call-template name="clock"/>
689               </div>
690               <div class="dateFields">
691                 <xsl:choose>
692                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">
693                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
694                   </xsl:when>
695                   <xsl:otherwise>
696                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
697                   </xsl:otherwise>
698                 </xsl:choose>
699                 Duration
700                 <xsl:variable name="endDurationClass">
701                   <xsl:choose>
702                     <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">shown</xsl:when>
703                     <xsl:otherwise>invisible</xsl:otherwise>
704                   </xsl:choose>
705                 </xsl:variable>
706                 <xsl:variable name="durationHrMinClass">
707                   <xsl:choose>
708                     <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
709                     <xsl:otherwise>shown</xsl:otherwise>
710                   </xsl:choose>
711                 </xsl:variable>
712                 <div class="{$endDurationClass}" id="endDuration">
713                   <xsl:choose>
714                     <xsl:when test="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value = '0'">
715                     <!-- we are using day, hour, minute format -->
716                     <!-- must send either no week value or week value of 0 (zero) -->
717                       <div class="durationBox">
718                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/>
719                         <xsl:variable name="daysStr" select="/bedeworkadmin/formElements/form/end/duration/days/input/@value"/>
720                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days
721                         <span id="durationHrMin" class="{$durationHrMinClass}">
722                           <xsl:variable name="hoursStr" select="/bedeworkadmin/formElements/form/end/duration/hours/input/@value"/>
723                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours
724                           <xsl:variable name="minutesStr" select="/bedeworkadmin/formElements/form/end/duration/minutes/input/@value"/>
725                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes
726                         </span>
727                       </div>
728                       <span class="durationSpacerText">or</span>
729                       <div class="durationBox">
730                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/>
731                         <xsl:variable name="weeksStr" select="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value"/>
732                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="true"/>weeks
733                       </div>
734                     </xsl:when>
735                     <xsl:otherwise>
736                       <!-- we are using week format -->
737                       <div class="durationBox">
738                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/>
739                         <xsl:variable name="daysStr" select="/bedeworkadmin/formElements/form/end/duration/days/input/@value"/>
740                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="true"/>days
741                         <span id="durationHrMin" class="{$durationHrMinClass}">
742                           <xsl:variable name="hoursStr" select="/bedeworkadmin/formElements/form/end/duration/hours/input/@value"/>
743                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="true"/>hours
744                           <xsl:variable name="minutesStr" select="/bedeworkadmin/formElements/form/end/duration/minutes/input/@value"/>
745                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="true"/>minutes
746                         </span>
747                       </div>
748                       <span class="durationSpacerText">or</span>
749                       <div class="durationBox">
750                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/>
751                         <xsl:variable name="weeksStr" select="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value"/>
752                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks
753                       </div>
754                     </xsl:otherwise>
755                   </xsl:choose>
756                 </div>
757               </div><br/>
758               <div class="dateFields" id="noDuration">
759                 <xsl:choose>
760                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='N'">
761                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
762                   </xsl:when>
763                   <xsl:otherwise>
764                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
765                   </xsl:otherwise>
766                 </xsl:choose>
767                 This event has no duration / end date
768               </div>
769             </div>
770           </td>
771         </tr>
772         <!--  Status  -->
773         <tr>
774           <td class="fieldName">
775             Status:
776           </td>
777           <td>
778             <xsl:choose>
779               <xsl:when test="/bedeworkadmin/formElements/form/status = 'TENTATIVE'">
780                 <input type="radio" name="event.status" value="CONFIRMED"/>confirmed <input type="radio" name="event.status" value="TENTATIVE" checked="checked"/>tentative <input type="radio" name="event.status" value="CANCELLED"/>cancelled
781               </xsl:when>
782               <xsl:when test="/bedeworkadmin/formElements/form/status = 'CANCELLED'">
783                 <input type="radio" name="event.status" value="CONFIRMED"/>confirmed <input type="radio" name="event.status" value="TENTATIVE"/>tentative <input type="radio" name="event.status" value="CANCELLED" checked="checked"/>cancelled
784               </xsl:when>
785               <xsl:otherwise>
786                 <input type="radio" name="event.status" value="CONFIRMED" checked="checked"/>confirmed <input type="radio" name="event.status" value="TENTATIVE"/>tentative <input type="radio" name="event.status" value="CANCELLED"/>cancelled
787               </xsl:otherwise>
788             </xsl:choose>
789           </td>
790         </tr>
791         <!--  Category  -->
792         <!-- Hide this field for now: we will probably use it in a very different
793              way now that true calendars are implemented.
794         <tr>
795           <td class="fieldName">
796             Category**:
797           </td>
798           <td>
799             <xsl:if test="/bedeworkadmin/formElements/form/calendar/preferred/select/option">
800               <select name="prefCategoryId">
801                 <option value="-1">
802                   Select preferred:
803                 </option>
804                 <xsl:copy-of select="/bedeworkadmin/formElements/form/category/preferred/select/*"/>
805               </select>
806               Category (all):
807             </xsl:if>
808             <select name="categoryId">
809               <option value="-1">
810                 Select:
811               </option>option>
812               <xsl:copy-of select="/bedeworkadmin/formElements/form/category/all/select/*"/>
813             </select>
814           </td>
815         </tr> -->
816
817         <!--  Description  -->
818         <tr>
819           <td class="fieldName">
820             Description:
821           </td>
822           <td>
823             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
824             <div class="fieldInfo">
825               Enter all pertinent information, including the academic titles of
826               all speakers and/or participants.
827               <span class="maxCharNotice">(<xsl:value-of select="/bedeworkadmin/formElements/form/descLength"/> characters max.)</span>
828             </div>
829           </td>
830         </tr>
831         <!-- Cost -->
832         <tr>
833           <td class="optional">
834             Price:
835           </td>
836           <td>
837             <xsl:copy-of select="/bedeworkadmin/formElements/form/cost/*"/>
838             <xsl:text> </xsl:text>
839             <span class="fieldInfo">(optional: if any, and place to purchase tickets)</span>
840           </td>
841         </tr>
842         <!-- Url -->
843         <tr>
844           <td class="optional">
845             URL:
846           </td>
847           <td>
848             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
849             <xsl:text> </xsl:text>
850             <span class="fieldInfo">(optional: for more information about the event)</span>
851           </td>
852         </tr>
853         <!-- Location -->
854         <tr>
855           <td class="fieldName">
856             Location**:
857           </td>
858           <td>
859             <xsl:if test="/bedeworkadmin/formElements/form/location/preferred/select/option">
860               <select name="prefLocationId" id="eventFormPrefLocationList">
861                 <option value="-1">
862                   Select preferred:
863                 </option>
864                 <xsl:copy-of select="/bedeworkadmin/formElements/form/location/preferred/select/*"/>
865               </select>
866               or Location (all):
867             </xsl:if>
868             <select name="locationId" id="eventFormLocationList">
869               <option value="-1">
870                 Select:
871               </option>
872               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/all/select/*"/>
873             </select>
874           </td>
875         </tr>
876
877        <xsl:if test="/bedeworkadmin/formElements/form/location/address">
878           <tr>
879             <td class="fieldName" colspan="2">
880               <span class="std-text"><span class="bold">or</span> add</span>
881             </td>
882           </tr>
883           <tr>
884             <td class="fieldName">
885               Address:
886             </td>
887             <td>
888               <xsl:variable name="addressFieldName" select="/bedeworkadmin/formElements/form/location/address/input/@name"/>
889               <xsl:variable name="calLocations">
890                 <xsl:for-each select="/bedeworkadmin/formElements/form/location/all/select/option">"<xsl:value-of select="."/>"<xsl:if test="position()!=last()">,</xsl:if></xsl:for-each>
891               </xsl:variable>
892               <input type="text" size="30" name="{$addressFieldName}" autocomplete="off" onfocus='autoComplete(this,event,new Array({$calLocations}));'/>
893               <div class="fieldInfo">
894                 Please include room, building, and campus (if not Seattle).
895               </div>
896             </td>
897           </tr>
898           <tr>
899             <td class="optional">
900               <span class="std-text">Location URL:</span>
901             </td>
902             <td>
903               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/link/*"/>
904               <xsl:text> </xsl:text>
905               <span class="fieldInfo">(optional: for information about the location)</span>
906             </td>
907           </tr>
908         </xsl:if>
909
910         <!-- Sponsor -->
911         <tr>
912           <td class="fieldName">
913             Contact**:
914           </td>
915           <td>
916             <xsl:if test="/bedeworkadmin/formElements/form/sponsor/preferred/select/option">
917               <select name="prefSponsorId" id="eventFormSponsorList">
918                 <option value="-1">
919                   Select preferred:
920                 </option>option>
921                 <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/preferred/select/*"/>
922               </select>
923               or Contact (all):
924             </xsl:if>
925             <select name="sponsorId" id="eventFormPrefSponsorList">
926               <option value="-1">
927                 Select:
928               </option>
929               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/all/select/*"/>
930             </select>
931           </td>
932         </tr>
933         <tr>
934           <td colspan="2" style="padding-top: 1em;">
935             <span class="fieldInfo">
936               **<strong>If "preferred values" are enabled</strong>
937               by your administrator, the category, location, and contact lists will
938               contain only those value you've used previously.  If you don't find the value
939               you need in one of these lists, use the "all" list adjacent to each
940               of these fields.  The event you select from the "all" list will be added
941               to your preferred list from that point on.  <strong>Note: if you don't
942               find a location or contact at all, you can add a new one from the
943               <a href="{$setup}">main menu</a>.</strong>
944               Only administrators can create categories, however.
945               To make sure you've used the
946               correct category, please see the
947               <a href="" target="_blank">Calendar Definitions</a>
948             </span>
949           </td>
950         </tr>
951
952         <xsl:if test="/bedeworkadmin/formElements/form/sponsor/name">
953           <tr>
954             <td class="fieldName" colspan="2">
955               <span class="std-text"><span class="bold">or</span> add</span>
956             </td>
957           </tr>
958           <tr>
959             <td class="fieldName">
960               Contact (name):
961             </td>
962             <td>
963               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/name/*"/>
964             </td>
965           </tr>
966           <tr>
967             <td class="fieldName">
968               Contact Phone Number:
969             </td>
970             <td>
971               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/phone/*"/>
972               <xsl:text> </xsl:text>
973               <span class="fieldInfo">(optional)</span>
974             </td>
975           </tr>
976           <tr>
977             <td class="optional">
978               Contact's URL:
979             </td>
980             <td>
981               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/link/*"/>
982               <xsl:text> </xsl:text>
983               <span class="fieldInfo">(optional)</span>
984             </td>
985           </tr>
986           <tr>
987             <td class="optional">
988               Contact Email Address:
989             </td>
990             <td>
991               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/email/*"/>
992               <xsl:text> </xsl:text>
993               <span class="fieldInfo">(optional)</span> test
994               <div id="sponsorEmailAlert">&#160;</div> <!-- space for email warning -->
995             </td>
996           </tr>
997         </xsl:if>
998       </table>
999
1000       <table border="0" id="submitTable">
1001         <tr>
1002           <xsl:choose>
1003             <xsl:when test="/bedeworkadmin/creating='true'">
1004               <td>
1005                 <input type="submit" name="addEvent" value="Add Event"/>
1006                 <input type="submit" name="cancelled" value="Cancel"/>
1007                 <input type="reset" value="Clear"/>
1008               </td>
1009             </xsl:when>
1010             <xsl:otherwise>
1011               <td>
1012                 <input type="submit" name="updateEvent" value="Update Event"/>
1013                 <input type="submit" name="cancelled" value="Cancel"/>
1014                 <input type="submit" name="copy" value="Duplicate Event"/>
1015               </td>
1016               <td align="right">
1017                 <input type="submit" name="delete" value="Delete Event"/>
1018               </td>
1019             </xsl:otherwise>
1020           </xsl:choose>
1021         </tr>
1022       </table>
1023     </form>
1024   </xsl:template>
1025
1026   <xsl:template name="clock">
1027     <div id="bwClock">
1028       <!-- Bedework 24-Hour Clock time selection widget
1029            used with resources/bwClock.js and resources/bwClock.css -->
1030       <div id="bwClockClock">
1031         <img id="clockMap" src="{$resourcesRoot}/resources/clockMap.gif" width="368" height="368" border="0" alt="" usemap="#bwClockMap" />
1032       </div>
1033       <div id="bwClockCover">
1034         <!-- this is a special effect div used simply to cover the pixelated edge
1035              where the clock meets the clock box title -->
1036       </div>
1037       <div id="bwClockBox">
1038         <h2>
1039           Bedework 24-Hour Clock
1040         </h2>
1041         <div id="bwClockDateTypeIndicator">
1042           type
1043         </div>
1044         <div id="bwClockTime">
1045           select time
1046         </div>
1047         <div id="bwClockCloseText">
1048           close
1049         </div>
1050         <div id="bwClockCloseButton">
1051           <a href="javascript:bwClockClose();">X</a>
1052         </div>
1053       </div>
1054       <map name="bwClockMap" id="bwClockMap">
1055         <area shape="rect" alt="close clock" title="close clock" coords="160,167, 200,200" href="javascript:bwClockClose()"/>
1056         <area shape="poly" alt="minute 00:55" title="minute 00:55" coords="156,164, 169,155, 156,107, 123,128" href="javascript:bwClockUpdateDateTimeForm('minute','55')" />
1057         <area shape="poly" alt="minute 00:50" title="minute 00:50" coords="150,175, 156,164, 123,128, 103,161" href="javascript:bwClockUpdateDateTimeForm('minute','50')" />
1058         <area shape="poly" alt="minute 00:45" title="minute 00:45" coords="150,191, 150,175, 103,161, 103,206" href="javascript:bwClockUpdateDateTimeForm('minute','45')" />
1059         <area shape="poly" alt="minute 00:40" title="minute 00:40" coords="158,208, 150,191, 105,206, 123,237" href="javascript:bwClockUpdateDateTimeForm('minute','40')" />
1060         <area shape="poly" alt="minute 00:35" title="minute 00:35" coords="171,218, 158,208, 123,238, 158,261" href="javascript:bwClockUpdateDateTimeForm('minute','35')" />
1061         <area shape="poly" alt="minute 00:30" title="minute 00:30" coords="193,218, 172,218, 158,263, 209,263" href="javascript:bwClockUpdateDateTimeForm('minute','30')" />
1062         <area shape="poly" alt="minute 00:25" title="minute 00:25" coords="209,210, 193,218, 209,261, 241,240" href="javascript:bwClockUpdateDateTimeForm('minute','25')" />
1063         <area shape="poly" alt="minute 00:20" title="minute 00:20" coords="216,196, 209,210, 241,240, 261,206" href="javascript:bwClockUpdateDateTimeForm('minute','20')" />
1064         <area shape="poly" alt="minute 00:15" title="minute 00:15" coords="216,178, 216,196, 261,206, 261,159" href="javascript:bwClockUpdateDateTimeForm('minute','15')" />
1065         <area shape="poly" alt="minute 00:10" title="minute 00:10" coords="209,164, 216,178, 261,159, 240,126" href="javascript:bwClockUpdateDateTimeForm('minute','10')" />
1066         <area shape="poly" alt="minute 00:05" title="minute 00:05" coords="196,155, 209,164, 238,126, 206,107" href="javascript:bwClockUpdateDateTimeForm('minute','05')" />
1067         <area shape="poly" alt="minute 00:00" title="minute 00:00" coords="169,155, 196,155, 206,105, 156,105" href="javascript:bwClockUpdateDateTimeForm('minute','00')" />
1068         <area shape="poly" alt="11 PM, 2300 hour" title="11 PM, 2300 hour" coords="150,102, 172,96, 158,1, 114,14" href="javascript:bwClockUpdateDateTimeForm('hour','23')" />
1069         <area shape="poly" alt="10 PM, 2200 hour" title="10 PM, 2200 hour" coords="131,114, 150,102, 114,14, 74,36" href="javascript:bwClockUpdateDateTimeForm('hour','22')" />
1070         <area shape="poly" alt="9 PM, 2100 hour" title="9 PM, 2100 hour" coords="111,132, 131,114, 74,36, 40,69" href="javascript:bwClockUpdateDateTimeForm('hour','21')" />
1071         <area shape="poly" alt="8 PM, 2000 hour" title="8 PM, 2000 hour" coords="101,149, 111,132, 40,69, 15,113" href="javascript:bwClockUpdateDateTimeForm('hour','20')" />
1072         <area shape="poly" alt="7 PM, 1900 hour" title="7 PM, 1900 hour" coords="95,170, 101,149, 15,113, 1,159" href="javascript:bwClockUpdateDateTimeForm('hour','19')" />
1073         <area shape="poly" alt="6 PM, 1800 hour" title="6 PM, 1800 hour" coords="95,196, 95,170, 0,159, 0,204" href="javascript:bwClockUpdateDateTimeForm('hour','18')" />
1074         <area shape="poly" alt="5 PM, 1700 hour" title="5 PM, 1700 hour" coords="103,225, 95,196, 1,205, 16,256" href="javascript:bwClockUpdateDateTimeForm('hour','17')" />
1075         <area shape="poly" alt="4 PM, 1600 hour" title="4 PM, 1600 hour" coords="116,245, 103,225, 16,256, 41,298" href="javascript:bwClockUpdateDateTimeForm('hour','16')" />
1076         <area shape="poly" alt="3 PM, 1500 hour" title="3 PM, 1500 hour" coords="134,259, 117,245, 41,298, 76,332" href="javascript:bwClockUpdateDateTimeForm('hour','15')" />
1077         <area shape="poly" alt="2 PM, 1400 hour" title="2 PM, 1400 hour" coords="150,268, 134,259, 76,333, 121,355" href="javascript:bwClockUpdateDateTimeForm('hour','14')" />
1078         <area shape="poly" alt="1 PM, 1300 hour" title="1 PM, 1300 hour" coords="169,273, 150,268, 120,356, 165,365" href="javascript:bwClockUpdateDateTimeForm('hour','13')" />
1079         <area shape="poly" alt="Noon, 1200 hour" title="Noon, 1200 hour" coords="193,273, 169,273, 165,365, 210,364" href="javascript:bwClockUpdateDateTimeForm('hour','12')" />
1080         <area shape="poly" alt="11 AM, 1100 hour" title="11 AM, 1100 hour" coords="214,270, 193,273, 210,363, 252,352" href="javascript:bwClockUpdateDateTimeForm('hour','11')" />
1081         <area shape="poly" alt="10 AM, 1000 hour" title="10 AM, 1000 hour" coords="232,259, 214,270, 252,352, 291,330" href="javascript:bwClockUpdateDateTimeForm('hour','10')" />
1082         <area shape="poly" alt="9 AM, 0900 hour" title="9 AM, 0900 hour" coords="251,240, 232,258, 291,330, 323,301" href="javascript:bwClockUpdateDateTimeForm('hour','09')" />
1083         <area shape="poly" alt="8 AM, 0800 hour" title="8 AM, 0800 hour" coords="263,219, 251,239, 323,301, 349,261" href="javascript:bwClockUpdateDateTimeForm('hour','08')" />
1084         <area shape="poly" alt="7 AM, 0700 hour" title="7 AM, 0700 hour" coords="269,194, 263,219, 349,261, 363,212" href="javascript:bwClockUpdateDateTimeForm('hour','07')" />
1085         <area shape="poly" alt="6 AM, 0600 hour" title="6 AM, 0600 hour" coords="269,172, 269,193, 363,212, 363,155" href="javascript:bwClockUpdateDateTimeForm('hour','06')" />
1086         <area shape="poly" alt="5 AM, 0500 hour" title="5 AM, 0500 hour" coords="263,150, 269,172, 363,155, 351,109" href="javascript:bwClockUpdateDateTimeForm('hour','05')" />
1087         <area shape="poly" alt="4 AM, 0400 hour" title="4 AM, 0400 hour" coords="251,130, 263,150, 351,109, 325,68" href="javascript:bwClockUpdateDateTimeForm('hour','04')" />
1088         <area shape="poly" alt="3 AM, 0300 hour" title="3 AM, 0300 hour" coords="234,112, 251,130, 325,67, 295,37" href="javascript:bwClockUpdateDateTimeForm('hour','03')" />
1089         <area shape="poly" alt="2 AM, 0200 hour" title="2 AM, 0200 hour" coords="221,102, 234,112, 295,37, 247,11" href="javascript:bwClockUpdateDateTimeForm('hour','02')" />
1090         <area shape="poly" alt="1 AM, 0100 hour" title="1 AM, 0100 hour" coords="196,96, 221,102, 247,10, 209,-1, 201,61, 206,64, 205,74, 199,75" href="javascript:bwClockUpdateDateTimeForm('hour','01')" />
1091         <area shape="poly" alt="Midnight, 0000 hour" title="Midnight, 0000 hour" coords="172,96, 169,74, 161,73, 161,65, 168,63, 158,-1, 209,-1, 201,61, 200,62, 206,64, 205,74, 198,75, 196,96, 183,95" href="javascript:bwClockUpdateDateTimeForm('hour','00')" />
1092       </map>
1093     </div>
1094   </xsl:template>
1095
1096   <xsl:template match="event" mode="displayEvent">
1097     <xsl:choose>
1098       <xsl:when test="/bedeworkadmin/page='deleteEventConfirm'">
1099         <h2>Ok to delete this event?</h2>
1100         <p style="width: 400px;">Note: we do not encourage deletion of old but correct events; we prefer to keep
1101            old events for historical reasons.  Please remove only those events
1102            that are truly erroneous.</p>
1103         <p id="confirmButtons">
1104           <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1105         </p>
1106       </xsl:when>
1107       <xsl:otherwise>
1108         <h2>Event Information</h2>
1109       </xsl:otherwise>
1110     </xsl:choose>
1111
1112     <table class="eventFormTable">
1113       <tr>
1114         <th>
1115           ID:
1116         </th>
1117         <td>
1118           <xsl:value-of select="id"/>
1119         </td>
1120       </tr>
1121
1122       <tr>
1123         <th>
1124           Title:
1125         </th>
1126         <td>
1127           <xsl:value-of select="title"/>
1128         </td>
1129       </tr>
1130
1131       <tr>
1132         <th>
1133           Calendar:
1134         </th>
1135         <td>
1136           <xsl:value-of select="calendar"/>
1137         </td>
1138       </tr>
1139
1140       <tr>
1141         <th>
1142           Start:
1143         </th>
1144         <td>
1145           <xsl:value-of select="start/year"/>-<xsl:value-of select="start/month"/>-<xsl:value-of select="start/day"/>
1146           <xsl:text> </xsl:text>
1147           <xsl:choose>
1148             <xsl:when test="start/allDay='true'">
1149               <strong>all day event</strong>
1150             </xsl:when>
1151             <xsl:otherwise>
1152               <xsl:value-of select="start/hour"/>:<xsl:value-of select="start/minute"/>
1153               <xsl:if test="start/ampm">
1154                 <xsl:value-of select="start/ampm"/>
1155               </xsl:if>
1156             </xsl:otherwise>
1157           </xsl:choose>
1158         </td>
1159       </tr>
1160       <tr>
1161         <th>
1162           End:
1163         </th>
1164         <td>
1165           <xsl:choose>
1166             <xsl:when test="end/endtype = 'none'">
1167               <div class="dateFields" id="noDuration">
1168                 This event has no duration / end date
1169               </div>
1170             </xsl:when>
1171             <xsl:when test="end/endtype = 'duration'">
1172               <div class="dateFields">
1173                 <div class="invisible" id="endDuration">
1174                   <div class="durationBox">
1175                     <input type="text" name="eventDuration.daysStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>days
1176                     <input type="text" name="eventDuration.hoursStr" size="2" value="1" onChange="window.document.peForm.durationType[0].checked = true;"/>hours
1177                     <input type="text" name="eventDuration.minutesStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>minutes
1178                   </div>
1179                   <span class="durationSpacerText">or</span>
1180                   <div class="durationBox">
1181                     <input type="text" name="eventDuration.weeksStr" size="2" value="0" onChange="window.document.peForm.durationType[1].checked = true;"/>weeks
1182                   </div>
1183                 </div>
1184               </div>
1185             </xsl:when>
1186             <xsl:otherwise>
1187               <xsl:value-of select="end/dateTime/year"/>-<xsl:value-of select="end/dateTime/month"/>-<xsl:value-of select="end/dateTime/day"/>
1188               <xsl:text> </xsl:text>
1189               <xsl:value-of select="end/dateTime/hour"/>:<xsl:value-of select="end/dateTime/minute"/>
1190               <xsl:text> </xsl:text>
1191               <xsl:if test="end/dateTime/ampm">
1192                 <xsl:value-of select="end/dateTime/ampm"/>
1193               </xsl:if>
1194             </xsl:otherwise>
1195           </xsl:choose>
1196         </td>
1197       </tr>
1198
1199       <!--  Category  -->
1200       <!--<tr>
1201         <th>
1202           Category:
1203         </th>
1204         <td>
1205           <xsl:value-of select="category"/>
1206         </td>
1207       </tr>-->
1208
1209       <!--  Description  -->
1210       <tr>
1211         <th>
1212           Description:
1213         </th>
1214         <td>
1215           <xsl:value-of select="desc"/>
1216         </td>
1217       </tr>
1218       <!-- Cost -->
1219       <tr>
1220         <th class="optional">
1221           Price:
1222         </th>
1223         <td>
1224           <xsl:value-of select="cost"/>
1225         </td>
1226       </tr>
1227       <!-- Url -->
1228       <tr>
1229         <th class="optional">
1230           URL:
1231         </th>
1232         <td>
1233           <xsl:variable name="eventLink" select="link"/>
1234           <a href="{$eventLink}"><xsl:value-of select="link"/></a>
1235         </td>
1236       </tr>
1237       <!-- Location -->
1238       <tr>
1239         <th>
1240           Location:
1241         </th>
1242         <td>
1243           <xsl:value-of select="location"/>
1244         </td>
1245       </tr>
1246
1247       <!-- Sponsor -->
1248       <tr>
1249         <th>
1250           Contact:
1251         </th>
1252         <td>
1253           <xsl:value-of select="sponsor"/>
1254         </td>
1255       </tr>
1256
1257       <!-- Owner -->
1258       <tr>
1259         <th>
1260           Owner:
1261         </th>
1262         <td>
1263           <xsl:value-of select="creator"/>
1264         </td>
1265       </tr>
1266
1267     </table>
1268
1269
1270     <!--<xsl:if test="/bedeworkadmin/canEdit = 'true' or /bedeworkadmin/userInfo/superUser = 'true'">
1271       <xsl:variable name="subscriptionId" select="subscription/id"/>
1272       <xsl:variable name="calPath" select="calendar/encodedPath"/>
1273       <xsl:variable name="guid" select="guid"/>
1274       <xsl:variable name="recurrenceId" select="recurrenceId"/>
1275       <h3>
1276         <a href="{$event-fetchForUpdate}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
1277           Edit Event
1278         </a>
1279       </h3>
1280     </xsl:if>-->
1281   </xsl:template>
1282
1283   <!--+++++++++++++++ Sponsors (Contacts) ++++++++++++++++++++-->
1284   <xsl:template name="sponsorList">
1285     <h2>Edit Contacts</h2>
1286     <p>
1287       Select the contact you would like to update:
1288       <input type="button" name="return" value="Add new contact" onclick="javascript:location.replace('{$sponsor-initAdd}')"/>
1289     </p>
1290
1291     <table id="commonListTable">
1292       <tr>
1293         <th>Name</th>
1294         <th>Phone</th>
1295         <th>Email</th>
1296         <th>URL</th>
1297       </tr>
1298
1299       <xsl:for-each select="/bedeworkadmin/sponsors/sponsor">
1300         <tr>
1301           <td>
1302             <xsl:copy-of select="name" />
1303           </td>
1304           <td>
1305             <xsl:value-of select="phone" />
1306           </td>
1307           <td>
1308             <xsl:variable name="email" select="email"/>
1309             <a href="mailto:{$email}">
1310               <xsl:value-of select="email"/>
1311             </a>
1312           </td>
1313           <td>
1314             <xsl:variable name="link" select="link" />
1315             <a href="{$link}" target="linktest">
1316               <xsl:value-of select="link" />
1317             </a>
1318           </td>
1319         </tr>
1320       </xsl:for-each>
1321     </table>
1322   </xsl:template>
1323
1324   <xsl:template name="modSponsor">
1325     <form action="{$sponsor-update}" method="post">
1326       <h2>Contact Information</h2>
1327
1328       <table id="eventFormTable">
1329         <tr>
1330           <td class="fieldName">
1331             Contact:
1332           </td>
1333           <td>
1334             <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
1335           </td>
1336         </tr>
1337         <tr>
1338           <td class="fieldName">
1339             Contact Phone Number:
1340           </td>
1341           <td>
1342             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
1343             <span class="fieldInfo"> (optional)</span>
1344           </td>
1345         </tr>
1346         <tr>
1347           <td class="optional">
1348             Contact's URL:
1349           </td>
1350           <td>
1351             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1352             <span class="fieldInfo"> (optional)</span>
1353           </td>
1354         </tr>
1355         <tr>
1356           <td class="optional">
1357             Contact Email Address:
1358           </td>
1359           <td>
1360             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
1361             <span class="fieldInfo"> (optional)</span>
1362           </td>
1363         </tr>
1364       </table>
1365
1366       <table border="0" id="submitTable">
1367         <tr>
1368           <xsl:choose>
1369             <xsl:when test="/bedeworkadmin/creating='true'">
1370               <td>
1371                 <input type="submit" name="addSponsor" value="Add Contact"/>
1372                 <input type="submit" name="cancelled" value="Cancel"/>
1373                 <input type="reset" value="Clear"/>
1374               </td>
1375             </xsl:when>
1376             <xsl:otherwise>
1377               <td>
1378                 <input type="submit" name="updateSponsor" value="Update Contact"/>
1379                 <input type="submit" name="cancelled" value="Cancel"/>
1380                 <input type="reset" value="Reset"/>
1381               </td>
1382               <td align="right">
1383                 <input type="submit" name="delete" value="Delete Contact"/>
1384               </td>
1385             </xsl:otherwise>
1386           </xsl:choose>
1387         </tr>
1388       </table>
1389
1390     </form>
1391   </xsl:template>
1392
1393   <xsl:template name="deleteSponsorConfirm">
1394     <h2>Ok to delete this contact?</h2>
1395     <p id="confirmButtons">
1396       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1397     </p>
1398
1399     <table class="eventFormTable">
1400       <tr>
1401         <th>Name</th>
1402         <td><xsl:value-of select="/bedeworkadmin/sponsor/name" /></td>
1403       </tr>
1404       <tr>
1405         <th>Phone</th>
1406         <td><xsl:value-of select="/bedeworkadmin/sponsor/phone" /></td>
1407       </tr>
1408       <tr>
1409         <th>Email</th>
1410         <td><xsl:value-of select="/bedeworkadmin/sponsor/email" /></td>
1411       </tr>
1412       <tr>
1413         <th>URL</th>
1414         <td><xsl:value-of select="/bedeworkadmin/sponsor/link" /></td>
1415       </tr>
1416     </table>
1417   </xsl:template>
1418
1419    <!--+++++++++++++++ Locations ++++++++++++++++++++-->
1420   <xsl:template name="locationList">
1421     <h2>Edit Locations</h2>
1422     <p>
1423       Select the location that you would like to update:
1424       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')"/>
1425     </p>
1426
1427     <table id="commonListTable">
1428       <tr>
1429         <th>Address</th>
1430         <th>Subaddress</th>
1431         <th>URL</th>
1432       </tr>
1433
1434       <xsl:for-each select="/bedeworkadmin/locations/location">
1435         <tr>
1436           <td>
1437             <xsl:copy-of select="address/*"/>
1438           </td>
1439           <td>
1440             <xsl:value-of select="subaddress"/>
1441           </td>
1442           <td>
1443             <xsl:variable name="link" select="link" />
1444             <a href="{$link}" target="linktest">
1445               <xsl:value-of select="link" />
1446             </a>
1447           </td>
1448         </tr>
1449       </xsl:for-each>
1450     </table>
1451   </xsl:template>
1452
1453   <xsl:template name="modLocation">
1454     <xsl:choose>
1455       <xsl:when test="/bedeworkadmin/creating='true'">
1456         <h2>Add Location</h2>
1457       </xsl:when>
1458       <xsl:otherwise>
1459         <h2>Update Location</h2>
1460       </xsl:otherwise>
1461     </xsl:choose>
1462
1463     <form action="{$location-update}" method="post">
1464       <table id="eventFormTable">
1465         <tr>
1466           <td class="fieldName">
1467             Address:
1468           </td>
1469           <td>
1470             <xsl:copy-of select="/bedeworkadmin/formElements/form/address/*"/>
1471           </td>
1472         </tr>
1473         <tr>
1474           <td class="optional">
1475             Subaddress:
1476           </td>
1477           <td>
1478             <xsl:copy-of select="/bedeworkadmin/formElements/form/subaddress/*"/>
1479             <span class="fieldInfo"> (optional)</span>
1480           </td>
1481         </tr>
1482         <tr>
1483           <td class="optional">
1484             Location's URL:
1485           </td>
1486           <td>
1487             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1488             <span class="fieldInfo"> (optional)</span>
1489           </td>
1490         </tr>
1491       </table>
1492
1493       <table border="0" id="submitTable">
1494         <tr>
1495           <xsl:choose>
1496             <xsl:when test="/bedeworkadmin/creating='true'">
1497               <td>
1498                 <input type="submit" name="addLocation" value="Add Location"/>
1499                 <input type="submit" name="cancelled" value="Cancel"/>
1500                 <input type="reset" value="Clear"/>
1501               </td>
1502             </xsl:when>
1503             <xsl:otherwise>
1504               <td>
1505                 <input type="submit" name="updateLocation" value="Update Location"/>
1506                 <input type="submit" name="cancelled" value="Cancel"/>
1507                 <input type="reset" value="Reset"/>
1508               </td>
1509               <td align="right">
1510                 <input type="submit" name="delete" value="Delete Location"/>
1511               </td>
1512             </xsl:otherwise>
1513           </xsl:choose>
1514         </tr>
1515       </table>
1516     </form>
1517   </xsl:template>
1518
1519   <xsl:template name="deleteLocationConfirm">
1520     <h2>Ok to delete this location?</h2>
1521     <p id="confirmButtons">
1522       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1523     </p>
1524
1525     <table class="eventFormTable">
1526         <tr>
1527           <td class="fieldName">
1528             Address:
1529           </td>
1530           <td>
1531             <xsl:value-of select="/bedeworkadmin/location/address"/>
1532           </td>
1533         </tr>
1534         <tr>
1535           <td class="optional">
1536             Subaddress:
1537           </td>
1538           <td>
1539             <xsl:value-of select="/bedeworkadmin/location/subaddress"/>
1540           </td>
1541         </tr>
1542         <tr>
1543           <td class="optional">
1544             Location's URL:
1545           </td>
1546           <td>
1547             <xsl:variable name="link" select="/bedeworkadmin/location/link"/>
1548             <a href="{$link}"><xsl:value-of select="/bedeworkadmin/location/link"/></a>
1549           </td>
1550         </tr>
1551       </table>
1552   </xsl:template>
1553
1554 <!--+++++++++++++++ Calendars ++++++++++++++++++++-->
1555   <xsl:template match="calendars">
1556     <table id="calendarTable">
1557       <tr>
1558         <td class="cals">
1559           <h3>Public calendars</h3>
1560           <ul id="calendarTree">
1561             <xsl:choose>
1562               <xsl:when test="/bedeworkadmin/page='calendarDescriptions' or
1563                               /bedeworkadmin/page='displayCalendar'">
1564                 <xsl:apply-templates select="calendar" mode="listForDisplay"/>
1565               </xsl:when>
1566               <xsl:otherwise>
1567                 <xsl:apply-templates select="calendar" mode="listForUpdate"/>
1568               </xsl:otherwise>
1569             </xsl:choose>
1570           </ul>
1571         </td>
1572         <td class="calendarContent">
1573           <xsl:choose>
1574             <xsl:when test="/bedeworkadmin/page='calendarList' or
1575                             /bedeworkadmin/page='calendarReferenced'">
1576               <xsl:call-template name="calendarList"/>
1577             </xsl:when>
1578             <xsl:when test="/bedeworkadmin/page='calendarDescriptions'">
1579               <xsl:call-template name="calendarDescriptions"/>
1580             </xsl:when>
1581             <xsl:when test="/bedeworkadmin/page='displayCalendar'">
1582               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="displayCalendar"/>
1583             </xsl:when>
1584             <xsl:when test="/bedeworkadmin/page='deleteCalendarConfirm'">
1585               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="deleteCalendarConfirm"/>
1586             </xsl:when>
1587             <xsl:when test="/bedeworkadmin/creating='true'">
1588               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="addCalendar"/>
1589             </xsl:when>
1590             <xsl:otherwise>
1591               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="modCalendar"/>
1592             </xsl:otherwise>
1593           </xsl:choose>
1594         </td>
1595       </tr>
1596     </table>
1597   </xsl:template>
1598
1599   <xsl:template match="calendar" mode="listForUpdate">
1600     <xsl:variable name="calPath" select="encodedPath"/>
1601     <xsl:variable name="itemClass">
1602       <xsl:choose>
1603         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1604         <xsl:otherwise>calendar</xsl:otherwise>
1605       </xsl:choose>
1606     </xsl:variable>
1607     <li class="{$itemClass}">
1608       <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update">
1609         <xsl:value-of select="name"/>
1610       </a>
1611       <xsl:if test="calendarCollection='false'">
1612         <xsl:text> </xsl:text>
1613         <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder">
1614           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/>
1615         </a>
1616       </xsl:if>
1617       <xsl:if test="calendar">
1618         <ul>
1619           <xsl:apply-templates select="calendar" mode="listForUpdate">
1620             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>-->
1621           </xsl:apply-templates>
1622         </ul>
1623       </xsl:if>
1624     </li>
1625   </xsl:template>
1626
1627   <xsl:template match="calendar" mode="listForDisplay">
1628     <xsl:variable name="calPath" select="encodedPath"/>
1629     <xsl:variable name="itemClass">
1630       <xsl:choose>
1631         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1632         <xsl:otherwise>calendar</xsl:otherwise>
1633       </xsl:choose>
1634     </xsl:variable>
1635     <li class="{$itemClass}">
1636       <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display">
1637         <xsl:value-of select="name"/>
1638       </a>
1639       <xsl:if test="calendar">
1640         <ul>
1641           <xsl:apply-templates select="calendar" mode="listForDisplay">
1642             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>-->
1643           </xsl:apply-templates>
1644         </ul>
1645       </xsl:if>
1646     </li>
1647   </xsl:template>
1648
1649   <xsl:template match="currentCalendar" mode="addCalendar">
1650     <h3>Add Calendar / Folder</h3>
1651     <form name="addCalForm" action="{$calendar-update}">
1652       <table class="eventFormTable">
1653         <tr>
1654           <th>Name:</th>
1655           <td>
1656             <xsl:variable name="curCalName" select="name"/>
1657             <input name="calendar.name" value="{$curCalName}" size="40"/>
1658           </td>
1659         </tr>
1660         <tr>
1661           <th>Summary:</th>
1662           <td>
1663             <xsl:variable name="curCalSummary" select="summary"/>
1664             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
1665           </td>
1666         </tr>
1667         <tr>
1668           <th>Description:</th>
1669           <td>
1670             <textarea name="calendar.description" cols="40" rows="4">
1671               <xsl:value-of select="desc"/>
1672             </textarea>
1673           </td>
1674         </tr>
1675         <tr>
1676           <th>Calendar/Folder:</th>
1677           <td>
1678             <xsl:choose>
1679               <xsl:when test="calendarCollection='true'">
1680                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
1681                 <input type="radio" value="false" name="calendarCollection"/> Folder
1682               </xsl:when>
1683               <xsl:otherwise>
1684                 <input type="radio" value="true" name="calendarCollection"/> Calendar
1685                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
1686               </xsl:otherwise>
1687             </xsl:choose>
1688           </td>
1689         </tr>
1690       </table>
1691
1692       <table border="0" id="submitTable">
1693         <tr>
1694           <td>
1695             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/>
1696             <input type="submit" name="cancelled" value="Cancel"/>
1697             <input type="reset" value="Clear"/>
1698           </td>
1699         </tr>
1700       </table>
1701     </form>
1702     <div id="sharingBox">
1703       <h3>Sharing</h3>
1704       Sharing may be added to a calendar once created.
1705     </div>
1706   </xsl:template>
1707
1708   <xsl:template match="currentCalendar" mode="modCalendar">
1709     <xsl:choose>
1710       <xsl:when test="calendarCollection='true'">
1711         <h3>Modify Calendar</h3>
1712       </xsl:when>
1713       <xsl:otherwise>
1714         <h3>Modify Folder</h3>
1715       </xsl:otherwise>
1716     </xsl:choose>
1717     <form name="modCalForm" action="{$calendar-update}">
1718       <table class="eventFormTable">
1719         <tr>
1720           <th>Path:</th>
1721           <td>
1722             <xsl:value-of select="path"/>
1723           </td>
1724         </tr>
1725         <tr>
1726           <th>Name:</th>
1727           <td>
1728             <xsl:value-of select="name"/>
1729           </td>
1730         </tr>
1731         <tr>
1732           <th>Mailing List ID:</th>
1733           <td>
1734             <xsl:value-of select="mailListId"/>
1735           </td>
1736         </tr>
1737         <tr>
1738           <th>Summary:</th>
1739           <td>
1740             <xsl:variable name="curCalSummary" select="summary"/>
1741             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
1742           </td>
1743         </tr>
1744         <tr>
1745           <th>Description:</th>
1746           <td>
1747             <textarea name="calendar.description" cols="40" rows="4">
1748               <xsl:value-of select="desc"/>
1749             </textarea>
1750           </td>
1751         </tr>
1752         <tr>
1753           <th>Calendar/Folder:</th>
1754           <td>
1755             <xsl:choose>
1756               <xsl:when test="calendarCollection='true'">
1757                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
1758                 <input type="radio" value="false" name="calendarCollection"/> Folder
1759               </xsl:when>
1760               <xsl:otherwise>
1761                 <input type="radio" value="true" name="calendarCollection"/> Calendar
1762                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
1763               </xsl:otherwise>
1764             </xsl:choose>
1765           </td>
1766         </tr>
1767       </table>
1768
1769       <table border="0" id="submitTable">
1770         <tr>
1771           <td>
1772             <xsl:choose>
1773               <xsl:when test="calendarCollection='true'">
1774                 <input type="submit" name="updateCalendar" value="Update Calendar"/>
1775               </xsl:when>
1776               <xsl:otherwise>
1777                 <input type="submit" name="updateCalendar" value="Update Folder"/>
1778               </xsl:otherwise>
1779             </xsl:choose>
1780             <input type="submit" name="cancelled" value="Cancel"/>
1781             <input type="reset" value="Reset"/>
1782           </td>
1783           <td align="right">
1784             <xsl:choose>
1785               <xsl:when test="calendarCollection='true'">
1786                 <input type="submit" name="delete" value="Delete Calendar"/>
1787               </xsl:when>
1788               <xsl:otherwise>
1789                 <input type="submit" name="delete" value="Delete Folder"/>
1790               </xsl:otherwise>
1791             </xsl:choose>
1792           </td>
1793         </tr>
1794       </table>
1795     </form>
1796     <div id="sharingBox">
1797       <xsl:variable name="calPath" select="path"/>
1798       <h3>Sharing</h3>
1799       <table class="common">
1800         <tr>
1801           <th class="commonHeader" colspan="2">Current access:</th>
1802         </tr>
1803         <tr>
1804           <th class="thin">Owner:</th>
1805           <td>
1806             <xsl:value-of select="name(acl/ace[principal/property/owner]/grant/*)"/>
1807           </td>
1808         </tr>
1809         <xsl:if test="acl/ace/principal/href">
1810           <tr>
1811             <th class="thin">Users:</th>
1812             <td>
1813               <xsl:for-each select="acl/ace[principal/href]">
1814                 <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/>
1815               </xsl:for-each>
1816             </td>
1817           </tr>
1818         </xsl:if>
1819       </table>
1820       <form name="calendarShareForm" action="{$calendar-setAccess}" id="shareForm" method="post">
1821         <input type="hidden" name="calPath" value="{$calPath}"/>
1822         <table cellpadding="0" id="shareFormTable" class="common">
1823           <tr>
1824             <th colspan="2" class="commonHeader">Add:</th>
1825           </tr>
1826           <tr>
1827             <td>
1828               <h5>Who:</h5>
1829               <input type="text" name="who" size="20"/><br/>
1830               <input type="radio" value="user" name="whoType" checked="checked"/> user
1831               <input type="radio" value="group" name="whoType"/> group
1832               <p>OR</p>
1833               <p>
1834                 <input type="radio" value="auth" name="whoType"/> all authorized users<br/>
1835                 <input type="radio" value="other" name="whoType"/> other users
1836               </p>
1837             </td>
1838             <td>
1839               <h5>Rights:</h5>
1840               <ul id="howList">
1841
1842                 <!--<li>
1843                   <input type="radio" value="A" name="how"/> All
1844                   <ul>
1845                     <li>
1846                       <input type="radio" value="R" name="how" checked="checked"/> Read
1847                       <ul>
1848                         <li>
1849                           <input type="radio" value="r" name="how" disabled="disabled"/> Read acl
1850                         </li>
1851                         <li>
1852                           <input type="radio" value="P" name="how" disabled="disabled"/> Read current user privilege set
1853                         </li>
1854                         <li>
1855                           <input type="radio" value="f" name="how"/> Read free/busy
1856                         </li>
1857                       </ul>
1858                     </li>
1859                     <li>
1860                       <input type="radio" value="W" name="how"/> Write
1861                       <ul>
1862                         <li>
1863                           <input type="radio" value="a" name="how" disabled="disabled"/> Write acl
1864                         </li>
1865                         <li>
1866                           <input type="radio" value="p" name="how" disabled="disabled"/> Write properties
1867                         </li>
1868                         <li>
1869                           <input type="radio" value="c" name="how"/> Write content
1870                         </li>
1871                         <li>
1872                           <input type="radio" value="b" name="how" disabled="disabled"/> Bind (includes scheduling)
1873                         </li>
1874                         <li>
1875                           <input type="radio" value="u" name="how"/> Unbind (destroy)
1876                         </li>
1877                       </ul>
1878                     </li>
1879                   </ul>
1880                 </li>
1881                 <li>
1882                   <input type="radio" value="N" name="how"/> None
1883                 </li>-->
1884
1885                 <li><input type="radio" value="A" name="how"/> <strong>All</strong> (read, write, delete)</li>
1886                 <li class="padTop">
1887                   <input type="radio" value="R" name="how" checked="checked"/> <strong>Read</strong> (content, access, freebusy)
1888                 </li>
1889                 <li>
1890                   <input type="radio" value="f" name="how"/> Read freebusy only
1891                 </li>
1892                 <li class="padTop">
1893                   <input type="radio" value="W" name="how"/> <strong>Write and delete</strong> (content, access, properties)
1894                 </li>
1895                 <li>
1896                   <input type="radio" value="c" name="how"/> Write content only
1897                 </li>
1898                 <li>
1899                  <input type="radio" value="u" name="how"/> Delete only
1900                 </li>
1901                 <li class="padTop">
1902                   <input type="radio" value="Rc" name="how"/> <strong>Read</strong> and <strong>Write content only</strong>
1903                 </li>
1904                 <li class="padTop">
1905                   <input type="radio" value="N" name="how"/> <strong>None</strong>
1906                 </li>
1907               </ul>
1908             </td>
1909           </tr>
1910         </table>
1911         <input type="submit" name="submit" value="Submit"/>
1912       </form>
1913     </div>
1914   </xsl:template>
1915
1916   <xsl:template name="calendarList">
1917     <h3>Manage Calendars</h3>
1918     <ul>
1919       <li>Select an item from the calendar list on the left to modify
1920       a calendar or folder.</li>
1921       <li>Select the
1922       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/>
1923       icon to add a new calendar or folder to the tree.
1924         <ul>
1925           <li>Folders may only contain calendars and subfolders.</li>
1926           <li>Calendars may only contain events (and other calendar items).</li>
1927           <li>
1928             If a calendar is empty, it may be converted to a folder and vice
1929             versa.  If a calendar or folder are not empty, it may not be
1930             converted.
1931           </li>
1932         </ul>
1933       </li>
1934     </ul>
1935   </xsl:template>
1936
1937   <xsl:template name="calendarDescriptions">
1938     <h2>Calendar Information</h2>
1939     <ul>
1940       <li>Select an item from the calendar tree on the left to view all information
1941       about that calendar or folder.  The tree on the left represents the calendar
1942       heirarchy.</li>
1943     </ul>
1944
1945     <p><strong>All Calendar Descriptions:</strong></p>
1946     <table id="flatCalendarDescriptions" cellspacing="0">
1947       <tr>
1948         <th>Name</th>
1949         <th>Description</th>
1950       </tr>
1951       <xsl:for-each select="//calendar">
1952         <xsl:variable name="descClass">
1953           <xsl:choose>
1954             <xsl:when test="position() mod 2 = 0">even</xsl:when>
1955             <xsl:otherwise>odd</xsl:otherwise>
1956           </xsl:choose>
1957         </xsl:variable>
1958         <tr class="{$descClass}">
1959           <td>
1960             <xsl:value-of select="name"/>
1961           </td>
1962           <td>
1963             <xsl:value-of select="desc"/>
1964           </td>
1965         </tr>
1966       </xsl:for-each>
1967     </table>
1968   </xsl:template>
1969
1970   <xsl:template match="currentCalendar" mode="displayCalendar">
1971     <h2>Calendar Information</h2>
1972     <table class="eventFormTable">
1973       <tr>
1974         <th>Name:</th>
1975         <td>
1976           <xsl:value-of select="name"/>
1977         </td>
1978       </tr>
1979       <tr>
1980         <th>Path:</th>
1981         <td>
1982           <xsl:value-of select="path"/>
1983         </td>
1984       </tr>
1985       <tr>
1986         <th>Summary:</th>
1987         <td>
1988           <xsl:value-of select="summary"/>
1989         </td>
1990       </tr>
1991       <tr>
1992         <th>Description:</th>
1993         <td>
1994           <xsl:value-of select="desc"/>
1995         </td>
1996       </tr>
1997     </table>
1998   </xsl:template>
1999
2000   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm">
2001     <xsl:choose>
2002       <xsl:when test="calendarCollection='true'">
2003         <h3>Delete Calendar</h3>
2004         <p>
2005           The following calendar will be deleted.  Continue?
2006         </p>
2007       </xsl:when>
2008       <xsl:otherwise>
2009         <h3>Delete Folder</h3>
2010         <p>
2011           The following folder <em>and all its contents</em> will be deleted.
2012           Continue?
2013         </p>
2014       </xsl:otherwise>
2015     </xsl:choose>
2016
2017     <form name="delCalForm" action="{$calendar-delete}">
2018       <table class="eventFormTable">
2019         <tr>
2020           <th>Path:</th>
2021           <td>
2022             <xsl:value-of select="path"/>
2023           </td>
2024         </tr>
2025         <tr>
2026           <th>Name:</th>
2027           <td>
2028             <xsl:value-of select="name"/>
2029           </td>
2030         </tr>
2031         <tr>
2032           <th>Summary:</th>
2033           <td>
2034             <xsl:value-of select="summary"/>
2035           </td>
2036         </tr>
2037         <tr>
2038           <th>Description:</th>
2039           <td>
2040             <xsl:value-of select="desc"/>
2041           </td>
2042         </tr>
2043       </table>
2044
2045       <table border="0" id="submitTable">
2046         <tr>
2047           <td>
2048             <input type="submit" name="cancelled" value="Cancel"/>
2049           </td>
2050           <td align="right">
2051             <xsl:choose>
2052               <xsl:when test="calendarCollection='true'">
2053                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/>
2054               </xsl:when>
2055               <xsl:otherwise>
2056                 <input type="submit" name="delete" value="Yes: Delete Folder!"/>
2057               </xsl:otherwise>
2058             </xsl:choose>
2059           </td>
2060         </tr>
2061       </table>
2062     </form>
2063
2064   </xsl:template>
2065
2066   <!--+++++++++++++++ Subscriptions ++++++++++++++++++++-->
2067   <xsl:template match="subscriptions">
2068     <table id="subsTable">
2069       <tr>
2070         <td class="cals">
2071           <h3>Public calendars</h3>
2072           <p class="smaller">
2073             Select a calendar below to add a <em><strong>new</strong></em>
2074             internal subscription. <!-- or
2075             <a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">
2076             subscribe to an external calendar</a>.-->
2077           </p>
2078           <ul id="calendarTree">
2079             <xsl:apply-templates select="/bedeworkadmin/subscriptions/subscribe/calendars/calendar" mode="subscribe"/>
2080           </ul>
2081         </td>
2082         <td class="subs">
2083           <xsl:choose>
2084             <xsl:when test="/bedeworkadmin/page='subscriptions'">
2085               <xsl:call-template name="subscriptionList"/>
2086             </xsl:when>
2087             <xsl:when test="/bedeworkadmin/creating='true'">
2088               <xsl:apply-templates select="subscription" mode="addSubscription"/>
2089             </xsl:when>
2090             <xsl:otherwise>
2091               <xsl:apply-templates select="subscription" mode="modSubscription"/>
2092             </xsl:otherwise>
2093           </xsl:choose>
2094         </td>
2095       </tr>
2096     </table>
2097   </xsl:template>
2098
2099   <xsl:template match="calendar" mode="subscribe">
2100     <xsl:variable name="calPath" select="encodedPath"/>
2101     <xsl:variable name="itemClass">
2102       <xsl:choose>
2103         <xsl:when test="calendarCollection='false'">folder</xsl:when>
2104         <xsl:otherwise>calendar</xsl:otherwise>
2105       </xsl:choose>
2106     </xsl:variable>
2107     <li class="{$itemClass}">
2108       <a href="{$subscriptions-initAdd}&amp;calPath={$calPath}">
2109         <xsl:value-of select="name"/>
2110       </a>
2111       <xsl:if test="calendar">
2112         <ul>
2113           <xsl:apply-templates select="calendar" mode="subscribe">
2114             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>-->
2115           </xsl:apply-templates>
2116         </ul>
2117       </xsl:if>
2118     </li>
2119   </xsl:template>
2120
2121   <xsl:template match="subscription" mode="addSubscription">
2122     <h2>Add New Subscription</h2>
2123     <p class="note">*the subsciption name must be unique</p>
2124     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2125       <table class="eventFormTable">
2126         <tr>
2127           <th>Name*:</th>
2128           <td>
2129             <xsl:variable name="subName" select="name"/>
2130             <input type="text" value="{$subName}" name="subscription.name" size="60"/>
2131           </td>
2132         </tr>
2133         <xsl:if test="internal='false'">
2134           <tr>
2135             <th>Uri:</th>
2136             <td>
2137               <xsl:variable name="subUri" select="uri"/>
2138               <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2139             </td>
2140           </tr>
2141         </xsl:if>
2142         <tr>
2143           <th>Display:</th>
2144           <td>
2145             <input type="radio" value="true" name="subscription.display"/> yes
2146             <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2147           </td>
2148         </tr>
2149         <tr>
2150           <th>Style:</th>
2151           <td>
2152             <xsl:variable name="subStyle" select="style"/>
2153             <input type="text" value="{$subStyle}" name="subscription.style" size="60"/>
2154           </td>
2155         </tr>
2156         <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
2157           <tr>
2158             <th>Unremovable:</th>
2159             <td>
2160               <input type="radio" value="true" name="unremoveable" size="60"/> true
2161               <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2162             </td>
2163           </tr>
2164         </xsl:if>
2165       </table>
2166       <table border="0" id="submitTable">
2167         <tr>
2168           <td>
2169             <input type="submit" name="addSubscription" value="Add Subscription"/>
2170             <input type="submit" name="cancelled" value="Cancel"/>
2171             <input type="reset" value="Clear"/>
2172           </td>
2173         </tr>
2174       </table>
2175     </form>
2176   </xsl:template>
2177
2178   <xsl:template match="subscription" mode="modSubscription">
2179     <h2>Modify Subscription</h2>
2180     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2181       <table class="eventFormTable">
2182         <tr>
2183           <th>Name*:</th>
2184           <td>
2185             <xsl:value-of select="name"/>
2186             <xsl:variable name="subName" select="name"/>
2187             <input type="hidden" value="{$subName}" name="name"/>
2188           </td>
2189         </tr>
2190         <xsl:choose>
2191           <xsl:when test="internal='false'">
2192             <tr>
2193               <th>Uri:</th>
2194               <td>
2195                 <xsl:variable name="subUri" select="uri"/>
2196                 <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2197               </td>
2198             </tr>
2199           </xsl:when>
2200           <xsl:otherwise>
2201             <tr>
2202               <th>Uri:</th>
2203               <td>
2204                 <xsl:value-of select="uri"/>
2205               </td>
2206             </tr>
2207           </xsl:otherwise>
2208         </xsl:choose>
2209         <tr>
2210           <th>Display:</th>
2211           <td>
2212             <xsl:choose>
2213               <xsl:when test="display='true'">
2214                 <input type="radio" value="true" name="subscription.display" checked="checked"/> yes
2215                 <input type="radio" value="false" name="subscription.display"/> no
2216               </xsl:when>
2217               <xsl:otherwise>
2218                 <input type="radio" value="true" name="subscription.display"/> yes
2219                 <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2220               </xsl:otherwise>
2221             </xsl:choose>
2222           </td>
2223         </tr>
2224         <tr>
2225           <th>Style:</th>
2226           <td>
2227             <xsl:variable name="subStyle" select="style"/>
2228             <input type="text" value="{$subStyle}" name="subscription.style" size="60"/>
2229           </td>
2230         </tr>
2231         <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
2232           <tr>
2233             <th>Unremovable:</th>
2234             <td>
2235               <xsl:choose>
2236                 <xsl:when test="unremoveable='true'">
2237                   <input type="radio" value="true" name="unremoveable" size="60" checked="checked"/> true
2238                   <input type="radio" value="false" name="unremoveable" size="60"/> false
2239                 </xsl:when>
2240                 <xsl:otherwise>
2241                   <input type="radio" value="true" name="unremoveable" size="60"/> true
2242                   <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2243                 </xsl:otherwise>
2244               </xsl:choose>
2245             </td>
2246           </tr>
2247         </xsl:if>
2248       </table>
2249       <table border="0" id="submitTable">
2250         <tr>
2251           <td>
2252             <input type="submit" name="updateSubscription" value="Update Subscription"/>
2253             <input type="submit" name="cancelled" value="Cancel"/>
2254             <input type="reset" value="Reset"/>
2255           </td>
2256           <td align="right">
2257             <input type="submit" name="delete" value="Delete Subscription"/>
2258           </td>
2259         </tr>
2260       </table>
2261     </form>
2262   </xsl:template>
2263
2264   <xsl:template name="subscriptionList">
2265     <h3>Current subscriptions</h3>
2266     <table id="commonListTable">
2267       <tr>
2268         <th>Name</th>
2269         <th>URI</th>
2270         <th>Style</th>
2271         <th>Display</th>
2272         <th>Unremovable</th>
2273         <th>External</th>
2274         <th>Deleted?</th>
2275       </tr>
2276       <xsl:for-each select="subscription">
2277         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2278         <tr>
2279           <td>
2280             <xsl:variable name="subname" select="name"/>
2281             <a href="{$subscriptions-fetchForUpdate}&amp;subname={$subname}">
2282               <xsl:value-of select="name"/>
2283             </a>
2284           </td>
2285           <td>
2286             <xsl:value-of select="uri"/>
2287           </td>
2288           <td>
2289             <xsl:value-of select="style"/>
2290           </td>
2291           <td class="center">
2292             <xsl:if test="display='true'">
2293               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2294             </xsl:if>
2295           </td>
2296           <td class="center">
2297             <xsl:if test="unremoveable='true'">
2298               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2299             </xsl:if>
2300           </td>
2301           <td class="center">
2302             <xsl:if test="internal='false'">
2303               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2304             </xsl:if>
2305           </td>
2306           <td class="center">
2307             <xsl:if test="calendarDeleted='true'">
2308               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2309             </xsl:if>
2310           </td>
2311         </tr>
2312       </xsl:for-each>
2313     </table>
2314     <!--<h4><a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">Subscribe to a remote calendar</a> (by URI)</h4>-->
2315   </xsl:template>
2316
2317   <!--+++++++++++++++ Views ++++++++++++++++++++-->
2318   <xsl:template match="views" mode="viewList">
2319
2320     <h3>Add a new view</h3>
2321     <form name="addView" action="{$view-addView}" method="post">
2322       <input type="text" name="name" size="60"/>
2323       <input type="submit" value="add view" name="addview"/>
2324     </form>
2325
2326     <h3>Views</h3>
2327     <table id="commonListTable">
2328       <tr>
2329         <th>Name</th>
2330         <th>Included subscriptions</th>
2331       </tr>
2332
2333       <xsl:for-each select="view">
2334         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2335         <tr>
2336           <td>
2337             <xsl:variable name="viewName" select="name"/>
2338             <a href="{$view-fetchForUpdate}&amp;name={$viewName}">
2339               <xsl:value-of select="name"/>
2340             </a>
2341           </td>
2342           <td>
2343             <xsl:for-each select="subscriptions/subscription">
2344               <xsl:value-of select="name"/>
2345               <xsl:if test="position()!=last()">, </xsl:if>
2346             </xsl:for-each>
2347           </td>
2348         </tr>
2349       </xsl:for-each>
2350     </table>
2351   </xsl:template>
2352
2353   <xsl:template name="modView">
2354     <h2>Update View</h2>
2355     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2356     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
2357     <table id="viewsTable">
2358       <tr>
2359         <td class="subs">
2360           <h3>Available Subscriptions:</h3>
2361
2362           <table class="subscriptionsListSubs">
2363             <xsl:for-each select="/bedeworkadmin/subscriptions/subscription">
2364               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2365               <xsl:if test="not(/bedeworkadmin/views/view/subscriptions/subscription/name=name)">
2366                 <tr>
2367                   <td>
2368                     <xsl:value-of select="name"/>
2369                   </td>
2370                   <td class="arrows">
2371                     <xsl:variable name="subAddName" select="name"/>
2372                     <a href="{$view-update}&amp;name={$viewName}&amp;add={$subAddName}">
2373                       <img src="{$resourcesRoot}/resources/arrowRight.gif"
2374                         width="13" height="13" border="0"
2375                         alt="add subscription"/>
2376                     </a>
2377                   </td>
2378                 </tr>
2379               </xsl:if>
2380             </xsl:for-each>
2381           </table>
2382         </td>
2383         <td class="view">
2384           <h3>Active Subscriptions:</h3>
2385           <table class="subscriptionsListView">
2386             <xsl:for-each select="/bedeworkadmin/views/view/subscriptions/subscription">
2387               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2388               <tr>
2389                 <td class="arrows">
2390                   <xsl:variable name="subRemoveName" select="name"/>
2391                   <a href="{$view-update}&amp;name={$viewName}&amp;remove={$subRemoveName}">
2392                     <img src="{$resourcesRoot}/resources/arrowLeft.gif"
2393                         width="13" height="13" border="0"
2394                         alt="add subscription"/>
2395                   </a>
2396                 </td>
2397                 <td>
2398                   <xsl:value-of select="name"/>
2399                 </td>
2400               </tr>
2401             </xsl:for-each>
2402           </table>
2403         </td>
2404       </tr>
2405     </table>
2406     <table border="0" id="submitTable">
2407       <tr>
2408         <td>
2409           <input type="button" name="return" value="Return to Views Listing" onclick="javascript:location.replace('{$view-fetch}')"/>
2410         </td>
2411         <td align="right">
2412           <form name="deleteViewForm" action="{$view-fetchForUpdate}" method="post">
2413             <input type="submit" name="deleteButton" value="Delete View"/>
2414             <input type="hidden" name="name" value="{$viewName}"/>
2415             <input type="hidden" name="delete" value="yes"/>
2416           </form>
2417         </td>
2418       </tr>
2419     </table>
2420   </xsl:template>
2421
2422   <xsl:template name="deleteViewConfirm">
2423     <h2>Remove View?</h2>
2424
2425     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2426     <p>The following view will be removed. Continue?</p>
2427
2428     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
2429     <form name="removeView" action="{$view-remove}">
2430       <input type="hidden" name="name" value="{$viewName}"/>
2431       <input type="submit" name="delete" value="Yes: Remove View"/>
2432       <input type="submit" name="cancelled" value="No: Cancel"/>
2433     </form>
2434
2435   </xsl:template>
2436
2437   <!--+++++++++++++++ System Parameters (preferences) ++++++++++++++++++++-->
2438   <xsl:template name="modSyspars">
2439     <h2>Modify System Parameters</h2>
2440     <p>
2441       Do not change unless you know what you're doing.<br/>
2442       Changes to these parameters have wide impact on the system.
2443     </p>
2444     <form name="systemParamsForm" action="{$system-update}" method="post">
2445       <table class="eventFormTable">
2446         <tr>
2447           <th>Default timezone:</th>
2448           <td>
2449             <xsl:variable name="tzid" select="/bedeworkadmin/system/tzid"/>
2450             <input value="{$tzid}" name="tzid" size="20"/>
2451           </td>
2452           <td>
2453             Default timezone id for date/time values. This should normally be your local timezone
2454           </td>
2455         </tr>
2456         <tr>
2457           <th>Default user view name:</th>
2458           <td>
2459             <xsl:variable name="defaultViewName" select="/bedeworkadmin/system/defaultUserViewName"/>
2460             <input value="{$defaultViewName}" name="defaultUserViewName" size="20"/>
2461           </td>
2462           <td>
2463             Name used for default view created when a new user is added
2464           </td>
2465         </tr>
2466         <tr>
2467           <th>Http connections per user:</th>
2468           <td>
2469             <xsl:variable name="httpPerUser" select="/bedeworkadmin/system/httpConnectionsPerUser"/>
2470             <input value="{$httpPerUser}" name="httpConnectionsPerUser" size="20"/>
2471           </td>
2472           <td>
2473           </td>
2474         </tr>
2475         <tr>
2476           <th>Http connections per host:</th>
2477           <td>
2478             <xsl:variable name="httpPerHost" select="/bedeworkadmin/system/httpConnectionsPerHost"/>
2479             <input value="{$httpPerHost}" name="httpConnectionsPerHost" size="20"/>
2480           </td>
2481           <td>
2482           </td>
2483         </tr>
2484         <tr>
2485           <th>Total http connections:</th>
2486           <td>
2487             <xsl:variable name="httpTotal" select="/bedeworkadmin/system/httpConnections"/>
2488             <input value="{$httpTotal}" name="httpConnections" size="20"/>
2489           </td>
2490           <td>
2491           </td>
2492         </tr>
2493         <tr>
2494           <th>Maximum length of public event description:</th>
2495           <td>
2496             <xsl:variable name="maxPublicDescriptionLength" select="/bedeworkadmin/system/maxPublicDescriptionLength"/>
2497             <input value="{$maxPublicDescriptionLength}" name="maxPublicDescriptionLength" size="20"/>
2498           </td>
2499           <td>
2500           </td>
2501         </tr>
2502         <tr>
2503           <th>Maximum length of user event description:</th>
2504           <td>
2505             <xsl:variable name="maxUserDescriptionLength" select="/bedeworkadmin/system/maxUserDescriptionLength"/>
2506             <input value="{$maxUserDescriptionLength}" name="maxUserDescriptionLength" size="20"/>
2507           </td>
2508           <td>
2509           </td>
2510         </tr>
2511         <tr>
2512           <th>Maximum size of a user entity:</th>
2513           <td>
2514             <xsl:variable name="maxUserEntitySize" select="/bedeworkadmin/system/maxUserEntitySize"/>
2515             <input value="{$maxUserEntitySize}" name="maxUserEntitySize" size="20"/>
2516           </td>
2517           <td>
2518           </td>
2519         </tr>
2520         <tr>
2521           <th>Default user quota:</th>
2522           <td>
2523             <xsl:variable name="defaultUserQuota" select="/bedeworkadmin/system/defaultUserQuota"/>
2524             <input value="{$defaultUserQuota}" name="defaultUserQuota" size="20"/>
2525           </td>
2526           <td>
2527           </td>
2528         </tr>
2529       </table>
2530       <table border="0" id="submitTable">
2531         <tr>
2532           <td>
2533             <input type="submit" name="updateSystemParams" value="Update"/>
2534             <input type="submit" name="cancelled" value="Cancel"/>
2535             <input type="reset" value="Reset"/>
2536           </td>
2537         </tr>
2538       </table>
2539     </form>
2540   </xsl:template>
2541
2542   <!--+++++++++++++++ Calendar Suites (calsuite) ++++++++++++++++++++-->
2543   <xsl:template match="calSuites" mode="calSuiteList">
2544     <h2>Manage Calendar Suites</h2>
2545
2546     <h4>Calendar suites:</h4>
2547     <p><input type="button" name="return" value="Add calendar suite" onclick="javascript:location.replace('{$calsuite-showAddForm}')"/></p>
2548
2549     <ul>
2550       <xsl:for-each select="calSuite">
2551        <li>
2552          <xsl:variable name="name" select="name"/>
2553          <a href="{$calsuite-fetchForUpdate}&amp;name={$name}">
2554            <xsl:value-of select="name"/>
2555          </a>
2556        </li>
2557       </xsl:for-each>
2558     </ul>
2559
2560   </xsl:template>
2561
2562   <xsl:template name="addCalSuite">
2563     <h2>Add Calendar Suite</h2>
2564     <form name="calSuiteForm" action="{$calsuite-add}" method="post">
2565       <table class="eventFormTable">
2566         <tr>
2567           <th>Name:</th>
2568           <td>
2569             <input name="name" size="20"/>
2570           </td>
2571           <td>
2572             Name of your calendar suite
2573           </td>
2574         </tr>
2575         <tr>
2576           <th>Group:</th>
2577           <td>
2578             <input name="groupName" size="20"/>
2579           </td>
2580           <td>
2581             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
2582           </td>
2583         </tr>
2584         <tr>
2585           <th>Root calendar:</th>
2586           <td>
2587             <input name="calPath" size="20"/>
2588           </td>
2589           <td>
2590             Path of root calendar (not required if suite only consists of subscriptions and views)
2591           </td>
2592         </tr>
2593       </table>
2594       <table border="0" id="submitTable">
2595         <tr>
2596           <td>
2597             <input type="submit" name="updateCalSuite" value="Add"/>
2598             <input type="submit" name="cancelled" value="Cancel"/>
2599             <input type="reset" value="Reset"/>
2600           </td>
2601         </tr>
2602       </table>
2603     </form>
2604   </xsl:template>
2605
2606   <xsl:template match="calSuite" name="modCalSuite">
2607     <h2>Modify Calendar Suite</h2>
2608     <xsl:variable name="calSuiteName" select="name"/>
2609     <form name="calSuiteForm" action="{$calsuite-update}" method="post">
2610       <table class="eventFormTable">
2611         <tr>
2612           <th>Name:</th>
2613           <td>
2614             <input name="name" value="{$calSuiteName}" size="20"/>
2615           </td>
2616           <td>
2617             Name of your calendar suite
2618           </td>
2619         </tr>
2620         <tr>
2621           <th>Group:</th>
2622           <td>
2623             <xsl:variable name="group" select="group"/>
2624             <input name="groupName" value="{$group}" size="20"/>
2625           </td>
2626           <td>
2627             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
2628           </td>
2629         </tr>
2630         <tr>
2631           <th>Root calendar:</th>
2632           <td>
2633             <xsl:variable name="calPath" select="calPath"/>
2634             <input name="calPath" value="{$calPath}" size="20"/>
2635           </td>
2636           <td>
2637             Path of root calendar (not required if suite only consists of subscriptions and views)
2638           </td>
2639         </tr>
2640       </table>
2641       <table border="0" id="submitTable">
2642         <tr>
2643           <td>
2644             <input type="submit" name="updateCalSuite" value="Update"/>
2645             <input type="submit" name="cancelled" value="Cancel"/>
2646             <input type="reset" value="Reset"/>
2647           </td>
2648         </tr>
2649       </table>
2650     </form>
2651     <div id="sharingBox">
2652       <h3>Manage suite administrators</h3>
2653       <table class="common">
2654         <tr>
2655           <th class="commonHeader" colspan="2">Current access:</th>
2656         </tr>
2657         <xsl:if test="acl/ace/principal/href">
2658           <tr>
2659             <th>Users:</th>
2660             <td>
2661               <xsl:for-each select="acl/ace[principal/href]">
2662                 <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/>
2663               </xsl:for-each>
2664             </td>
2665           </tr>
2666         </xsl:if>
2667       </table>
2668       <form name="calsuiteShareForm" action="{$calsuite-setAccess}" id="shareForm" method="post">
2669         <input type="hidden" name="calSuiteName" value="{$calSuiteName}"/>
2670         <input type="hidden" name="how" value="RW" />
2671         <p>
2672           Add administrator:<br/>
2673           <input type="text" name="who" size="20"/>
2674           <input type="radio" value="user" name="whoType" checked="checked"/> user
2675           <input type="radio" value="group" name="whoType"/> group
2676         </p>
2677         <input type="submit" name="submit" value="Submit"/>
2678       </form>
2679     </div>
2680   </xsl:template>
2681
2682   <xsl:template name="calSuitePrefs">
2683     <h2>Edit Calendar Suite Preferences</h2>
2684     <form name="userPrefsForm" method="post" action="{$calsuite-updatePrefs}">
2685       <table id="eventFormTable">
2686         <tr>
2687           <td class="fieldName">
2688             Calendar Suite:
2689           </td>
2690           <td>
2691             <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
2692           </td>
2693         </tr>
2694         <tr>
2695           <td class="fieldName">
2696             Preferred view:
2697           </td>
2698           <td>
2699             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
2700             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
2701           </td>
2702         </tr>
2703         <tr>
2704           <td class="fieldName">
2705             Preferred view period:
2706           </td>
2707           <td>
2708             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
2709             <select name="viewPeriod">
2710               <!-- picking the selected item could be done with javascript. for
2711                    now, this will do.  -->
2712               <xsl:choose>
2713                 <xsl:when test="$preferredViewPeriod = 'dayView'">
2714                   <option value="dayView" selected="selected">day</option>
2715                 </xsl:when>
2716                 <xsl:otherwise>
2717                   <option value="dayView">day</option>
2718                 </xsl:otherwise>
2719               </xsl:choose>
2720               <xsl:choose>
2721                 <xsl:when test="$preferredViewPeriod = 'todayView'">
2722                   <option value="todayView" selected="selected">today</option>
2723                 </xsl:when>
2724                 <xsl:otherwise>
2725                   <option value="todayView">today</option>
2726                 </xsl:otherwise>
2727               </xsl:choose>
2728               <xsl:choose>
2729                 <xsl:when test="$preferredViewPeriod = 'weekView'">
2730                   <option value="weekView" selected="selected">week</option>
2731                 </xsl:when>
2732                 <xsl:otherwise>
2733                   <option value="weekView">week</option>
2734                 </xsl:otherwise>
2735               </xsl:choose>
2736               <xsl:choose>
2737                 <xsl:when test="$preferredViewPeriod = 'monthView'">
2738                   <option value="monthView" selected="selected">month</option>
2739                 </xsl:when>
2740                 <xsl:otherwise>
2741                   <option value="monthView">month</option>
2742                 </xsl:otherwise>
2743               </xsl:choose>
2744               <xsl:choose>
2745                 <xsl:when test="$preferredViewPeriod = 'yearView'">
2746                   <option value="yearView" selected="selected">year</option>
2747                 </xsl:when>
2748                 <xsl:otherwise>
2749                   <option value="yearView">year</option>
2750                 </xsl:otherwise>
2751               </xsl:choose>
2752             </select>
2753           </td>
2754         </tr>
2755         <tr>
2756           <td class="fieldName">
2757             Skin name:
2758           </td>
2759           <td>
2760             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
2761             <input type="text" name="skin" value="{$skinName}" size="40"/>
2762           </td>
2763         </tr>
2764         <tr>
2765           <td class="fieldName">
2766             Skin style:
2767           </td>
2768           <td>
2769             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
2770             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
2771           </td>
2772         </tr>
2773       </table>
2774       <br />
2775
2776       <input type="submit" name="modPrefs" value="Update"/>
2777       <input type="reset" value="Reset"/>
2778       <input type="submit" name="cancelled" value="Cancel"/>
2779     </form>
2780   </xsl:template>
2781
2782   <!--+++++++++++++++ Timezones ++++++++++++++++++++-->
2783   <xsl:template name="uploadTimezones">
2784     <h2>Upload Timezones</h2>
2785     <form name="peForm" method="post" action="{$timezones-upload}" enctype="multipart/form-data">
2786       <input type="file" name="uploadFile" size="40" value=""/>
2787       <input type="submit" name="doUpload" value="Upload Timezones"/>
2788       <input type="submit" name="cancelled" value="Cancel"/>
2789     </form>
2790   </xsl:template>
2791
2792   <!--+++++++++++++++ Authuser ++++++++++++++++++++-->
2793   <xsl:template name="authUserList">
2794     <h2>Modify Administrators</h2>
2795
2796     <div id="authUserInputForms">
2797       <form name="getUserRolesForm" action="{$authuser-fetchForUpdate}" method="post">
2798         Edit admin roles by userid: <input type="text" name="editAuthUserId" size="20"/>
2799         <input type="submit" value="go" name="submit"/>
2800       </form>
2801     </div>
2802
2803     <table id="commonListTable">
2804       <tr>
2805         <th>UserId</th>
2806         <th>Roles</th>
2807         <th></th>
2808       </tr>
2809
2810       <xsl:for-each select="bedeworkadmin/authUsers/authUser">
2811         <!--<xsl:sort select="account" order="ascending" case-order="upper-first"/>-->
2812         <tr>
2813           <td>
2814             <xsl:value-of select="account"/>
2815           </td>
2816           <td>
2817             <xsl:if test="publicEventUser='true'">
2818               publicEvent; <xsl:text> </xsl:text>
2819             </xsl:if>
2820             <xsl:if test="superUser='true'">
2821               superUser; <xsl:text> </xsl:text>
2822             </xsl:if>
2823             <xsl:if test="alertUser='true'">
2824               alert; <xsl:text> </xsl:text>
2825             </xsl:if>
2826           </td>
2827           <td>
2828             <xsl:variable name="account" select="account"/>
2829             <a href="{$authuser-fetchForUpdate}&amp;editAuthUserId={$account}">
2830               edit
2831             </a>
2832           </td>
2833         </tr>
2834       </xsl:for-each>
2835     </table>
2836   </xsl:template>
2837
2838   <xsl:template name="modAuthUser">
2839     <h2>Update Administrator</h2>
2840     <xsl:variable name="modAuthUserAction" select="/bedeworkadmin/formElements/form/@action"/>
2841     <form action="{$modAuthUserAction}" method="post">
2842       <table id="eventFormTable">
2843         <tr>
2844           <td class="fieldName">
2845             Account:
2846           </td>
2847           <td>
2848             <xsl:value-of select="/bedeworkadmin/formElements/form/account"/>
2849           </td>
2850         </tr>
2851         <tr>
2852           <td class="fieldName">
2853             Alerts:
2854           </td>
2855           <td>
2856             <xsl:copy-of select="/bedeworkadmin/formElements/form/alerts/*"/>
2857           </td>
2858         </tr>
2859         <tr>
2860           <td class="fieldName">
2861             Public Events:
2862           </td>
2863           <td>
2864             <xsl:copy-of select="/bedeworkadmin/formElements/form/publicEvents/*"/>
2865           </td>
2866         </tr>
2867         <tr>
2868           <td class="fieldName">
2869             Super User:
2870           </td>
2871           <td>
2872             <xsl:copy-of select="/bedeworkadmin/formElements/form/superUser/*"/>
2873           </td>
2874         </tr>
2875         <!--<tr>
2876           <td class="optional">
2877             Email:
2878           </td>
2879           <td>
2880             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
2881             <span class="fieldInfo"></span>
2882           </td>
2883         </tr>
2884         <tr>
2885           <td class="optional">
2886             Phone:
2887           </td>
2888           <td>
2889             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
2890             <span class="fieldInfo"></span>
2891           </td>
2892         </tr>
2893         <tr>
2894           <td class="optional">
2895             Department:
2896           </td>
2897           <td>
2898             <xsl:copy-of select="/bedeworkadmin/formElements/form/dept/*"/>
2899             <span class="fieldInfo"></span>
2900           </td>
2901         </tr>
2902         <tr>
2903           <td class="optional">
2904             Last name:
2905           </td>
2906           <td>
2907             <xsl:copy-of select="/bedeworkadmin/formElements/form/lastName/*"/>
2908             <span class="fieldInfo"></span>
2909           </td>
2910         </tr>
2911         <tr>
2912           <td class="optional">
2913             First name:
2914           </td>
2915           <td>
2916             <xsl:copy-of select="/bedeworkadmin/formElements/form/firstName/*"/>
2917             <span class="fieldInfo"></span>
2918           </td>
2919         </tr>-->
2920       </table>
2921       <br />
2922
2923       <input type="submit" name="modAuthUser" value="Update"/>
2924       <input type="reset" value="Reset"/>
2925       <input type="submit" name="cancelled" value="Cancel"/>
2926     </form>
2927   </xsl:template>
2928
2929   <!--+++++++++++++++ User Prefs ++++++++++++++++++++-->
2930   <xsl:template name="modPrefs">
2931     <h2>Edit User Preferences</h2>
2932     <form name="userPrefsForm" method="post" action="{$prefs-update}">
2933       <table id="eventFormTable">
2934         <tr>
2935           <td class="fieldName">
2936             User:
2937           </td>
2938           <td>
2939             <xsl:value-of select="/bedeworkadmin/prefs/user"/>
2940             <xsl:variable name="user" select="/bedeworkadmin/prefs/user"/>
2941             <input type="hidden" name="user" value="{$user}"/>
2942           </td>
2943         </tr>
2944         <tr>
2945           <td class="fieldName">
2946             Preferred view:
2947           </td>
2948           <td>
2949             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
2950             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
2951           </td>
2952         </tr>
2953         <tr>
2954           <td class="fieldName">
2955             Preferred view period:
2956           </td>
2957           <td>
2958             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
2959             <select name="viewPeriod">
2960               <!-- picking the selected item could be done with javascript. for
2961                    now, this will do.  -->
2962               <xsl:choose>
2963                 <xsl:when test="$preferredViewPeriod = 'dayView'">
2964                   <option value="dayView" selected="selected">day</option>
2965                 </xsl:when>
2966                 <xsl:otherwise>
2967                   <option value="dayView">day</option>
2968                 </xsl:otherwise>
2969               </xsl:choose>
2970               <xsl:choose>
2971                 <xsl:when test="$preferredViewPeriod = 'todayView'">
2972                   <option value="todayView" selected="selected">today</option>
2973                 </xsl:when>
2974                 <xsl:otherwise>
2975                   <option value="todayView">today</option>
2976                 </xsl:otherwise>
2977               </xsl:choose>
2978               <xsl:choose>
2979                 <xsl:when test="$preferredViewPeriod = 'weekView'">
2980                   <option value="weekView" selected="selected">week</option>
2981                 </xsl:when>
2982                 <xsl:otherwise>
2983                   <option value="weekView">week</option>
2984                 </xsl:otherwise>
2985               </xsl:choose>
2986               <xsl:choose>
2987                 <xsl:when test="$preferredViewPeriod = 'monthView'">
2988                   <option value="monthView" selected="selected">month</option>
2989                 </xsl:when>
2990                 <xsl:otherwise>
2991                   <option value="monthView">month</option>
2992                 </xsl:otherwise>
2993               </xsl:choose>
2994               <xsl:choose>
2995                 <xsl:when test="$preferredViewPeriod = 'yearView'">
2996                   <option value="yearView" selected="selected">year</option>
2997                 </xsl:when>
2998                 <xsl:otherwise>
2999                   <option value="yearView">year</option>
3000                 </xsl:otherwise>
3001               </xsl:choose>
3002             </select>
3003           </td>
3004         </tr>
3005         <tr>
3006           <td class="fieldName">
3007             Skin name:
3008           </td>
3009           <td>
3010             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
3011             <input type="text" name="skin" value="{$skinName}" size="40"/>
3012           </td>
3013         </tr>
3014         <tr>
3015           <td class="fieldName">
3016             Skin style:
3017           </td>
3018           <td>
3019             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
3020             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
3021           </td>
3022         </tr>
3023       </table>
3024       <br />
3025
3026       <input type="submit" name="modPrefs" value="Update"/>
3027       <input type="reset" value="Reset"/>
3028       <input type="submit" name="cancelled" value="Cancel"/>
3029     </form>
3030   </xsl:template>
3031
3032   <!--+++++++++++++++ Admin Groups ++++++++++++++++++++-->
3033   <xsl:template name="listAdminGroups">
3034     <h2>Modify Groups</h2>
3035     <form name="adminGroupMembersForm" method="post" action="{$admingroup-initUpdate}">
3036       <xsl:choose>
3037         <xsl:when test="/bedeworkadmin/groups/showMembers='true'">
3038           <input type="radio" name="showAgMembers" value="false" onclick="document.adminGroupMembersForm.submit();"/>
3039           Hide members
3040           <input type="radio" name="showAgMembers" value="true" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
3041           Show members
3042         </xsl:when>
3043         <xsl:otherwise>
3044           <input type="radio" name="showAgMembers" value="false" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
3045           Hide members
3046           <input type="radio" name="showAgMembers" value="true" onclick="document.adminGroupMembersForm.submit();"/>
3047           Show members
3048         </xsl:otherwise>
3049       </xsl:choose>
3050     </form>
3051
3052     <p>Click on the group name to modify the group owner or description.<br/>
3053     Click "add/remove members" to modify group membership.</p>
3054     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
3055     <table id="commonListTable">
3056       <tr>
3057         <th>Name</th>
3058         <th>Description</th>
3059         <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
3060           <th>Members</th>
3061         </xsl:if>
3062         <th></th>
3063       </tr>
3064       <xsl:for-each select="/bedeworkadmin/groups/group">
3065         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
3066         <xsl:variable name="groupName" select="name"/>
3067         <tr>
3068           <td>
3069             <a href="{$admingroup-fetchForUpdate}&amp;adminGroupName={$groupName}">
3070               <xsl:value-of select="name"/>
3071             </a>
3072           </td>
3073           <td>
3074             <xsl:value-of select="desc"/>
3075           </td>
3076           <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
3077             <td>
3078               <xsl:for-each select="members/member/account">
3079                   <xsl:value-of select="."/>&#160;
3080               </xsl:for-each>
3081             </td>
3082           </xsl:if>
3083           <td>
3084             <a href="{$admingroup-fetchForUpdateMembers}&amp;adminGroupName={$groupName}">Add/Remove members</a>
3085           </td>
3086         </tr>
3087       </xsl:for-each>
3088     </table>
3089     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
3090   </xsl:template>
3091
3092   <xsl:template match="groups" mode="chooseGroup">
3093     <h2>Choose Your Administrative Group</h2>
3094
3095     <table id="commonListTable">
3096
3097       <tr>
3098         <th>Name</th>
3099         <th>Description</th>
3100       </tr>
3101
3102       <xsl:for-each select="group">
3103         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
3104         <tr>
3105           <td>
3106             <xsl:variable name="admGroupName" select="name"/>
3107             <a href="{$setup}&amp;adminGroupName={$admGroupName}">
3108               <xsl:copy-of select="name"/>
3109             </a>
3110           </td>
3111           <td>
3112             <xsl:value-of select="desc"/>
3113           </td>
3114         </tr>
3115       </xsl:for-each>
3116     </table>
3117   </xsl:template>
3118
3119   <xsl:template name="modAdminGroup">
3120     <xsl:choose>
3121       <xsl:when test="/bedeworkadmin/creating = 'true'">
3122         <h2>Add Group</h2>
3123       </xsl:when>
3124       <xsl:otherwise>
3125         <h2>Modify Group</h2>
3126       </xsl:otherwise>
3127     </xsl:choose>
3128     <form name="peForm" method="post" action="{$admingroup-update}">
3129       <table id="adminGroupFormTable">
3130         <tr>
3131           <td class="fieldName">
3132             Name:
3133           </td>
3134           <td>
3135             <xsl:choose>
3136               <xsl:when test="/bedeworkadmin/creating = 'true'">
3137                 <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
3138               </xsl:when>
3139               <xsl:otherwise>
3140                 <xsl:value-of  select="/bedeworkadmin/formElements/form/name"/>
3141               </xsl:otherwise>
3142             </xsl:choose>
3143           </td>
3144         </tr>
3145         <tr>
3146           <td class="fieldName">
3147             Description:
3148           </td>
3149           <td>
3150             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
3151           </td>
3152         </tr>
3153         <tr>
3154           <td class="fieldName">
3155             Group owner:
3156           </td>
3157           <td>
3158             <xsl:copy-of select="/bedeworkadmin/formElements/form/groupOwner/*"/>
3159           </td>
3160         </tr>
3161         <tr>
3162           <td class="fieldName">
3163             Events owner:
3164           </td>
3165           <td>
3166             <xsl:copy-of select="/bedeworkadmin/formElements/form/eventsOwner/*"/>
3167           </td>
3168         </tr>
3169       </table>
3170       <table border="0" id="submitTable">
3171         <tr>
3172           <td>
3173             <xsl:choose>
3174               <xsl:when test="/bedeworkadmin/creating = 'true'">
3175                 <input type="submit" name="updateAdminGroup" value="Add Admin Group"/>
3176                 <input type="submit" name="cancelled" value="Cancel"/>
3177                 <input type="reset" value="Clear"/>
3178               </xsl:when>
3179               <xsl:otherwise>
3180                 <input type="submit" name="updateAdminGroup" value="Update Admin Group"/>
3181                 <input type="submit" name="cancelled" value="Cancel"/>
3182                 <input type="reset" value="Reset"/>
3183               </xsl:otherwise>
3184             </xsl:choose>
3185           </td>
3186           <td align="right">
3187             <input type="submit" name="delete" value="Delete"/>
3188           </td>
3189         </tr>
3190       </table>
3191     </form>
3192   </xsl:template>
3193
3194   <xsl:template name="modAdminGroupMembers">
3195     <h2>Update Group Membership</h2>
3196     <p>Enter a userid (for user or group) and click "add" to update group membership.
3197     Click the trash icon to remove a user from the group.</p>
3198
3199     <form name="adminGroupMembersForm" method="post" action="{$admingroup-updateMembers}">
3200       <p>Add member:
3201         <input type="text" name="updGroupMember" size="15"/>
3202         <input type="radio" value="user" name="kind" checked="checked"/>user
3203         <input type="radio" value="group" name="kind"/>group
3204         <input type="submit" name="addGroupMember" value="Add"/>
3205       </p>
3206     </form>
3207     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initUpdate}')" value="Return to Admin Group listing"/></p>
3208
3209     <table id="adminGroupFormTable">
3210       <tr>
3211         <td class="fieldName">
3212           Name:
3213         </td>
3214         <td>
3215           <xsl:value-of select="/bedeworkadmin/adminGroup/name"/>
3216         </td>
3217       </tr>
3218       <tr>
3219         <td class="fieldName">
3220           Members:
3221         </td>
3222         <td>
3223           <table id="memberAccountList">
3224             <xsl:for-each select="/bedeworkadmin/adminGroup/members/member">
3225               <xsl:choose>
3226                 <xsl:when test="kind='0'"><!-- kind = user -->
3227                   <tr>
3228                     <td>
3229                       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/>
3230                     </td>
3231                     <td>
3232                       <xsl:value-of select="account"/>
3233                     </td>
3234                     <td>
3235                       <xsl:variable name="acct" select="account"/>
3236                         <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=user" title="remove">
3237                           <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3238                         </a>
3239                     </td>
3240                   </tr>
3241                 </xsl:when>
3242                 <xsl:otherwise><!-- kind = group -->
3243                   <tr>
3244                     <td>
3245                       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/>
3246                     </td>
3247                     <td>
3248                       <strong><xsl:value-of select="account"/></strong>
3249                     </td>
3250                     <td>
3251                       <xsl:variable name="acct" select="account"/>
3252                       <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=group" title="remove">
3253                         <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3254                       </a>
3255                     </td>
3256                   </tr>
3257                 </xsl:otherwise>
3258               </xsl:choose>
3259             </xsl:for-each>
3260           </table>
3261         </td>
3262       </tr>
3263     </table>
3264     <p>
3265       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/> user,
3266       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/><xsl:text> </xsl:text><strong>group</strong>
3267     </p>
3268   </xsl:template>
3269
3270   <xsl:template name="deleteAdminGroupConfirm">
3271     <h2>Delete Admin Group?</h2>
3272     <p>The following group will be deleted. Continue?</p>
3273     <p>
3274       <strong><xsl:value-of select="/bedeworkadmin/groups/group/name"/></strong>:
3275       <xsl:value-of select="/bedeworkadmin/groups/group/desc"/>
3276     </p>
3277     <form  name="adminGroupDelete" method="post" action="{$admingroup-delete}">
3278       <input type="submit" name="removeAdminGroupOK" value="Yes: Delete!"/>
3279       <input type="submit" name="cancelled" value="No: Cancel"/>
3280     </form>
3281   </xsl:template>
3282
3283   <!--+++++++++++++++ System Stats ++++++++++++++++++++-->
3284
3285   <xsl:template match="sysStats" mode="showSysStats">
3286     <h2>System Statistics</h2>
3287
3288     <p>
3289       Stats collection:
3290     </p>
3291     <ul>
3292       <li>
3293         <a href="{$stats-update}&amp;enable=yes">enable</a> |
3294         <a href="{$stats-update}&amp;disable=yes">disable</a>
3295       </li>
3296       <li><a href="{$stats-update}&amp;fetch=yes">fetch statistics</a></li>
3297       <li><a href="{$stats-update}&amp;dump=yes">dump stats to log</a></li>
3298     </ul>
3299     <table id="statsTable" cellpadding="0">
3300       <xsl:for-each select="*">
3301         <xsl:choose>
3302           <xsl:when test="name(.) = 'header'">
3303             <tr>
3304               <th colspan="2">
3305                 <xsl:value-of select="."/>
3306               </th>
3307             </tr>
3308           </xsl:when>
3309           <xsl:otherwise>
3310             <tr>
3311               <td class="label">
3312                 <xsl:value-of select="label"/>
3313               </td>
3314               <td class="value">
3315                 <xsl:value-of select="value"/>
3316               </td>
3317             </tr>
3318           </xsl:otherwise>
3319         </xsl:choose>
3320       </xsl:for-each>
3321     </table>
3322   </xsl:template>
3323
3324   <!--==== HEADER TEMPLATES and NAVIGATION  ====-->
3325
3326   <xsl:template name="header">
3327     <div id="header">
3328       <a href="http://www.bedework.org">
3329         <img id="logo"
3330           alt="logo"
3331           src="{$resourcesRoot}/resources/bedeworkAdminLogo.gif"
3332           width="217"
3333           height="40"
3334           border="0"/>
3335       </a>
3336       <!-- set the page heading: -->
3337       <h1>
3338         <xsl:choose>
3339           <xsl:when test="/bedeworkadmin/page='modEvent' or
3340                           /bedeworkadmin/page='eventList' or
3341                           /bedeworkadmin/page='displayEvent'">
3342             Manage Events
3343           </xsl:when>
3344           <xsl:when test="/bedeworkadmin/page='sponsorList' or
3345                           /bedeworkadmin/page='modSponsor' or
3346                           /bedeworkadmin/page='deleteSponsorConfirm'">
3347             Manage Contacts
3348           </xsl:when>
3349           <xsl:when test="/bedeworkadmin/page='locationList' or
3350                           /bedeworkadmin/page='modLocation' or
3351                           /bedeworkadmin/page='deleteLocationConfirm'">
3352             Manage Locations
3353           </xsl:when>
3354           <xsl:when test="/bedeworkadmin/page='calendarList' or
3355                           /bedeworkadmin/page='modCalendar' or
3356                           /bedeworkadmin/page='calendarReferenced' or
3357                           /bedeworkadmin/page='deleteCalendarConfirm'">
3358             Manage Calendars
3359           </xsl:when>
3360           <xsl:when test="/bedeworkadmin/page='calendarDescriptions' or
3361                           /bedeworkadmin/page='displayCalendar'">
3362             Public Calendars
3363           </xsl:when>
3364           <xsl:when test="/bedeworkadmin/page='subscriptions' or
3365                           /bedeworkadmin/page='modSubscription'">
3366             Manage Subscriptions
3367           </xsl:when>
3368           <xsl:when test="/bedeworkadmin/page='views' or
3369                           /bedeworkadmin/page='modView'">
3370             Manage Views
3371           </xsl:when>
3372           <xsl:when test="/bedeworkadmin/page='modSyspars'">
3373             Manage System Preferences
3374           </xsl:when>
3375           <xsl:when test="/bedeworkadmin/page='authUserList' or
3376                           /bedeworkadmin/page='modAuthUser'">
3377             Manage Public Events Administrators
3378           </xsl:when>
3379           <xsl:when test="/bedeworkadmin/page='chooseGroup'">
3380             Choose Administrative Group
3381           </xsl:when>
3382           <xsl:when test="/bedeworkadmin/page='adminGroupList' or
3383                           /bedeworkadmin/page='modAdminGroup' or
3384                           /bedeworkadmin/page='modAdminGroup' or
3385                           /bedeworkadmin/page='modAdminGroupMembers'">
3386             Manage Administrative Groups
3387           </xsl:when>
3388           <xsl:when test="/bedeworkadmin/page='noGroup'">
3389             No Administrative Group
3390           </xsl:when>
3391           <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
3392             Manage Time Zones
3393           </xsl:when>
3394           <xsl:when test="/bedeworkadmin/page='noAccess'">
3395             Access Denied
3396           </xsl:when>
3397           <xsl:when test="/bedeworkadmin/page='error'">
3398             Error
3399           </xsl:when>
3400           <xsl:otherwise>
3401             Bedework Calendar Administration
3402           </xsl:otherwise>
3403         </xsl:choose>
3404       </h1>
3405
3406       <xsl:if test="/bedeworkadmin/message">
3407         <div id="messages">
3408           <p><xsl:apply-templates select="/bedeworkadmin/message"/></p>
3409         </div>
3410       </xsl:if>
3411       <xsl:if test="/bedeworkadmin/error">
3412         <div id="errors">
3413           <p><xsl:apply-templates select="/bedeworkadmin/error"/></p>
3414         </div>
3415       </xsl:if>
3416
3417     </div>
3418     <table id="statusBarTable">
3419       <tr>
3420         <td class="leftCell">
3421           <a href="{$setup}">Main Menu</a> |
3422           <a href="{$publicCal}" target="calendar">Launch Calendar</a> |
3423           <a href="{$logout}">Log Out</a>
3424           <!-- Enable the following two items when debugging skins only -->
3425           | <a href="?refreshXslt=yes">Refresh XSL</a> |
3426           <a href="?noxslt=yes">Show XML</a> (view source)
3427         </td>
3428         <xsl:if test="/bedeworkadmin/userInfo/user">
3429           <td class="rightCell">
3430             <xsl:if test="/bedeworkadmin/currentCalSuite/name">
3431               Calendar Suite:
3432               <span class="status">
3433                 <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
3434               </span>
3435               &#160;
3436             </xsl:if>
3437             Logged in as:
3438             <span class="status">
3439               <xsl:value-of select="/bedeworkadmin/userInfo/user"/>
3440             </span>
3441             &#160;
3442             <xsl:if test="/bedeworkadmin/userInfo/group">
3443               Group:
3444               <span class="status">
3445                 <xsl:value-of select="/bedeworkadmin/userInfo/group"/>
3446               </span>
3447             </xsl:if>
3448           </td>
3449         </xsl:if>
3450       </tr>
3451     </table>
3452     <div id="titleBar">
3453       CALENDAR of EVENTS
3454     </div>
3455   </xsl:template>
3456
3457   <!--==== FOOTER ====-->
3458   <xsl:template name="footer">
3459     <div id="footer">
3460       <a href="http://www.bedework.org/">Bedework website</a>
3461     </div>
3462   </xsl:template>
3463 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.