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

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

added success message to subscription and adminGroup deletion; updated stylesheet to correctly handle adminGroup deletion; simplified admingroup xml; re-routed some actions in the struts-config regarding admingroups.

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="event-showClockMap" select="/bedeworkadmin/urlPrefixes/event/showClockMap/a/@href"/>
52   <xsl:variable name="sponsor-showSponsor" select="/bedeworkadmin/urlPrefixes/sponsor/showSponsor/a/@href"/>
53   <xsl:variable name="sponsor-showReferenced" select="/bedeworkadmin/urlPrefixes/sponsor/showReferenced/a/@href"/>
54   <xsl:variable name="sponsor-showModForm" select="/bedeworkadmin/urlPrefixes/sponsor/showModForm/a/@href"/>
55   <xsl:variable name="sponsor-showUpdateList" select="/bedeworkadmin/urlPrefixes/sponsor/showUpdateList/a/@href"/>
56   <xsl:variable name="sponsor-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/sponsor/showDeleteConfirm/a/@href"/>
57   <xsl:variable name="sponsor-initAdd" select="/bedeworkadmin/urlPrefixes/sponsor/initAdd/a/@href"/><!-- used -->
58   <xsl:variable name="sponsor-initUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/initUpdate/a/@href"/>
59   <xsl:variable name="sponsor-delete" select="/bedeworkadmin/urlPrefixes/sponsor/delete/a/@href"/>
60   <xsl:variable name="sponsor-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForDisplay/a/@href"/>
61   <xsl:variable name="sponsor-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForUpdate/a/@href"/>
62   <xsl:variable name="sponsor-update" select="/bedeworkadmin/urlPrefixes/sponsor/update/a/@href"/>
63   <xsl:variable name="location-showLocation" select="/bedeworkadmin/urlPrefixes/location/showLocation/a/@href"/>
64   <xsl:variable name="location-showReferenced" select="/bedeworkadmin/urlPrefixes/location/showReferenced/a/@href"/>
65   <xsl:variable name="location-showModForm" select="/bedeworkadmin/urlPrefixes/location/showModForm/a/@href"/>
66   <xsl:variable name="location-showUpdateList" select="/bedeworkadmin/urlPrefixes/location/showUpdateList/a/@href"/>
67   <xsl:variable name="location-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/location/showDeleteConfirm/a/@href"/>
68   <xsl:variable name="location-initAdd" select="/bedeworkadmin/urlPrefixes/location/initAdd/a/@href"/><!-- used -->
69   <xsl:variable name="location-initUpdate" select="/bedeworkadmin/urlPrefixes/location/initUpdate/a/@href"/>
70   <xsl:variable name="location-delete" select="/bedeworkadmin/urlPrefixes/location/delete/a/@href"/>
71   <xsl:variable name="location-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/location/fetchForDisplay/a/@href"/>
72   <xsl:variable name="location-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/location/fetchForUpdate/a/@href"/>
73   <xsl:variable name="location-update" select="/bedeworkadmin/urlPrefixes/location/update/a/@href"/>
74   <!-- cals should all be good -->
75   <xsl:variable name="calendar-fetch" select="/bedeworkadmin/urlPrefixes/calendar/fetch/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   <!-- subs and views are all good - no need to clean any of these out  -->
82   <xsl:variable name="subscriptions-fetch" select="/bedeworkadmin/urlPrefixes/subscriptions/fetch/a/@href"/>
83   <xsl:variable name="subscriptions-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/subscriptions/fetchForUpdate/a/@href"/>
84   <xsl:variable name="subscriptions-initAdd" select="/bedeworkadmin/urlPrefixes/subscriptions/initAdd/a/@href"/>
85   <xsl:variable name="subscriptions-subscribe" select="/bedeworkadmin/urlPrefixes/subscriptions/subscribe/a/@href"/>
86   <xsl:variable name="view-fetch" select="/bedeworkadmin/urlPrefixes/view/fetch/a/@href"/>
87   <xsl:variable name="view-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/view/fetchForUpdate/a/@href"/>
88   <xsl:variable name="view-addView" select="/bedeworkadmin/urlPrefixes/view/addView/a/@href"/>
89   <xsl:variable name="view-update" select="/bedeworkadmin/urlPrefixes/view/update/a/@href"/>
90   <xsl:variable name="view-remove" select="/bedeworkadmin/urlPrefixes/view/remove/a/@href"/>
91   <!-- === -->
92   <xsl:variable name="timezones-showUpload" select="/bedeworkadmin/urlPrefixes/timezones/showUpload/a/@href"/>
93   <xsl:variable name="timezones-initUpload" select="/bedeworkadmin/urlPrefixes/timezones/initUpload/a/@href"/>
94   <xsl:variable name="timezones-upload" select="/bedeworkadmin/urlPrefixes/timezones/upload/a/@href"/>
95   <xsl:variable name="authuser-showModForm" select="/bedeworkadmin/urlPrefixes/authuser/showModForm/a/@href"/>
96   <xsl:variable name="authuser-showUpdateList" select="/bedeworkadmin/urlPrefixes/authuser/showUpdateList/a/@href"/>
97   <xsl:variable name="authuser-initUpdate" select="/bedeworkadmin/urlPrefixes/authuser/initUpdate/a/@href"/>
98   <xsl:variable name="authuser-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/authuser/fetchForUpdate/a/@href"/><!-- used -->
99   <xsl:variable name="authuser-update" select="/bedeworkadmin/urlPrefixes/authuser/update/a/@href"/>
100   <xsl:variable name="prefs-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/prefs/fetchForUpdate/a/@href"/><!-- used -->
101   <xsl:variable name="prefs-update" select="/bedeworkadmin/urlPrefixes/prefs/update/a/@href"/><!-- used -->
102   <xsl:variable name="admingroup-showModForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModForm/a/@href"/>
103   <xsl:variable name="admingroup-showModMembersForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModMembersForm/a/@href"/>
104   <xsl:variable name="admingroup-showUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/showUpdateList/a/@href"/>
105   <xsl:variable name="admingroup-showChooseGroup" select="/bedeworkadmin/urlPrefixes/admingroup/showChooseGroup/a/@href"/>
106   <xsl:variable name="admingroup-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/admingroup/showDeleteConfirm/a/@href"/>
107   <xsl:variable name="admingroup-initAdd" select="/bedeworkadmin/urlPrefixes/admingroup/initAdd/a/@href"/><!-- used -->
108   <xsl:variable name="admingroup-initUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/initUpdate/a/@href"/><!-- used -->
109   <xsl:variable name="admingroup-delete" select="/bedeworkadmin/urlPrefixes/admingroup/delete/a/@href"/>
110   <xsl:variable name="admingroup-fetchUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/fetchUpdateList/a/@href"/><!-- used -->
111   <xsl:variable name="admingroup-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdate/a/@href"/><!-- used -->
112   <xsl:variable name="admingroup-fetchForUpdateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdateMembers/a/@href"/><!-- used -->
113   <xsl:variable name="admingroup-update" select="/bedeworkadmin/urlPrefixes/admingroup/update/a/@href"/><!-- used -->
114   <xsl:variable name="admingroup-updateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/updateMembers/a/@href"/><!-- used -->
115   <xsl:variable name="admingroup-switch" select="/bedeworkadmin/urlPrefixes/admingroup/switch/a/@href"/>
116
117   <!-- URL of the web application - includes web context
118   <xsl:variable name="urlPrefix" select="/bedeworkadmin/urlprefix"/> -->
119
120   <!-- Other generally useful global variables -->
121   <xsl:variable name="publicCal">/cal</xsl:variable>
122
123   <!--==== MAIN TEMPLATE  ====-->
124   <xsl:template match="/">
125     <html lang="en">
126       <head>
127         <title>Calendar Admin: Events Calendar Administration</title>
128         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
129         <link rel="stylesheet" href="{$resourcesRoot}/en_US/default/default.css"/>
130         <xsl:if test="/bedeworkadmin/page='modEvent'">
131           <script language="JavaScript" type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script>
132           <script type='text/javascript' src="{$resourcesRoot}/resources/autoComplete.js"></script>
133           <script type='text/javascript' src="{$resourcesRoot}/resources/ui.js"></script>
134         </xsl:if>
135         <link rel="icon" type="image/ico" href="{$resourcesRoot}/bedework.ico" />
136       </head>
137       <body>
138         <xsl:call-template name="header"/>
139         <div id="content">
140           <xsl:choose>
141             <xsl:when test="/bedeworkadmin/page='eventList'">
142               <xsl:call-template name="eventList"/>
143             </xsl:when>
144             <xsl:when test="/bedeworkadmin/page='modEvent'">
145               <xsl:call-template name="modEvent"/>
146             </xsl:when>
147             <xsl:when test="/bedeworkadmin/page='displayEvent'">
148               <xsl:apply-templates select="/bedeworkadmin/event" mode="displayEvent"/>
149             </xsl:when>
150             <xsl:when test="/bedeworkadmin/page='sponsorList'">
151               <xsl:call-template name="sponsorList"/>
152             </xsl:when>
153             <xsl:when test="/bedeworkadmin/page='modSponsor'">
154               <xsl:call-template name="modSponsor"/>
155             </xsl:when>
156             <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm'">
157               <xsl:call-template name="deleteSponsorConfirm"/>
158             </xsl:when>
159             <xsl:when test="/bedeworkadmin/page='locationList'">
160               <xsl:call-template name="locationList"/>
161             </xsl:when>
162             <xsl:when test="/bedeworkadmin/page='modLocation'">
163               <xsl:call-template name="modLocation"/>
164             </xsl:when>
165             <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'">
166               <xsl:call-template name="deleteLocationConfirm"/>
167             </xsl:when>
168             <xsl:when test="/bedeworkadmin/page='calendarList' or /bedeworkadmin/page='modCalendar' or /bedeworkadmin/page='deleteCalendarConfirm'">
169               <xsl:apply-templates select="/bedeworkadmin/calendars"/>
170             </xsl:when>
171             <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'">
172               <xsl:apply-templates select="/bedeworkadmin/subscriptions"/>
173             </xsl:when>
174             <xsl:when test="/bedeworkadmin/page='views'">
175               <xsl:apply-templates select="/bedeworkadmin/views" mode="viewList"/>
176             </xsl:when>
177             <xsl:when test="/bedeworkadmin/page='modView'">
178               <xsl:call-template name="modView"/>
179             </xsl:when>
180             <xsl:when test="/bedeworkadmin/page='deleteViewConfirm'">
181               <xsl:call-template name="deleteViewConfirm"/>
182             </xsl:when>
183             <xsl:when test="/bedeworkadmin/page='authUserList'">
184               <xsl:call-template name="authUserList"/>
185             </xsl:when>
186             <xsl:when test="/bedeworkadmin/page='modAuthUser'">
187               <xsl:call-template name="modAuthUser"/>
188             </xsl:when>
189             <xsl:when test="/bedeworkadmin/page='modPrefs'">
190               <xsl:call-template name="modPrefs"/>
191             </xsl:when>
192             <xsl:when test="/bedeworkadmin/page='chooseGroup'">
193               <xsl:apply-templates select="/bedeworkadmin/groups" mode="chooseGroup"/>
194             </xsl:when>
195             <xsl:when test="/bedeworkadmin/page='adminGroupList'">
196               <xsl:call-template name="listAdminGroups"/>
197             </xsl:when>
198             <xsl:when test="/bedeworkadmin/page='modAdminGroup'">
199               <xsl:call-template name="modAdminGroup"/>
200             </xsl:when>
201             <xsl:when test="/bedeworkadmin/page='modAdminGroupMembers'">
202               <xsl:call-template name="modAdminGroupMembers"/>
203             </xsl:when>
204             <xsl:when test="/bedeworkadmin/page='deleteAdminGroupConfirm'">
205               <xsl:call-template name="deleteAdminGroupConfirm"/>
206             </xsl:when>
207             <xsl:when test="/bedeworkadmin/page='noGroup'">
208               <h2>No administrative group</h2>
209               <p>Your userid has not been assigned to an administrative group.
210                 Please inform your administrator.</p>
211             </xsl:when>
212             <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
213               <xsl:call-template name="uploadTimezones"/>
214             </xsl:when>
215             <xsl:when test="/bedeworkadmin/page='noAccess'">
216               <h2>No Access</h2>
217               <p>
218                 You have no access to the action you just attempted. If you believe
219                 you should have access and the problem persists, contact your
220                 administrator.
221               </p>
222               <p><a href="{$setup}">continue</a></p>
223             </xsl:when>
224             <xsl:when test="/bedeworkadmin/page='error'">
225               <h2>Application error</h2>
226               <p>An application error occurred.</p>
227               <p><a href="{$setup}">continue</a></p>
228             </xsl:when>
229             <xsl:otherwise>
230               <xsl:call-template name="mainMenu"/>
231             </xsl:otherwise>
232           </xsl:choose>
233         </div>
234         <!-- footer -->
235         <xsl:call-template name="footer"/>
236       </body>
237     </html>
238   </xsl:template>
239
240   <!--==============================================-->
241   <!--==============================================-->
242   <!--============= PAGE TEMPLATES =================-->
243   <!--==============================================-->
244   <!--==============================================-->
245
246   <!--+++++++++++++++ Main Menu ++++++++++++++++++++-->
247   <xsl:template name="mainMenu">
248     <h2 class="menuTitle">Main Menu</h2>
249     <table id="mainMenuTable">
250       <tr>
251         <th>Events</th>
252         <td>
253           <a href="{$event-initAddEvent}" >
254             Add
255           </a>
256         </td>
257         <td>
258           <a href="{$event-initUpdateEvent}" >
259             Edit / Delete
260           </a>
261         </td>
262         <td>
263           Event ID:
264           <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
265         </td>
266       </tr>
267       <tr>
268         <th>Contacts</th>
269         <td>
270           <a href="{$sponsor-initAdd}" >
271             Add
272           </a>
273         </td>
274         <td>
275           <a href="{$sponsor-initUpdate}" >
276             Edit / Delete
277           </a>
278         </td>
279       </tr>
280       <tr>
281         <th>Locations</th>
282         <td>
283           <a href="{$location-initAdd}" >
284             Add
285           </a>
286         </td>
287         <td>
288           <a href="{$location-initUpdate}" >
289             Edit / Delete
290           </a>
291         </td>
292       </tr>
293     </table>
294
295
296     <!-- Content admin and super user segment of the page.
297          Super user will have content admin access. -->
298
299     <xsl:if test="/bedeworkadmin/userInfo/contentAdminUser='true'">
300       <h2 class="menuTitle">Administrator's Menu</h2>
301       <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
302         <ul class="adminMenu">
303           <li>
304             <a href="{$calendar-fetch}">
305               Manage calendars
306             </a>
307           </li>
308           <li>
309             <a href="{$subscriptions-fetch}">
310               Manage subscriptions
311             </a>
312           </li>
313           <li>
314             <a href="{$view-fetch}">
315               Manage views
316             </a>
317           </li>
318           <li>
319             <a href="{$timezones-initUpload}" >
320               Upload and replace system timezones
321             </a>
322           </li>
323         </ul>
324       </xsl:if>
325       <h4 class="menuTitle">User management</h4>
326       <ul class="adminMenu">
327         <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
328           <li>
329             <a href="{$authuser-initUpdate}" >
330               Manage public event administrators
331             </a>
332           </li>
333         </xsl:if>
334         <xsl:if test="/bedeworkadmin/userInfo/adminGroupMaintOk='true'">
335           <li>
336             <a href="{$admingroup-initUpdate}">
337               Manage admin groups
338             </a>
339           </li>
340         </xsl:if>
341         <li>
342           <a href="{$admingroup-switch}">
343             Choose/change group...
344           </a>
345         </li>
346         <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
347           <li>
348             <form action="{$prefs-fetchForUpdate}" method="post">
349               Edit user preferences (enter userid): <input type="text" name="user" size="15"/>
350               <input type="submit" name="getPrefs" value="go"/>
351             </form>
352           </li>
353         </xsl:if>
354       </ul>
355     </xsl:if>
356   </xsl:template>
357
358   <!--++++++++++++++++++ Events ++++++++++++++++++++-->
359   <xsl:template name="eventList">
360     <p>Select the event that you would like to update:</p>
361
362     <form name="peForm" method="post" action="{$event-showUpdateList}">
363       <table>
364         <tr>
365           <td style="padding-right: 1em;">Show:</td>
366           <td>
367             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchFalse/*"/>
368             Active
369           </td>
370           <td>
371             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchTrue/*"/>
372             All
373           </td>
374         </tr>
375       </table>
376     </form>
377
378     <table id="commonListTable">
379       <tr>
380         <th>Title</th>
381         <th>Start Date</th>
382         <th>End Date</th>
383         <th>Description</th>
384       </tr>
385
386       <xsl:for-each select="/bedeworkadmin/events/event">
387         <tr>
388           <td>
389             <xsl:copy-of select="title/*"/>
390           </td>
391           <td class="date">
392             <xsl:value-of select="start"/>
393           </td>
394           <td class="date">
395             <xsl:value-of select="end"/>
396           </td>
397           <td>
398             <xsl:value-of select="desc"/>
399           </td>
400         </tr>
401       </xsl:for-each>
402     </table>
403   </xsl:template>
404
405   <xsl:template name="modEvent">
406     <h2>Event Information</h2>
407
408     <xsl:variable name="modEventAction" select="/bedeworkadmin/formElements/form/@action"/>
409     <form  name="peForm" method="post" action="{$modEventAction}">
410       <table class="eventFormTable">
411         <xsl:variable name="titleClass">
412           <xsl:choose>
413             <xsl:when test="/bedeworkadmin/error[id='org.bedework.validation.error.notitle']">validationError</xsl:when>
414             <xsl:otherwise>normal</xsl:otherwise>
415           </xsl:choose>
416         </xsl:variable>
417         <tr class="{$titleClass}">
418           <td class="fieldName">
419             Title:
420           </td>
421           <td>
422             <xsl:copy-of select="/bedeworkadmin/formElements/form/title/*"/>
423           </td>
424         </tr>
425
426         <tr>
427           <td class="fieldName">
428             Calendar**:
429           </td>
430           <td>
431             <xsl:if test="/bedeworkadmin/formElements/form/calendar/preferred/select/option">
432               <select name="prefCalendarId">
433                 <option value="-1">
434                   Select preferred:
435                 </option>
436                 <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/preferred/select/*"/>
437               </select>
438               or Calendar (all):
439             </xsl:if>
440             <select name="calendarId">
441               <option value="-1">
442                 Select:
443               </option>
444               <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/all/select/*"/>
445             </select>
446             <xsl:text> </xsl:text>
447             <a href="" target="_blank">Calendar Definitions</a>
448           </td>
449         </tr>
450
451         <tr>
452           <td class="fieldName">
453             Date &amp; Time:
454           </td>
455           <td>
456             <!-- Set the timefields class for the first load of the page;
457                  subsequent changes will take place using javascript without a
458                  page reload. -->
459             <xsl:variable name="timeFieldsClass">
460               <xsl:choose>
461                 <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">hidden</xsl:when>
462                 <xsl:otherwise>timeFields</xsl:otherwise>
463               </xsl:choose>
464             </xsl:variable>
465             <xsl:choose>
466               <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">
467                 <input type="checkbox" name="eventStartDate.dateOnly" onchange="swapAllDayEvent(this)" value="on" checked="checked"/>
468               </xsl:when>
469               <xsl:otherwise>
470                 <input type="checkbox" name="eventStartDate.dateOnly" onchange="swapAllDayEvent(this)"/>
471               </xsl:otherwise>
472             </xsl:choose>
473             all day event<br/>
474             <div class="dateStartEndBox">
475               <strong>Start:</strong>
476               <div class="dateFields">
477                 <span class="startDateLabel">Date </span>
478                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/month/*"/>
479                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/day/*"/>
480                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/year/*"/>
481               </div>
482               <img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>
483               <div class="{$timeFieldsClass}" id="startTimeFields">
484                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/hour/*"/>
485                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/minute/*"/>
486                 <xsl:if test="/bedeworkadmin/formElements/form/start/ampm">
487                   <xsl:copy-of select="/bedeworkadmin/formElements/form/start/ampm/*"/>
488                 </xsl:if>
489                 <xsl:text> </xsl:text>
490                 <a href="javascript:launchClockMap('showClockMap.do?dateType=eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
491               </div>
492             </div>
493             <div class="dateStartEndBox">
494               <strong>End:</strong>
495               <xsl:choose>
496                 <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">
497                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','hidden');"/>
498                 </xsl:when>
499                 <xsl:otherwise>
500                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','hidden');"/>
501                 </xsl:otherwise>
502               </xsl:choose>
503               Date
504               <xsl:variable name="endDateTimeClass">
505                 <xsl:choose>
506                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">shown</xsl:when>
507                   <xsl:otherwise>hidden</xsl:otherwise>
508                 </xsl:choose>
509               </xsl:variable>
510               <div class="{$endDateTimeClass}" id="endDateTime">
511                 <div class="dateFields">
512                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/month/*"/>
513                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/day/*"/>
514                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/year/*"/>
515                 </div>
516                 <img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>
517                 <div class="{$timeFieldsClass}" id="endTimeFields">
518                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/hour/*"/>
519                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/minute/*"/>
520                   <xsl:if test="/bedeworkadmin/formElements/form/end/dateTime/ampm">
521                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/ampm/*"/>
522                   </xsl:if>
523                   <xsl:text> </xsl:text>
524                   <a href="javascript:launchClockMap('showClockMap.do?dateType=eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
525                 </div>
526               </div><br/>
527               <div class="dateFields">
528                 <xsl:choose>
529                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">
530                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','hidden');changeClass('endDuration','shown');"/>
531                   </xsl:when>
532                   <xsl:otherwise>
533                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','hidden');changeClass('endDuration','shown');"/>
534                   </xsl:otherwise>
535                 </xsl:choose>
536                 Duration
537                 <xsl:variable name="endDurationClass">
538                   <xsl:choose>
539                     <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">shown</xsl:when>
540                     <xsl:otherwise>hidden</xsl:otherwise>
541                   </xsl:choose>
542                 </xsl:variable>
543                 <div class="{$endDurationClass}" id="endDuration">
544                   <div class="durationBox">
545                     <input type="radio" name="eventDuration.type" value="daytime" checked="checked"/>
546                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/duration/days/*"/>days
547                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/duration/hours/*"/>hours
548                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/duration/minutes/*"/>minutes
549                   </div>
550                   <span class="durationSpacerText">or</span>
551                   <div class="durationBox">
552                     <input type="radio" name="eventDuration.type" value="weeks"/>
553                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/duration/weeks/*"/>weeks
554                   </div>
555                 </div>
556               </div><br/>
557               <xsl:variable name="noDurationClass">
558                 <xsl:choose>
559                   <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">hidden</xsl:when>
560                   <xsl:otherwise>dateFields</xsl:otherwise>
561                 </xsl:choose>
562               </xsl:variable>
563               <div class="{$noDurationClass}" id="noDuration">
564                 <xsl:choose>
565                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='N'">
566                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','hidden');changeClass('endDuration','hidden');"/>
567                   </xsl:when>
568                   <xsl:otherwise>
569                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','hidden');changeClass('endDuration','hidden');"/>
570                   </xsl:otherwise>
571                 </xsl:choose>
572                 This event has no duration / end date
573               </div>
574             </div>
575           </td>
576         </tr>
577
578         <!--  Category  -->
579         <tr>
580           <td class="fieldName">
581             Category**:
582           </td>
583           <td>
584             <xsl:if test="/bedeworkadmin/formElements/form/calendar/preferred/select/option">
585               <select name="prefCategoryId">
586                 <option value="-1">
587                   Select preferred:
588                 </option>
589                 <xsl:copy-of select="/bedeworkadmin/formElements/form/category/preferred/select/*"/>
590               </select>
591               Category (all):
592             </xsl:if>
593             <select name="categoryId">
594               <option value="-1">
595                 Select:
596               </option>option>
597               <xsl:copy-of select="/bedeworkadmin/formElements/form/category/all/select/*"/>
598             </select>
599           </td>
600         </tr>
601
602         <!--  Description  -->
603         <tr>
604           <td class="fieldName">
605             Description:
606           </td>
607           <td>
608             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
609             <div class="fieldInfo">
610               Enter all pertinent information, including the academic titles of
611               all speakers and/or participants.
612               <span class="maxCharNotice">(<xsl:value-of select="/bedeworkadmin/formElements/form/descLength"/> characters max.)</span>
613             </div>
614           </td>
615         </tr>
616         <!-- Cost -->
617         <tr>
618           <td class="optional">
619             Price:
620           </td>
621           <td>
622             <xsl:copy-of select="/bedeworkadmin/formElements/form/cost/*"/>
623             <xsl:text> </xsl:text>
624             <span class="fieldInfo">(optional: if any, and place to purchase tickets)</span>
625           </td>
626         </tr>
627         <!-- Url -->
628         <tr>
629           <td class="optional">
630             URL:
631           </td>
632           <td>
633             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
634             <xsl:text> </xsl:text>
635             <span class="fieldInfo">(optional: for more information about the event)</span>
636           </td>
637         </tr>
638         <!-- Location -->
639         <tr>
640           <td class="fieldName">
641             Location**:
642           </td>
643           <td>
644             <xsl:if test="/bedeworkadmin/formElements/form/location/preferred/select/option">
645               <select name="prefLocationId">
646                 <option value="-1">
647                   Select preferred:
648                 </option>
649                 <xsl:copy-of select="/bedeworkadmin/formElements/form/location/preferred/select/*"/>
650               </select>
651               or Location (all):
652             </xsl:if>
653             <select name="locationId">
654               <option value="-1">
655                 Select:
656               </option>
657               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/all/select/*"/>
658             </select>
659           </td>
660         </tr>
661
662        <xsl:if test="/bedeworkadmin/formElements/form/location/address">
663           <tr>
664             <td class="fieldName" colspan="2">
665               <span class="std-text"><span class="bold">or</span> add</span>
666             </td>
667           </tr>
668           <tr>
669             <td class="fieldName">
670               Address:
671             </td>
672             <td>
673               <xsl:variable name="addressFieldName" select="/bedeworkadmin/formElements/form/location/address/input/@name"/>
674               <xsl:variable name="calLocations">
675                 <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>
676               </xsl:variable>
677               <input type="text" size="30" name="{$addressFieldName}" autocomplete="off" onfocus='autoComplete(this,event,new Array({$calLocations}));'/>
678               <div class="fieldInfo">
679                 Please include room, building, and campus (if not Seattle).
680               </div>
681             </td>
682           </tr>
683           <tr>
684             <td class="optional">
685               <span class="std-text">Location URL:</span>
686             </td>
687             <td>
688               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/link/*"/>
689               <xsl:text> </xsl:text>
690               <span class="fieldInfo">(optional: for information about the location)</span>
691             </td>
692           </tr>
693         </xsl:if>
694
695         <!-- Sponsor -->
696         <tr>
697           <td class="fieldName">
698             Contact**:
699           </td>
700           <td>
701             <xsl:if test="/bedeworkadmin/formElements/form/sponsor/preferred/select/option">
702               <select name="prefSponsorId">
703                 <option value="-1">
704                   Select preferred:
705                 </option>option>
706                 <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/preferred/select/*"/>
707               </select>
708               or Contact (all):
709             </xsl:if>
710             <select name="sponsorId">
711               <option value="-1">
712                 Select:
713               </option>
714               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/all/select/*"/>
715             </select>
716           </td>
717         </tr>
718         <tr>
719           <td colspan="2" style="padding-top: 1em;">
720             <span class="fieldInfo">
721               **<strong>If "preferred values" are enabled</strong>
722               by your administrator, the category, location, and contact lists will
723               contain only those value you've used previously.  If you don't find the value
724               you need in one of these lists, use the "all" list adjacent to each
725               of these fields.  The event you select from the "all" list will be added
726               to your preferred list from that point on.  <strong>Note: if you don't
727               find a location or contact at all, you can add a new one from the
728               <a href="{$setup}">main menu</a>.</strong>
729               Only administrators can create categories, however.
730               To make sure you've used the
731               correct category, please see the
732               <a href="" target="_blank">Calendar Definitions</a>
733             </span>
734           </td>
735         </tr>
736
737         <xsl:if test="/bedeworkadmin/formElements/form/sponsor/name">
738           <tr>
739             <td class="fieldName" colspan="2">
740               <span class="std-text"><span class="bold">or</span> add</span>
741             </td>
742           </tr>
743           <tr>
744             <td class="fieldName">
745               Contact:
746             </td>
747             <td>
748               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/name/*"/>
749             </td>
750           </tr>
751           <tr>
752             <td class="fieldName">
753               Contact Phone Number:
754             </td>
755             <td>
756               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/phone/*"/>-
757               <xsl:text> </xsl:text>
758               <span class="fieldInfo">(optional)</span>
759             </td>
760           </tr>
761           <tr>
762             <td class="optional">
763               Contact's URL:
764             </td>
765             <td>
766               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/link/*"/>
767               <xsl:text> </xsl:text>
768               <span class="fieldInfo">(optional)</span>
769             </td>
770           </tr>
771           <tr>
772             <td class="optional">
773               Contact Email Address:
774             </td>
775             <td>
776               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/email/*"/>
777               <xsl:text> </xsl:text>
778               <span class="fieldInfo">(optional)</span> test
779               <div id="sponsorEmailAlert">&#160;</div> <!-- space for email warning -->
780             </td>
781           </tr>
782         </xsl:if>
783       </table>
784
785       <table border="0" width="100%" id="submitTable">
786         <tr>
787           <xsl:choose>
788             <xsl:when test="/bedeworkadmin/creating='true'">
789               <td>
790                 <input type="submit" name="addEvent" value="Add Event" class="padRight"/>
791                 <input type="submit" name="cancelled" value="Cancel"/>
792                 <input type="reset" value="Clear"/>
793               </td>
794             </xsl:when>
795             <xsl:otherwise>
796               <td>
797                 <input type="submit" name="updateEvent" value="Update Event" class="padRight"/>
798                 <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
799                 <input type="reset" value="Reset" class="padRight"/>
800                 <input type="submit" name="copy" value="Duplicate Event"/>
801               </td>
802               <td align="right">
803                 <input type="submit" name="delete" value="Delete Event"/>
804               </td>
805             </xsl:otherwise>
806           </xsl:choose>
807         </tr>
808       </table>
809     </form>
810   </xsl:template>
811
812   <xsl:template match="event" mode="displayEvent">
813     <h2>Event Information</h2>
814
815     <table class="eventFormTable">
816       <tr>
817         <td class="fieldName">
818           ID:
819         </td>
820         <td>
821           <xsl:value-of select="id"/>
822         </td>
823       </tr>
824
825       <tr>
826         <td class="fieldName">
827           Title:
828         </td>
829         <td>
830           <xsl:value-of select="title"/>
831         </td>
832       </tr>
833
834       <tr>
835         <td class="fieldName">
836           Calendar:
837         </td>
838         <td>
839           <xsl:value-of select="calendar"/>
840         </td>
841       </tr>
842
843       <tr>
844         <td class="fieldName">
845           Start:
846         </td>
847         <td>
848           <xsl:value-of select="start/year"/>-<xsl:value-of select="start/month"/>-<xsl:value-of select="start/day"/>
849           <xsl:text> </xsl:text>
850           <xsl:choose>
851             <xsl:when test="start/allDay='true'">
852               <strong>all day event</strong>
853             </xsl:when>
854             <xsl:otherwise>
855               <xsl:value-of select="start/hour"/>:<xsl:value-of select="start/minute"/>
856               <xsl:if test="start/ampm">
857                 <xsl:value-of select="start/ampm"/>
858               </xsl:if>
859             </xsl:otherwise>
860           </xsl:choose>
861         </td>
862       </tr>
863       <tr>
864         <td class="fieldName">
865           End:
866         </td>
867         <td>
868           <xsl:choose>
869             <xsl:when test="end/endtype = 'none'">
870               <div class="dateFields" id="noDuration">
871                 This event has no duration / end date
872               </div>
873             </xsl:when>
874             <xsl:when test="end/endtype = 'duration'">
875               <div class="dateFields">
876                 <div class="hidden" id="endDuration">
877                   <div class="durationBox">
878                     <input type="text" name="eventDuration.daysStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>days
879                     <input type="text" name="eventDuration.hoursStr" size="2" value="1" onChange="window.document.peForm.durationType[0].checked = true;"/>hours
880                     <input type="text" name="eventDuration.minutesStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>minutes
881                   </div>
882                   <span class="durationSpacerText">or</span>
883                   <div class="durationBox">
884                     <input type="text" name="eventDuration.weeksStr" size="2" value="0" onChange="window.document.peForm.durationType[1].checked = true;"/>weeks
885                   </div>
886                 </div>
887               </div>
888             </xsl:when>
889             <xsl:otherwise>
890               <xsl:value-of select="end/dateTime/year"/>-<xsl:value-of select="end/dateTime/month"/>-<xsl:value-of select="end/dateTime/day"/>
891               <xsl:text> </xsl:text>
892               <xsl:value-of select="end/dateTime/hour"/>:<xsl:value-of select="end/dateTime/minute"/>
893               <xsl:text> </xsl:text>
894               <xsl:if test="end/dateTime/ampm">
895                 <xsl:value-of select="end/dateTime/ampm"/>
896               </xsl:if>
897             </xsl:otherwise>
898           </xsl:choose>
899         </td>
900       </tr>
901
902       <!--  Category  -->
903       <tr>
904         <td class="fieldName">
905           Category:
906         </td>
907         <td>
908           <xsl:value-of select="category"/>
909         </td>
910       </tr>
911
912       <!--  Description  -->
913       <tr>
914         <td class="fieldName">
915           Description:
916         </td>
917         <td>
918           <xsl:value-of select="desc"/>
919         </td>
920       </tr>
921       <!-- Cost -->
922       <tr>
923         <td class="optional">
924           Price:
925         </td>
926         <td>
927           <xsl:value-of select="cost"/>
928         </td>
929       </tr>
930       <!-- Url -->
931       <tr>
932         <td class="optional">
933           URL:
934         </td>
935         <td>
936           <xsl:variable name="eventLink" select="link"/>
937           <a href="{$eventLink}"><xsl:value-of select="link"/></a>
938         </td>
939       </tr>
940       <!-- Location -->
941       <tr>
942         <td class="fieldName">
943           Location:
944         </td>
945         <td>
946           <xsl:value-of select="location"/>
947         </td>
948       </tr>
949
950       <!-- Sponsor -->
951       <tr>
952         <td class="fieldName">
953           Contact:
954         </td>
955         <td>
956           <xsl:value-of select="sponsor"/>
957         </td>
958       </tr>
959
960       <!-- Owner -->
961       <tr>
962         <td class="fieldName">
963           Owner:
964         </td>
965         <td>
966           <xsl:value-of select="creator"/>
967         </td>
968       </tr>
969
970     </table>
971
972
973     <xsl:if test="/bedeworkadmin/canEdit = 'true' or /bedeworkadmin/userInfo/superUser = 'true'">
974       <xsl:variable name="id" select="id"/>
975       <h3><a href="{$event-fetchForUpdate}&amp;eventId={$id}">Edit Event</a></h3>
976     </xsl:if>
977   </xsl:template>
978
979   <!--+++++++++++++++ Sponsors (Contacts) ++++++++++++++++++++-->
980   <xsl:template name="sponsorList">
981     <p>
982       Select the contact you would like to update:
983     </p>
984
985     <table id="commonListTable">
986       <tr>
987         <th>Name</th>
988         <th>Phone</th>
989         <th>Email</th>
990         <th>URL</th>
991       </tr>
992
993       <xsl:for-each select="/bedeworkadmin/sponsors/sponsor">
994         <tr>
995           <td>
996             <xsl:copy-of select="name" />
997           </td>
998           <td>
999             <xsl:value-of select="phone" />
1000           </td>
1001           <td>
1002             <xsl:variable name="email" select="email"/>
1003             <a href="mailto:{$email}">
1004               <xsl:value-of select="email"/>
1005             </a>
1006           </td>
1007           <td>
1008             <xsl:variable name="link" select="link" />
1009             <a href="{$link}" target="linktest">
1010               <xsl:value-of select="link" />
1011             </a>
1012           </td>
1013         </tr>
1014       </xsl:for-each>
1015     </table>
1016   </xsl:template>
1017
1018   <xsl:template name="modSponsor">
1019     <form action="{$sponsor-update}" method="post">
1020       <h2>Contact Information</h2>
1021
1022       <table id="eventFormTable">
1023         <tr>
1024           <td class="fieldName">
1025             Contact:
1026           </td>
1027           <td>
1028             <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
1029           </td>
1030         </tr>
1031         <tr>
1032           <td class="fieldName">
1033             Contact Phone Number:
1034           </td>
1035           <td>
1036             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/> -
1037             <span class="fieldInfo">(optional)</span>
1038           </td>
1039         </tr>
1040         <tr>
1041           <td class="optional">
1042             Contact's URL:
1043           </td>
1044           <td>
1045             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1046             <span class="fieldInfo">(optional)</span>
1047           </td>
1048         </tr>
1049         <tr>
1050           <td class="optional">
1051             Contact Email Address:
1052           </td>
1053           <td>
1054             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
1055             <span class="fieldInfo">(optional)</span>
1056           </td>
1057         </tr>
1058       </table>
1059
1060       <table border="0" width="100%" id="submitTable">
1061         <tr>
1062           <xsl:choose>
1063             <xsl:when test="/bedeworkadmin/creating='true'">
1064               <td>
1065                 <input type="submit" name="addSponsor" value="Add Contact" class="padRight"/>
1066                 <input type="submit" name="cancelled" value="Cancel"/>
1067                 <input type="reset" value="Clear"/>
1068               </td>
1069             </xsl:when>
1070             <xsl:otherwise>
1071               <td>
1072                 <input type="submit" name="updateSponsor" value="Update Contact" class="padRight"/>
1073                 <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1074                 <input type="reset" value="Reset" class="padRight"/>
1075               </td>
1076               <td align="right">
1077                 <input type="submit" name="delete" value="Delete Contact"/>
1078               </td>
1079             </xsl:otherwise>
1080           </xsl:choose>
1081         </tr>
1082       </table>
1083
1084     </form>
1085   </xsl:template>
1086
1087   <xsl:template name="deleteSponsorConfirm">
1088     <p>
1089       <h2>Ok to delete this contact?</h2>
1090       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1091     </p>
1092
1093     <table id="commonListTable">
1094       <tr>
1095         <th>Name</th>
1096         <td><xsl:value-of select="/bedeworkadmin/sponsor/name" /></td>
1097       </tr>
1098       <tr>
1099         <th>Phone</th>
1100         <td><xsl:value-of select="/bedeworkadmin/sponsor/phone" /></td>
1101       </tr>
1102       <tr>
1103         <th>Email</th>
1104         <td><xsl:value-of select="/bedeworkadmin/sponsor/email" /></td>
1105       </tr>
1106       <tr>
1107         <th>URL</th>
1108         <td><xsl:value-of select="/bedeworkadmin/sponsor/link" /></td>
1109       </tr>
1110     </table>
1111   </xsl:template>
1112
1113    <!--+++++++++++++++ Locations ++++++++++++++++++++-->
1114   <xsl:template name="locationList">
1115     <p>
1116       Select the location that you would like to update:
1117     </p>
1118
1119     <table id="commonListTable">
1120       <tr>
1121         <th>Address</th>
1122         <th>Subaddress</th>
1123         <th>URL</th>
1124       </tr>
1125
1126       <xsl:for-each select="/bedeworkadmin/locations/location">
1127         <tr>
1128           <td>
1129             <xsl:copy-of select="address/*"/>
1130           </td>
1131           <td>
1132             <xsl:value-of select="subaddress"/>
1133           </td>
1134           <td>
1135             <xsl:variable name="link" select="link" />
1136             <a href="{$link}" target="linktest">
1137               <xsl:value-of select="link" />
1138             </a>
1139           </td>
1140         </tr>
1141       </xsl:for-each>
1142     </table>
1143   </xsl:template>
1144
1145   <xsl:template name="modLocation">
1146     <form action="{$location-update}" method="post">
1147       <h2>Location Information</h2>
1148
1149       <table id="eventFormTable">
1150         <tr>
1151           <td class="fieldName">
1152             Address:
1153           </td>
1154           <td>
1155             <xsl:copy-of select="/bedeworkadmin/formElements/form/address/*"/>
1156           </td>
1157         </tr>
1158         <tr>
1159           <td class="optional">
1160             Subaddress:
1161           </td>
1162           <td>
1163             <xsl:copy-of select="/bedeworkadmin/formElements/form/subaddress/*"/>
1164             <span class="fieldInfo">(optional)</span>
1165           </td>
1166         </tr>
1167         <tr>
1168           <td class="optional">
1169             Location's URL:
1170           </td>
1171           <td>
1172             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1173             <span class="fieldInfo">(optional)</span>
1174           </td>
1175         </tr>
1176       </table>
1177
1178       <table border="0" width="100%" id="submitTable">
1179         <tr>
1180           <xsl:choose>
1181             <xsl:when test="/bedeworkadmin/creating='true'">
1182               <td>
1183                 <input type="submit" name="addLocation" value="Add Location" class="padRight"/>
1184                 <input type="submit" name="cancelled" value="Cancel"/>
1185                 <input type="reset" value="Clear"/>
1186               </td>
1187             </xsl:when>
1188             <xsl:otherwise>
1189               <td>
1190                 <input type="submit" name="updateLocation" value="Update Location" class="padRight"/>
1191                 <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1192                 <input type="reset" value="Reset" class="padRight"/>
1193               </td>
1194               <td align="right">
1195                 <input type="submit" name="delete" value="Delete Contact"/>
1196               </td>
1197             </xsl:otherwise>
1198           </xsl:choose>
1199         </tr>
1200       </table>
1201     </form>
1202   </xsl:template>
1203
1204   <xsl:template name="deleteLocationConfirm">
1205     <h2>Ok to delete this location?</h2>
1206     <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1207
1208     <table id="eventFormTable">
1209         <tr>
1210           <td class="fieldName">
1211             Address:
1212           </td>
1213           <td>
1214             <xsl:copy-of select="/bedeworkadmin/location/address/*"/>
1215           </td>
1216         </tr>
1217         <tr>
1218           <td class="optional">
1219             Subaddress:
1220           </td>
1221           <td>
1222             <xsl:copy-of select="/bedeworkadmin/location/subaddress/*"/>
1223             <span class="fieldInfo">(optional)</span>
1224           </td>
1225         </tr>
1226         <tr>
1227           <td class="optional">
1228             Location's URL:
1229           </td>
1230           <td>
1231             <xsl:copy-of select="/bedeworkadmin/location/link/*"/>
1232             <span class="fieldInfo">(optional)</span>
1233           </td>
1234         </tr>
1235       </table>
1236   </xsl:template>
1237
1238 <!--+++++++++++++++ Calendars ++++++++++++++++++++-->
1239   <xsl:template match="calendars">
1240     <table id="calendarTable">
1241       <tr>
1242         <td class="cals">
1243           <h3>Public calendars</h3>
1244           <ul id="calendarTree">
1245             <xsl:apply-templates select="calendar" mode="calendars"/>
1246           </ul>
1247         </td>
1248         <td class="calendarContent">
1249           <xsl:choose>
1250             <xsl:when test="/bedeworkadmin/page='calendarList'">
1251               <xsl:call-template name="calendarList"/>
1252             </xsl:when>
1253             <xsl:when test="/bedeworkadmin/page='deleteCalendarConfirm'">
1254               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="deleteCalendarConfirm"/>
1255             </xsl:when>
1256             <xsl:when test="/bedeworkadmin/creating='true'">
1257               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="addCalendar"/>
1258             </xsl:when>
1259             <xsl:otherwise>
1260               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="modCalendar"/>
1261             </xsl:otherwise>
1262           </xsl:choose>
1263         </td>
1264       </tr>
1265     </table>
1266   </xsl:template>
1267
1268   <xsl:template match="calendar" mode="calendars">
1269     <xsl:variable name="id" select="id"/>
1270     <xsl:variable name="itemClass">
1271       <xsl:choose>
1272         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1273         <xsl:otherwise>calendar</xsl:otherwise>
1274       </xsl:choose>
1275     </xsl:variable>
1276     <li class="{$itemClass}">
1277       <a href="{$calendar-fetchForUpdate}&amp;calId={$id}" title="update">
1278         <xsl:value-of select="name"/>
1279       </a>
1280       <xsl:if test="calendarCollection='false'">
1281         <xsl:text> </xsl:text>
1282         <a href="{$calendar-initAdd}&amp;calId={$id}" title="add a calendar or folder">
1283           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/>
1284         </a>
1285       </xsl:if>
1286       <xsl:if test="calendar">
1287         <ul>
1288           <xsl:apply-templates select="calendar" mode="calendars">
1289             <xsl:sort select="title" order="ascending" case-order="upper-first"/>
1290           </xsl:apply-templates>
1291         </ul>
1292       </xsl:if>
1293     </li>
1294   </xsl:template>
1295
1296   <xsl:template match="currentCalendar" mode="addCalendar">
1297     <h3>Add Calendar / Folder</h3>
1298     <form name="addCalForm" action="{$calendar-update}">
1299       <table class="eventFormTable">
1300         <tr>
1301           <th>Name:</th>
1302           <td>
1303             <xsl:variable name="curCalName" select="name"/>
1304             <input name="calendar.name" value="{$curCalName}" size="40"/>
1305           </td>
1306         </tr>
1307         <tr>
1308           <th>Summary:</th>
1309           <td>
1310             <xsl:variable name="curCalSummary" select="summary"/>
1311             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
1312           </td>
1313         </tr>
1314         <tr>
1315           <th>Description:</th>
1316           <td>
1317             <textarea name="calendar.description" width="60" height="20">
1318               <xsl:value-of select="desc"/>
1319             </textarea>
1320           </td>
1321         </tr>
1322         <tr>
1323           <th>Calendar/Folder:</th>
1324           <td>
1325             <xsl:choose>
1326               <xsl:when test="calendarCollection='true'">
1327                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
1328                 <input type="radio" value="false" name="calendarCollection"/> Folder
1329               </xsl:when>
1330               <xsl:otherwise>
1331                 <input type="radio" value="true" name="calendarCollection"/> Calendar
1332                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
1333               </xsl:otherwise>
1334             </xsl:choose>
1335           </td>
1336         </tr>
1337       </table>
1338
1339       <table border="0" width="100%" id="submitTable">
1340         <tr>
1341           <td>
1342             <input type="submit" name="addCalendar" value="Add Calendar/Folder" class="padRight"/>
1343             <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1344             <input type="reset" value="Clear" class="padRight"/>
1345           </td>
1346         </tr>
1347       </table>
1348     </form>
1349   </xsl:template>
1350
1351   <xsl:template match="currentCalendar" mode="modCalendar">
1352     <xsl:choose>
1353       <xsl:when test="calendarCollection='true'">
1354         <h3>Modify Calendar</h3>
1355       </xsl:when>
1356       <xsl:otherwise>
1357         <h3>Modify Folder</h3>
1358       </xsl:otherwise>
1359     </xsl:choose>
1360     <form name="modCalForm" action="{$calendar-update}">
1361       <table class="eventFormTable">
1362         <tr>
1363           <th>Path:</th>
1364           <td>
1365             <xsl:value-of select="path"/>
1366           </td>
1367         </tr>
1368         <tr>
1369           <th>Name:</th>
1370           <td>
1371             <xsl:value-of select="name"/>
1372           </td>
1373         </tr>
1374         <tr>
1375           <th>Mailing List ID:</th>
1376           <td>
1377             <xsl:value-of select="mailListId"/>
1378           </td>
1379         </tr>
1380         <tr>
1381           <th>Summary:</th>
1382           <td>
1383             <xsl:variable name="curCalSummary" select="summary"/>
1384             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
1385           </td>
1386         </tr>
1387         <tr>
1388           <th>Description:</th>
1389           <td>
1390             <textarea name="calendar.description" width="60" height="20">
1391               <xsl:value-of select="desc"/>
1392             </textarea>
1393           </td>
1394         </tr>
1395         <tr>
1396           <th>Calendar/Folder:</th>
1397           <td>
1398             <xsl:choose>
1399               <xsl:when test="calendarCollection='true'">
1400                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
1401                 <input type="radio" value="false" name="calendarCollection"/> Folder
1402               </xsl:when>
1403               <xsl:otherwise>
1404                 <input type="radio" value="true" name="calendarCollection"/> Calendar
1405                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
1406               </xsl:otherwise>
1407             </xsl:choose>
1408           </td>
1409         </tr>
1410       </table>
1411
1412       <table border="0" width="100%" id="submitTable">
1413         <tr>
1414           <td>
1415             <xsl:choose>
1416               <xsl:when test="calendarCollection='true'">
1417                 <input type="submit" name="updateCalendar" value="Update Calendar" class="padRight"/>
1418               </xsl:when>
1419               <xsl:otherwise>
1420                 <input type="submit" name="updateCalendar" value="Update Folder" class="padRight"/>
1421               </xsl:otherwise>
1422             </xsl:choose>
1423             <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1424             <input type="reset" value="Reset" class="padRight"/>
1425           </td>
1426           <td align="right">
1427             <xsl:choose>
1428               <xsl:when test="calendarCollection='true'">
1429                 <input type="submit" name="delete" value="Delete Calendar"/>
1430               </xsl:when>
1431               <xsl:otherwise>
1432                 <input type="submit" name="delete" value="Delete Folder"/>
1433               </xsl:otherwise>
1434             </xsl:choose>
1435           </td>
1436         </tr>
1437       </table>
1438     </form>
1439   </xsl:template>
1440
1441   <xsl:template name="calendarList">
1442     <h3>Manage Calendars</h3>
1443     <ul>
1444       <li>Select an item from the calendar list on the left to modify
1445       a calendar or folder.</li>
1446       <li>Select the
1447       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/>
1448       icon to add a new calendar or folder to the tree.
1449         <ul>
1450           <li>Folders may only contain calendars and subfolders.</li>
1451           <li>Calendars may only contain events (and other calendar items).</li>
1452           <li>
1453             If a calendar is empty, it may be converted to a folder and vice
1454             versa.  If a calendar or folder are not empty, it may not be
1455             converted.
1456           </li>
1457         </ul>
1458       </li>
1459     </ul>
1460   </xsl:template>
1461
1462   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm">
1463     <xsl:choose>
1464       <xsl:when test="calendarCollection='true'">
1465         <h3>Delete Calendar</h3>
1466         <p>
1467           The following calendar will be deleted.  Continue?
1468         </p>
1469       </xsl:when>
1470       <xsl:otherwise>
1471         <h3>Delete Folder</h3>
1472         <p>
1473           The following folder <em>and all its contents</em> will be deleted.
1474           Continue?
1475         </p>
1476       </xsl:otherwise>
1477     </xsl:choose>
1478
1479     <form name="delCalForm" action="{$calendar-delete}">
1480       <table class="eventFormTable">
1481         <tr>
1482           <th>Path:</th>
1483           <td>
1484             <xsl:value-of select="path"/>
1485           </td>
1486         </tr>
1487         <tr>
1488           <th>Name:</th>
1489           <td>
1490             <xsl:value-of select="name"/>
1491           </td>
1492         </tr>
1493         <tr>
1494           <th>Summary:</th>
1495           <td>
1496             <xsl:value-of select="summary"/>
1497           </td>
1498         </tr>
1499         <tr>
1500           <th>Description:</th>
1501           <td>
1502             <xsl:value-of select="desc"/>
1503           </td>
1504         </tr>
1505       </table>
1506
1507       <table border="0" width="100%" id="submitTable">
1508         <tr>
1509           <td>
1510             <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1511           </td>
1512           <td align="right">
1513             <xsl:choose>
1514               <xsl:when test="calendarCollection='true'">
1515                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/>
1516               </xsl:when>
1517               <xsl:otherwise>
1518                 <input type="submit" name="delete" value="Yes: Delete Folder!"/>
1519               </xsl:otherwise>
1520             </xsl:choose>
1521           </td>
1522         </tr>
1523       </table>
1524     </form>
1525
1526   </xsl:template>
1527
1528   <!--+++++++++++++++ Subscriptions ++++++++++++++++++++-->
1529   <xsl:template match="subscriptions">
1530     <table id="subsTable">
1531       <tr>
1532         <td class="cals">
1533           <h3>Public calendars</h3>
1534           <p class="smaller">
1535             Select a calendar below to add a <em><strong>new</strong></em>
1536             internal subscription. <!-- or
1537             <a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">
1538             subscribe to an external calendar</a>.-->
1539           </p>
1540           <ul id="calendarTree">
1541             <xsl:apply-templates select="/bedeworkadmin/subscriptions/subscribe/calendars/calendar" mode="subscribe"/>
1542           </ul>
1543         </td>
1544         <td class="subs">
1545           <xsl:choose>
1546             <xsl:when test="/bedeworkadmin/page='subscriptions'">
1547               <xsl:call-template name="subscriptionList"/>
1548             </xsl:when>
1549             <xsl:when test="/bedeworkadmin/creating='true'">
1550               <xsl:apply-templates select="subscription" mode="addSubscription"/>
1551             </xsl:when>
1552             <xsl:otherwise>
1553               <xsl:apply-templates select="subscription" mode="modSubscription"/>
1554             </xsl:otherwise>
1555           </xsl:choose>
1556         </td>
1557       </tr>
1558     </table>
1559   </xsl:template>
1560
1561   <xsl:template match="calendar" mode="subscribe">
1562     <xsl:variable name="id" select="id"/>
1563     <xsl:variable name="itemClass">
1564       <xsl:choose>
1565         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1566         <xsl:otherwise>calendar</xsl:otherwise>
1567       </xsl:choose>
1568     </xsl:variable>
1569     <li class="{$itemClass}">
1570       <a href="{$subscriptions-initAdd}&amp;calId={$id}">
1571         <xsl:value-of select="name"/>
1572       </a>
1573       <xsl:if test="calendar">
1574         <ul>
1575           <xsl:apply-templates select="calendar" mode="subscribe">
1576             <xsl:sort select="title" order="ascending" case-order="upper-first"/>
1577           </xsl:apply-templates>
1578         </ul>
1579       </xsl:if>
1580     </li>
1581   </xsl:template>
1582
1583   <xsl:template match="subscription" mode="addSubscription">
1584     <h2>Add new subscription</h2>
1585     <p class="note">*the subsciption name must be unique</p>
1586     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
1587       <table class="eventFormTable">
1588         <tr>
1589           <th>Name*:</th>
1590           <td>
1591             <xsl:variable name="subName" select="name"/>
1592             <input value="{$subName}" name="subscription.name" size="60"/>
1593           </td>
1594         </tr>
1595         <xsl:if test="internal='false'">
1596           <tr>
1597             <th>Uri:</th>
1598             <td>
1599               <xsl:variable name="subUri" select="uri"/>
1600               <input value="{$subUri}" name="subscription.uri" size="60"/>
1601             </td>
1602           </tr>
1603         </xsl:if>
1604         <tr>
1605           <th>Display:</th>
1606           <td>
1607             <input type="radio" value="true" name="subscription.display"/> yes
1608             <input type="radio" value="false" name="subscription.display" checked="checked"/> no
1609           </td>
1610         </tr>
1611         <tr>
1612           <th>Style:</th>
1613           <td>
1614             <xsl:variable name="subStyle" select="style"/>
1615             <input value="{$subStyle}" name="subscription.style" size="60"/>
1616           </td>
1617         </tr>
1618       </table>
1619       <table border="0" width="100%" id="submitTable">
1620         <tr>
1621           <td>
1622             <input type="submit" name="addSubscription" value="Add Subscription" class="padRight"/>
1623             <input type="submit" name="cancelled" value="Cancel"/>
1624             <input type="reset" value="Clear"/>
1625           </td>
1626         </tr>
1627       </table>
1628     </form>
1629   </xsl:template>
1630
1631   <xsl:template match="subscription" mode="modSubscription">
1632     <h2>Modify subscription</h2>
1633     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
1634       <table class="eventFormTable">
1635         <tr>
1636           <th>Name*:</th>
1637           <td>
1638             <xsl:value-of select="name"/>
1639           </td>
1640         </tr>
1641         <xsl:choose>
1642           <xsl:when test="internal='false'">
1643             <tr>
1644               <th>Uri:</th>
1645               <td>
1646                 <xsl:variable name="subUri" select="uri"/>
1647                 <input value="{$subUri}" name="subscription.uri" size="60"/>
1648               </td>
1649             </tr>
1650           </xsl:when>
1651           <xsl:otherwise>
1652             <tr>
1653               <th>Uri:</th>
1654               <td>
1655                 <xsl:value-of select="uri"/>
1656               </td>
1657             </tr>
1658           </xsl:otherwise>
1659         </xsl:choose>
1660         <tr>
1661           <th>Display:</th>
1662           <td>
1663             <xsl:choose>
1664               <xsl:when test="display='true'">
1665                 <input type="radio" value="true" name="subscription.display" checked="checked"/> yes
1666                 <input type="radio" value="false" name="subscription.display"/> no
1667               </xsl:when>
1668               <xsl:otherwise>
1669                 <input type="radio" value="true" name="subscription.display"/> yes
1670                 <input type="radio" value="false" name="subscription.display" checked="checked"/> no
1671               </xsl:otherwise>
1672             </xsl:choose>
1673           </td>
1674         </tr>
1675         <tr>
1676           <th>Style:</th>
1677           <td>
1678             <xsl:variable name="subStyle" select="style"/>
1679             <input value="{$subStyle}" name="subscription.style" size="60"/>
1680           </td>
1681         </tr>
1682       </table>
1683       <table border="0" width="100%" id="submitTable">
1684         <tr>
1685           <td>
1686             <input type="submit" name="updateSubscription" value="Update Subscription" class="padRight"/>
1687             <input type="submit" name="cancelled" value="Cancel" class="padRight"/>
1688             <input type="reset" value="Reset" class="padRight"/>
1689           </td>
1690           <td align="right">
1691             <input type="submit" name="delete" value="Delete Subscription"/>
1692           </td>
1693         </tr>
1694       </table>
1695     </form>
1696   </xsl:template>
1697
1698   <xsl:template name="subscriptionList">
1699     <h3>Current subscriptions</h3>
1700     <table id="commonListTable">
1701       <tr>
1702         <th>Name</th>
1703         <th>URI</th>
1704         <th>Style</th>
1705         <th>Display</th>
1706         <th>External</th>
1707         <th>Deleted?</th>
1708       </tr>
1709       <xsl:for-each select="subscription">
1710         <xsl:sort select="name" order="ascending" case-order="upper-first"/>
1711         <tr>
1712           <td>
1713             <xsl:variable name="subname" select="name"/>
1714             <a href="{$subscriptions-fetchForUpdate}&amp;subname={$subname}">
1715               <xsl:value-of select="name"/>
1716             </a>
1717           </td>
1718           <td>
1719             <xsl:value-of select="uri"/>
1720           </td>
1721           <td>
1722             <xsl:value-of select="style"/>
1723           </td>
1724           <td class="center">
1725             <xsl:if test="display='true'">
1726               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
1727             </xsl:if>
1728           </td>
1729           <td class="center">
1730             <xsl:if test="internal='false'">
1731               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
1732             </xsl:if>
1733           </td>
1734           <td class="center">
1735             <xsl:if test="calendarDeleted='true'">
1736               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
1737             </xsl:if>
1738           </td>
1739         </tr>
1740       </xsl:for-each>
1741     </table>
1742     <!--<h4><a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">Subscribe to a remote calendar</a> (by URI)</h4>-->
1743   </xsl:template>
1744
1745   <!--+++++++++++++++ Views ++++++++++++++++++++-->
1746   <xsl:template match="views" mode="viewList">
1747
1748     <h3>Add a new view</h3>
1749     <form name="addView" action="{$view-addView}" method="post">
1750       <input type="text" name="name" size="60"/>
1751       <input type="submit" value="add view" name="addview"/>
1752     </form>
1753
1754     <h3>Views</h3>
1755     <table id="commonListTable">
1756       <tr>
1757         <th>Name</th>
1758         <th>Included subscriptions</th>
1759       </tr>
1760
1761       <xsl:for-each select="view">
1762         <xsl:sort select="name" order="ascending" case-order="upper-first"/>
1763         <tr>
1764           <td>
1765             <xsl:variable name="viewName" select="name"/>
1766             <a href="{$view-fetchForUpdate}&amp;name={$viewName}">
1767               <xsl:value-of select="name"/>
1768             </a>
1769           </td>
1770           <td>
1771             <xsl:for-each select="subscriptions/subscription">
1772               <xsl:value-of select="name"/>
1773               <xsl:if test="position()!=last()">, </xsl:if>
1774             </xsl:for-each>
1775           </td>
1776         </tr>
1777       </xsl:for-each>
1778     </table>
1779   </xsl:template>
1780
1781   <xsl:template name="modView">
1782     <h2>Update View</h2>
1783     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
1784     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
1785     <table id="viewsTable">
1786       <tr>
1787         <td class="subs">
1788           <h3>Available Subscriptions:</h3>
1789
1790           <table class="subscriptionsListSubs">
1791             <xsl:for-each select="/bedeworkadmin/subscriptions/subscription">
1792               <xsl:sort select="name" order="ascending" case-order="upper-first"/>
1793               <xsl:if test="not(/bedeworkadmin/views/view/subscriptions/subscription/name=name)">
1794                 <tr>
1795                   <td>
1796                     <xsl:value-of select="name"/>
1797                   </td>
1798                   <td class="arrows">
1799                     <xsl:variable name="subAddName" select="name"/>
1800                     <a href="{$view-update}&amp;name={$viewName}&amp;add={$subAddName}">
1801                       <img src="{$resourcesRoot}/resources/arrowRight.gif"
1802                         width="13" height="13" border="0"
1803                         alt="add subscription"/>
1804                     </a>
1805                   </td>
1806                 </tr>
1807               </xsl:if>
1808             </xsl:for-each>
1809           </table>
1810         </td>
1811         <td class="view">
1812           <h3>Active Subscriptions:</h3>
1813           <table class="subscriptionsListView">
1814             <xsl:for-each select="/bedeworkadmin/views/view/subscriptions/subscription">
1815               <xsl:sort select="name" order="ascending" case-order="upper-first"/>
1816               <tr>
1817                 <td class="arrows">
1818                   <xsl:variable name="subRemoveName" select="name"/>
1819                   <a href="{$view-update}&amp;name={$viewName}&amp;remove={$subRemoveName}">
1820                     <img src="{$resourcesRoot}/resources/arrowLeft.gif"
1821                         width="13" height="13" border="0"
1822                         alt="add subscription"/>
1823                   </a>
1824                 </td>
1825                 <td>
1826                   <xsl:value-of select="name"/>
1827                 </td>
1828               </tr>
1829             </xsl:for-each>
1830           </table>
1831         </td>
1832       </tr>
1833     </table>
1834     <table border="0" width="100%" id="submitTable">
1835       <tr>
1836         <td>
1837           <input type="button" name="return" value="Return to Views Listing" class="padRight" onclick="javascript:location.replace('{$view-fetch}')"/>
1838         </td>
1839         <td align="right">
1840           <input type="button" name="delete" value="Delete View" onclick="javascript:location.replace('{$view-fetchForUpdate}&amp;name={$viewName}&amp;delete=yes')"/>
1841         </td>
1842       </tr>
1843     </table>
1844   </xsl:template>
1845
1846   <xsl:template name="deleteViewConfirm">
1847     <h2>Remove View?</h2>
1848
1849     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
1850     <p>The following view will be removed. Continue?</p>
1851
1852     <h3 class="viewName"><xsl:value-of select="$viewName"/></h3>
1853     <form name="removeView" action="{$view-remove}">
1854       <input type="hidden" name="name" value="{$viewName}"/>
1855       <input type="submit" name="delete" value="Yes: Remove View" class="padRight"/>
1856       <input type="submit" name="cancelled" value="No: Cancel"/>
1857     </form>
1858
1859   </xsl:template>
1860
1861   <!--+++++++++++++++ Timezones ++++++++++++++++++++-->
1862   <xsl:template name="uploadTimezones">
1863     <h2>Upload Timezones</h2>
1864     <form name="peForm" method="post" action="{$timezones-upload}" enctype="multipart/form-data">
1865       <input type="file" name="uploadFile" size="40" value=""/>
1866       <input type="submit" name="doUpload" value="Upload Timezones"/>
1867       <input type="submit" name="cancelled" value="Cancel"/>
1868     </form>
1869   </xsl:template>
1870
1871   <!--+++++++++++++++ Authuser ++++++++++++++++++++-->
1872   <xsl:template name="authUserList">
1873     <h2>Modify Administrators</h2>
1874
1875     <div id="authUserInputForms">
1876       <form name="getUserRolesForm" action="{$authuser-fetchForUpdate}" method="post">
1877         Edit admin roles by userid: <input type="text" name="editAuthUserId" size="20"/>
1878         <input type="submit" value="go" name="submit"/>
1879       </form>
1880     </div>
1881
1882     <table id="commonListTable">
1883       <tr>
1884         <th>UserId</th>
1885         <th>Roles</th>
1886         <th></th>
1887       </tr>
1888
1889       <xsl:for-each select="bedeworkadmin/authUsers/authUser">
1890         <xsl:sort select="account" order="ascending" case-order="upper-first"/>
1891         <tr>
1892           <td>
1893             <xsl:value-of select="account"/>
1894           </td>
1895           <td>
1896             <xsl:if test="publicEventUser='true'">
1897               publicEvent; <xsl:text> </xsl:text>
1898             </xsl:if>
1899             <xsl:if test="superUser='true'">
1900               superUser; <xsl:text> </xsl:text>
1901             </xsl:if>
1902             <xsl:if test="alertUser='true'">
1903               alert; <xsl:text> </xsl:text>
1904             </xsl:if>
1905           </td>
1906           <td>
1907             <xsl:variable name="account" select="account"/>
1908             <a href="{$authuser-fetchForUpdate}&amp;editAuthUserId={$account}">
1909               edit
1910             </a>
1911           </td>
1912         </tr>
1913       </xsl:for-each>
1914     </table>
1915   </xsl:template>
1916
1917   <xsl:template name="modAuthUser">
1918     <h2>Update Administrator</h2>
1919     <xsl:variable name="modAuthUserAction" select="/bedeworkadmin/formElements/form/@action"/>
1920     <form action="{$modAuthUserAction}" method="post">
1921       <table id="eventFormTable">
1922         <tr>
1923           <td class="fieldName">
1924             Account:
1925           </td>
1926           <td>
1927             <xsl:value-of select="/bedeworkadmin/formElements/form/account"/>
1928           </td>
1929         </tr>
1930         <tr>
1931           <td class="fieldName">
1932             Alerts:
1933           </td>
1934           <td>
1935             <xsl:copy-of select="/bedeworkadmin/formElements/form/alerts/*"/>
1936           </td>
1937         </tr>
1938         <tr>
1939           <td class="fieldName">
1940             Public Events:
1941           </td>
1942           <td>
1943             <xsl:copy-of select="/bedeworkadmin/formElements/form/publicEvents/*"/>
1944           </td>
1945         </tr>
1946         <tr>
1947           <td class="fieldName">
1948             Super User:
1949           </td>
1950           <td>
1951             <xsl:copy-of select="/bedeworkadmin/formElements/form/superUser/*"/>
1952           </td>
1953         </tr>
1954         <tr>
1955           <td class="optional">
1956             Email:
1957           </td>
1958           <td>
1959             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
1960             <span class="fieldInfo"></span>
1961           </td>
1962         </tr>
1963         <tr>
1964           <td class="optional">
1965             Phone:
1966           </td>
1967           <td>
1968             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
1969             <span class="fieldInfo"></span>
1970           </td>
1971         </tr>
1972         <tr>
1973           <td class="optional">
1974             Department:
1975           </td>
1976           <td>
1977             <xsl:copy-of select="/bedeworkadmin/formElements/form/dept/*"/>
1978             <span class="fieldInfo"></span>
1979           </td>
1980         </tr>
1981         <tr>
1982           <td class="optional">
1983             Last name:
1984           </td>
1985           <td>
1986             <xsl:copy-of select="/bedeworkadmin/formElements/form/lastName/*"/>
1987             <span class="fieldInfo"></span>
1988           </td>
1989         </tr>
1990         <tr>
1991           <td class="optional">
1992             First name:
1993           </td>
1994           <td>
1995             <xsl:copy-of select="/bedeworkadmin/formElements/form/firstName/*"/>
1996             <span class="fieldInfo"></span>
1997           </td>
1998         </tr>
1999       </table>
2000       <br />
2001
2002       <input type="submit" name="modAuthUser" value="Update" class="padRight"/>
2003       <input type="reset" value="Reset"/>
2004       <input type="submit" name="cancelled" value="Cancel"/>
2005     </form>
2006   </xsl:template>
2007
2008   <!--+++++++++++++++ User Prefs ++++++++++++++++++++-->
2009   <xsl:template name="modPrefs">
2010     <h2>Edit User Preferences</h2>
2011     <form name="userPrefsForm" method="post" action="{$prefs-update}">
2012       <table id="eventFormTable">
2013         <tr>
2014           <td class="fieldName">
2015             User:
2016           </td>
2017           <td>
2018             <xsl:value-of select="/bedeworkadmin/prefs/user"/>
2019             <xsl:variable name="user" select="/bedeworkadmin/prefs/user"/>
2020             <input type="hidden" name="user" value="{$user}"/>
2021           </td>
2022         </tr>
2023         <tr>
2024           <td class="fieldName">
2025             Preferred view:
2026           </td>
2027           <td>
2028             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
2029             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
2030           </td>
2031         </tr>
2032         <tr>
2033           <td class="fieldName">
2034             Preferred view period:
2035           </td>
2036           <td>
2037             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
2038             <input type="text" name="viewPeriod" value="{$preferredViewPeriod}" size="40"/>
2039           </td>
2040         </tr>
2041         <tr>
2042           <td class="fieldName">
2043             Skin name:
2044           </td>
2045           <td>
2046             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
2047             <input type="text" name="skin" value="{$skinName}" size="40"/>
2048           </td>
2049         </tr>
2050         <tr>
2051           <td class="fieldName">
2052             Skin style:
2053           </td>
2054           <td>
2055             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
2056             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
2057           </td>
2058         </tr>
2059       </table>
2060       <br />
2061
2062       <input type="submit" name="modPrefs" value="Update" class="padRight"/>
2063       <input type="reset" value="Reset"/>
2064       <input type="submit" name="cancelled" value="Cancel"/>
2065     </form>
2066   </xsl:template>
2067
2068   <!--+++++++++++++++ Admin Groups ++++++++++++++++++++-->
2069   <xsl:template name="listAdminGroups">
2070     <h2>Modify Groups</h2>
2071     <form name="adminGroupMembersForm" method="post" action="{$admingroup-initUpdate}">
2072       <xsl:choose>
2073         <xsl:when test="/bedeworkadmin/groups/showMembers='true'">
2074           <input type="radio" name="showAgMembers" value="false" onclick="document.adminGroupMembersForm.submit();"/>
2075           Hide members
2076           <input type="radio" name="showAgMembers" value="true" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
2077           Show members
2078         </xsl:when>
2079         <xsl:otherwise>
2080           <input type="radio" name="showAgMembers" value="false" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
2081           Hide members
2082           <input type="radio" name="showAgMembers" value="true" onclick="document.adminGroupMembersForm.submit();"/>
2083           Show members
2084         </xsl:otherwise>
2085       </xsl:choose>
2086     </form>
2087
2088     <p>Click on the group name to modify the group owner or description.<br/>
2089     Click "add/remove members" to modify group membership.</p>
2090     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
2091     <table id="commonListTable">
2092       <tr>
2093         <th>Name</th>
2094         <th>Description</th>
2095         <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
2096           <th>Members</th>
2097         </xsl:if>
2098         <th></th>
2099       </tr>
2100       <xsl:for-each select="/bedeworkadmin/groups/group">
2101         <xsl:variable name="groupName" select="name"/>
2102         <tr>
2103           <td>
2104             <a href="{$admingroup-fetchForUpdate}&amp;adminGroupName={$groupName}">
2105               <xsl:value-of select="name"/>
2106             </a>
2107           </td>
2108           <td>
2109             <xsl:value-of select="desc"/>
2110           </td>
2111           <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
2112             <td>
2113               <xsl:for-each select="members/member">
2114                   <xsl:value-of select="."/>&#160;
2115               </xsl:for-each>
2116             </td>
2117           </xsl:if>
2118           <td>
2119             <a href="{$admingroup-fetchForUpdateMembers}&amp;adminGroupName={$groupName}">Add/Remove members</a>
2120           </td>
2121         </tr>
2122       </xsl:for-each>
2123     </table>
2124     <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/></p>
2125   </xsl:template>
2126
2127   <xsl:template match="groups" mode="chooseGroup">
2128     <h2>Choose Your Administrative Group</h2>
2129
2130     <table id="commonListTable">
2131
2132       <tr>
2133         <th>Name</th>
2134         <th>Description</th>
2135       </tr>
2136
2137       <xsl:for-each select="group">
2138         <tr>
2139           <td>
2140             <xsl:variable name="admGroupName" select="name"/>
2141             <a href="{$setup}&amp;adminGroupName={$admGroupName}">
2142               <xsl:copy-of select="name"/>
2143             </a>
2144           </td>
2145           <td>
2146             <xsl:value-of select="desc"/>
2147           </td>
2148         </tr>
2149       </xsl:for-each>
2150     </table>
2151   </xsl:template>
2152
2153   <xsl:template name="modAdminGroup">
2154     <xsl:choose>
2155       <xsl:when test="/bedeworkadmin/creating = 'true'">
2156         <h2>Add Group</h2>
2157       </xsl:when>
2158       <xsl:otherwise>
2159         <h2>Modify Group</h2>
2160       </xsl:otherwise>
2161     </xsl:choose>
2162     <form name="peForm" method="post" action="{$admingroup-update}">
2163       <table id="adminGroupFormTable">
2164         <tr>
2165           <td class="fieldName">
2166             Name:
2167           </td>
2168           <td>
2169             <xsl:choose>
2170               <xsl:when test="/bedeworkadmin/creating = 'true'">
2171                 <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
2172               </xsl:when>
2173               <xsl:otherwise>
2174                 <xsl:value-of  select="/bedeworkadmin/formElements/form/name"/>
2175               </xsl:otherwise>
2176             </xsl:choose>
2177           </td>
2178         </tr>
2179         <tr>
2180           <td class="fieldName">
2181             Description:
2182           </td>
2183           <td>
2184             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
2185           </td>
2186         </tr>
2187         <tr>
2188           <td class="fieldName">
2189             Group owner:
2190           </td>
2191           <td>
2192             <xsl:copy-of select="/bedeworkadmin/formElements/form/groupOwner/*"/>
2193           </td>
2194         </tr>
2195         <tr>
2196           <td class="fieldName">
2197             Events owner:
2198           </td>
2199           <td>
2200             <xsl:copy-of select="/bedeworkadmin/formElements/form/eventsOwner/*"/>
2201           </td>
2202         </tr>
2203       </table>
2204       <table border="0" width="100%" id="submitTable">
2205         <tr>
2206           <td>
2207             <xsl:choose>
2208               <xsl:when test="/bedeworkadmin/creating = 'true'">
2209                 <input type="submit" name="updateAdminGroup" value="Add Admin Group" class="padRight"/>
2210                 <input type="submit" name="cancelled" value="Cancel"/>
2211                 <input type="reset" value="Clear"/>
2212               </xsl:when>
2213               <xsl:otherwise>
2214                 <input type="submit" name="updateAdminGroup" value="Update Admin Group" class="padRight"/>
2215                 <input type="submit" name="cancelled" value="Cancel"/>
2216                 <input type="reset" value="Reset"/>
2217               </xsl:otherwise>
2218             </xsl:choose>
2219           </td>
2220           <td align="right">
2221             <input type="submit" name="delete" value="Delete"/>
2222           </td>
2223         </tr>
2224       </table>
2225     </form>
2226   </xsl:template>
2227
2228   <xsl:template name="modAdminGroupMembers">
2229     <h2>Update Group Membership</h2>
2230     <p>Enter a userid and click "add" or "remove" to change group membership.</p>
2231     <form name="adminGroupMembersForm" method="post" action="{$admingroup-updateMembers}">
2232       <table id="adminGroupFormTable">
2233         <tr>
2234           <td class="fieldName">
2235             Name:
2236           </td>
2237           <td>
2238             <xsl:value-of select="/bedeworkadmin/adminGroup/name"/>
2239           </td>
2240         </tr>
2241         <tr>
2242           <td class="fieldName">
2243             Members:
2244           </td>
2245           <td>
2246             <xsl:for-each select="/bedeworkadmin/adminGroup/members/member">
2247               <xsl:value-of select="."/>&#160;
2248             </xsl:for-each>
2249           </td>
2250         </tr>
2251         <tr>
2252           <td class="fieldName">
2253             Add/remove member:
2254           </td>
2255           <td>
2256             <input type="text" name="updGroupMember" size="15"/>
2257             <input type="submit" name="addGroupMember" value="Add"/>
2258             <input type="submit" name="removeGroupMember" value="Remove"/>
2259           </td>
2260         </tr>
2261       </table>
2262       <p><input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initUpdate}')" value="Return to Admin Group listing"/></p>
2263     </form>
2264   </xsl:template>
2265
2266   <xsl:template name="deleteAdminGroupConfirm">
2267     <h2>Delete Admin Group?</h2>
2268     <p>The following group will be deleted. Continue?</p>
2269     <p>
2270       <strong><xsl:value-of select="/bedeworkadmin/groups/group/name"/></strong>:
2271       <xsl:value-of select="/bedeworkadmin/groups/group/desc"/>
2272     </p>
2273     <form  name="adminGroupDelete" method="post" action="{$admingroup-delete}">
2274       <input type="submit" name="removeAdminGroupOK" value="Yes: Delete!"/>
2275       <input type="submit" name="cancelled" value="No: Cancel"/>
2276     </form>
2277   </xsl:template>
2278
2279   <!--==== HEADER TEMPLATES and NAVIGATION  ====-->
2280
2281   <xsl:template name="header">
2282     <div id="header">
2283      <!-- Uncomment this code and replace the following logo
2284           to brand your administrative interface.
2285
2286       <img id="logo"
2287           alt="logo"
2288           src="{$resourcesRoot}/resources/caladminlogo.gif"
2289           align="right"
2290           border="0"/> -->
2291
2292       <!-- set the page heading: -->
2293       <h1>
2294         <xsl:choose>
2295           <xsl:when test="/bedeworkadmin/page='modEvent' or
2296                           /bedeworkadmin/page='eventList'">
2297             <xsl:choose>
2298               <xsl:when test="/bedeworkadmin/creating='true'">
2299                 Add a Public Event
2300               </xsl:when>
2301               <xsl:otherwise>
2302                 Update a Public Event
2303               </xsl:otherwise>
2304             </xsl:choose>
2305           </xsl:when>
2306           <xsl:when test="/bedeworkadmin/page='displayEvent'">
2307             Display Event
2308           </xsl:when>
2309           <xsl:when test="/bedeworkadmin/page='sponsorList'">
2310             Manage Contacts
2311           </xsl:when>
2312           <xsl:when test="/bedeworkadmin/page='modSponsor'">
2313             Update Contact Info
2314           </xsl:when>
2315           <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm'">
2316             Delete Contact
2317           </xsl:when>
2318           <xsl:when test="/bedeworkadmin/page='locationList'">
2319             Manage Locations
2320           </xsl:when>
2321           <xsl:when test="/bedeworkadmin/page='modLocation'">
2322             Update Location
2323           </xsl:when>
2324           <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'">
2325             Delete Location
2326           </xsl:when>
2327           <xsl:when test="/bedeworkadmin/page='calendarList' or /bedeworkadmin/page='modCalendar'">
2328             Manage Calendars
2329           </xsl:when>
2330           <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'">
2331             Manage Subscriptions
2332           </xsl:when>
2333           <xsl:when test="/bedeworkadmin/page='views' or /bedeworkadmin/page='modView'">
2334             Manage Views
2335           </xsl:when>
2336           <xsl:when test="/bedeworkadmin/page='authUserList' or /bedeworkadmin/page='modAuthUser'">
2337             Manage Public Events Administrators
2338           </xsl:when>
2339           <xsl:when test="/bedeworkadmin/page='chooseGroup'">
2340             Choose Administrative Group
2341           </xsl:when>
2342           <xsl:when test="/bedeworkadmin/page='adminGroupList' or
2343                           /bedeworkadmin/page='modAdminGroup' or
2344                           /bedeworkadmin/page='modAdminGroup' or
2345                           /bedeworkadmin/page='modAdminGroupMembers'">
2346             Manage Administrative Groups
2347           </xsl:when>
2348           <xsl:when test="/bedeworkadmin/page='noGroup'">
2349             No Administrative Group
2350           </xsl:when>
2351           <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
2352             Time Zones
2353           </xsl:when>
2354           <xsl:when test="/bedeworkadmin/page='noAccess'">
2355             Access Denied
2356           </xsl:when>
2357           <xsl:when test="/bedeworkadmin/page='error'">
2358             Error
2359           </xsl:when>
2360           <xsl:otherwise>
2361             Bedework Calendar Administration
2362           </xsl:otherwise>
2363         </xsl:choose>
2364       </h1>
2365
2366       <xsl:if test="/bedeworkadmin/message">
2367         <div id="messages">
2368           <p><xsl:apply-templates select="/bedeworkadmin/message"/></p>
2369         </div>
2370       </xsl:if>
2371       <xsl:if test="/bedeworkadmin/error">
2372         <div id="errors">
2373           <p><xsl:apply-templates select="/bedeworkadmin/error"/></p>
2374         </div>
2375       </xsl:if>
2376
2377     </div>
2378     <table id="statusBarTable">
2379       <tr>
2380         <td class="leftCell">
2381           <a href="{$setup}">Main Menu</a> |
2382           <a href="{$publicCal}" target="calendar">Launch Calendar</a> |
2383           <a href="{$logout}">Log Out</a> |
2384           <!-- Enable the following two items when debugging skins only -->
2385           <a href="?refreshXslt=yes">Refresh XSL</a> |
2386           <a href="?noxslt=yes">Show XML</a> (view source)
2387         </td>
2388         <xsl:if test="/bedeworkadmin/userInfo/user">
2389           <td class="rightCell">
2390             Logged in as:
2391             <span class="status">
2392               <xsl:value-of select="/bedeworkadmin/userInfo/user"/>
2393             </span>
2394             &#160;
2395             <xsl:if test="/bedeworkadmin/userInfo/group">
2396               Group:
2397               <span class="status">
2398                 <xsl:value-of select="/bedeworkadmin/userInfo/group"/>
2399               </span>
2400             </xsl:if>
2401           </td>
2402         </xsl:if>
2403       </tr>
2404     </table>
2405     <table width="100%" border="0" cellpadding="0" cellspacing="0">
2406       <tr>
2407         <td width="50%"><img alt="" src="{$resourcesRoot}/resources/std-title-space.gif"
2408                              width="100%" height="16" border="0"/></td>
2409         <td><img src="{$resourcesRoot}/resources/std-title.gif" width="485" height="16"
2410                  border="0"
2411                  alt="Calendar of Events"/></td>
2412         <td width="50%"><img alt="" src="{$resourcesRoot}/resources/std-title-space.gif"
2413                              width="100%" height="16" border="0"/></td>
2414       </tr>
2415     </table>
2416   </xsl:template>
2417
2418   <!--==== FOOTER ====-->
2419   <xsl:template name="footer">
2420     <div id="footer">
2421       <a href="http://www.bedework.org/">Bedework website</a>
2422     </div>
2423   </xsl:template>
2424 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.