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

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

updated add/remove admin group members presentation in admin client

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