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

Revision 952 (checked in by douglm, 7 years ago)

--

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>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>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         <p>
1823           Share with group:<br/>
1824           <input type="text" name="who" size="20"/>
1825           <input type="hidden" value="group" name="whoType"/>
1826           <!--<input type="radio" value="user" name="whoType" checked="checked"/> user
1827           <input type="radio" value="group" name="whoType"/> group-->
1828         </p>
1829         <p>
1830           Access rights:<br/>
1831           <input type="radio" value="R" name="how" checked="checked"/> read<br/>
1832           <input type="radio" value="Rc" name="how"/> read/write content<br/>
1833           <input type="radio" value="f" name="how"/> read free/busy only<br/>
1834           <input type="radio" value="d" name="how"/> default (reset access)
1835         </p>
1836         <input type="submit" name="submit" value="Submit"/>
1837       </form>
1838     </div>
1839   </xsl:template>
1840
1841   <xsl:template name="calendarList">
1842     <h3>Manage Calendars</h3>
1843     <ul>
1844       <li>Select an item from the calendar list on the left to modify
1845       a calendar or folder.</li>
1846       <li>Select the
1847       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/>
1848       icon to add a new calendar or folder to the tree.
1849         <ul>
1850           <li>Folders may only contain calendars and subfolders.</li>
1851           <li>Calendars may only contain events (and other calendar items).</li>
1852           <li>
1853             If a calendar is empty, it may be converted to a folder and vice
1854             versa.  If a calendar or folder are not empty, it may not be
1855             converted.
1856           </li>
1857         </ul>
1858       </li>
1859     </ul>
1860   </xsl:template>
1861
1862   <xsl:template name="calendarDescriptions">
1863     <h2>Calendar Information</h2>
1864     <ul>
1865       <li>Select an item from the calendar tree on the left to view all information
1866       about that calendar or folder.  The tree on the left represents the calendar
1867       heirarchy.</li>
1868     </ul>
1869
1870     <p><strong>All Calendar Descriptions:</strong></p>
1871     <table id="flatCalendarDescriptions" cellspacing="0">
1872       <tr>
1873         <th>Name</th>
1874         <th>Description</th>
1875       </tr>
1876       <xsl:for-each select="//calendar">
1877         <xsl:variable name="descClass">
1878           <xsl:choose>
1879             <xsl:when test="position() mod 2 = 0">even</xsl:when>
1880             <xsl:otherwise>odd</xsl:otherwise>
1881           </xsl:choose>
1882         </xsl:variable>
1883         <tr class="{$descClass}">
1884           <td>
1885             <xsl:value-of select="name"/>
1886           </td>
1887           <td>
1888             <xsl:value-of select="desc"/>
1889           </td>
1890         </tr>
1891       </xsl:for-each>
1892     </table>
1893   </xsl:template>
1894
1895   <xsl:template match="currentCalendar" mode="displayCalendar">
1896     <h2>Calendar Information</h2>
1897     <table class="eventFormTable">
1898       <tr>
1899         <th>Name:</th>
1900         <td>
1901           <xsl:value-of select="name"/>
1902         </td>
1903       </tr>
1904       <tr>
1905         <th>Path:</th>
1906         <td>
1907           <xsl:value-of select="path"/>
1908         </td>
1909       </tr>
1910       <tr>
1911         <th>Summary:</th>
1912         <td>
1913           <xsl:value-of select="summary"/>
1914         </td>
1915       </tr>
1916       <tr>
1917         <th>Description:</th>
1918         <td>
1919           <xsl:value-of select="desc"/>
1920         </td>
1921       </tr>
1922     </table>
1923   </xsl:template>
1924
1925   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm">
1926     <xsl:choose>
1927       <xsl:when test="calendarCollection='true'">
1928         <h3>Delete Calendar</h3>
1929         <p>
1930           The following calendar will be deleted.  Continue?
1931         </p>
1932       </xsl:when>
1933       <xsl:otherwise>
1934         <h3>Delete Folder</h3>
1935         <p>
1936           The following folder <em>and all its contents</em> will be deleted.
1937           Continue?
1938         </p>
1939       </xsl:otherwise>
1940     </xsl:choose>
1941
1942     <form name="delCalForm" action="{$calendar-delete}">
1943       <table class="eventFormTable">
1944         <tr>
1945           <th>Path:</th>
1946           <td>
1947             <xsl:value-of select="path"/>
1948           </td>
1949         </tr>
1950         <tr>
1951           <th>Name:</th>
1952           <td>
1953             <xsl:value-of select="name"/>
1954           </td>
1955         </tr>
1956         <tr>
1957           <th>Summary:</th>
1958           <td>
1959             <xsl:value-of select="summary"/>
1960           </td>
1961         </tr>
1962         <tr>
1963           <th>Description:</th>
1964           <td>
1965             <xsl:value-of select="desc"/>
1966           </td>
1967         </tr>
1968       </table>
1969
1970       <table border="0" id="submitTable">
1971         <tr>
1972           <td>
1973             <input type="submit" name="cancelled" value="Cancel"/>
1974           </td>
1975           <td align="right">
1976             <xsl:choose>
1977               <xsl:when test="calendarCollection='true'">
1978                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/>
1979               </xsl:when>
1980               <xsl:otherwise>
1981                 <input type="submit" name="delete" value="Yes: Delete Folder!"/>
1982               </xsl:otherwise>
1983             </xsl:choose>
1984           </td>
1985         </tr>
1986       </table>
1987     </form>
1988
1989   </xsl:template>
1990
1991   <!--+++++++++++++++ Subscriptions ++++++++++++++++++++-->
1992   <xsl:template match="subscriptions">
1993     <table id="subsTable">
1994       <tr>
1995         <td class="cals">
1996           <h3>Public calendars</h3>
1997           <p class="smaller">
1998             Select a calendar below to add a <em><strong>new</strong></em>
1999             internal subscription. <!-- or
2000             <a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">
2001             subscribe to an external calendar</a>.-->
2002           </p>
2003           <ul id="calendarTree">
2004             <xsl:apply-templates select="/bedeworkadmin/subscriptions/subscribe/calendars/calendar" mode="subscribe"/>
2005           </ul>
2006         </td>
2007         <td class="subs">
2008           <xsl:choose>
2009             <xsl:when test="/bedeworkadmin/page='subscriptions'">
2010               <xsl:call-template name="subscriptionList"/>
2011             </xsl:when>
2012             <xsl:when test="/bedeworkadmin/creating='true'">
2013               <xsl:apply-templates select="subscription" mode="addSubscription"/>
2014             </xsl:when>
2015             <xsl:otherwise>
2016               <xsl:apply-templates select="subscription" mode="modSubscription"/>
2017             </xsl:otherwise>
2018           </xsl:choose>
2019         </td>
2020       </tr>
2021     </table>
2022   </xsl:template>
2023
2024   <xsl:template match="calendar" mode="subscribe">
2025     <xsl:variable name="calPath" select="encodedPath"/>
2026     <xsl:variable name="itemClass">
2027       <xsl:choose>
2028         <xsl:when test="calendarCollection='false'">folder</xsl:when>
2029         <xsl:otherwise>calendar</xsl:otherwise>
2030       </xsl:choose>
2031     </xsl:variable>
2032     <li class="{$itemClass}">
2033       <a href="{$subscriptions-initAdd}&amp;calPath={$calPath}">
2034         <xsl:value-of select="name"/>
2035       </a>
2036       <xsl:if test="calendar">
2037         <ul>
2038           <xsl:apply-templates select="calendar" mode="subscribe">
2039             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>-->
2040           </xsl:apply-templates>
2041         </ul>
2042       </xsl:if>
2043     </li>
2044   </xsl:template>
2045
2046   <xsl:template match="subscription" mode="addSubscription">
2047     <h2>Add New Subscription</h2>
2048     <p class="note">*the subsciption name must be unique</p>
2049     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2050       <table class="eventFormTable">
2051         <tr>
2052           <th>Name*:</th>
2053           <td>
2054             <xsl:variable name="subName" select="name"/>
2055             <input type="text" value="{$subName}" name="subscription.name" size="60"/>
2056           </td>
2057         </tr>
2058         <xsl:if test="internal='false'">
2059           <tr>
2060             <th>Uri:</th>
2061             <td>
2062               <xsl:variable name="subUri" select="uri"/>
2063               <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2064             </td>
2065           </tr>
2066         </xsl:if>
2067         <tr>
2068           <th>Display:</th>
2069           <td>
2070             <input type="radio" value="true" name="subscription.display"/> yes
2071             <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2072           </td>
2073         </tr>
2074         <tr>
2075           <th>Style:</th>
2076           <td>
2077             <xsl:variable name="subStyle" select="style"/>
2078             <input type="text" value="{$subStyle}" name="subscription.style" size="60"/>
2079           </td>
2080         </tr>
2081         <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
2082           <tr>
2083             <th>Unremovable:</th>
2084             <td>
2085               <input type="radio" value="true" name="unremoveable" size="60"/> true
2086               <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2087             </td>
2088           </tr>
2089         </xsl:if>
2090       </table>
2091       <table border="0" id="submitTable">
2092         <tr>
2093           <td>
2094             <input type="submit" name="addSubscription" value="Add Subscription"/>
2095             <input type="submit" name="cancelled" value="Cancel"/>
2096             <input type="reset" value="Clear"/>
2097           </td>
2098         </tr>
2099       </table>
2100     </form>
2101   </xsl:template>
2102
2103   <xsl:template match="subscription" mode="modSubscription">
2104     <h2>Modify Subscription</h2>
2105     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2106       <table class="eventFormTable">
2107         <tr>
2108           <th>Name*:</th>
2109           <td>
2110             <xsl:value-of select="name"/>
2111             <xsl:variable name="subName" select="name"/>
2112             <input type="hidden" value="{$subName}" name="name"/>
2113           </td>
2114         </tr>
2115         <xsl:choose>
2116           <xsl:when test="internal='false'">
2117             <tr>
2118               <th>Uri:</th>
2119               <td>
2120                 <xsl:variable name="subUri" select="uri"/>
2121                 <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2122               </td>
2123             </tr>
2124           </xsl:when>
2125           <xsl:otherwise>
2126             <tr>
2127               <th>Uri:</th>
2128               <td>
2129                 <xsl:value-of select="uri"/>
2130               </td>
2131             </tr>
2132           </xsl:otherwise>
2133         </xsl:choose>
2134         <tr>
2135           <th>Display:</th>
2136           <td>
2137             <xsl:choose>
2138               <xsl:when test="display='true'">
2139                 <input type="radio" value="true" name="subscription.display" checked="checked"/> yes
2140                 <input type="radio" value="false" name="subscription.display"/> no
2141               </xsl:when>
2142               <xsl:otherwise>
2143                 <input type="radio" value="true" name="subscription.display"/> yes
2144                 <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2145               </xsl:otherwise>
2146             </xsl:choose>
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               <xsl:choose>
2161                 <xsl:when test="unremoveable='true'">
2162                   <input type="radio" value="true" name="unremoveable" size="60" checked="checked"/> true
2163                   <input type="radio" value="false" name="unremoveable" size="60"/> false
2164                 </xsl:when>
2165                 <xsl:otherwise>
2166                   <input type="radio" value="true" name="unremoveable" size="60"/> true
2167                   <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2168                 </xsl:otherwise>
2169               </xsl:choose>
2170             </td>
2171           </tr>
2172         </xsl:if>
2173       </table>
2174       <table border="0" id="submitTable">
2175         <tr>
2176           <td>
2177             <input type="submit" name="updateSubscription" value="Update Subscription"/>
2178             <input type="submit" name="cancelled" value="Cancel"/>
2179             <input type="reset" value="Reset"/>
2180           </td>
2181           <td align="right">
2182             <input type="submit" name="delete" value="Delete Subscription"/>
2183           </td>
2184         </tr>
2185       </table>
2186     </form>
2187   </xsl:template>
2188
2189   <xsl:template name="subscriptionList">
2190     <h3>Current subscriptions</h3>
2191     <table id="commonListTable">
2192       <tr>
2193         <th>Name</th>
2194         <th>URI</th>
2195         <th>Style</th>
2196         <th>Display</th>
2197         <th>Unremovable</th>
2198         <th>External</th>
2199         <th>Deleted?</th>
2200       </tr>
2201       <xsl:for-each select="subscription">
2202         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2203         <tr>
2204           <td>
2205             <xsl:variable name="subname" select="name"/>
2206             <a href="{$subscriptions-fetchForUpdate}&amp;subname={$subname}">
2207               <xsl:value-of select="name"/>
2208             </a>
2209           </td>
2210           <td>
2211             <xsl:value-of select="uri"/>
2212           </td>
2213           <td>
2214             <xsl:value-of select="style"/>
2215           </td>
2216           <td class="center">
2217             <xsl:if test="display='true'">
2218               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2219             </xsl:if>
2220           </td>
2221           <td class="center">
2222             <xsl:if test="unremoveable='true'">
2223               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2224             </xsl:if>
2225           </td>
2226           <td class="center">
2227             <xsl:if test="internal='false'">
2228               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2229             </xsl:if>
2230           </td>
2231           <td class="center">
2232             <xsl:if test="calendarDeleted='true'">
2233               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2234             </xsl:if>
2235           </td>
2236         </tr>
2237       </xsl:for-each>
2238     </table>
2239     <!--<h4><a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">Subscribe to a remote calendar</a> (by URI)</h4>-->
2240   </xsl:template>
2241
2242   <!--+++++++++++++++ Views ++++++++++++++++++++-->
2243   <xsl:template match="views" mode="viewList">
2244
2245     <h3>Add a new view</h3>
2246     <form name="addView" action="{$view-addView}" method="post">
2247       <input type="text" name="name" size="60"/>
2248       <input type="submit" value="add view" name="addview"/>
2249     </form>
2250
2251     <h3>Views</h3>
2252     <table id="commonListTable">
2253       <tr>
2254         <th>Name</th>
2255         <th>Included subscriptions</th>
2256       </tr>
2257
2258       <xsl:for-each select="view">
2259         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2260         <tr>
2261           <td>
2262             <xsl:variable name="viewName" select="name"/>
2263             <a href="{$view-fetchForUpdate}&amp;name={$viewName}">
2264               <xsl:value-of select="name"/>
2265             </a>
2266           </td>
2267           <td>
2268             <xsl:for-each select="subscriptions/subscription">
2269               <xsl:value-of select="name"/>
2270               <xsl:if test="position()!=last()">, </xsl:if>
2271             </xsl:for-each>
2272           </td>
2273         </tr>
2274       </xsl:for-each>
2275     </table>
2276   </xsl:template>
2277
2278   <xsl:template name="modView">
2279     <h2>Update View</h2>
2280     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2281     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
2282     <table id="viewsTable">
2283       <tr>
2284         <td class="subs">
2285           <h3>Available Subscriptions:</h3>
2286
2287           <table class="subscriptionsListSubs">
2288             <xsl:for-each select="/bedeworkadmin/subscriptions/subscription">
2289               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2290               <xsl:if test="not(/bedeworkadmin/views/view/subscriptions/subscription/name=name)">
2291                 <tr>
2292                   <td>
2293                     <xsl:value-of select="name"/>
2294                   </td>
2295                   <td class="arrows">
2296                     <xsl:variable name="subAddName" select="name"/>
2297                     <a href="{$view-update}&amp;name={$viewName}&amp;add={$subAddName}">
2298                       <img src="{$resourcesRoot}/resources/arrowRight.gif"
2299                         width="13" height="13" border="0"
2300                         alt="add subscription"/>
2301                     </a>
2302                   </td>
2303                 </tr>
2304               </xsl:if>
2305             </xsl:for-each>
2306           </table>
2307         </td>
2308         <td class="view">
2309           <h3>Active Subscriptions:</h3>
2310           <table class="subscriptionsListView">
2311             <xsl:for-each select="/bedeworkadmin/views/view/subscriptions/subscription">
2312               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2313               <tr>
2314                 <td class="arrows">
2315                   <xsl:variable name="subRemoveName" select="name"/>
2316                   <a href="{$view-update}&amp;name={$viewName}&amp;remove={$subRemoveName}">
2317                     <img src="{$resourcesRoot}/resources/arrowLeft.gif"
2318                         width="13" height="13" border="0"
2319                         alt="add subscription"/>
2320                   </a>
2321                 </td>
2322                 <td>
2323                   <xsl:value-of select="name"/>
2324                 </td>
2325               </tr>
2326             </xsl:for-each>
2327           </table>
2328         </td>
2329       </tr>
2330     </table>
2331     <table border="0" id="submitTable">
2332       <tr>
2333         <td>
2334           <input type="button" name="return" value="Return to Views Listing" onclick="javascript:location.replace('{$view-fetch}')"/>
2335         </td>
2336         <td align="right">
2337           <form name="deleteViewForm" action="{$view-fetchForUpdate}" method="post">
2338             <input type="submit" name="deleteButton" value="Delete View"/>
2339             <input type="hidden" name="name" value="{$viewName}"/>
2340             <input type="hidden" name="delete" value="yes"/>
2341           </form>
2342         </td>
2343       </tr>
2344     </table>
2345   </xsl:template>
2346
2347   <xsl:template name="deleteViewConfirm">
2348     <h2>Remove View?</h2>
2349
2350     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2351     <p>The following view will be removed. Continue?</p>
2352
2353     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
2354     <form name="removeView" action="{$view-remove}">
2355       <input type="hidden" name="name" value="{$viewName}"/>
2356       <input type="submit" name="delete" value="Yes: Remove View"/>
2357       <input type="submit" name="cancelled" value="No: Cancel"/>
2358     </form>
2359
2360   </xsl:template>
2361
2362   <!--+++++++++++++++ System Parameters (preferences) ++++++++++++++++++++-->
2363   <xsl:template name="modSyspars">
2364     <h2>Modify System Parameters</h2>
2365     <p>
2366       Do not change unless you know what you're doing.<br/>
2367       Changes to these parameters have wide impact on the system.
2368     </p>
2369     <form name="systemParamsForm" action="{$system-update}" method="post">
2370       <table class="eventFormTable">
2371         <tr>
2372           <th>Default timezone:</th>
2373           <td>
2374             <xsl:variable name="tzid" select="/bedeworkadmin/system/tzid"/>
2375             <input value="{$tzid}" name="tzid" size="20"/>
2376           </td>
2377           <td>
2378             Default timezone id for date/time values. This should normally be your local timezone
2379           </td>
2380         </tr>
2381         <tr>
2382           <th>Default user view name:</th>
2383           <td>
2384             <xsl:variable name="defaultViewName" select="/bedeworkadmin/system/defaultUserViewName"/>
2385             <input value="{$defaultViewName}" name="defaultUserViewName" size="20"/>
2386           </td>
2387           <td>
2388             Name used for default view created when a new user is added
2389           </td>
2390         </tr>
2391         <tr>
2392           <th>Http connections per user:</th>
2393           <td>
2394             <xsl:variable name="httpPerUser" select="/bedeworkadmin/system/httpConnectionsPerUser"/>
2395             <input value="{$httpPerUser}" name="httpConnectionsPerUser" size="20"/>
2396           </td>
2397           <td>
2398           </td>
2399         </tr>
2400         <tr>
2401           <th>Http connections per host:</th>
2402           <td>
2403             <xsl:variable name="httpPerHost" select="/bedeworkadmin/system/httpConnectionsPerHost"/>
2404             <input value="{$httpPerHost}" name="httpConnectionsPerHost" size="20"/>
2405           </td>
2406           <td>
2407           </td>
2408         </tr>
2409         <tr>
2410           <th>Total http connections:</th>
2411           <td>
2412             <xsl:variable name="httpTotal" select="/bedeworkadmin/system/httpConnections"/>
2413             <input value="{$httpTotal}" name="httpConnections" size="20"/>
2414           </td>
2415           <td>
2416           </td>
2417         </tr>
2418         <tr>
2419           <th>Maximum length of public event description:</th>
2420           <td>
2421             <xsl:variable name="maxPublicDescriptionLength" select="/bedeworkadmin/system/maxPublicDescriptionLength"/>
2422             <input value="{$maxPublicDescriptionLength}" name="maxPublicDescriptionLength" size="20"/>
2423           </td>
2424           <td>
2425           </td>
2426         </tr>
2427         <tr>
2428           <th>Maximum length of user event description:</th>
2429           <td>
2430             <xsl:variable name="maxUserDescriptionLength" select="/bedeworkadmin/system/maxUserDescriptionLength"/>
2431             <input value="{$maxUserDescriptionLength}" name="maxUserDescriptionLength" size="20"/>
2432           </td>
2433           <td>
2434           </td>
2435         </tr>
2436         <tr>
2437           <th>Maximum size of a user entity:</th>
2438           <td>
2439             <xsl:variable name="maxUserEntitySize" select="/bedeworkadmin/system/maxUserEntitySize"/>
2440             <input value="{$maxUserEntitySize}" name="maxUserEntitySize" size="20"/>
2441           </td>
2442           <td>
2443           </td>
2444         </tr>
2445         <tr>
2446           <th>Default user quota:</th>
2447           <td>
2448             <xsl:variable name="defaultUserQuota" select="/bedeworkadmin/system/defaultUserQuota"/>
2449             <input value="{$defaultUserQuota}" name="defaultUserQuota" size="20"/>
2450           </td>
2451           <td>
2452           </td>
2453         </tr>
2454       </table>
2455       <table border="0" id="submitTable">
2456         <tr>
2457           <td>
2458             <input type="submit" name="updateSystemParams" value="Update"/>
2459             <input type="submit" name="cancelled" value="Cancel"/>
2460             <input type="reset" value="Reset"/>
2461           </td>
2462         </tr>
2463       </table>
2464     </form>
2465   </xsl:template>
2466
2467   <!--+++++++++++++++ Calendar Suites (calsuite) ++++++++++++++++++++-->
2468   <xsl:template match="calSuites" mode="calSuiteList">
2469     <h2>Manage Calendar Suites</h2>
2470
2471     <h4>Calendar suites:</h4>
2472     <p><input type="button" name="return" value="Add calendar suite" onclick="javascript:location.replace('{$calsuite-showAddForm}')"/></p>
2473
2474     <ul>
2475       <xsl:for-each select="calSuite">
2476        <li>
2477          <xsl:variable name="name" select="name"/>
2478          <a href="{$calsuite-fetchForUpdate}&amp;name={$name}">
2479            <xsl:value-of select="name"/>
2480          </a>
2481        </li>
2482       </xsl:for-each>
2483     </ul>
2484
2485   </xsl:template>
2486
2487   <xsl:template name="addCalSuite">
2488     <h2>Add Calendar Suite</h2>
2489     <form name="calSuiteForm" action="{$calsuite-add}" method="post">
2490       <table class="eventFormTable">
2491         <tr>
2492           <th>Name:</th>
2493           <td>
2494             <input name="name" size="20"/>
2495           </td>
2496           <td>
2497             Name of your calendar suite
2498           </td>
2499         </tr>
2500         <tr>
2501           <th>Group:</th>
2502           <td>
2503             <input name="groupName" size="20"/>
2504           </td>
2505           <td>
2506             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
2507           </td>
2508         </tr>
2509         <tr>
2510           <th>Root calendar:</th>
2511           <td>
2512             <input name="calPath" size="20"/>
2513           </td>
2514           <td>
2515             Path of root calendar (not required if suite only consists of subscriptions and views)
2516           </td>
2517         </tr>
2518       </table>
2519       <table border="0" id="submitTable">
2520         <tr>
2521           <td>
2522             <input type="submit" name="updateCalSuite" value="Add"/>
2523             <input type="submit" name="cancelled" value="Cancel"/>
2524             <input type="reset" value="Reset"/>
2525           </td>
2526         </tr>
2527       </table>
2528     </form>
2529   </xsl:template>
2530
2531   <xsl:template match="calSuite" name="modCalSuite">
2532     <h2>Modify Calendar Suite</h2>
2533     <xsl:variable name="calSuiteName" select="name"/>
2534     <form name="calSuiteForm" action="{$calsuite-update}" method="post">
2535       <table class="eventFormTable">
2536         <tr>
2537           <th>Name:</th>
2538           <td>
2539             <input name="name" value="{$calSuiteName}" size="20"/>
2540           </td>
2541           <td>
2542             Name of your calendar suite
2543           </td>
2544         </tr>
2545         <tr>
2546           <th>Group:</th>
2547           <td>
2548             <xsl:variable name="group" select="group"/>
2549             <input name="groupName" value="{$group}" size="20"/>
2550           </td>
2551           <td>
2552             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
2553           </td>
2554         </tr>
2555         <tr>
2556           <th>Root calendar:</th>
2557           <td>
2558             <xsl:variable name="calPath" select="calPath"/>
2559             <input name="calPath" value="{$calPath}" size="20"/>
2560           </td>
2561           <td>
2562             Path of root calendar (not required if suite only consists of subscriptions and views)
2563           </td>
2564         </tr>
2565       </table>
2566       <table border="0" id="submitTable">
2567         <tr>
2568           <td>
2569             <input type="submit" name="updateCalSuite" value="Update"/>
2570             <input type="submit" name="cancelled" value="Cancel"/>
2571             <input type="reset" value="Reset"/>
2572           </td>
2573         </tr>
2574       </table>
2575     </form>
2576     <div id="sharingBox">
2577       <h3>Manage suite administrators</h3>
2578       <table class="common">
2579         <tr>
2580           <th class="commonHeader" colspan="2">Current access:</th>
2581         </tr>
2582         <xsl:if test="acl/ace/principal/href">
2583           <tr>
2584             <th>Users:</th>
2585             <td>
2586               <xsl:for-each select="acl/ace[principal/href]">
2587                 <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/>
2588               </xsl:for-each>
2589             </td>
2590           </tr>
2591         </xsl:if>
2592       </table>
2593       <form name="calsuiteShareForm" action="{$calsuite-setAccess}" id="shareForm" method="post">
2594         <input type="hidden" name="calSuiteName" value="{$calSuiteName}"/>
2595         <input type="hidden" name="how" value="RW" />
2596         <p>
2597           Add administrator:<br/>
2598           <input type="text" name="who" size="20"/>
2599           <input type="radio" value="user" name="whoType" checked="checked"/> user
2600           <input type="radio" value="group" name="whoType"/> group
2601         </p>
2602         <input type="submit" name="submit" value="Submit"/>
2603       </form>
2604     </div>
2605   </xsl:template>
2606
2607   <xsl:template name="calSuitePrefs">
2608     <h2>Edit Calendar Suite Preferences</h2>
2609     <form name="userPrefsForm" method="post" action="{$calsuite-updatePrefs}">
2610       <table id="eventFormTable">
2611         <tr>
2612           <td class="fieldName">
2613             Calendar Suite:
2614           </td>
2615           <td>
2616             <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
2617           </td>
2618         </tr>
2619         <tr>
2620           <td class="fieldName">
2621             Preferred view:
2622           </td>
2623           <td>
2624             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
2625             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
2626           </td>
2627         </tr>
2628         <tr>
2629           <td class="fieldName">
2630             Preferred view period:
2631           </td>
2632           <td>
2633             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
2634             <select name="viewPeriod">
2635               <!-- picking the selected item could be done with javascript. for
2636                    now, this will do.  -->
2637               <xsl:choose>
2638                 <xsl:when test="$preferredViewPeriod = 'dayView'">
2639                   <option value="dayView" selected="selected">day</option>
2640                 </xsl:when>
2641                 <xsl:otherwise>
2642                   <option value="dayView">day</option>
2643                 </xsl:otherwise>
2644               </xsl:choose>
2645               <xsl:choose>
2646                 <xsl:when test="$preferredViewPeriod = 'todayView'">
2647                   <option value="todayView" selected="selected">today</option>
2648                 </xsl:when>
2649                 <xsl:otherwise>
2650                   <option value="todayView">today</option>
2651                 </xsl:otherwise>
2652               </xsl:choose>
2653               <xsl:choose>
2654                 <xsl:when test="$preferredViewPeriod = 'weekView'">
2655                   <option value="weekView" selected="selected">week</option>
2656                 </xsl:when>
2657                 <xsl:otherwise>
2658                   <option value="weekView">week</option>
2659                 </xsl:otherwise>
2660               </xsl:choose>
2661               <xsl:choose>
2662                 <xsl:when test="$preferredViewPeriod = 'monthView'">
2663                   <option value="monthView" selected="selected">month</option>
2664                 </xsl:when>
2665                 <xsl:otherwise>
2666                   <option value="monthView">month</option>
2667                 </xsl:otherwise>
2668               </xsl:choose>
2669               <xsl:choose>
2670                 <xsl:when test="$preferredViewPeriod = 'yearView'">
2671                   <option value="yearView" selected="selected">year</option>
2672                 </xsl:when>
2673                 <xsl:otherwise>
2674                   <option value="yearView">year</option>
2675                 </xsl:otherwise>
2676               </xsl:choose>
2677             </select>
2678           </td>
2679         </tr>
2680         <tr>
2681           <td class="fieldName">
2682             Skin name:
2683           </td>
2684           <td>
2685             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
2686             <input type="text" name="skin" value="{$skinName}" size="40"/>
2687           </td>
2688         </tr>
2689         <tr>
2690           <td class="fieldName">
2691             Skin style:
2692           </td>
2693           <td>
2694             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
2695             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
2696           </td>
2697         </tr>
2698       </table>
2699       <br />
2700
2701       <input type="submit" name="modPrefs" value="Update"/>
2702       <input type="reset" value="Reset"/>
2703       <input type="submit" name="cancelled" value="Cancel"/>
2704     </form>
2705   </xsl:template>
2706
2707   <!--+++++++++++++++ Timezones ++++++++++++++++++++-->
2708   <xsl:template name="uploadTimezones">
2709     <h2>Upload Timezones</h2>
2710     <form name="peForm" method="post" action="{$timezones-upload}" enctype="multipart/form-data">
2711       <input type="file" name="uploadFile" size="40" value=""/>
2712       <input type="submit" name="doUpload" value="Upload Timezones"/>
2713       <input type="submit" name="cancelled" value="Cancel"/>
2714     </form>
2715   </xsl:template>
2716
2717   <!--+++++++++++++++ Authuser ++++++++++++++++++++-->
2718   <xsl:template name="authUserList">
2719     <h2>Modify Administrators</h2>
2720
2721     <div id="authUserInputForms">
2722       <form name="getUserRolesForm" action="{$authuser-fetchForUpdate}" method="post">
2723         Edit admin roles by userid: <input type="text" name="editAuthUserId" size="20"/>
2724         <input type="submit" value="go" name="submit"/>
2725       </form>
2726     </div>
2727
2728     <table id="commonListTable">
2729       <tr>
2730         <th>UserId</th>
2731         <th>Roles</th>
2732         <th></th>
2733       </tr>
2734
2735       <xsl:for-each select="bedeworkadmin/authUsers/authUser">
2736         <!--<xsl:sort select="account" order="ascending" case-order="upper-first"/>-->
2737         <tr>
2738           <td>
2739             <xsl:value-of select="account"/>
2740           </td>
2741           <td>
2742             <xsl:if test="publicEventUser='true'">
2743               publicEvent; <xsl:text> </xsl:text>
2744             </xsl:if>
2745             <xsl:if test="superUser='true'">
2746               superUser; <xsl:text> </xsl:text>
2747             </xsl:if>
2748             <xsl:if test="alertUser='true'">
2749               alert; <xsl:text> </xsl:text>
2750             </xsl:if>
2751           </td>
2752           <td>
2753             <xsl:variable name="account" select="account"/>
2754             <a href="{$authuser-fetchForUpdate}&amp;editAuthUserId={$account}">
2755               edit
2756             </a>
2757           </td>
2758         </tr>
2759       </xsl:for-each>
2760     </table>
2761   </xsl:template>
2762
2763   <xsl:template name="modAuthUser">
2764     <h2>Update Administrator</h2>
2765     <xsl:variable name="modAuthUserAction" select="/bedeworkadmin/formElements/form/@action"/>
2766     <form action="{$modAuthUserAction}" method="post">
2767       <table id="eventFormTable">
2768         <tr>
2769           <td class="fieldName">
2770             Account:
2771           </td>
2772           <td>
2773             <xsl:value-of select="/bedeworkadmin/formElements/form/account"/>
2774           </td>
2775         </tr>
2776         <tr>
2777           <td class="fieldName">
2778             Alerts:
2779           </td>
2780           <td>
2781             <xsl:copy-of select="/bedeworkadmin/formElements/form/alerts/*"/>
2782           </td>
2783         </tr>
2784         <tr>
2785           <td class="fieldName">
2786             Public Events:
2787           </td>
2788           <td>
2789             <xsl:copy-of select="/bedeworkadmin/formElements/form/publicEvents/*"/>
2790           </td>
2791         </tr>
2792         <tr>
2793           <td class="fieldName">
2794             Super User:
2795           </td>
2796           <td>
2797             <xsl:copy-of select="/bedeworkadmin/formElements/form/superUser/*"/>
2798           </td>
2799         </tr>
2800         <!--<tr>
2801           <td class="optional">
2802             Email:
2803           </td>
2804           <td>
2805             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
2806             <span class="fieldInfo"></span>
2807           </td>
2808         </tr>
2809         <tr>
2810           <td class="optional">
2811             Phone:
2812           </td>
2813           <td>
2814             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
2815             <span class="fieldInfo"></span>
2816           </td>
2817         </tr>
2818         <tr>
2819           <td class="optional">
2820             Department:
2821           </td>
2822           <td>
2823             <xsl:copy-of select="/bedeworkadmin/formElements/form/dept/*"/>
2824             <span class="fieldInfo"></span>
2825           </td>
2826         </tr>
2827         <tr>
2828           <td class="optional">
2829             Last name:
2830           </td>
2831           <td>
2832             <xsl:copy-of select="/bedeworkadmin/formElements/form/lastName/*"/>
2833             <span class="fieldInfo"></span>
2834           </td>
2835         </tr>
2836         <tr>
2837           <td class="optional">
2838             First name:
2839           </td>
2840           <td>
2841             <xsl:copy-of select="/bedeworkadmin/formElements/form/firstName/*"/>
2842             <span class="fieldInfo"></span>
2843           </td>
2844         </tr>-->
2845       </table>
2846       <br />
2847
2848       <input type="submit" name="modAuthUser" value="Update"/>
2849       <input type="reset" value="Reset"/>
2850       <input type="submit" name="cancelled" value="Cancel"/>
2851     </form>
2852   </xsl:template>
2853
2854   <!--+++++++++++++++ User Prefs ++++++++++++++++++++-->
2855   <xsl:template name="modPrefs">
2856     <h2>Edit User Preferences</h2>
2857     <form name="userPrefsForm" method="post" action="{$prefs-update}">
2858       <table id="eventFormTable">
2859         <tr>
2860           <td class="fieldName">
2861             User:
2862           </td>
2863           <td>
2864             <xsl:value-of select="/bedeworkadmin/prefs/user"/>
2865             <xsl:variable name="user" select="/bedeworkadmin/prefs/user"/>
2866             <input type="hidden" name="user" value="{$user}"/>
2867           </td>
2868         </tr>
2869         <tr>
2870           <td class="fieldName">
2871             Preferred view:
2872           </td>
2873           <td>
2874             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
2875             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
2876           </td>
2877         </tr>
2878         <tr>
2879           <td class="fieldName">
2880             Preferred view period:
2881           </td>
2882           <td>
2883             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
2884             <select name="viewPeriod">
2885               <!-- picking the selected item could be done with javascript. for
2886                    now, this will do.  -->
2887               <xsl:choose>
2888                 <xsl:when test="$preferredViewPeriod = 'dayView'">
2889                   <option value="dayView" selected="selected">day</option>
2890                 </xsl:when>
2891                 <xsl:otherwise>
2892                   <option value="dayView">day</option>
2893                 </xsl:otherwise>
2894               </xsl:choose>
2895               <xsl:choose>
2896                 <xsl:when test="$preferredViewPeriod = 'todayView'">
2897                   <option value="todayView" selected="selected">today</option>
2898                 </xsl:when>
2899                 <xsl:otherwise>
2900                   <option value="todayView">today</option>
2901                 </xsl:otherwise>
2902               </xsl:choose>
2903               <xsl:choose>
2904                 <xsl:when test="$preferredViewPeriod = 'weekView'">
2905                   <option value="weekView" selected="selected">week</option>
2906                 </xsl:when>
2907                 <xsl:otherwise>
2908                   <option value="weekView">week</option>
2909                 </xsl:otherwise>
2910               </xsl:choose>
2911               <xsl:choose>
2912                 <xsl:when test="$preferredViewPeriod = 'monthView'">
2913                   <option value="monthView" selected="selected">month</option>
2914                 </xsl:when>
2915                 <xsl:otherwise>
2916                   <option value="monthView">month</option>
2917                 </xsl:otherwise>
2918               </xsl:choose>
2919               <xsl:choose>
2920                 <xsl:when test="$preferredViewPeriod = 'yearView'">
2921                   <option value="yearView" selected="selected">year</option>
2922                 </xsl:when>
2923                 <xsl:otherwise>
2924                   <option value="yearView">year</option>
2925                 </xsl:otherwise>
2926               </xsl:choose>
2927             </select>
2928           </td>
2929         </tr>
2930         <tr>
2931           <td class="fieldName">
2932             Skin name:
2933           </td>
2934           <td>
2935             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
2936             <input type="text" name="skin" value="{$skinName}" size="40"/>
2937           </td>
2938         </tr>
2939         <tr>
2940           <td class="fieldName">
2941             Skin style:
2942           </td>
2943           <td>
2944             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
2945             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
2946           </td>
2947         </tr>
2948       </table>
2949       <br />
2950
2951       <input type="submit" name="modPrefs" value="Update"/>
2952       <input type="reset" value="Reset"/>
2953       <input type="submit" name="cancelled" value="Cancel"/>
2954     </form>
2955   </xsl:template>
2956
2957   <!--+++++++++++++++ Admin Groups ++++++++++++++++++++-->
2958   <xsl:template name="listAdminGroups">
2959     <h2>Modify Groups</h2>
2960     <form name="adminGroupMembersForm" method="post" action="{$admingroup-initUpdate}">
2961       <xsl:choose>
2962         <xsl:when test="/bedeworkadmin/groups/showMembers='true'">
2963           <input type="radio" name="showAgMembers" value="false" onclick="document.adminGroupMembersForm.submit();"/>
2964           Hide members
2965           <input type="radio" name="showAgMembers" value="true" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
2966           Show members
2967         </xsl:when>
2968         <xsl:otherwise>
2969           <input type="radio" name="showAgMembers" value="false" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
2970           Hide members
2971           <input type="radio" name="showAgMembers" value="true" onclick="document.adminGroupMembersForm.submit();"/>
2972           Show members
2973         </xsl:otherwise>
2974       </xsl:choose>
2975     </form>
2976
2977     <p>Click on the group name to modify the group owner or description.<br/>
2978     Click "add/remove members" to modify group membership.</p>
2979     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
2980     <table id="commonListTable">
2981       <tr>
2982         <th>Name</th>
2983         <th>Description</th>
2984         <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
2985           <th>Members</th>
2986         </xsl:if>
2987         <th></th>
2988       </tr>
2989       <xsl:for-each select="/bedeworkadmin/groups/group">
2990         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2991         <xsl:variable name="groupName" select="name"/>
2992         <tr>
2993           <td>
2994             <a href="{$admingroup-fetchForUpdate}&amp;adminGroupName={$groupName}">
2995               <xsl:value-of select="name"/>
2996             </a>
2997           </td>
2998           <td>
2999             <xsl:value-of select="desc"/>
3000           </td>
3001           <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
3002             <td>
3003               <xsl:for-each select="members/member/account">
3004                   <xsl:value-of select="."/>&#160;
3005               </xsl:for-each>
3006             </td>
3007           </xsl:if>
3008           <td>
3009             <a href="{$admingroup-fetchForUpdateMembers}&amp;adminGroupName={$groupName}">Add/Remove members</a>
3010           </td>
3011         </tr>
3012       </xsl:for-each>
3013     </table>
3014     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
3015   </xsl:template>
3016
3017   <xsl:template match="groups" mode="chooseGroup">
3018     <h2>Choose Your Administrative Group</h2>
3019
3020     <table id="commonListTable">
3021
3022       <tr>
3023         <th>Name</th>
3024         <th>Description</th>
3025       </tr>
3026
3027       <xsl:for-each select="group">
3028         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
3029         <tr>
3030           <td>
3031             <xsl:variable name="admGroupName" select="name"/>
3032             <a href="{$setup}&amp;adminGroupName={$admGroupName}">
3033               <xsl:copy-of select="name"/>
3034             </a>
3035           </td>
3036           <td>
3037             <xsl:value-of select="desc"/>
3038           </td>
3039         </tr>
3040       </xsl:for-each>
3041     </table>
3042   </xsl:template>
3043
3044   <xsl:template name="modAdminGroup">
3045     <xsl:choose>
3046       <xsl:when test="/bedeworkadmin/creating = 'true'">
3047         <h2>Add Group</h2>
3048       </xsl:when>
3049       <xsl:otherwise>
3050         <h2>Modify Group</h2>
3051       </xsl:otherwise>
3052     </xsl:choose>
3053     <form name="peForm" method="post" action="{$admingroup-update}">
3054       <table id="adminGroupFormTable">
3055         <tr>
3056           <td class="fieldName">
3057             Name:
3058           </td>
3059           <td>
3060             <xsl:choose>
3061               <xsl:when test="/bedeworkadmin/creating = 'true'">
3062                 <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
3063               </xsl:when>
3064               <xsl:otherwise>
3065                 <xsl:value-of  select="/bedeworkadmin/formElements/form/name"/>
3066               </xsl:otherwise>
3067             </xsl:choose>
3068           </td>
3069         </tr>
3070         <tr>
3071           <td class="fieldName">
3072             Description:
3073           </td>
3074           <td>
3075             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
3076           </td>
3077         </tr>
3078         <tr>
3079           <td class="fieldName">
3080             Group owner:
3081           </td>
3082           <td>
3083             <xsl:copy-of select="/bedeworkadmin/formElements/form/groupOwner/*"/>
3084           </td>
3085         </tr>
3086         <tr>
3087           <td class="fieldName">
3088             Events owner:
3089           </td>
3090           <td>
3091             <xsl:copy-of select="/bedeworkadmin/formElements/form/eventsOwner/*"/>
3092           </td>
3093         </tr>
3094       </table>
3095       <table border="0" id="submitTable">
3096         <tr>
3097           <td>
3098             <xsl:choose>
3099               <xsl:when test="/bedeworkadmin/creating = 'true'">
3100                 <input type="submit" name="updateAdminGroup" value="Add Admin Group"/>
3101                 <input type="submit" name="cancelled" value="Cancel"/>
3102                 <input type="reset" value="Clear"/>
3103               </xsl:when>
3104               <xsl:otherwise>
3105                 <input type="submit" name="updateAdminGroup" value="Update Admin Group"/>
3106                 <input type="submit" name="cancelled" value="Cancel"/>
3107                 <input type="reset" value="Reset"/>
3108               </xsl:otherwise>
3109             </xsl:choose>
3110           </td>
3111           <td align="right">
3112             <input type="submit" name="delete" value="Delete"/>
3113           </td>
3114         </tr>
3115       </table>
3116     </form>
3117   </xsl:template>
3118
3119   <xsl:template name="modAdminGroupMembers">
3120     <h2>Update Group Membership</h2>
3121     <p>Enter a userid (for user or group) and click "add" to update group membership.
3122     Click the trash icon to remove a user from the group.</p>
3123
3124     <form name="adminGroupMembersForm" method="post" action="{$admingroup-updateMembers}">
3125       <p>Add member:
3126         <input type="text" name="updGroupMember" size="15"/>
3127         <input type="radio" value="user" name="kind" checked="checked"/>user
3128         <input type="radio" value="group" name="kind"/>group
3129         <input type="submit" name="addGroupMember" value="Add"/>
3130       </p>
3131     </form>
3132     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initUpdate}')" value="Return to Admin Group listing"/></p>
3133
3134     <table id="adminGroupFormTable">
3135       <tr>
3136         <td class="fieldName">
3137           Name:
3138         </td>
3139         <td>
3140           <xsl:value-of select="/bedeworkadmin/adminGroup/name"/>
3141         </td>
3142       </tr>
3143       <tr>
3144         <td class="fieldName">
3145           Members:
3146         </td>
3147         <td>
3148           <table id="memberAccountList">
3149             <xsl:for-each select="/bedeworkadmin/adminGroup/members/member">
3150               <xsl:choose>
3151                 <xsl:when test="kind='0'"><!-- kind = user -->
3152                   <tr>
3153                     <td>
3154                       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/>
3155                     </td>
3156                     <td>
3157                       <xsl:value-of select="account"/>
3158                     </td>
3159                     <td>
3160                       <xsl:variable name="acct" select="account"/>
3161                         <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=user" title="remove">
3162                           <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3163                         </a>
3164                     </td>
3165                   </tr>
3166                 </xsl:when>
3167                 <xsl:otherwise><!-- kind = group -->
3168                   <tr>
3169                     <td>
3170                       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/>
3171                     </td>
3172                     <td>
3173                       <strong><xsl:value-of select="account"/></strong>
3174                     </td>
3175                     <td>
3176                       <xsl:variable name="acct" select="account"/>
3177                       <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=group" title="remove">
3178                         <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3179                       </a>
3180                     </td>
3181                   </tr>
3182                 </xsl:otherwise>
3183               </xsl:choose>
3184             </xsl:for-each>
3185           </table>
3186         </td>
3187       </tr>
3188     </table>
3189     <p>
3190       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/> user,
3191       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/><xsl:text> </xsl:text><strong>group</strong>
3192     </p>
3193   </xsl:template>
3194
3195   <xsl:template name="deleteAdminGroupConfirm">
3196     <h2>Delete Admin Group?</h2>
3197     <p>The following group will be deleted. Continue?</p>
3198     <p>
3199       <strong><xsl:value-of select="/bedeworkadmin/groups/group/name"/></strong>:
3200       <xsl:value-of select="/bedeworkadmin/groups/group/desc"/>
3201     </p>
3202     <form  name="adminGroupDelete" method="post" action="{$admingroup-delete}">
3203       <input type="submit" name="removeAdminGroupOK" value="Yes: Delete!"/>
3204       <input type="submit" name="cancelled" value="No: Cancel"/>
3205     </form>
3206   </xsl:template>
3207
3208   <!--+++++++++++++++ System Stats ++++++++++++++++++++-->
3209
3210   <xsl:template match="sysStats" mode="showSysStats">
3211     <h2>System Statistics</h2>
3212
3213     <p>
3214       Stats collection:
3215     </p>
3216     <ul>
3217       <li>
3218         <a href="{$stats-update}&amp;enable=yes">enable</a> |
3219         <a href="{$stats-update}&amp;disable=yes">disable</a>
3220       </li>
3221       <li><a href="{$stats-update}&amp;fetch=yes">fetch statistics</a></li>
3222       <li><a href="{$stats-update}&amp;dump=yes">dump stats to log</a></li>
3223     </ul>
3224     <table id="statsTable" cellpadding="0">
3225       <xsl:for-each select="*">
3226         <xsl:choose>
3227           <xsl:when test="name(.) = 'header'">
3228             <tr>
3229               <th colspan="2">
3230                 <xsl:value-of select="."/>
3231               </th>
3232             </tr>
3233           </xsl:when>
3234           <xsl:otherwise>
3235             <tr>
3236               <td class="label">
3237                 <xsl:value-of select="label"/>
3238               </td>
3239               <td class="value">
3240                 <xsl:value-of select="value"/>
3241               </td>
3242             </tr>
3243           </xsl:otherwise>
3244         </xsl:choose>
3245       </xsl:for-each>
3246     </table>
3247   </xsl:template>
3248
3249   <!--==== HEADER TEMPLATES and NAVIGATION  ====-->
3250
3251   <xsl:template name="header">
3252     <div id="header">
3253       <a href="http://www.bedework.org">
3254         <img id="logo"
3255           alt="logo"
3256           src="{$resourcesRoot}/resources/bedeworkAdminLogo.gif"
3257           width="217"
3258           height="40"
3259           border="0"/>
3260       </a>
3261       <!-- set the page heading: -->
3262       <h1>
3263         <xsl:choose>
3264           <xsl:when test="/bedeworkadmin/page='modEvent' or
3265                           /bedeworkadmin/page='eventList' or
3266                           /bedeworkadmin/page='displayEvent'">
3267             Manage Events
3268           </xsl:when>
3269           <xsl:when test="/bedeworkadmin/page='sponsorList' or
3270                           /bedeworkadmin/page='modSponsor' or
3271                           /bedeworkadmin/page='deleteSponsorConfirm'">
3272             Manage Contacts
3273           </xsl:when>
3274           <xsl:when test="/bedeworkadmin/page='locationList' or
3275                           /bedeworkadmin/page='modLocation' or
3276                           /bedeworkadmin/page='deleteLocationConfirm'">
3277             Manage Locations
3278           </xsl:when>
3279           <xsl:when test="/bedeworkadmin/page='calendarList' or
3280                           /bedeworkadmin/page='modCalendar' or
3281                           /bedeworkadmin/page='calendarReferenced' or
3282                           /bedeworkadmin/page='deleteCalendarConfirm'">
3283             Manage Calendars
3284           </xsl:when>
3285           <xsl:when test="/bedeworkadmin/page='calendarDescriptions' or
3286                           /bedeworkadmin/page='displayCalendar'">
3287             Public Calendars
3288           </xsl:when>
3289           <xsl:when test="/bedeworkadmin/page='subscriptions' or
3290                           /bedeworkadmin/page='modSubscription'">
3291             Manage Subscriptions
3292           </xsl:when>
3293           <xsl:when test="/bedeworkadmin/page='views' or
3294                           /bedeworkadmin/page='modView'">
3295             Manage Views
3296           </xsl:when>
3297           <xsl:when test="/bedeworkadmin/page='modSyspars'">
3298             Manage System Preferences
3299           </xsl:when>
3300           <xsl:when test="/bedeworkadmin/page='authUserList' or
3301                           /bedeworkadmin/page='modAuthUser'">
3302             Manage Public Events Administrators
3303           </xsl:when>
3304           <xsl:when test="/bedeworkadmin/page='chooseGroup'">
3305             Choose Administrative Group
3306           </xsl:when>
3307           <xsl:when test="/bedeworkadmin/page='adminGroupList' or
3308                           /bedeworkadmin/page='modAdminGroup' or
3309                           /bedeworkadmin/page='modAdminGroup' or
3310                           /bedeworkadmin/page='modAdminGroupMembers'">
3311             Manage Administrative Groups
3312           </xsl:when>
3313           <xsl:when test="/bedeworkadmin/page='noGroup'">
3314             No Administrative Group
3315           </xsl:when>
3316           <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
3317             Manage Time Zones
3318           </xsl:when>
3319           <xsl:when test="/bedeworkadmin/page='noAccess'">
3320             Access Denied
3321           </xsl:when>
3322           <xsl:when test="/bedeworkadmin/page='error'">
3323             Error
3324           </xsl:when>
3325           <xsl:otherwise>
3326             Bedework Calendar Administration
3327           </xsl:otherwise>
3328         </xsl:choose>
3329       </h1>
3330
3331       <xsl:if test="/bedeworkadmin/message">
3332         <div id="messages">
3333           <p><xsl:apply-templates select="/bedeworkadmin/message"/></p>
3334         </div>
3335       </xsl:if>
3336       <xsl:if test="/bedeworkadmin/error">
3337         <div id="errors">
3338           <p><xsl:apply-templates select="/bedeworkadmin/error"/></p>
3339         </div>
3340       </xsl:if>
3341
3342     </div>
3343     <table id="statusBarTable">
3344       <tr>
3345         <td class="leftCell">
3346           <a href="{$setup}">Main Menu</a> |
3347           <a href="{$publicCal}" target="calendar">Launch Calendar</a> |
3348           <a href="{$logout}">Log Out</a>
3349           <!-- Enable the following two items when debugging skins only -->
3350           | <a href="?refreshXslt=yes">Refresh XSL</a> |
3351           <a href="?noxslt=yes">Show XML</a> (view source)
3352         </td>
3353         <xsl:if test="/bedeworkadmin/userInfo/user">
3354           <td class="rightCell">
3355             <xsl:if test="/bedeworkadmin/currentCalSuite/name">
3356               Calendar Suite:
3357               <span class="status">
3358                 <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
3359               </span>
3360               &#160;
3361             </xsl:if>
3362             Logged in as:
3363             <span class="status">
3364               <xsl:value-of select="/bedeworkadmin/userInfo/user"/>
3365             </span>
3366             &#160;
3367             <xsl:if test="/bedeworkadmin/userInfo/group">
3368               Group:
3369               <span class="status">
3370                 <xsl:value-of select="/bedeworkadmin/userInfo/group"/>
3371               </span>
3372             </xsl:if>
3373           </td>
3374         </xsl:if>
3375       </tr>
3376     </table>
3377     <div id="titleBar">
3378       CALENDAR of EVENTS
3379     </div>
3380   </xsl:template>
3381
3382   <!--==== FOOTER ====-->
3383   <xsl:template name="footer">
3384     <div id="footer">
3385       <a href="http://www.bedework.org/">Bedework website</a>
3386     </div>
3387   </xsl:template>
3388 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.