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

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

fundamental building blocks in place for calendar suites in UI (currently only produces form for adding a calendar suite)

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