root/branches/xslt-rewrite/deployment/resources/xsl/default/default/navigation.xsl

Revision 1639 (checked in by kllin, 5 years ago)

first test of i18n. added swedish and english translation of head title.

Line 
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
5   <!-- DEFINE INCLUDES -->
6   <xsl:include href="../../../bedework-common/default/default/errors.xsl" />
7   <xsl:include href="../../../bedework-common/default/default/messages.xsl" />
8
9   <!--==== HEAD SECTION  ====-->
10   <xsl:template name="headSection">
11     <title>"{$head.title}"</title>
12     <meta name="robots" content="noindex,nofollow"/>
13     <meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
14     <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/>
15     <link rel="stylesheet" href="{$resourcesRoot}/default/default/subColors.css"/>
16     <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" />
17     <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" />
18     <!-- note: the non-breaking spaces in the script bodies below are to avoid
19          losing the script closing tags (which avoids browser problems) -->
20     <script type="text/javascript" src="{$resourcesRoot}/resources/bedework.js">&#160;</script>
21     <xsl:if test="/bedework/page='modSchedulingPrefs' or
22                   /bedework/page='modPrefs' or
23                   /bedework/page='attendeeRespond'">
24       <script type="text/javascript" src="{$resourcesRoot}/resources/bedeworkPrefs.js">&#160;</script>
25     </xsl:if>
26     <xsl:if test="/bedework/page='modCalendar' or
27                   /bedework/page='eventAccess'">
28       <script type="text/javascript" src="{$resourcesRoot}/resources/bedeworkAccess.js">&#160;</script>
29     </xsl:if>
30     <xsl:if test="/bedework/page='addEvent' or
31                   /bedework/page='editEvent' or
32                   /bedework/page='rdates' or
33                   /bedework/page='calendarListForExport'">
34       <script type="text/javascript" src="{$resourcesRoot}/resources/bwClock.js">&#160;</script>
35       <link rel="stylesheet" href="{$resourcesRoot}/resources/bwClock.css"/>
36       <script type="text/javascript" src="/bedework-common/javascript/dojo/dojo.js">&#160;</script>
37       <script type="text/javascript" src="{$resourcesRoot}/resources/bedeworkEventForm.js">&#160;</script>
38       <script type="text/javascript" src="{$resourcesRoot}/resources/bedeworkAccess.js">&#160;</script>
39       <xsl:if test="$portalFriendly = 'true'">
40         <script type="text/javascript" src="{$resourcesRoot}/resources/dynCalendarWidget.js">&#160;</script>
41         <link rel="stylesheet" href="{$resourcesRoot}/resources/dynCalendarWidget.css"/>
42       </xsl:if>
43     </xsl:if>
44     <xsl:if test="/bedework/editableAccess/access/acl/ace">
45       <script type="text/javascript">
46         <xsl:apply-templates select="/bedework/editableAccess/access/acl/ace" mode="initJS"/>
47       </script>
48     </xsl:if>
49     <script type="text/javascript">
50       <xsl:comment>
51       <![CDATA[
52       function checkStatus(inboxCount,changed,url) {
53       // Check status of inbox and outbox and alert user appropriately.
54       // Just take care of inbox for now.
55         if (inboxCount && changed) {
56           var itemStr = "item";
57           if (inboxCount > 1) {
58             itemStr = "items";
59           }
60           if (confirm("You have " + inboxCount + " pending " + itemStr + " in your inbox.\nGo to inbox?")) {
61             window.location.replace(url);
62           }
63         }
64       }
65       function focusElement(id) {
66       // focuses element by id
67         document.getElementById(id).focus();
68       }
69       ]]>
70       </xsl:comment>
71     </script>
72   </xsl:template>
73
74   <xsl:template name="headBar">
75     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable">
76       <tr>
77         <td colspan="3" id="logoCell"><a href="/bedework/"><img src="{$resourcesRoot}/resources/bedeworkLogo.gif" width="292" height="75" border="0" alt="Bedework"/></a></td>
78         <td colspan="2" id="schoolLinksCell">
79           <h2>Personal Calendar</h2>
80           <a href="{$publicCal}">Public Calendar</a> |
81           <a href="http://www.yourschoolhere.edu">School Home</a> |
82           <a href="http://www.bedework.org/">Other Link</a> |
83           <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51">
84             Example Calendar Help
85           </a>
86         </td>
87       </tr>
88     </table>
89     <table id="curDateRangeTable"  cellspacing="0">
90       <tr>
91         <td class="sideBarOpenCloseIcon">
92           <xsl:choose>
93             <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'">
94               <a href="?setappvar=sidebar(opened)">
95                 <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/>
96               </a>
97             </xsl:when>
98             <xsl:otherwise>
99               <a href="?setappvar=sidebar(closed)">
100                 <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/>
101               </a>
102             </xsl:otherwise>
103           </xsl:choose>
104         </td>
105         <td class="date">
106           <xsl:value-of select="/bedework/firstday/longdate"/>
107           <xsl:if test="/bedework/periodname!='Day'">
108             -
109             <xsl:value-of select="/bedework/lastday/longdate"/>
110           </xsl:if>
111         </td>
112         <td class="rssPrint">
113           <a href="javascript:window.print()" title="print this view">
114             <img alt="print this view" src="{$resourcesRoot}/resources/std-print-icon.gif" width="20" height="14" border="0"/> print
115           </a>
116           <a class="rss" href="{$setup}&amp;setappvar=summaryMode(details)&amp;skinName=rss" title="RSS feed">RSS</a>
117         </td>
118       </tr>
119     </table>
120   </xsl:template>
121
122   <xsl:template name="messagesAndErrors">
123     <xsl:if test="/bedework/message">
124       <ul id="messages">
125         <xsl:for-each select="/bedework/message">
126           <li><xsl:apply-templates select="."/></li>
127         </xsl:for-each>
128       </ul>
129     </xsl:if>
130     <xsl:if test="/bedework/error">
131       <ul id="errors">
132         <xsl:for-each select="/bedework/error">
133           <li><xsl:apply-templates select="."/></li>
134         </xsl:for-each>
135       </ul>
136     </xsl:if>
137   </xsl:template>
138
139   <xsl:template name="sideBar">
140     <h3>
141       <!--<img alt="manage views" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/>-->
142       views
143     </h3>
144     <ul id="myViews">
145       <xsl:choose>
146         <xsl:when test="/bedework/views/view">
147           <xsl:for-each select="/bedework/views/view">
148             <xsl:variable name="viewName" select="name"/>
149             <xsl:choose>
150               <xsl:when test="/bedework/selectionState/selectionType = 'view'
151                               and name=/bedework/selectionState/view/name">
152                 <li class="selected"><a href="{$setSelection}&amp;viewName={$viewName}"><xsl:value-of select="name"/></a></li>
153               </xsl:when>
154               <xsl:otherwise>
155                 <li><a href="{$setSelection}&amp;viewName={$viewName}"><xsl:value-of select="name"/></a></li>
156               </xsl:otherwise>
157             </xsl:choose>
158           </xsl:for-each>
159         </xsl:when>
160         <xsl:otherwise>
161           <li class="none">no views</li>
162         </xsl:otherwise>
163       </xsl:choose>
164     </ul>
165
166     <h3>
167       <a href="{$calendar-fetch}" title="manage calendars">
168         manage
169       </a>
170       calendars
171     </h3>
172     <!-- normal calendars -->
173     <ul class="calendarTree">
174       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar/calendar[calType &lt; 2]" mode="myCalendars"/>
175     </ul>
176     <!-- special calendars: inbox, outbox, and trash -->
177     <ul class="calendarTree">
178       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar/calendar[calType = 5]" mode="mySpecialCalendars"/> <!-- inbox -->
179       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar/calendar[calType = 6]" mode="mySpecialCalendars"/> <!-- outbox -->
180       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar/calendar[calType = 2]" mode="mySpecialCalendars"/> <!-- trash -->
181       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar/calendar[calType = 3]" mode="mySpecialCalendars"/> <!-- deleted -->
182     </ul>
183
184     <h3>
185       <a href="{$subscriptions-fetch}" title="manage subscriptions">
186         manage
187       </a>
188       subscriptions
189     </h3>
190     <ul class="calendarTree">
191       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable>
192       <xsl:choose>
193         <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]">
194           <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]" mode="mySubscriptions"/>
195         </xsl:when>
196         <xsl:otherwise>
197           <li class="none">no subscriptions</li>
198         </xsl:otherwise>
199       </xsl:choose>
200     </ul>
201
202     <h3>options</h3>
203     <ul id="sideBarMenu">
204       <li><a href="{$category-initUpdate}">Manage Categories</a></li>
205       <li><a href="{$location-initUpdate}">Manage Locations</a></li>
206       <li><a href="{$prefs-fetchForUpdate}">Preferences</a></li>
207       <li><a href="{$initUpload}" title="upload event">Upload iCAL</a></li>
208       <li><a href="{$calendar-listForExport}" title="upload event">Export Calendars</a></li>
209     </ul>
210   </xsl:template>
211
212   <xsl:template name="tabs">
213     <xsl:variable name="navAction">
214       <xsl:choose>
215         <xsl:when test="/bedework/page='attendees'"><xsl:value-of select="$event-attendeesForEvent"/></xsl:when>
216         <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when>
217         <xsl:otherwise><xsl:value-of select="$setViewPeriod"/></xsl:otherwise>
218       </xsl:choose>
219     </xsl:variable>
220     <table cellspacing="0" id="tabsTable">
221       <tr>
222         <td>
223           <xsl:choose>
224             <xsl:when test="/bedework/periodname='Day'">
225               <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-on.gif" width="90" height="20" border="0" alt="DAY"/></a>
226             </xsl:when>
227             <xsl:otherwise>
228               <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-off.gif" width="90" height="20" border="0" alt="DAY"/></a>
229             </xsl:otherwise>
230           </xsl:choose>
231         </td>
232         <td>
233           <xsl:choose>
234             <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
235               <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a>
236              </xsl:when>
237             <xsl:otherwise>
238               <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
239              </xsl:otherwise>
240           </xsl:choose>
241         </td>
242         <td>
243           <xsl:choose>
244             <xsl:when test="/bedework/periodname='Month'">
245               <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a>
246             </xsl:when>
247             <xsl:otherwise>
248               <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
249             </xsl:otherwise>
250           </xsl:choose>
251         </td>
252         <td>
253           <xsl:choose>
254             <!-- don't allow switching to year for free busy view, so only use setViewPeriod action -->
255             <xsl:when test="/bedework/periodname='Year'">
256               <a href="{$setViewPeriod}&amp;viewType=yearView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-year-on.gif" width="92" height="20" border="0" alt="YEAR"/></a>
257             </xsl:when>
258             <xsl:otherwise>
259               <xsl:choose>
260                 <xsl:when test="/bedework/page='attendees' or /bedework/page='freeBusy'">
261                   <img src="{$resourcesRoot}/resources/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/>
262                 </xsl:when>
263                 <xsl:otherwise>
264                   <a href="{$setViewPeriod}&amp;viewType=yearView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
265                 </xsl:otherwise>
266               </xsl:choose>
267             </xsl:otherwise>
268           </xsl:choose>
269         </td>
270         <td class="rightCell">
271           logged in as
272           <xsl:text> </xsl:text>
273           <strong><xsl:value-of select="/bedework/userid"/></strong>
274           <xsl:text> </xsl:text>
275           <span class="logout"><a href="{$setup}&amp;logout=true">logout</a></span>
276         </td>
277       </tr>
278     </table>
279   </xsl:template>
280
281   <xsl:template name="navigation">
282     <xsl:variable name="navAction">
283       <xsl:choose>
284         <xsl:when test="/bedework/page='attendees'"><xsl:value-of select="$event-attendeesForEvent"/></xsl:when>
285         <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when>
286         <xsl:otherwise><xsl:value-of select="$setViewPeriod"/></xsl:otherwise>
287       </xsl:choose>
288     </xsl:variable>
289     <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable">
290       <tr>
291         <td class="leftCell">
292           <a href="{$navAction}&amp;date={$prevdate}"><img src="{$resourcesRoot}/resources/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a>
293           <a href="{$navAction}&amp;date={$nextdate}"><img src="{$resourcesRoot}/resources/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a>
294           <xsl:choose>
295             <xsl:when test="/bedework/periodname='Year'">
296               <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
297             </xsl:when>
298             <xsl:when test="/bedework/periodname='Month'">
299               <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
300             </xsl:when>
301             <xsl:when test="/bedework/periodname='Week'">
302               Week of <xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/>
303             </xsl:when>
304             <xsl:otherwise>
305               <xsl:value-of select="/bedework/firstday/longdate"/>
306             </xsl:otherwise>
307           </xsl:choose>
308         </td>
309         <td class="todayButton">
310           <a href="{$navAction}&amp;viewType=todayView&amp;date={$curdate}">
311             <img src="{$resourcesRoot}/resources/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/>
312           </a>
313         </td>
314         <td align="right" class="gotoForm">
315           <form name="calForm" method="post" action="{$navAction}">
316              <table border="0" cellpadding="0" cellspacing="0">
317               <tr>
318                 <xsl:if test="/bedework/periodname!='Year'">
319                   <td>
320                     <select name="viewStartDate.month">
321                       <xsl:for-each select="/bedework/monthvalues/val">
322                         <xsl:variable name="temp" select="."/>
323                         <xsl:variable name="pos" select="position()"/>
324                         <xsl:choose>
325                           <xsl:when test="/bedework/monthvalues[start=$temp]">
326                             <option value="{$temp}" selected="selected">
327                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
328                             </option>
329                           </xsl:when>
330                           <xsl:otherwise>
331                             <option value="{$temp}">
332                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
333                             </option>
334                           </xsl:otherwise>
335                         </xsl:choose>
336                       </xsl:for-each>
337                     </select>
338                   </td>
339                   <xsl:if test="/bedework/periodname!='Month'">
340                     <td>
341                       <select name="viewStartDate.day">
342                         <xsl:for-each select="/bedework/dayvalues/val">
343                           <xsl:variable name="temp" select="."/>
344                           <xsl:variable name="pos" select="position()"/>
345                           <xsl:choose>
346                             <xsl:when test="/bedework/dayvalues[start=$temp]">
347                               <option value="{$temp}" selected="selected">
348                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
349                               </option>
350                             </xsl:when>
351                             <xsl:otherwise>
352                               <option value="{$temp}">
353                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
354                               </option>
355                             </xsl:otherwise>
356                           </xsl:choose>
357                         </xsl:for-each>
358                       </select>
359                     </td>
360                   </xsl:if>
361                 </xsl:if>
362                 <td>
363                   <xsl:variable name="temp" select="/bedework/yearvalues/start"/>
364                   <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/>
365                 </td>
366                 <td>
367                   <input name="submit" type="submit" value="go"/>
368                 </td>
369               </tr>
370             </table>
371           </form>
372         </td>
373       </tr>
374     </table>
375   </xsl:template>
376
377   <xsl:template name="utilBar">
378     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="utilBarTable">
379        <tr>
380          <td class="leftCell">
381            <xsl:if test="/bedework/page != 'addEvent' or /bedework/page='editEvent'">
382              <input type="button" value="add..." onclick="toggleActionIcons('bwActionIcons-0','bwActionIcons')"/>
383              <xsl:call-template name="actionIcons">
384                <xsl:with-param name="actionIconsId">bwActionIcons-0</xsl:with-param>
385                <xsl:with-param name="startDate">
386                  <xsl:choose>
387                    <xsl:when test="/bedework/periodname = 'day'"><xsl:value-of select="/bedework/firstday/date"/></xsl:when>
388                    <xsl:otherwise><xsl:value-of select="/bedework/now/date"/></xsl:otherwise>
389                  </xsl:choose>
390                </xsl:with-param>
391              </xsl:call-template>
392            </xsl:if>
393          </td>
394          <td class="rightCell">
395
396            <!-- search -->
397            <xsl:if test="/bedework/page!='searchResult'">
398              <form name="searchForm" method="post" action="{$search}">
399                Search:
400                <input type="text" name="query" size="15">
401                  <xsl:attribute name="value"><xsl:value-of select="/bedework/searchResults/query"/></xsl:attribute>
402                </input>
403                <input type="submit" name="submit" value="go"/>
404              </form>
405            </xsl:if>
406
407            <!-- show free / busy -->
408            <xsl:choose>
409              <xsl:when test="/bedework/periodname!='Year'">
410                <xsl:choose>
411                  <xsl:when test="/bedework/page='freeBusy'">
412                    <a href="{$setViewPeriod}&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-events.gif" width="70" height="21" border="0" alt="show events"/></a>
413                  </xsl:when>
414                  <xsl:otherwise>
415                    <a href="{$freeBusy-fetch}&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-freebusy.gif" width="70" height="21" border="0" alt="show free/busy"/></a>
416                  </xsl:otherwise>
417                </xsl:choose>
418              </xsl:when>
419              <xsl:otherwise>
420                <img src="{$resourcesRoot}/resources/std-button-freebusy-off.gif" width="70" height="21" border="0" alt="show free/busy"/>
421              </xsl:otherwise>
422            </xsl:choose>
423
424            <!-- toggle list / calendar view -->
425            <xsl:choose>
426              <xsl:when test="/bedework/periodname='Day'">
427                <img src="{$resourcesRoot}/resources/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
428              </xsl:when>
429              <xsl:when test="/bedework/periodname='Year'">
430                <img src="{$resourcesRoot}/resources/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
431              </xsl:when>
432              <xsl:when test="/bedework/periodname='Month'">
433                <xsl:choose>
434                  <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
435                    <a href="{$setup}&amp;setappvar=monthViewMode(cal)" title="toggle list/calendar view">
436                      <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
437                    </a>
438                  </xsl:when>
439                  <xsl:otherwise>
440                    <a href="{$setup}&amp;setappvar=monthViewMode(list)" title="toggle list/calendar view">
441                      <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
442                    </a>
443                  </xsl:otherwise>
444                </xsl:choose>
445              </xsl:when>
446              <xsl:otherwise>
447                <xsl:choose>
448                  <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'">
449                    <a href="{$setup}&amp;setappvar=weekViewMode(cal)" title="toggle list/calendar view">
450                      <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
451                    </a>
452                  </xsl:when>
453                  <xsl:otherwise>
454                    <a href="{$setup}&amp;setappvar=weekViewMode(list)" title="toggle list/calendar view">
455                      <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
456                    </a>
457                  </xsl:otherwise>
458                </xsl:choose>
459              </xsl:otherwise>
460            </xsl:choose>
461
462            <!-- summary / detailed mode toggle -->
463            <xsl:choose>
464              <xsl:when test="/bedework/periodname='Year' or
465                               (/bedework/periodname='Month' and
466                               (/bedework/appvar[key='monthViewMode']/value='cal' or
467                                not(/bedework/appvar[key='monthViewMode']))) or
468                               (/bedework/periodname='Week' and
469                               (/bedework/appvar[key='weekViewMode']/value='cal' or
470                                not(/bedework/appvar[key='weekViewMode'])))">
471                <xsl:choose>
472                  <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
473                    <img src="{$resourcesRoot}/resources/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
474                  </xsl:when>
475                  <xsl:otherwise>
476                    <img src="{$resourcesRoot}/resources/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
477                  </xsl:otherwise>
478                </xsl:choose>
479              </xsl:when>
480              <xsl:otherwise>
481                <xsl:choose>
482                  <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
483                    <a href="{$setup}&amp;setappvar=summaryMode(summary)" title="toggle summary/detailed view">
484                      <img src="{$resourcesRoot}/resources/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
485                    </a>
486                  </xsl:when>
487                  <xsl:otherwise>
488                    <a href="{$setup}&amp;setappvar=summaryMode(details)" title="toggle summary/detailed view">
489                      <img src="{$resourcesRoot}/resources/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
490                    </a>
491                  </xsl:otherwise>
492                </xsl:choose>
493              </xsl:otherwise>
494            </xsl:choose>
495
496            <!-- refresh button -->
497            <a href="{$setup}"><img src="{$resourcesRoot}/resources/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a>
498          </td>
499        </tr>
500     </table>
501   </xsl:template>
502
503   <xsl:template name="footer">
504     <div id="footer">
505       Demonstration calendar; place footer information here.
506     </div>
507     <table id="skinSelectorTable" border="0" cellpadding="0" cellspacing="0">
508       <tr>
509         <td class="leftCell">
510           <a href="http://www.bedework.org/">Bedework Website</a> |
511           <a href="?noxslt=yes">show XML</a> |
512           <a href="?refreshXslt=yes">refresh XSLT</a>
513         </td>
514         <td class="rightCell">
515           <!--<form name="skinSelectForm" method="post" action="{$setup}">
516             skin selector:
517             <select name="skinNameSticky" onchange="submit()">
518               <option>select a skin</option>
519               <option value="default">Demo Calendar</option>
520               <option value="rensselaer">Rensselaer</option>
521               <option value="washington">Washington</option>
522             </select>
523           </form>-->
524         </td>
525       </tr>
526     </table>
527   </xsl:template>
528
529   <!--==== DEPENDENT TEMPLATES ====-->
530
531   <!-- return string values to be loaded into javascript for access control
532        forms, method 2 -->
533   <xsl:template match="ace" mode="initJS"><!--
534   --><xsl:variable name="who"><!--
535    --><xsl:choose>
536         <xsl:when test="invert">
537           <xsl:choose>
538             <xsl:when test="invert/principal/href"><xsl:value-of select="normalize-space(invert/principal/href)"/></xsl:when>
539             <xsl:when test="invert/principal/property"><xsl:value-of select="name(invert/principal/property/*)"/></xsl:when>
540             <xsl:otherwise><xsl:value-of select="name(invert/principal/*)"/></xsl:otherwise>
541           </xsl:choose>
542         </xsl:when>
543         <xsl:otherwise>
544           <xsl:choose>
545             <xsl:when test="principal/href"><xsl:value-of select="normalize-space(principal/href)"/></xsl:when>
546             <xsl:when test="principal/property"><xsl:value-of select="name(principal/property/*)"/></xsl:when>
547             <xsl:otherwise><xsl:value-of select="name(principal/*)"/></xsl:otherwise>
548           </xsl:choose>
549         </xsl:otherwise>
550       </xsl:choose><!--
551   --></xsl:variable><!--
552   --><xsl:variable name="whoType"><!--
553    --><xsl:choose>
554         <xsl:when test="contains($who,/bedework/syspars/userPrincipalRoot)">user</xsl:when>
555         <xsl:when test="contains($who,/bedework/syspars/groupPrincipalRoot)">group</xsl:when>
556         <xsl:when test="$who='authenticated'">auth</xsl:when>
557         <xsl:when test="$who='unauthenticated'">unauth</xsl:when>
558         <xsl:when test="$who='all'">all</xsl:when>
559         <xsl:when test="invert/principal/property/owner">other</xsl:when>
560         <xsl:when test="principal/property"><xsl:value-of select="name(principal/property/*)"/></xsl:when>
561         <xsl:when test="invert/principal/property"><xsl:value-of select="name(invert/principal/property/*)"/></xsl:when>
562         <xsl:otherwise></xsl:otherwise>
563       </xsl:choose><!--
564  --></xsl:variable><!--
565  --><xsl:variable name="aclString"><!--
566    --><xsl:if test="grant"><!--
567      --><xsl:for-each select="grant/*"><xsl:call-template name="grantDenyToInternal"><xsl:with-param name="name"><xsl:value-of select="name(.)"/></xsl:with-param></xsl:call-template></xsl:for-each><!--
568    --></xsl:if><!--
569    --><xsl:if test="deny"><!--
570      --><xsl:for-each select="deny/*">-<xsl:call-template name="grantDenyToInternal"><xsl:with-param name="name"><xsl:value-of select="name(.)"/></xsl:with-param></xsl:call-template></xsl:for-each><!--
571    --></xsl:if><!--
572  --></xsl:variable><!--
573  --><xsl:variable name="inherited"><!--
574    --><xsl:choose>
575        <xsl:when test="inherited"><xsl:value-of select="inherited/href"/></xsl:when>
576        <xsl:otherwise></xsl:otherwise>
577      </xsl:choose><!--
578   --></xsl:variable><!--
579   --><xsl:variable name="invert"><!--
580     --><xsl:choose>
581          <xsl:when test="invert">true</xsl:when>
582          <xsl:otherwise>false</xsl:otherwise>
583        </xsl:choose><!--
584   --></xsl:variable>
585   <!-- now initialize the object:-->
586     bwAcl.init('<xsl:value-of select="$who"/>','<xsl:value-of select="$whoType"/>','<xsl:value-of select="$aclString"/>','<xsl:value-of select="$inherited"/>','<xsl:value-of select="$invert"/>');
587   </xsl:template>
588
589   <xsl:template match="calendar" mode="myCalendars">
590     <xsl:variable name="id" select="id"/>
591     <li>
592       <xsl:attribute name="class">
593         <xsl:choose>
594           <xsl:when test="/bedework/selectionState/selectionType = 'calendar'
595                           and path = /bedework/selectionState/subscriptions/subscription/calendar/path">selected</xsl:when>
596           <xsl:when test="name='Trash'">trash</xsl:when>
597           <xsl:when test="calendarCollection='false'">folder</xsl:when>
598           <xsl:otherwise>calendar</xsl:otherwise>
599         </xsl:choose>
600       </xsl:attribute>
601       <xsl:variable name="calPath" select="path"/>
602       <a href="{$setSelection}&amp;calUrl={$calPath}">
603         <xsl:value-of select="name"/>
604       </a>
605       <xsl:if test="calendar">
606         <ul>
607           <xsl:apply-templates select="calendar" mode="myCalendars"/>
608         </ul>
609       </xsl:if>
610       <xsl:if test="calendarCollection='true'">
611         <!-- set the start date for adding an event to the first day of the
612              given period, the hour of "now", and give a duration of 60 minutes -->
613         <xsl:variable name="startDate"><xsl:value-of select="/bedework/firstday/date"/>T<xsl:value-of select="substring(/bedework/now/time,1,2)"/>0000</xsl:variable>
614         <!-- skip setting duration for now; this should be set in the user's prefs-->
615         <!-- <a href="{$initEvent}&amp;startdate={$startDate}&amp;newCalPath={$calPath}&amp;minutes=60" class="calendarAdd" title="add event"> -->
616         <a href="{$initEvent}&amp;startdate={$startDate}&amp;newCalPath={$calPath}" class="calendarAdd" title="add event">
617           <img src="{$resourcesRoot}/resources/addEvent-forCals-icon.gif" width="9" height="12" border="0" alt="add event"/>
618         </a>
619       </xsl:if>
620     </li>
621   </xsl:template>
622
623   <xsl:template match="calendar" mode="mySpecialCalendars">
624     <!-- calTypes: Trash = 2, Deleted = 3, Busy = 4, Inbox = 5, Outbox = 6  -->
625     <xsl:variable name="id" select="id"/>
626     <li>
627       <xsl:attribute name="class">
628         <xsl:choose>
629           <xsl:when test="/bedework/selectionState/selectionType = 'calendar'
630                           and path = /bedework/selectionState/subscriptions/subscription/calendar/path">selected</xsl:when>
631           <xsl:when test="calType='2' or calType='3'">trash</xsl:when>
632           <xsl:when test="calType='5'">inbox</xsl:when>
633           <xsl:when test="calType='6'">outbox</xsl:when>
634           <xsl:when test="calendarCollection='false'">folder</xsl:when>
635           <xsl:otherwise>calendar</xsl:otherwise>
636         </xsl:choose>
637       </xsl:attribute>
638       <xsl:variable name="calPath" select="path"/>
639         <xsl:choose>
640           <xsl:when test="calType='5'">
641             <a href="{$showInbox}" title="incoming scheduling requests">
642               <xsl:value-of select="name"/>
643             </a>
644             <xsl:text> </xsl:text>
645             <xsl:if test="/bedework/inboxState/numActive != '0'">
646               <span class="inoutboxActive">(<xsl:value-of select="/bedework/inboxState/numActive"/>)</span>
647             </xsl:if>
648           </xsl:when>
649           <xsl:when test="calType='6'">
650             <a href="{$showOutbox}" title="outgoing scheduling requests">
651               <xsl:value-of select="name"/>
652             </a>
653             <xsl:text> </xsl:text>
654             <xsl:if test="/bedework/outboxState/numActive != '0'">
655               <span class="inoutboxActive">(<xsl:value-of select="/bedework/outboxState/numActive"/>)</span>
656             </xsl:if>
657           </xsl:when>
658           <xsl:otherwise>
659             <a href="{$setSelection}&amp;calUrl={$calPath}">
660               <xsl:attribute name="title">
661                 <xsl:choose>
662                   <xsl:when test="calType = 2">Contains items you have access to delete.</xsl:when>
663                   <xsl:when test="calType = 3">Used to mask items you do not have access to truly delete, such as many subscribed events.</xsl:when>
664                 </xsl:choose>
665               </xsl:attribute>
666               <xsl:value-of select="name"/>
667             </a>
668           </xsl:otherwise>
669         </xsl:choose>
670       <xsl:if test="calendar">
671         <ul>
672           <xsl:apply-templates select="calendar" mode="myCalendars"/>
673         </ul>
674       </xsl:if>
675     </li>
676   </xsl:template>
677
678   <xsl:template match="subscription" mode="mySubscriptions">
679     <li>
680       <xsl:attribute name="class">
681         <xsl:choose>
682           <xsl:when test="/bedework/selectionState/selectionType = 'subscription'
683                           and /bedework/selectionState/subscriptions/subscription/name = name">selected</xsl:when>
684           <xsl:when test="calendarDeleted = 'true'">deleted</xsl:when>
685           <xsl:otherwise>calendar</xsl:otherwise>
686         </xsl:choose>
687       </xsl:attribute>
688       <xsl:variable name="subName" select="name"/>
689       <xsl:if test="style != '' and style != 'default'">
690         <!-- the spacer gif approach allows us to avoid some IE misbehavior -->
691         <xsl:variable name="subStyle" select="style"/>
692         <img src="{$resourcesRoot}/resources/spacer.gif" width="6" height="6" alt="subscription style" class="subStyle {$subStyle}"/>
693       </xsl:if>
694       <xsl:choose>
695         <xsl:when test="calendarDeleted = 'true'">
696           <a href="{$subscriptions-inaccessible}" title="underlying calendar is inaccessible">
697             <xsl:value-of select="name"/>
698           </a>
699         </xsl:when>
700         <xsl:otherwise>
701           <a href="{$setSelection}&amp;subname={$subName}">
702             <xsl:value-of select="name"/>
703           </a>
704         </xsl:otherwise>
705       </xsl:choose>
706       <xsl:if test="calendars/calendar/calendarCollection='true' and
707                     calendars/calendar/currentAccess/current-user-privilege-set/privilege/write-content">
708         <!-- set the start date for adding an event to the first day of the
709              given period, the hour of "now", and give a duration of 60 minutes -->
710         <xsl:variable name="calPath" select="calendars/calendar/encodedPath"/>
711         <xsl:variable name="startDate"><xsl:value-of select="/bedework/firstday/date"/>T<xsl:value-of select="substring(/bedework/now/time,1,2)"/>0000</xsl:variable>
712         <a href="{$initEvent}&amp;startdate={$startDate}&amp;newCalPath={$calPath}&amp;minutes=60" class="calendarAdd" title="add event">
713           <img src="{$resourcesRoot}/resources/addEvent-forCals-icon.gif" width="9" height="12" border="0" alt="add event"/>
714         </a>
715       </xsl:if>
716     </li>
717   </xsl:template>
718
719   <xsl:template name="actionIcons">
720     <xsl:param name="startDate"/>
721     <xsl:param name="actionIconsId"/>
722     <br/>
723     <div id="{$actionIconsId}" class="invisible">
724        <a href="{$initEvent}&amp;entityType=event&amp;startdate={$startDate}" title="add event" onclick="javascript:changeClass('{$actionIconsId}','invisible')">
725           <img src="{$resourcesRoot}/resources/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="add event"/>
726           add event
727        </a>
728        <a href="{$event-initMeeting}&amp;entityType=event&amp;schedule=request&amp;startdate={$startDate}" title="schedule a meeting" onclick="javascript:changeClass('{$actionIconsId}','invisible')">
729           <img src="{$resourcesRoot}/resources/std-icalMeeting-icon-small.gif" width="12" height="16" border="0" alt="schedule meeting"/>
730           schedule meeting
731        </a>
732        <a href="{$initEvent}&amp;entityType=task&amp;startdate={$startDate}" title="add task" onclick="javascript:changeClass('{$actionIconsId}','invisible')">
733           <img src="{$resourcesRoot}/resources/std-icalTask-icon-small.gif" width="12" height="16" border="0" alt="add task"/>
734           add task
735        </a>
736        <a href="{$event-initMeeting}&amp;entityType=task&amp;schedule=request&amp;startdate={$startDate}" title="schedule a task" onclick="javascript:changeClass('{$actionIconsId}','invisible')">
737           <img src="{$resourcesRoot}/resources/std-icalSchTask-icon-small.gif" width="12" height="16" border="0" alt="schedule task"/>
738           schedule task
739        </a>
740        <a href="{$initUpload}" title="upload event" onclick="javascript:changeClass('{$actionIconsId}','invisible')">
741           <img src="{$resourcesRoot}/resources/std-icalUpload-icon-small.gif" width="12" height="16" border="0" alt="upload event"/>
742           upload
743        </a>
744      </div>
745   </xsl:template>
746
747   <xsl:template name="grantDenyToInternal"><!--
748   --><xsl:param name="name"/><!--
749   --><xsl:choose>
750        <xsl:when test="$name = 'all'">A</xsl:when>
751        <xsl:when test="$name = 'read'">R</xsl:when>
752        <xsl:when test="$name = 'read-acl'">r</xsl:when>
753        <xsl:when test="$name = 'read-cuurrent-user-privilege-set'">P</xsl:when>
754        <xsl:when test="$name = 'read-free-busy'">F</xsl:when>
755        <xsl:when test="$name = 'write'">W</xsl:when>
756        <xsl:when test="$name = 'write-acl'">a</xsl:when>
757        <xsl:when test="$name = 'write-properties'">p</xsl:when>
758        <xsl:when test="$name = 'write-content'">c</xsl:when>
759        <xsl:when test="$name = 'bind'">b</xsl:when>
760        <xsl:when test="$name = 'schedule'">S</xsl:when>
761        <xsl:when test="$name = 'schedule-request'">t</xsl:when>
762        <xsl:when test="$name = 'schedule-reply'">y</xsl:when>
763        <xsl:when test="$name = 'schedule-free-busy'">s</xsl:when>
764        <xsl:when test="$name = 'unbind'">u</xsl:when>
765        <xsl:when test="$name = 'unlock'">U</xsl:when>
766        <xsl:when test="$name = 'none'">N</xsl:when>
767      </xsl:choose><!--
768 --></xsl:template>
769
770 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.