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

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

beginning search support in public client UI

some category support restored to admin client

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