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

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

admin client:

fixed up calpath references;
trapped an error message for display;
corrected links to edit events from event listing

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