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

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

extending access control in admin UI

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