Changeset 1705

Show
Ignore:
Timestamp:
01/18/08 08:09:43
Author:
kllin
Message:

merging our xsl and i18n changes to xslt-rewrite branch

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/xslt-rewrite/build.xml

    r1623 r1705  
    5757  <property name="org.bedework.project.webdav" 
    5858            location="${org.bedework.projects}/webdav" /> 
     59 
     60 
     61  <target name="i18n" description="Creates lang.xsl from bedework.properties"> 
     62    <javac srcdir="util" /> 
     63    <jar destfile="util/make-lang.jar" 
     64         basedir="util" 
     65         includes="**/*.class" /> 
     66    <java classname="MakeLang" 
     67          classpath="util/make-lang.jar" 
     68          fork="true"> 
     69      <!-- read from file ...--> 
     70      <arg value="deployment/resources/i18n/bedework.properties" /> 
     71      <!-- and write to file --> 
     72      <arg value="deployment/resources/xsl/default/default/lang.xsl" /> 
     73    </java> 
     74    <delete> 
     75      <fileset dir="util" includes="*.class *.jar"/> 
     76    </delete> 
     77  </target> 
    5978 
    6079  <target name="README" depends="init" 
     
    213232                                build.webdav,build.caldav,build.caldavTest, 
    214233                                build.freebusy,build.bwtools,build.webapps, 
    215                                 build.testsuite,build.deployutil
     234                                build.testsuite,build.deployutil,i18n
    216235          description="builds the project"/> 
    217236 
     
    224243    <delete dir="${dist.home}" /> 
    225244    <delete dir="${bin.home}" /> 
     245        <delete file="deployment/resources/xsl/default/default/lang.xsl"/> 
    226246  </target> 
    227247 
  • branches/xslt-rewrite/build/buildfilters.xml

    r1281 r1705  
    1414    <filter token="HIBERNATE-DIALECT" 
    1515            value="${org.bedework.global.hibernate.dialect}" /> 
     16 
     17    <filter token="JDBC-DRIVER" 
     18            value="${org.bedework.global.jdbcdriver}" /> 
     19 
     20    <filter token="JDBC-URL" 
     21            value="${org.bedework.global.jdbcurl}" /> 
     22 
     23    <filter token="JDBC-ID" 
     24            value="${org.bedework.global.jdbcid}" /> 
     25 
     26    <filter token="JDBC-PW" 
     27            value="${org.bedework.global.jdbcpw}" /> 
    1628 
    1729    <filter token="SECOND-LEVEL-CACHING" 
  • branches/xslt-rewrite/build/buildwar.xml

    r1605 r1705  
    169169 
    170170    <!-- =============================================================== 
     171         Add all java resource bundles 
     172         =============================================================== --> 
     173    <copy todir="${app.dest.classes}"> 
     174      <fileset dir="${project.home}/deployment/resources/i18n"> 
     175        <include name="*.properties" /> 
     176      </fileset> 
     177    </copy> 
     178 
     179    <!-- =============================================================== 
    171180         Add hibernate jars and property files from calendar api. 
    172181         =============================================================== --> 
    173  
    174182    <copy todir="${app.dest.classes}"> 
    175183      <fileset dir="${org.bedework.project.calendarapi}/calCore/resources/properties" /> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/attendees.xsl

    r1636 r1705  
    55    <table id="attendees" class="widget" cellspacing="0"> 
    66      <tr> 
    7         <th colspan="4">Attendees</th> 
     7        <th colspan="4"><xsl:value-of select="$attendees.attendees.attendees" /></th> 
    88      </tr> 
    99      <tr class="subHead"> 
    1010        <xsl:if test="$trash = 'yes'"><td></td></xsl:if> 
    11         <td>attendee</td> 
    12         <td>role</td> 
    13         <td>status</td> 
     11        <td><xsl:value-of select="$attendees.attendees.attendee" /></td> 
     12        <td><xsl:value-of select="$attendees.attendees.role" /></td> 
     13        <td><xsl:value-of select="$attendees.attendees.status" /></td> 
    1414      </tr> 
    1515      <xsl:for-each select="attendee"> 
     
    6262        <xsl:choose> 
    6363          <xsl:when test="form/status = 'CANCELLED'"> 
    64             Meeting Cancelled 
     64            <xsl:value-of select="$attendees.attendeeRespond.meeting.cancelled" /> 
    6565          </xsl:when> 
    6666          <xsl:otherwise> 
    67             Meeting Request 
     67            <xsl:value-of select="$attendees.attendeeRespond.meeting.request" /> 
    6868            <xsl:if test="guidcals/calendar"> (update)</xsl:if> 
    6969          </xsl:otherwise> 
     
    7373        <tr> 
    7474          <th colspan="2" class="commonHeader"> 
    75             Organizer: 
     75            <xsl:value-of select="$attendees.attendeeRespond.meeting.organizer" /> 
    7676            <xsl:choose> 
    7777              <xsl:when test="organizer/cn != ''"> 
     
    8787        <tr> 
    8888          <td class="fieldname"> 
    89             Calendar: 
     89            <xsl:value-of select="$attendees.attendeeRespond.meeting.calendar" /> 
    9090          </td> 
    9191          <td class="fieldval scheduleActions"> 
     
    177177        </tr> 
    178178        <tr> 
    179           <td class="fieldname">Action:</td> 
     179          <td class="fieldname"> 
     180           <xsl:value-of select="$attendees.attendeeRespond.action" /> 
     181          </td> 
    180182          <td class="fieldval scheduleActions"> 
    181183            <xsl:choose> 
     
    184186                <input type="hidden" name="method" value="REPLY"/> 
    185187                <select name="cancelAction"> 
    186                   <option value="mark">mark event as cancelled</option> 
    187                   <option value="delete">delete event</option> 
     188                  <option value="mark"> 
     189                    <xsl:value-of select="$attendees.attendeeRespond.mark.cancelled" /> 
     190                  </option> 
     191                  <option value="delete"> 
     192                    <xsl:value-of select="$attendees.attendeeRespond.mark.delete" /> 
     193                  </option> 
    188194                </select> 
    189195              </xsl:when> 
     
    192198                <input type="radio" name="method" value="REPLY" checked="checked" onclick="swapScheduleDisplay('hide');"/>reply as 
    193199                <select name="partstat"> 
    194                   <option value="ACCEPTED">accepted</option> 
    195                   <option value="DECLINED">declined</option> 
    196                   <option value="TENTATIVE">tentative</option> 
     200                  <option value="ACCEPTED"> 
     201                    <xsl:value-of select="$attendees.attendeeRespond.accepted" /> 
     202                  </option> 
     203                  <option value="DECLINED"> 
     204                    <xsl:value-of select="$attendees.attendeeRespond.declined" /> 
     205                  </option> 
     206                  <option value="TENTATIVE"> 
     207                    <xsl:value-of select="$attendees.attendeeRespond.tentative" /> 
     208                  </option> 
    197209                </select><br/> 
    198210                <!--<input type="radio" name="method" value="REFRESH" onclick="swapScheduleDisplay('hide');"/>refresh this event<br/>--> 
    199                 <input type="radio" name="method" value="DELEGATE" onclick="swapScheduleDisplay('hide');"/>delegate to 
    200                 <input type="test" name="delegate" value=""/> (uri or account)<br/> 
    201                 <input type="radio" name="method" value="COUNTER" onclick="swapScheduleDisplay('show');"/>counter (suggest a different date, time, and/or location) 
     211                <input type="radio" name="method" value="DELEGATE" onclick="swapScheduleDisplay('hide');"/><xsl:value-of select="$attendees.attendeeRespond.delegate" /> 
     212                <input type="test" name="delegate" value=""/> <xsl:value-of select="$attendees.attendeeRespond.uri.or.account" /><br/> 
     213                <input type="radio" name="method" value="COUNTER" onclick="swapScheduleDisplay('show');"/><xsl:value-of select="$attendees.attendeeRespond.counter" /> 
    202214              </xsl:otherwise> 
    203215            </xsl:choose> 
     
    205217        </tr> 
    206218        <tr id="scheduleDateEdit" class="invisible"> 
    207           <td class="fieldname">New Date/Time:</td> 
     219          <td class="fieldname"> 
     220            <xsl:value-of select="$attendees.attendeeRespond.new.date.time" /> 
     221          </td> 
    208222          <td class="fieldval scheduleActions"> 
    209223            <!-- Set the timefields class for the first load of the page; 
     
    228242              </xsl:otherwise> 
    229243            </xsl:choose> 
    230             all day event<br/> 
     244            <xsl:value-of select="$attendees.attendeeRespond.all.day.event" /> 
     245            <br/> 
    231246            <div class="dateStartEndBox"> 
    232               <strong>Start:</strong> 
     247              <strong><xsl:value-of select="$attendees.attendeeRespond.start" /></strong> 
    233248              <div class="dateFields"> 
    234                 <span class="startDateLabel">Date </span> 
     249                <span class="startDateLabel"><xsl:value-of select="$attendees.attendeeRespond.date" /> </span> 
    235250                <xsl:copy-of select="form/start/month/*"/> 
    236251                <xsl:copy-of select="form/start/day/*"/> 
     
    263278            </div> 
    264279            <div class="dateStartEndBox"> 
    265               <strong>End:</strong> 
     280              <strong><xsl:value-of select="$attendees.attendeeRespond.end" /></strong> 
    266281              <xsl:choose> 
    267282                <xsl:when test="form/end/type='E'"> 
     
    272287                </xsl:otherwise> 
    273288              </xsl:choose> 
    274               Date 
     289              <xsl:value-of select="$attendees.attendeeRespond.date" /> 
    275290              <xsl:variable name="endDateTimeClass"> 
    276291                <xsl:choose> 
     
    321336                  </xsl:otherwise> 
    322337                </xsl:choose> 
    323                 Duration 
     338                <xsl:value-of select="$attendees.attendeeRespond.duration" /> 
    324339                <xsl:variable name="endDurationClass"> 
    325340                  <xsl:choose> 
     
    389404                  </xsl:otherwise> 
    390405                </xsl:choose> 
    391                 This event has no duration / end date 
     406                <xsl:value-of select="$attendees.attendeeRespond.has.no.duration" /> 
    392407              </div> 
    393408            </div> 
     
    395410        </tr> 
    396411        <tr id="scheduleLocationEdit" class="invisible"> 
    397           <td class="fieldname">New Location:</td> 
     412          <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.new.location" /></td> 
    398413          <td class="fieldval scheduleActions"> 
    399             <span class="std-text">choose: </span> 
     414            <span class="std-text"><xsl:value-of select="$attendees.attendeeRespond.choose" /> </span> 
    400415            <span id="eventFormLocationList"> 
    401416              <select name="eventLocationUid"> 
    402                 <option value="-1">select...</option> 
     417                <option value="-1"><xsl:value-of select="$attendees.attendeeRespond.select" /></option> 
    403418                <xsl:copy-of select="/bedework/formElements/form/location/locationmenu/select/*"/> 
    404419              </select> 
    405420            </span> 
    406             <span class="std-text"> or add new: </span> 
     421            <span class="std-text"> <xsl:value-of select="$attendees.attendeeRespond.add.new" /> </span> 
    407422            <input type="text" name="locationAddress.value" value="" /> 
    408423          </td> 
    409424        </tr> 
    410425        <tr> 
    411           <td class="fieldname">Comment:</td> 
     426          <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.comment" /></td> 
    412427          <td class="fieldval scheduleActions"> 
    413428            <textarea name="comment" cols="60" rows="2"> 
     
    425440        <tr> 
    426441          <td class="fieldname"> 
    427             Title: 
     442            <xsl:value-of select="$attendees.attendeeRespond.title" /> 
    428443          </td> 
    429444          <td class="fieldval"> 
     
    432447        </tr> 
    433448        <tr> 
    434           <td class="fieldname">Description:</td> 
     449          <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.description" /></td> 
    435450          <td class="fieldval"> 
    436451            <xsl:value-of select="/bedework/formElements/form/desc/textarea"/> 
     
    439454        <tr> 
    440455          <td class="fieldname"> 
    441             Date &amp; Time: 
     456            <xsl:value-of select="$attendees.attendeeRespond.date.and.time" /> 
    442457          </td> 
    443458          <td class="fieldval"> 
     
    457472            <xsl:if test="form/allDay/input/@checked='checked'"> 
    458473              <xsl:text> </xsl:text> 
    459               (all day) 
     474              <xsl:value-of select="$attendees.attendeeRespond.all.day" /> 
    460475            </xsl:if> 
    461476          </td> 
    462477        </tr> 
    463478        <tr> 
    464           <td class="fieldname">Location:</td> 
     479          <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.location" /></td> 
    465480          <td class="fieldval" align="left"> 
    466481            <xsl:if test="location/address = ''"> 
    467              <em>not specified</em> 
     482             <em><xsl:value-of select="$attendees.attendeeRespond.not.specified" /></em> 
    468483            </xsl:if> 
    469484            <xsl:value-of select="location/address"/> 
     
    472487        <xsl:if test="attendee"> 
    473488          <tr> 
    474             <td class="fieldname">Attendees:</td> 
     489            <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.attendees" /></td> 
    475490            <td class="fieldval"> 
    476491              <table id="attendees" cellspacing="0"> 
    477492                <tr> 
    478                   <th>role</th> 
    479                   <th>status</th> 
    480                   <th>attendee</th> 
     493                  <th><xsl:value-of select="$attendees.attendeeRespond.role" /></th> 
     494                  <th><xsl:value-of select="$attendees.attendeeRespond.status" /></th> 
     495                  <th><xsl:value-of select="$attendees.attendeeRespond.attendee" /></th> 
    481496                </tr> 
    482497                <xsl:for-each select="attendee"> 
     
    530545        <xsl:if test="form/link/input/@value != ''"> 
    531546          <tr> 
    532             <td class="fieldname">See:</td> 
     547            <td class="fieldname"><xsl:value-of select="$attendees.attendeeRespond.see" /></td> 
    533548            <td class="fieldval"> 
    534549              <a> 
     
    542557        <tr> 
    543558          <td class="fieldname"> 
    544             Status: 
     559            <xsl:value-of select="$attendees.attendeeRespond.status2" /> 
    545560          </td> 
    546561          <td class="fieldval"> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/boxes.xsl

    r1622 r1705  
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    33  <xsl:template match="inbox"> 
    4     <h2 class="common">Inbox</h2> 
     4    <h2 class="common"> <xsl:value-of select="$boxes.inbox.inbox" /></h2> 
    55    <table id="inoutbox" class="common" cellspacing="0"> 
    66      <tr> 
    77        <th class="commonHeader">&#160;</th> 
    8         <th class="commonHeader">sent</th> 
    9         <th class="commonHeader">from</th> 
    10         <th class="commonHeader">title</th> 
    11         <th class="commonHeader">start</th> 
    12         <th class="commonHeader">end</th> 
    13         <th class="commonHeader">method</th> 
     8        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.sent" /></th> 
     9        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.from" /></th> 
     10        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.title" /></th> 
     11        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.start" /></th> 
     12        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.end" /></th> 
     13        <th class="commonHeader"><xsl:value-of select="$boxes.inbox.method" /></th> 
    1414        <!--<th class="commonHeader">status</th>--> 
    1515        <th class="commonHeader">&#160;</th> 
     
    3535          <xsl:attribute name="class"> 
    3636            <xsl:choose> 
    37               <xsl:when test="scheduleState=0">unprocessed</xsl:when> 
    38               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    39               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    40               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    41               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
     37              <xsl:when test="scheduleState=0"><xsl:value-of select="$boxes.inbox.unprocessed"/></xsl:when> 
     38              <xsl:when test="scheduleMethod=1"><xsl:value-of select="$boxes.inbox.publish"/></xsl:when> 
     39              <xsl:when test="scheduleMethod=2"><xsl:value-of select="$boxes.inbox.request"/></xsl:when> 
     40              <xsl:when test="scheduleMethod=5"><xsl:value-of select="$boxes.inbox.cancel"/></xsl:when> 
     41              <xsl:when test="scheduleMethod=7 or scheduleMethod=8"><xsl:value-of select="$boxes.inbox.counter"/></xsl:when> 
    4242            </xsl:choose> 
    4343          </xsl:attribute> 
     
    136136 
    137137  <xsl:template match="outbox"> 
    138     <h2 class="common">Outbox</h2> 
     138    <h2 class="common"><xsl:value-of select="$boxes.outbox.outbox"/></h2> 
    139139    <table id="inoutbox" class="common" cellspacing="0"> 
    140140      <tr> 
    141141        <th class="commonHeader">&#160;</th> 
    142         <th class="commonHeader">sent</th> 
    143         <th class="commonHeader">organizer</th> 
    144         <th class="commonHeader">title</th> 
    145         <th class="commonHeader">start</th> 
    146         <th class="commonHeader">end</th> 
    147         <th class="commonHeader">method</th> 
    148         <th class="commonHeader">status</th> 
     142        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.sent"/></th> 
     143        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.organizer"/></th> 
     144        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.title"/></th> 
     145        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.start"/></th> 
     146        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.end"/></th> 
     147        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.method"/></th> 
     148        <th class="commonHeader"><xsl:value-of select="$boxes.outbox.status"/></th> 
    149149        <th class="commonHeader">&#160;</th> 
    150150        <th class="commonHeader">&#160;</th> 
     
    167167          <xsl:attribute name="class"> 
    168168            <xsl:choose> 
    169               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    170               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    171               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    172               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
     169              <xsl:when test="scheduleMethod=1"><xsl:value-of select="$boxes.outbox.publish"/></xsl:when> 
     170              <xsl:when test="scheduleMethod=2"><xsl:value-of select="$boxes.outbox.request"/></xsl:when> 
     171              <xsl:when test="scheduleMethod=5"><xsl:value-of select="$boxes.outbox.cancel"/></xsl:when> 
     172              <xsl:when test="scheduleMethod=7 or scheduleMethod=8"><xsl:value-of select="$boxes.outbox.counter"/></xsl:when> 
    173173            </xsl:choose> 
    174174          </xsl:attribute> 
     
    218218            <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    219219              <xsl:choose> 
    220                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    221                 <xsl:otherwise>processed</xsl:otherwise> 
     220                <xsl:when test="scheduleState=0"><em><xsl:value-of select="$boxes.outbox.unprocessed"/></em></xsl:when> 
     221                <xsl:otherwise><xsl:value-of select="$boxes.outbox.processed"/></xsl:otherwise> 
    222222              </xsl:choose> 
    223223            </a> 
     
    241241  <xsl:template match="scheduleMethod"> 
    242242    <xsl:choose> 
    243       <xsl:when test="node()=1">publish</xsl:when> 
    244       <xsl:when test="node()=2">request</xsl:when> 
    245       <xsl:when test="node()=3">reply</xsl:when> 
    246       <xsl:when test="node()=4">add</xsl:when> 
    247       <xsl:when test="node()=5">cancel</xsl:when> 
    248       <xsl:when test="node()=6">refresh</xsl:when> 
    249       <xsl:when test="node()=7">counter</xsl:when> 
    250       <xsl:when test="node()=8">declined</xsl:when><!-- declinecounter --> 
    251       <xsl:otherwise>unknown</xsl:otherwise> 
     243      <xsl:when test="node()=1"><xsl:value-of select="$boxes.scheduleMethod.publish" /></xsl:when> 
     244      <xsl:when test="node()=2"><xsl:value-of select="$boxes.scheduleMethod.request" /></xsl:when> 
     245      <xsl:when test="node()=3"><xsl:value-of select="$boxes.scheduleMethod.reply" /></xsl:when> 
     246      <xsl:when test="node()=4"><xsl:value-of select="$boxes.scheduleMethod.add" /></xsl:when> 
     247      <xsl:when test="node()=5"><xsl:value-of select="$boxes.scheduleMethod.cancel" /></xsl:when> 
     248      <xsl:when test="node()=6"><xsl:value-of select="$boxes.scheduleMethod.refresh" /></xsl:when> 
     249      <xsl:when test="node()=7"><xsl:value-of select="$boxes.scheduleMethod.counter" /></xsl:when> 
     250      <xsl:when test="node()=8"><xsl:value-of select="$boxes.scheduleMethod.declined" /></xsl:when><!-- declinecounter --> 
     251      <xsl:otherwise><xsl:value-of select="$boxes.scheduleMethod.unknown" /></xsl:otherwise> 
    252252    </xsl:choose> 
    253253  </xsl:template> 
    254254</xsl:stylesheet> 
    255 <?xml version="1.0" encoding="UTF-8"?> 
    256 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    257   <xsl:template match="inbox"> 
    258     <h2 class="common">Inbox</h2> 
    259     <table id="inoutbox" class="common" cellspacing="0"> 
    260       <tr> 
    261         <th class="commonHeader">&#160;</th> 
    262         <th class="commonHeader">sent</th> 
    263         <th class="commonHeader">from</th> 
    264         <th class="commonHeader">title</th> 
    265         <th class="commonHeader">start</th> 
    266         <th class="commonHeader">end</th> 
    267         <th class="commonHeader">method</th> 
    268         <!--<th class="commonHeader">status</th>--> 
    269         <th class="commonHeader">&#160;</th> 
    270         <th class="commonHeader">&#160;</th> 
    271       </tr> 
    272       <xsl:for-each select="events/event"> 
    273         <xsl:sort select="lastmod" order="descending"/> 
    274         <xsl:variable name="guid" select="guid"/> 
    275         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    276         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    277         <xsl:variable name="eventName" select="name"/> 
    278         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    279         <xsl:variable name="inboxItemAction"> 
    280           <xsl:choose> 
    281             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    282             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    283             <xsl:when test="scheduleMethod=6"><xsl:value-of select="$schedule-processRefresh"/></xsl:when> 
    284             <xsl:when test="scheduleMethod=7"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    285             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    286           </xsl:choose> 
    287         </xsl:variable> 
    288         <tr> 
    289           <xsl:attribute name="class"> 
    290             <xsl:choose> 
    291               <xsl:when test="scheduleState=0">unprocessed</xsl:when> 
    292               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    293               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    294               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    295               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    296             </xsl:choose> 
    297           </xsl:attribute> 
    298           <td> 
    299             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    300               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    301             </a> 
    302           </td> 
    303           <td> 
    304             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    305               <!--<xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    306               <!--<xsl:value-of select="lastmod"/>--> 
    307               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    308               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    309               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    310               <xsl:text> </xsl:text> 
    311               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    312             </a> 
    313           </td> 
    314           <td> 
    315             <xsl:choose> 
    316               <xsl:when test="scheduleMethod = '1' or 
    317                               scheduleMethod = '2' or 
    318                               scheduleMethod = '4' or 
    319                               scheduleMethod = '5' or 
    320                               scheduleMethod = '8'"> 
    321                 <xsl:if test="organizer"> 
    322                   <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    323                   <xsl:choose> 
    324                     <xsl:when test="organizer/cn != ''"> 
    325                       <xsl:value-of select="organizer/cn"/> 
    326                     </xsl:when> 
    327                     <xsl:otherwise> 
    328                       <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    329                     </xsl:otherwise> 
    330                   </xsl:choose> 
    331                   <xsl:if test="organizer/organizerUri != ''"> 
    332                     <a href="{$organizerUri}" class="emailIcon" title="email"> 
    333                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    334                     </a> 
    335                   </xsl:if> 
    336                 </xsl:if> 
    337               </xsl:when> 
    338               <xsl:otherwise> 
    339                 <xsl:if test="attendees/attendee"> 
    340                   <!-- there will only be one attendee at this point --> 
    341                   <xsl:variable name="attendeeUri" select="attendees/attendee/attendeeUri"/> 
    342                   <xsl:choose> 
    343                     <xsl:when test="attendees/attendee/cn != ''"> 
    344                       <xsl:value-of select="attendees/attendee/cn"/> 
    345                     </xsl:when> 
    346                     <xsl:otherwise> 
    347                       <xsl:value-of select="substring-after(attendees/attendee/attendeeUri,'mailto:')"/> 
    348                     </xsl:otherwise> 
    349                   </xsl:choose> 
    350                   <xsl:if test="$attendeeUri != ''"> 
    351                     <a href="{$attendeeUri}" class="emailIcon" title="email"> 
    352                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    353                     </a> 
    354                   </xsl:if> 
    355                 </xsl:if> 
    356               </xsl:otherwise> 
    357             </xsl:choose> 
    358           </td> 
    359           <td> 
    360             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    361               <xsl:value-of select="title"/> 
    362             </a> 
    363           </td> 
    364           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    365           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    366           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    367           <!--<td> 
    368             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    369               <xsl:choose> 
    370                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    371                 <xsl:otherwise>processed</xsl:otherwise> 
    372               </xsl:choose> 
    373             </a> 
    374           </td>--> 
    375           <td> 
    376             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    377             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    378               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    379             </a> 
    380           </td> 
    381           <td> 
    382             <a href="{$delInboxEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    383               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    384             </a> 
    385           </td> 
    386         </tr> 
    387       </xsl:for-each> 
    388     </table> 
    389   </xsl:template> 
    390  
    391   <xsl:template match="outbox"> 
    392     <h2 class="common">Outbox</h2> 
    393     <table id="inoutbox" class="common" cellspacing="0"> 
    394       <tr> 
    395         <th class="commonHeader">&#160;</th> 
    396         <th class="commonHeader">sent</th> 
    397         <th class="commonHeader">organizer</th> 
    398         <th class="commonHeader">title</th> 
    399         <th class="commonHeader">start</th> 
    400         <th class="commonHeader">end</th> 
    401         <th class="commonHeader">method</th> 
    402         <th class="commonHeader">status</th> 
    403         <th class="commonHeader">&#160;</th> 
    404         <th class="commonHeader">&#160;</th> 
    405       </tr> 
    406       <xsl:for-each select="events/event"> 
    407         <xsl:sort select="lastmod" order="descending"/> 
    408         <xsl:variable name="guid" select="guid"/> 
    409         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    410         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    411         <xsl:variable name="eventName" select="name"/> 
    412         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    413         <xsl:variable name="inboxItemAction"> 
    414           <xsl:choose> 
    415             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    416             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    417             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    418           </xsl:choose> 
    419         </xsl:variable> 
    420         <tr> 
    421           <xsl:attribute name="class"> 
    422             <xsl:choose> 
    423               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    424               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    425               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    426               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    427             </xsl:choose> 
    428           </xsl:attribute> 
    429           <td> 
    430             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    431               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    432             </a> 
    433           </td> 
    434           <td> 
    435             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    436               <!-- <xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    437               <!--<xsl:value-of select="lastmod"/>--> 
    438               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    439               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    440               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    441               <xsl:text> </xsl:text> 
    442               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    443             </a> 
    444           </td> 
    445           <td> 
    446             <xsl:if test="organizer"> 
    447               <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    448               <xsl:choose> 
    449                 <xsl:when test="organizer/cn != ''"> 
    450                   <xsl:value-of select="organizer/cn"/> 
    451                 </xsl:when> 
    452                 <xsl:otherwise> 
    453                   <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    454                 </xsl:otherwise> 
    455               </xsl:choose> 
    456               <xsl:if test="organizer/organizerUri != ''"> 
    457                 <a href="{$organizerUri}" class="emailIcon" title="email"> 
    458                   <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    459                 </a> 
    460               </xsl:if> 
    461             </xsl:if> 
    462           </td> 
    463           <td> 
    464             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    465               <xsl:value-of select="title"/> 
    466             </a> 
    467           </td> 
    468           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    469           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    470           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    471           <td> 
    472             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    473               <xsl:choose> 
    474                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    475                 <xsl:otherwise>processed</xsl:otherwise> 
    476               </xsl:choose> 
    477             </a> 
    478           </td> 
    479           <td> 
    480             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    481             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    482               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    483             </a> 
    484           </td> 
    485           <td> 
    486             <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    487               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    488             </a> 
    489           </td> 
    490         </tr> 
    491       </xsl:for-each> 
    492     </table> 
    493   </xsl:template> 
    494  
    495   <xsl:template match="scheduleMethod"> 
    496     <xsl:choose> 
    497       <xsl:when test="node()=1">publish</xsl:when> 
    498       <xsl:when test="node()=2">request</xsl:when> 
    499       <xsl:when test="node()=3">reply</xsl:when> 
    500       <xsl:when test="node()=4">add</xsl:when> 
    501       <xsl:when test="node()=5">cancel</xsl:when> 
    502       <xsl:when test="node()=6">refresh</xsl:when> 
    503       <xsl:when test="node()=7">counter</xsl:when> 
    504       <xsl:when test="node()=8">declined</xsl:when><!-- declinecounter --> 
    505       <xsl:otherwise>unknown</xsl:otherwise> 
    506     </xsl:choose> 
    507   </xsl:template> 
    508 </xsl:stylesheet> 
    509 <?xml version="1.0" encoding="UTF-8"?> 
    510 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    511   <xsl:template match="inbox"> 
    512     <h2 class="common">Inbox</h2> 
    513     <table id="inoutbox" class="common" cellspacing="0"> 
    514       <tr> 
    515         <th class="commonHeader">&#160;</th> 
    516         <th class="commonHeader">sent</th> 
    517         <th class="commonHeader">from</th> 
    518         <th class="commonHeader">title</th> 
    519         <th class="commonHeader">start</th> 
    520         <th class="commonHeader">end</th> 
    521         <th class="commonHeader">method</th> 
    522         <!--<th class="commonHeader">status</th>--> 
    523         <th class="commonHeader">&#160;</th> 
    524         <th class="commonHeader">&#160;</th> 
    525       </tr> 
    526       <xsl:for-each select="events/event"> 
    527         <xsl:sort select="lastmod" order="descending"/> 
    528         <xsl:variable name="guid" select="guid"/> 
    529         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    530         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    531         <xsl:variable name="eventName" select="name"/> 
    532         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    533         <xsl:variable name="inboxItemAction"> 
    534           <xsl:choose> 
    535             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    536             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    537             <xsl:when test="scheduleMethod=6"><xsl:value-of select="$schedule-processRefresh"/></xsl:when> 
    538             <xsl:when test="scheduleMethod=7"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    539             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    540           </xsl:choose> 
    541         </xsl:variable> 
    542         <tr> 
    543           <xsl:attribute name="class"> 
    544             <xsl:choose> 
    545               <xsl:when test="scheduleState=0">unprocessed</xsl:when> 
    546               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    547               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    548               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    549               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    550             </xsl:choose> 
    551           </xsl:attribute> 
    552           <td> 
    553             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    554               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    555             </a> 
    556           </td> 
    557           <td> 
    558             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    559               <!--<xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    560               <!--<xsl:value-of select="lastmod"/>--> 
    561               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    562               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    563               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    564               <xsl:text> </xsl:text> 
    565               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    566             </a> 
    567           </td> 
    568           <td> 
    569             <xsl:choose> 
    570               <xsl:when test="scheduleMethod = '1' or 
    571                               scheduleMethod = '2' or 
    572                               scheduleMethod = '4' or 
    573                               scheduleMethod = '5' or 
    574                               scheduleMethod = '8'"> 
    575                 <xsl:if test="organizer"> 
    576                   <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    577                   <xsl:choose> 
    578                     <xsl:when test="organizer/cn != ''"> 
    579                       <xsl:value-of select="organizer/cn"/> 
    580                     </xsl:when> 
    581                     <xsl:otherwise> 
    582                       <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    583                     </xsl:otherwise> 
    584                   </xsl:choose> 
    585                   <xsl:if test="organizer/organizerUri != ''"> 
    586                     <a href="{$organizerUri}" class="emailIcon" title="email"> 
    587                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    588                     </a> 
    589                   </xsl:if> 
    590                 </xsl:if> 
    591               </xsl:when> 
    592               <xsl:otherwise> 
    593                 <xsl:if test="attendees/attendee"> 
    594                   <!-- there will only be one attendee at this point --> 
    595                   <xsl:variable name="attendeeUri" select="attendees/attendee/attendeeUri"/> 
    596                   <xsl:choose> 
    597                     <xsl:when test="attendees/attendee/cn != ''"> 
    598                       <xsl:value-of select="attendees/attendee/cn"/> 
    599                     </xsl:when> 
    600                     <xsl:otherwise> 
    601                       <xsl:value-of select="substring-after(attendees/attendee/attendeeUri,'mailto:')"/> 
    602                     </xsl:otherwise> 
    603                   </xsl:choose> 
    604                   <xsl:if test="$attendeeUri != ''"> 
    605                     <a href="{$attendeeUri}" class="emailIcon" title="email"> 
    606                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    607                     </a> 
    608                   </xsl:if> 
    609                 </xsl:if> 
    610               </xsl:otherwise> 
    611             </xsl:choose> 
    612           </td> 
    613           <td> 
    614             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    615               <xsl:value-of select="title"/> 
    616             </a> 
    617           </td> 
    618           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    619           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    620           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    621           <!--<td> 
    622             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    623               <xsl:choose> 
    624                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    625                 <xsl:otherwise>processed</xsl:otherwise> 
    626               </xsl:choose> 
    627             </a> 
    628           </td>--> 
    629           <td> 
    630             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    631             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    632               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    633             </a> 
    634           </td> 
    635           <td> 
    636             <a href="{$delInboxEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    637               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    638             </a> 
    639           </td> 
    640         </tr> 
    641       </xsl:for-each> 
    642     </table> 
    643   </xsl:template> 
    644  
    645   <xsl:template match="outbox"> 
    646     <h2 class="common">Outbox</h2> 
    647     <table id="inoutbox" class="common" cellspacing="0"> 
    648       <tr> 
    649         <th class="commonHeader">&#160;</th> 
    650         <th class="commonHeader">sent</th> 
    651         <th class="commonHeader">organizer</th> 
    652         <th class="commonHeader">title</th> 
    653         <th class="commonHeader">start</th> 
    654         <th class="commonHeader">end</th> 
    655         <th class="commonHeader">method</th> 
    656         <th class="commonHeader">status</th> 
    657         <th class="commonHeader">&#160;</th> 
    658         <th class="commonHeader">&#160;</th> 
    659       </tr> 
    660       <xsl:for-each select="events/event"> 
    661         <xsl:sort select="lastmod" order="descending"/> 
    662         <xsl:variable name="guid" select="guid"/> 
    663         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    664         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    665         <xsl:variable name="eventName" select="name"/> 
    666         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    667         <xsl:variable name="inboxItemAction"> 
    668           <xsl:choose> 
    669             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    670             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    671             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    672           </xsl:choose> 
    673         </xsl:variable> 
    674         <tr> 
    675           <xsl:attribute name="class"> 
    676             <xsl:choose> 
    677               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    678               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    679               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    680               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    681             </xsl:choose> 
    682           </xsl:attribute> 
    683           <td> 
    684             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    685               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    686             </a> 
    687           </td> 
    688           <td> 
    689             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    690               <!-- <xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    691               <!--<xsl:value-of select="lastmod"/>--> 
    692               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    693               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    694               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    695               <xsl:text> </xsl:text> 
    696               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    697             </a> 
    698           </td> 
    699           <td> 
    700             <xsl:if test="organizer"> 
    701               <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    702               <xsl:choose> 
    703                 <xsl:when test="organizer/cn != ''"> 
    704                   <xsl:value-of select="organizer/cn"/> 
    705                 </xsl:when> 
    706                 <xsl:otherwise> 
    707                   <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    708                 </xsl:otherwise> 
    709               </xsl:choose> 
    710               <xsl:if test="organizer/organizerUri != ''"> 
    711                 <a href="{$organizerUri}" class="emailIcon" title="email"> 
    712                   <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    713                 </a> 
    714               </xsl:if> 
    715             </xsl:if> 
    716           </td> 
    717           <td> 
    718             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    719               <xsl:value-of select="title"/> 
    720             </a> 
    721           </td> 
    722           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    723           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    724           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    725           <td> 
    726             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    727               <xsl:choose> 
    728                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    729                 <xsl:otherwise>processed</xsl:otherwise> 
    730               </xsl:choose> 
    731             </a> 
    732           </td> 
    733           <td> 
    734             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    735             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    736               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    737             </a> 
    738           </td> 
    739           <td> 
    740             <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    741               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    742             </a> 
    743           </td> 
    744         </tr> 
    745       </xsl:for-each> 
    746     </table> 
    747   </xsl:template> 
    748  
    749   <xsl:template match="scheduleMethod"> 
    750     <xsl:choose> 
    751       <xsl:when test="node()=1">publish</xsl:when> 
    752       <xsl:when test="node()=2">request</xsl:when> 
    753       <xsl:when test="node()=3">reply</xsl:when> 
    754       <xsl:when test="node()=4">add</xsl:when> 
    755       <xsl:when test="node()=5">cancel</xsl:when> 
    756       <xsl:when test="node()=6">refresh</xsl:when> 
    757       <xsl:when test="node()=7">counter</xsl:when> 
    758       <xsl:when test="node()=8">declined</xsl:when><!-- declinecounter --> 
    759       <xsl:otherwise>unknown</xsl:otherwise> 
    760     </xsl:choose> 
    761   </xsl:template> 
    762 </xsl:stylesheet> 
    763 <?xml version="1.0" encoding="UTF-8"?> 
    764 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    765   <xsl:template match="inbox"> 
    766     <h2 class="common">Inbox</h2> 
    767     <table id="inoutbox" class="common" cellspacing="0"> 
    768       <tr> 
    769         <th class="commonHeader">&#160;</th> 
    770         <th class="commonHeader">sent</th> 
    771         <th class="commonHeader">from</th> 
    772         <th class="commonHeader">title</th> 
    773         <th class="commonHeader">start</th> 
    774         <th class="commonHeader">end</th> 
    775         <th class="commonHeader">method</th> 
    776         <!--<th class="commonHeader">status</th>--> 
    777         <th class="commonHeader">&#160;</th> 
    778         <th class="commonHeader">&#160;</th> 
    779       </tr> 
    780       <xsl:for-each select="events/event"> 
    781         <xsl:sort select="lastmod" order="descending"/> 
    782         <xsl:variable name="guid" select="guid"/> 
    783         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    784         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    785         <xsl:variable name="eventName" select="name"/> 
    786         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    787         <xsl:variable name="inboxItemAction"> 
    788           <xsl:choose> 
    789             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    790             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    791             <xsl:when test="scheduleMethod=6"><xsl:value-of select="$schedule-processRefresh"/></xsl:when> 
    792             <xsl:when test="scheduleMethod=7"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    793             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    794           </xsl:choose> 
    795         </xsl:variable> 
    796         <tr> 
    797           <xsl:attribute name="class"> 
    798             <xsl:choose> 
    799               <xsl:when test="scheduleState=0">unprocessed</xsl:when> 
    800               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    801               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    802               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    803               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    804             </xsl:choose> 
    805           </xsl:attribute> 
    806           <td> 
    807             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    808               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    809             </a> 
    810           </td> 
    811           <td> 
    812             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    813               <!--<xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    814               <!--<xsl:value-of select="lastmod"/>--> 
    815               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    816               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    817               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    818               <xsl:text> </xsl:text> 
    819               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    820             </a> 
    821           </td> 
    822           <td> 
    823             <xsl:choose> 
    824               <xsl:when test="scheduleMethod = '1' or 
    825                               scheduleMethod = '2' or 
    826                               scheduleMethod = '4' or 
    827                               scheduleMethod = '5' or 
    828                               scheduleMethod = '8'"> 
    829                 <xsl:if test="organizer"> 
    830                   <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    831                   <xsl:choose> 
    832                     <xsl:when test="organizer/cn != ''"> 
    833                       <xsl:value-of select="organizer/cn"/> 
    834                     </xsl:when> 
    835                     <xsl:otherwise> 
    836                       <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    837                     </xsl:otherwise> 
    838                   </xsl:choose> 
    839                   <xsl:if test="organizer/organizerUri != ''"> 
    840                     <a href="{$organizerUri}" class="emailIcon" title="email"> 
    841                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    842                     </a> 
    843                   </xsl:if> 
    844                 </xsl:if> 
    845               </xsl:when> 
    846               <xsl:otherwise> 
    847                 <xsl:if test="attendees/attendee"> 
    848                   <!-- there will only be one attendee at this point --> 
    849                   <xsl:variable name="attendeeUri" select="attendees/attendee/attendeeUri"/> 
    850                   <xsl:choose> 
    851                     <xsl:when test="attendees/attendee/cn != ''"> 
    852                       <xsl:value-of select="attendees/attendee/cn"/> 
    853                     </xsl:when> 
    854                     <xsl:otherwise> 
    855                       <xsl:value-of select="substring-after(attendees/attendee/attendeeUri,'mailto:')"/> 
    856                     </xsl:otherwise> 
    857                   </xsl:choose> 
    858                   <xsl:if test="$attendeeUri != ''"> 
    859                     <a href="{$attendeeUri}" class="emailIcon" title="email"> 
    860                       <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    861                     </a> 
    862                   </xsl:if> 
    863                 </xsl:if> 
    864               </xsl:otherwise> 
    865             </xsl:choose> 
    866           </td> 
    867           <td> 
    868             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    869               <xsl:value-of select="title"/> 
    870             </a> 
    871           </td> 
    872           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    873           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    874           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    875           <!--<td> 
    876             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    877               <xsl:choose> 
    878                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    879                 <xsl:otherwise>processed</xsl:otherwise> 
    880               </xsl:choose> 
    881             </a> 
    882           </td>--> 
    883           <td> 
    884             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    885             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    886               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    887             </a> 
    888           </td> 
    889           <td> 
    890             <a href="{$delInboxEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    891               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    892             </a> 
    893           </td> 
    894         </tr> 
    895       </xsl:for-each> 
    896     </table> 
    897   </xsl:template> 
    898  
    899   <xsl:template match="outbox"> 
    900     <h2 class="common">Outbox</h2> 
    901     <table id="inoutbox" class="common" cellspacing="0"> 
    902       <tr> 
    903         <th class="commonHeader">&#160;</th> 
    904         <th class="commonHeader">sent</th> 
    905         <th class="commonHeader">organizer</th> 
    906         <th class="commonHeader">title</th> 
    907         <th class="commonHeader">start</th> 
    908         <th class="commonHeader">end</th> 
    909         <th class="commonHeader">method</th> 
    910         <th class="commonHeader">status</th> 
    911         <th class="commonHeader">&#160;</th> 
    912         <th class="commonHeader">&#160;</th> 
    913       </tr> 
    914       <xsl:for-each select="events/event"> 
    915         <xsl:sort select="lastmod" order="descending"/> 
    916         <xsl:variable name="guid" select="guid"/> 
    917         <xsl:variable name="subscriptionId" select="subscription/id"/> 
    918         <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    919         <xsl:variable name="eventName" select="name"/> 
    920         <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    921         <xsl:variable name="inboxItemAction"> 
    922           <xsl:choose> 
    923             <xsl:when test="scheduleMethod=2"><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:when> 
    924             <xsl:when test="scheduleMethod=3"><xsl:value-of select="$schedule-initAttendeeReply"/></xsl:when> 
    925             <xsl:otherwise><xsl:value-of select="$schedule-initAttendeeRespond"/></xsl:otherwise> 
    926           </xsl:choose> 
    927         </xsl:variable> 
    928         <tr> 
    929           <xsl:attribute name="class"> 
    930             <xsl:choose> 
    931               <xsl:when test="scheduleMethod=1">publish</xsl:when> 
    932               <xsl:when test="scheduleMethod=2">request</xsl:when> 
    933               <xsl:when test="scheduleMethod=5">cancel</xsl:when> 
    934               <xsl:when test="scheduleMethod=7 or scheduleMethod=8">counter</xsl:when> 
    935             </xsl:choose> 
    936           </xsl:attribute> 
    937           <td> 
    938             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    939               <img src="{$resourcesRoot}/resources/calIconSchedule-sm.gif" width="13" height="13" border="0" alt="check message"/> 
    940             </a> 
    941           </td> 
    942           <td> 
    943             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}" title="check message"> 
    944               <!-- <xsl:value-of select="dtstamp/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="dtstamp/time"/>--> 
    945               <!--<xsl:value-of select="lastmod"/>--> 
    946               <xsl:variable name="dt" select="substring-before(lastmod,'T')"/> 
    947               <xsl:variable name="tm" select="substring-after(lastmod,'T')"/> 
    948               <xsl:value-of select="substring($dt,1,4)"/>-<xsl:value-of select="substring($dt,5,2)"/>-<xsl:value-of select="substring($dt,7,2)"/> 
    949               <xsl:text> </xsl:text> 
    950               <xsl:value-of select="substring($tm,1,2)"/>:<xsl:value-of select="substring($tm,3,2)"/> 
    951             </a> 
    952           </td> 
    953           <td> 
    954             <xsl:if test="organizer"> 
    955               <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    956               <xsl:choose> 
    957                 <xsl:when test="organizer/cn != ''"> 
    958                   <xsl:value-of select="organizer/cn"/> 
    959                 </xsl:when> 
    960                 <xsl:otherwise> 
    961                   <xsl:value-of select="substring-after(organizer/organizerUri,'mailto:')"/> 
    962                 </xsl:otherwise> 
    963               </xsl:choose> 
    964               <xsl:if test="organizer/organizerUri != ''"> 
    965                 <a href="{$organizerUri}" class="emailIcon" title="email"> 
    966                   <img src="{$resourcesRoot}/resources/email.gif" width="16" height="10" border="0" alt="email"/> 
    967                 </a> 
    968               </xsl:if> 
    969             </xsl:if> 
    970           </td> 
    971           <td> 
    972             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    973               <xsl:value-of select="title"/> 
    974             </a> 
    975           </td> 
    976           <td><xsl:value-of select="start/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="start/time"/></td> 
    977           <td><xsl:value-of select="end/shortdate"/><xsl:text> </xsl:text><xsl:value-of select="end/time"/></td> 
    978           <td><xsl:apply-templates select="scheduleMethod"/></td> 
    979           <td> 
    980             <a href="{$inboxItemAction}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;eventName={$eventName}&amp;recurrenceId={$recurrenceId}"> 
    981               <xsl:choose> 
    982                 <xsl:when test="scheduleState=0"><em>unprocessed</em></xsl:when> 
    983                 <xsl:otherwise>processed</xsl:otherwise> 
    984               </xsl:choose> 
    985             </a> 
    986           </td> 
    987           <td> 
    988             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    989             <a href="{$export}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="download"> 
    990               <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="download"/> 
    991             </a> 
    992           </td> 
    993           <td> 
    994             <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete"> 
    995               <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    996             </a> 
    997           </td> 
    998         </tr> 
    999       </xsl:for-each> 
    1000     </table> 
    1001   </xsl:template> 
    1002  
    1003   <xsl:template match="scheduleMethod"> 
    1004     <xsl:choose> 
    1005       <xsl:when test="node()=1">publish</xsl:when> 
    1006       <xsl:when test="node()=2">request</xsl:when> 
    1007       <xsl:when test="node()=3">reply</xsl:when> 
    1008       <xsl:when test="node()=4">add</xsl:when> 
    1009       <xsl:when test="node()=5">cancel</xsl:when> 
    1010       <xsl:when test="node()=6">refresh</xsl:when> 
    1011       <xsl:when test="node()=7">counter</xsl:when> 
    1012       <xsl:when test="node()=8">declined</xsl:when><!-- declinecounter --> 
    1013       <xsl:otherwise>unknown</xsl:otherwise> 
    1014     </xsl:choose> 
    1015   </xsl:template> 
    1016 </xsl:stylesheet> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/calendar.xsl

    r1643 r1705  
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    33  <xsl:template match="calendars" mode="manageCalendars"> 
    4     <h2>Manage Calendars</h2> 
     4    <h2><xsl:value-of select="$calendar.manageCalendars.h2"/></h2> 
    55    <table id="calendarTable"> 
    66      <tr> 
    77        <td class="cals"> 
    8           <h3>Calendars</h3> 
     8          <h3><xsl:value-of select="$calendar.manageCalendars.h3"/></h3> 
    99          <ul class="calendarTree"> 
    1010            <xsl:choose> 
     
    5151      <xsl:attribute name="class"> 
    5252        <xsl:choose> 
    53           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    54           <xsl:otherwise>calendar</xsl:otherwise> 
     53          <xsl:when test="calendarCollection='false'"><xsl:value-of select="$calendar.folder" /></xsl:when> 
     54          <xsl:otherwise><xsl:value-of select="$calendar.calendar" /></xsl:otherwise> 
    5555        </xsl:choose> 
    5656      </xsl:attribute> 
     57      <xsl:if test="calendarCollection='false'"> 
     58        <!-- test the open state of the folder; if it's open, 
     59             build a URL to close it and vice versa --> 
     60        <xsl:choose> 
     61          <xsl:when test="open = 'true'"> 
     62            <a href="{$calendar-openCloseDisplay}&amp;calPath={$calPath}&amp;open=false"> 
     63              <img src="{$resourcesRoot}/resources/minus.gif" width="9" height="9" alt="close" border="0" class="bwPlusMinusIcon"/> 
     64            </a> 
     65          </xsl:when> 
     66          <xsl:when test="open = 'false'"> 
     67            <a href="{$calendar-openCloseDisplay}&amp;calPath={$calPath}&amp;open=true"> 
     68              <img src="{$resourcesRoot}/resources/plus.gif" width="9" height="9" alt="open" border="0" class="bwPlusMinusIcon"/> 
     69            </a> 
     70          </xsl:when> 
     71        </xsl:choose> 
     72      </xsl:if> 
    5773      <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display"> 
    5874        <xsl:value-of select="name"/> 
     
    7389      <xsl:attribute name="class"> 
    7490        <xsl:choose> 
    75           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    76           <xsl:otherwise>calendar</xsl:otherwise> 
     91          <xsl:when test="calendarCollection='false'"><xsl:value-of select="$calendar.folder" /></xsl:when> 
     92          <xsl:otherwise><xsl:value-of select="$calendar.calendar" /></xsl:otherwise> 
    7793        </xsl:choose> 
    7894      </xsl:attribute> 
     95      <xsl:if test="calendarCollection='false'"> 
     96        <!-- test the open state of the folder; if it's open, 
     97             build a URL to close it and vice versa --> 
     98        <xsl:choose> 
     99          <xsl:when test="open = 'true'"> 
     100            <a href="{$calendar-openCloseMod}&amp;calPath={$calPath}&amp;open=false"> 
     101              <img src="{$resourcesRoot}/resources/minus.gif" width="9" height="9" alt="close" border="0" class="bwPlusMinusIcon"/> 
     102            </a> 
     103          </xsl:when> 
     104          <xsl:when test="open = 'false'"> 
     105            <a href="{$calendar-openCloseMod}&amp;calPath={$calPath}&amp;open=true"> 
     106              <img src="{$resourcesRoot}/resources/plus.gif" width="9" height="9" alt="open" border="0" class="bwPlusMinusIcon"/> 
     107            </a> 
     108          </xsl:when> 
     109        </xsl:choose> 
     110      </xsl:if> 
    79111      <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update"> 
    80112        <xsl:value-of select="name"/> 
     
    98130 
    99131  <xsl:template match="currentCalendar" mode="displayCalendar"> 
    100     <h2>Calendar Information</h2> 
     132    <h2><xsl:value-of select="$calendar.displayCalendar.information" /></h2> 
    101133    <table class="common"> 
    102134      <tr> 
    103         <th>Name:</th> 
     135        <th><xsl:value-of select="$calendar.name" /></th> 
    104136        <td> 
    105137          <xsl:value-of select="name"/> 
     
    107139      </tr> 
    108140      <tr> 
    109         <th>Path:</th> 
     141        <th><xsl:value-of select="$calendar.path" /></th> 
    110142        <td> 
    111143          <xsl:value-of select="path"/> 
     
    113145      </tr> 
    114146      <tr> 
    115         <th>Summary:</th> 
     147        <th><xsl:value-of select="$calendar.summary" /></th> 
    116148        <td> 
    117149          <xsl:value-of select="summary"/> 
     
    119151      </tr> 
    120152      <tr> 
    121         <th>Description:</th> 
     153        <th><xsl:value-of select="$calendar.description" /></th> 
    122154        <td> 
    123155          <xsl:value-of select="desc"/> 
     
    130162    <xsl:choose> 
    131163      <xsl:when test="calendarCollection='true'"> 
    132         <h3>Delete Calendar</h3> 
     164        <h3><xsl:value-of select="$calendar.deleteCalendarConfirm.h3" /></h3> 
    133165        <p> 
    134           The following calendar will be deleted.  Continue? 
     166          <xsl:value-of select="$calendar.deleteCalendarConfirm.p" /> 
    135167        </p> 
    136168      </xsl:when> 
    137169      <xsl:otherwise> 
    138         <h3>Delete Folder</h3> 
     170        <h3><xsl:value-of select="$calendar.deleteCalendarConfirm.delete" /></h3> 
    139171        <p> 
    140           The following folder <em>and all its contents</em> will be deleted. 
    141           Continue? 
     172          <xsl:value-of select="$calendar.deleteCalendarConfirm.delete.p" /> 
    142173        </p> 
    143174      </xsl:otherwise> 
     
    147178      <table class="common"> 
    148179        <tr> 
    149           <th>Path:</th> 
     180          <th><xsl:value-of select="$calendar.path" /></th> 
    150181          <td> 
    151182            <xsl:value-of select="path"/> 
     
    153184        </tr> 
    154185        <tr> 
    155           <th>Name:</th> 
     186          <th><xsl:value-of select="$calendar.name" /></th> 
    156187          <td> 
    157188            <xsl:value-of select="name"/> 
     
    159190        </tr> 
    160191        <tr> 
    161           <th>Summary:</th> 
     192          <th><xsl:value-of select="$calendar.summary" /></th> 
    162193          <td> 
    163194            <xsl:value-of select="summary"/> 
     
    165196        </tr> 
    166197        <tr> 
    167           <th>Description:</th> 
     198          <th><xsl:value-of select="$calendar.description" /></th> 
    168199          <td> 
    169200            <xsl:value-of select="desc"/> 
     
    193224 
    194225  <xsl:template match="currentCalendar" mode="addCalendar"> 
    195     <h3>Add Calendar / Folder</h3> 
     226    <h3><xsl:value-of select="$calendar.addCalendar.h3" /></h3> 
    196227    <form name="addCalForm" method="post" action="{$calendar-update}"> 
    197228      <table class="common"> 
    198229        <tr> 
    199           <th>Name:</th> 
     230          <th><xsl:value-of select="$calendar.name" /></th> 
    200231          <td> 
    201232            <xsl:variable name="curCalName" select="name"/> 
     
    204235        </tr> 
    205236        <tr> 
    206           <th>Summary:</th> 
     237          <th><xsl:value-of select="$calendar.summary" /></th> 
    207238          <td> 
    208239            <xsl:variable name="curCalSummary" select="summary"/> 
     
    211242        </tr> 
    212243        <tr> 
    213           <th>Description:</th> 
     244          <th><xsl:value-of select="$calendar.description" /></th> 
    214245          <td> 
    215246            <textarea name="calendar.description" cols="40" rows="4"> 
     
    224255        </tr> 
    225256        <tr> 
    226           <th>Calendar/Folder:</th> 
    227           <td> 
    228             <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    229             <input type="radio" value="false" name="calendarCollection"/> Folder 
     257          <th><xsl:value-of select="$calendar.calendar.folder" /></th> 
     258          <td> 
     259            <xsl:choose> 
     260              <xsl:when test="calendarCollection='true'"> 
     261                <input type="radio" value="true" name="calendarCollection" checked="checked"/> <xsl:value-of select="$calendar.calendar2" /> 
     262                <input type="radio" value="false" name="calendarCollection"/> <xsl:value-of select="$calendar.folder2" /> 
     263              </xsl:when> 
     264              <xsl:otherwise> 
     265                <input type="radio" value="true" name="calendarCollection"/> <xsl:value-of select="$calendar.calendar2" /> 
     266                <input type="radio" value="false" name="calendarCollection" checked="checked"/> <xsl:value-of select="$calendar.folder2" /> 
     267              </xsl:otherwise> 
     268            </xsl:choose> 
    230269          </td> 
    231270        </tr> 
     
    244283 
    245284    <div id="sharingBox"> 
    246       <h3>Current Access:</h3> 
    247       Sharing may be added to a calendar once created. 
     285      <h3><xsl:value-of select="$calendar.addCalendar.current.access.h3" /></h3> 
     286      <xsl:value-of select="$calendar.addCalendar.current.access.div" /> 
    248287    </div> 
    249288  </xsl:template> 
    250289 
    251290  <xsl:template match="currentCalendar" mode="modCalendar"> 
    252     <xsl:variable name="calPath" select="path"/> 
    253     <xsl:variable name="calPathEncoded" select="encodedPath"/> 
    254291    <xsl:choose> 
    255292      <xsl:when test="calendarCollection='true'"> 
    256         <h3>Modify Calendar</h3> 
     293        <h3><xsl:value-of select="$calendar.modCalendar.modify.calendar" /></h3> 
    257294      </xsl:when> 
    258295      <xsl:otherwise> 
    259         <h3>Modify Folder</h3> 
     296        <h3><xsl:value-of select="$calendar.modCalendar.modify.folder" /></h3> 
    260297      </xsl:otherwise> 
    261298    </xsl:choose> 
     
    263300      <table class="common"> 
    264301        <tr> 
    265           <th class="commonHeader" colspan="2"> 
    266             <xsl:value-of select="path"/> 
    267           </th> 
    268         </tr> 
    269         <tr> 
    270           <th>Name:</th> 
     302          <th><xsl:value-of select="$calendar.path" /></th> 
     303          <td> <xsl:value-of select="path"/> 
     304            <xsl:if test="not(/bedework/publicview = 'false')"> 
     305              <xsl:text> </xsl:text> 
     306              <a href="{$calendar-move}"><xsl:value-of select="$calendar.move" /></a> 
     307            </xsl:if> 
     308          </td> 
     309        </tr> 
     310        <tr> 
     311          <th><xsl:value-of select="$calendar.name" /></th> 
    271312          <td> 
    272313            <xsl:value-of select="name"/> 
     
    274315        </tr> 
    275316        <tr> 
    276           <th>Mailing List ID:</th> 
     317          <th><xsl:value-of select="$calendar.modCalendar.listid" /></th> 
    277318          <td> 
    278319            <xsl:value-of select="mailListId"/> 
     
    280321        </tr> 
    281322        <tr> 
    282           <th>Summary:</th> 
     323          <th><xsl:value-of select="$calendar.summary" /></th> 
    283324          <td> 
    284325            <xsl:variable name="curCalSummary" select="summary"/> 
     
    287328        </tr> 
    288329        <tr> 
    289           <th>Description:</th> 
     330          <th><xsl:value-of select="$calendar.description" /></th> 
    290331          <td> 
    291332            <textarea name="calendar.description" cols="40" rows="4"> 
     
    300341        </tr> 
    301342        <tr> 
    302           <th>Calendar/Folder:</th> 
     343          <th><xsl:value-of select="$calendar.calendar.folder" /></th> 
    303344          <td> 
    304345            <xsl:choose> 
    305346              <xsl:when test="calendarCollection='true'"> 
    306                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    307                 <input type="radio" value="false" name="calendarCollection"/> Folder 
     347                <input type="radio" value="true" name="calendarCollection" checked="checked"/> <xsl:value-of select="$calendar.calendar2" /> 
     348                <input type="radio" value="false" name="calendarCollection"/> <xsl:value-of select="$calendar.folder2" /> 
    308349              </xsl:when> 
    309350              <xsl:otherwise> 
    310                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    311                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
     351                <input type="radio" value="true" name="calendarCollection"/> <xsl:value-of select="$calendar.calendar2" /> 
     352                <input type="radio" value="false" name="calendarCollection" checked="checked"/> <xsl:value-of select="$calendar.folder2" /> 
    312353              </xsl:otherwise> 
    313354            </xsl:choose> 
     
    346387      <xsl:apply-templates select="acl" mode="currentAccess"> 
    347388        <xsl:with-param name="action" select="$calendar-setAccess"/> 
    348         <xsl:with-param name="calPathEncoded" select="$calPathEncoded"/> 
     389        <xsl:with-param name="calPathEncoded" select="encodedPath"/> 
    349390      </xsl:apply-templates> 
    350391      <form name="calendarShareForm" method="post" action="{$calendar-setAccess}" id="shareForm" onsubmit="setAccessHow(this)"> 
    351         <input type="hidden" name="calPath" value="{$calPath}"/> 
     392        <input type="hidden" name="calPath"> 
     393          <xsl:attribute name="value"><xsl:value-of select="path"/></xsl:attribute> 
     394        </input> 
    352395        <xsl:call-template name="entityAccessForm"> 
    353396          <xsl:with-param name="type"> 
    354397            <xsl:choose> 
    355               <xsl:when test="calType = '5'">inbox</xsl:when> 
    356               <xsl:when test="calType = '6'">outbox</xsl:when> 
    357               <xsl:otherwise>normal</xsl:otherwise> 
     398              <xsl:when test="calType = '5'"><xsl:value-of select="$calendar.inbox" /></xsl:when> 
     399              <xsl:when test="calType = '6'"><xsl:value-of select="$calendar.outbox" /></xsl:when> 
     400              <xsl:otherwise><xsl:value-of select="$calendar.normal" /></xsl:otherwise> 
    358401            </xsl:choose> 
    359402          </xsl:with-param> 
     
    380423    <input type="button" onclick="javascript:changeClass('calSelectWidget','visible')" value="select calendar" class="small"/> 
    381424    <div id="calSelectWidget" class="invisible"> 
    382       <h2>select a calendar</h2> 
     425      <h2><xsl:value-of select="$calendar.selectCalForEvent.widget.h2" /></h2> 
    383426      <a href="javascript:changeClass('calSelectWidget','invisible')" id="calSelectWidgetCloser" title="close">x</a> 
    384       <h4>My Calendars</h4> 
     427      <h4><xsl:value-of select="$calendar.selectCalForEvent.widget.h4" /></h4> 
    385428      <ul class="calendarTree"> 
    386429        <xsl:choose> 
     
    389432          </xsl:when> 
    390433          <xsl:otherwise> 
    391             <em>no writable calendars</em> 
     434            <em><xsl:value-of select="$calendar.selectCalForEvent.widget.otherwise" /></em> 
    392435          </xsl:otherwise> 
    393436        </xsl:choose> 
    394437      </ul> 
    395       <h4>Subscribed Calendars</h4> 
     438      <h4><xsl:value-of select="$calendar.selectCalForEvent.widget.subscribed" /></h4> 
    396439      <ul class="calendarTree"> 
    397         <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
     440        <xsl:variable name="userPath"><xsl:value-of select="$calendar.user" />/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    398441        <xsl:choose> 
    399442          <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
     
    401444          </xsl:when> 
    402445          <xsl:otherwise> 
    403             <em>no writable calendars</em> 
     446            <em><xsl:value-of select="$calendar.selectCalForEvent.widget.no.calendars" /></em> 
    404447          </xsl:otherwise> 
    405448        </xsl:choose> 
     
    410453  <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
    411454    <xsl:variable name="id" select="id"/> 
     455    <xsl:variable name="calPath" select="path"/> 
     456    <xsl:variable name="userPath"><xsl:value-of select="$calendar.user" />/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
     457    <xsl:variable name="calDisplay"> 
     458      <xsl:choose> 
     459        <xsl:when test="contains(path,$userPath)"> 
     460          <xsl:value-of select="substring-after(path,$userPath)"/> 
     461        </xsl:when> 
     462        <xsl:otherwise> 
     463          <xsl:value-of select="path"/> 
     464        </xsl:otherwise> 
     465      </xsl:choose> 
     466    </xsl:variable> 
    412467    <li> 
    413468      <xsl:attribute name="class"> 
    414469        <xsl:choose> 
    415470          <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    416                           and name = /bedework/selectionState/subscriptions/subscription/calendar/name">selected</xsl:when> 
    417           <xsl:when test="name='Trash'">trash</xsl:when> 
    418           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    419           <xsl:otherwise>calendar</xsl:otherwise> 
     471            and name = /bedework/selectionState/subscriptions/subscription/calendar/name"><xsl:value-of select="$calendar.selected" /></xsl:when> 
     472          <xsl:when test="name='Trash'"><xsl:value-of select="$calendar.trash" /></xsl:when> 
     473          <xsl:when test="calendarCollection='false'"><xsl:value-of select="$calendar.folder" /></xsl:when> 
     474          <xsl:otherwise><xsl:value-of select="$calendar.calendar" /></xsl:otherwise> 
    420475        </xsl:choose> 
    421476      </xsl:attribute> 
    422       <xsl:variable name="calPath" select="path"/
    423       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    424       <xsl:variable name="calDisplay"
     477      <xsl:if test="calendarCollection='false'"
     478        <!-- test the open state of the folder; if it's open, 
     479             build a URL to close it and vice versa --
    425480        <xsl:choose> 
    426           <xsl:when test="contains(path,$userPath)"> 
    427             <xsl:value-of select="substring-after(path,$userPath)"/> 
     481          <xsl:when test="open = 'true'"> 
     482            <a href="{$calendar-openCloseSelect}&amp;calPath={$calPath}&amp;open=false"> 
     483              <img src="{$resourcesRoot}/resources/minus.gif" width="9" height="9" alt="close" border="0" class="bwPlusMinusIcon"/> 
     484            </a> 
    428485          </xsl:when> 
    429           <xsl:otherwise> 
    430             <xsl:value-of select="path"/> 
    431           </xsl:otherwise> 
     486          <xsl:when test="open = 'false'"> 
     487            <a href="{$calendar-openCloseSelect}&amp;calPath={$calPath}&amp;open=true"> 
     488              <img src="{$resourcesRoot}/resources/plus.gif" width="9" height="9" alt="open" border="0" class="bwPlusMinusIcon"/> 
     489            </a> 
     490          </xsl:when> 
    432491        </xsl:choose> 
    433       </xsl:variable
     492      </xsl:if
    434493      <xsl:choose> 
    435494        <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
     
    454513 
    455514  <xsl:template name="calendarList"> 
    456     <h3>Managing Calendars</h3> 
     515    <h3><xsl:value-of select="$calendar.calendarList.h3" /></h3> 
    457516    <ul> 
    458       <li>Select an item from the calendar list on the left to modify 
    459       a calendar or folder.</li> 
    460       <li>Select the 
    461       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
    462       icon to add a new calendar or folder to the tree. 
     517      <li><xsl:value-of select="$calendar.calendarList.li1" /></li> 
     518      <li> 
     519        <xsl:value-of select="$calendar.calendarList.li2.part1" /> 
     520        <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
     521        <xsl:value-of select="$calendar.calendarList.li2.part2" /> 
    463522        <ul> 
    464           <li>Folders may only contain calendars and subfolders.</li> 
    465           <li>Calendars may only contain events (and other calendar items).</li> 
     523          <li><xsl:value-of select="$calendar.calendarList.li3" /></li> 
     524          <li><xsl:value-of select="$calendar.calendarList.li4" /></li> 
    466525          <li> 
    467             If a calendar is empty, it may be converted to a folder and vice 
    468             versa.  If a calendar or folder are not empty, it may not be 
    469             converted. 
     526            <xsl:value-of select="$calendar.calendarList.li5" /> 
    470527          </li> 
    471528        </ul> 
     
    475532 
    476533  <xsl:template name="calendarDescriptions"> 
    477     <h2>Calendar Information</h2> 
     534    <h2><xsl:value-of select="$calendar.calendarDescriptions.h2" /></h2> 
    478535    <ul> 
    479       <li>Select an item from the calendar tree on the left to view all information 
    480       about that calendar or folder.  The tree on the left represents the calendar 
    481       heirarchy.</li> 
     536      <li><xsl:value-of select="$calendar.calendarDescriptions.li1" /></li> 
    482537    </ul> 
    483538 
    484     <p><strong>All Calendar Descriptions:</strong></p> 
     539    <p><strong><xsl:value-of select="$calendar.calendarDescriptions.all.descriptions" /></strong></p> 
    485540    <table id="flatCalendarDescriptions" cellspacing="0"> 
    486541      <tr> 
    487         <th>Name</th> 
    488         <th>Description</th> 
     542        <th><xsl:value-of select="$calendar.name" /></th> 
     543        <th><xsl:value-of select="$calendar.description" /></th> 
    489544      </tr> 
    490545      <xsl:for-each select="//calendar[calType &lt; 2]"> 
     
    506561    </table> 
    507562  </xsl:template> 
    508 </xsl:stylesheet> 
    509 <?xml version="1.0" encoding="UTF-8"?> 
    510 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    511   <xsl:template match="calendars" mode="manageCalendars"> 
    512     <h2>Manage Calendars</h2> 
    513     <table id="calendarTable"> 
    514       <tr> 
    515         <td class="cals"> 
    516           <h3>Calendars</h3> 
    517           <ul class="calendarTree"> 
    518             <xsl:choose> 
    519               <xsl:when test="/bedework/page='calendarDescriptions' or 
    520                               /bedework/page='displayCalendar'"> 
    521                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForDisplay"/> 
    522               </xsl:when> 
    523               <xsl:otherwise> 
    524                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForUpdate"/> 
    525               </xsl:otherwise> 
    526             </xsl:choose> 
    527           </ul> 
    528         </td> 
    529         <td class="calendarContent"> 
    530           <xsl:choose> 
    531             <xsl:when test="/bedework/page='calendarList' or 
    532                             /bedework/page='calendarReferenced'"> 
    533               <xsl:call-template name="calendarList"/> 
    534             </xsl:when> 
    535             <xsl:when test="/bedework/page='calendarDescriptions'"> 
    536               <xsl:call-template name="calendarDescriptions"/> 
    537             </xsl:when> 
    538             <xsl:when test="/bedework/page='displayCalendar'"> 
    539               <xsl:apply-templates select="/bedework/currentCalendar" mode="displayCalendar"/> 
    540             </xsl:when> 
    541             <xsl:when test="/bedework/page='deleteCalendarConfirm'"> 
    542               <xsl:apply-templates select="/bedework/currentCalendar" mode="deleteCalendarConfirm"/> 
    543             </xsl:when> 
    544             <xsl:when test="/bedework/creating='true'"> 
    545               <xsl:apply-templates select="/bedework/currentCalendar" mode="addCalendar"/> 
    546             </xsl:when> 
    547             <xsl:otherwise> 
    548               <xsl:apply-templates select="/bedework/currentCalendar" mode="modCalendar"/> 
    549             </xsl:otherwise> 
    550           </xsl:choose> 
    551         </td> 
    552       </tr> 
    553     </table> 
    554   </xsl:template> 
    555  
    556   <xsl:template match="calendar" mode="listForDisplay"> 
    557     <xsl:variable name="calPath" select="encodedPath"/> 
    558     <li> 
    559       <xsl:attribute name="class"> 
    560         <xsl:choose> 
    561           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    562           <xsl:otherwise>calendar</xsl:otherwise> 
    563         </xsl:choose> 
    564       </xsl:attribute> 
    565       <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display"> 
    566         <xsl:value-of select="name"/> 
    567       </a> 
    568       <xsl:if test="calendar"> 
    569         <ul> 
    570           <xsl:apply-templates select="calendar" mode="listForDisplay"> 
    571             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    572           </xsl:apply-templates> 
    573         </ul> 
    574       </xsl:if> 
    575     </li> 
    576   </xsl:template> 
    577  
    578   <xsl:template match="calendar" mode="listForUpdate"> 
    579     <xsl:variable name="calPath" select="encodedPath"/> 
    580     <li> 
    581       <xsl:attribute name="class"> 
    582         <xsl:choose> 
    583           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    584           <xsl:otherwise>calendar</xsl:otherwise> 
    585         </xsl:choose> 
    586       </xsl:attribute> 
    587       <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update"> 
    588         <xsl:value-of select="name"/> 
    589       </a> 
    590       <xsl:if test="calendarCollection='false'"> 
    591         <xsl:text> </xsl:text> 
    592         <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder"> 
    593           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/> 
    594         </a> 
    595       </xsl:if> 
    596       <xsl:if test="calendar"> 
    597         <ul> 
    598           <xsl:apply-templates select="calendar" mode="listForUpdate"> 
    599             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    600           </xsl:apply-templates> 
    601         </ul> 
    602       </xsl:if> 
    603     </li> 
    604   </xsl:template> 
    605  
    606  
    607   <xsl:template match="currentCalendar" mode="displayCalendar"> 
    608     <h2>Calendar Information</h2> 
    609     <table class="common"> 
    610       <tr> 
    611         <th>Name:</th> 
    612         <td> 
    613           <xsl:value-of select="name"/> 
    614         </td> 
    615       </tr> 
    616       <tr> 
    617         <th>Path:</th> 
    618         <td> 
    619           <xsl:value-of select="path"/> 
    620         </td> 
    621       </tr> 
    622       <tr> 
    623         <th>Summary:</th> 
    624         <td> 
    625           <xsl:value-of select="summary"/> 
    626         </td> 
    627       </tr> 
    628       <tr> 
    629         <th>Description:</th> 
    630         <td> 
    631           <xsl:value-of select="desc"/> 
    632         </td> 
    633       </tr> 
    634     </table> 
    635   </xsl:template> 
    636  
    637   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm"> 
    638     <xsl:choose> 
    639       <xsl:when test="calendarCollection='true'"> 
    640         <h3>Delete Calendar</h3> 
    641         <p> 
    642           The following calendar will be deleted.  Continue? 
    643         </p> 
    644       </xsl:when> 
    645       <xsl:otherwise> 
    646         <h3>Delete Folder</h3> 
    647         <p> 
    648           The following folder <em>and all its contents</em> will be deleted. 
    649           Continue? 
    650         </p> 
    651       </xsl:otherwise> 
    652     </xsl:choose> 
    653  
    654     <form name="delCalForm" method="post" action="{$calendar-delete}"> 
    655       <table class="common"> 
    656         <tr> 
    657           <th>Path:</th> 
    658           <td> 
    659             <xsl:value-of select="path"/> 
    660           </td> 
    661         </tr> 
    662         <tr> 
    663           <th>Name:</th> 
    664           <td> 
    665             <xsl:value-of select="name"/> 
    666           </td> 
    667         </tr> 
    668         <tr> 
    669           <th>Summary:</th> 
    670           <td> 
    671             <xsl:value-of select="summary"/> 
    672           </td> 
    673         </tr> 
    674         <tr> 
    675           <th>Description:</th> 
    676           <td> 
    677             <xsl:value-of select="desc"/> 
    678           </td> 
    679         </tr> 
    680       </table> 
    681  
    682       <table border="0" id="submitTable"> 
    683         <tr> 
    684           <td> 
    685             <input type="submit" name="cancelled" value="cancel"/> 
    686           </td> 
    687           <td align="right"> 
    688             <xsl:choose> 
    689               <xsl:when test="calendarCollection='true'"> 
    690                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/> 
    691               </xsl:when> 
    692               <xsl:otherwise> 
    693                 <input type="submit" name="delete" value="Yes: Delete Folder!"/> 
    694               </xsl:otherwise> 
    695             </xsl:choose> 
    696           </td> 
    697         </tr> 
    698       </table> 
    699     </form> 
    700   </xsl:template> 
    701  
    702   <xsl:template match="currentCalendar" mode="addCalendar"> 
    703     <h3>Add Calendar / Folder</h3> 
    704     <form name="addCalForm" method="post" action="{$calendar-update}"> 
    705       <table class="common"> 
    706         <tr> 
    707           <th>Name:</th> 
    708           <td> 
    709             <xsl:variable name="curCalName" select="name"/> 
    710             <input name="calendar.name" value="{$curCalName}" size="40"/> 
    711           </td> 
    712         </tr> 
    713         <tr> 
    714           <th>Summary:</th> 
    715           <td> 
    716             <xsl:variable name="curCalSummary" select="summary"/> 
    717             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    718           </td> 
    719         </tr> 
    720         <tr> 
    721           <th>Description:</th> 
    722           <td> 
    723             <textarea name="calendar.description" cols="40" rows="4"> 
    724               <xsl:value-of select="desc"/> 
    725               <xsl:if test="normalize-space(desc) = ''"> 
    726                 <xsl:text> </xsl:text> 
    727                 <!-- keep this non-breaking space to avoid browser 
    728                 rendering errors when the text area is empty --> 
    729               </xsl:if> 
    730             </textarea> 
    731           </td> 
    732         </tr> 
    733         <tr> 
    734           <th>Calendar/Folder:</th> 
    735           <td> 
    736             <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    737             <input type="radio" value="false" name="calendarCollection"/> Folder 
    738           </td> 
    739         </tr> 
    740       </table> 
    741  
    742       <table border="0" id="submitTable"> 
    743         <tr> 
    744           <td> 
    745             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/> 
    746             <input type="submit" name="cancelled" value="cancel"/> 
    747             <input type="reset" value="Clear"/> 
    748           </td> 
    749         </tr> 
    750       </table> 
    751     </form> 
    752  
    753     <div id="sharingBox"> 
    754       <h3>Current Access:</h3> 
    755       Sharing may be added to a calendar once created. 
    756     </div> 
    757   </xsl:template> 
    758  
    759   <xsl:template match="currentCalendar" mode="modCalendar"> 
    760     <xsl:variable name="calPath" select="path"/> 
    761     <xsl:variable name="calPathEncoded" select="encodedPath"/> 
    762     <xsl:choose> 
    763       <xsl:when test="calendarCollection='true'"> 
    764         <h3>Modify Calendar</h3> 
    765       </xsl:when> 
    766       <xsl:otherwise> 
    767         <h3>Modify Folder</h3> 
    768       </xsl:otherwise> 
    769     </xsl:choose> 
    770     <form name="modCalForm" method="post" action="{$calendar-update}"> 
    771       <table class="common"> 
    772         <tr> 
    773           <th class="commonHeader" colspan="2"> 
    774             <xsl:value-of select="path"/> 
    775           </th> 
    776         </tr> 
    777         <tr> 
    778           <th>Name:</th> 
    779           <td> 
    780             <xsl:value-of select="name"/> 
    781           </td> 
    782         </tr> 
    783         <tr> 
    784           <th>Mailing List ID:</th> 
    785           <td> 
    786             <xsl:value-of select="mailListId"/> 
    787           </td> 
    788         </tr> 
    789         <tr> 
    790           <th>Summary:</th> 
    791           <td> 
    792             <xsl:variable name="curCalSummary" select="summary"/> 
    793             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    794           </td> 
    795         </tr> 
    796         <tr> 
    797           <th>Description:</th> 
    798           <td> 
    799             <textarea name="calendar.description" cols="40" rows="4"> 
    800               <xsl:value-of select="desc"/> 
    801               <xsl:if test="normalize-space(desc) = ''"> 
    802                 <xsl:text> </xsl:text> 
    803                 <!-- keep this non-breaking space to avoid browser 
    804                 rendering errors when the text area is empty --> 
    805               </xsl:if> 
    806             </textarea> 
    807           </td> 
    808         </tr> 
    809         <tr> 
    810           <th>Calendar/Folder:</th> 
    811           <td> 
    812             <xsl:choose> 
    813               <xsl:when test="calendarCollection='true'"> 
    814                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    815                 <input type="radio" value="false" name="calendarCollection"/> Folder 
    816               </xsl:when> 
    817               <xsl:otherwise> 
    818                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    819                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
    820               </xsl:otherwise> 
    821             </xsl:choose> 
    822           </td> 
    823         </tr> 
    824       </table> 
    825  
    826       <table border="0" id="submitTable"> 
    827         <tr> 
    828           <td> 
    829             <xsl:choose> 
    830               <xsl:when test="calendarCollection='true'"> 
    831                 <input type="submit" name="updateCalendar" value="Update Calendar"/> 
    832               </xsl:when> 
    833               <xsl:otherwise> 
    834                 <input type="submit" name="updateCalendar" value="Update Folder"/> 
    835               </xsl:otherwise> 
    836             </xsl:choose> 
    837             <input type="submit" name="cancelled" value="cancel"/> 
    838             <input type="reset" value="Reset"/> 
    839           </td> 
    840           <td align="right"> 
    841             <xsl:choose> 
    842               <xsl:when test="calendarCollection='true'"> 
    843                 <input type="submit" name="delete" value="Delete Calendar"/> 
    844               </xsl:when> 
    845               <xsl:otherwise> 
    846                 <input type="submit" name="delete" value="Delete Folder"/> 
    847               </xsl:otherwise> 
    848             </xsl:choose> 
    849           </td> 
    850         </tr> 
    851       </table> 
    852     </form> 
    853     <div id="sharingBox"> 
    854       <xsl:apply-templates select="acl" mode="currentAccess"> 
    855         <xsl:with-param name="action" select="$calendar-setAccess"/> 
    856         <xsl:with-param name="calPathEncoded" select="$calPathEncoded"/> 
    857       </xsl:apply-templates> 
    858       <form name="calendarShareForm" method="post" action="{$calendar-setAccess}" id="shareForm" onsubmit="setAccessHow(this)"> 
    859         <input type="hidden" name="calPath" value="{$calPath}"/> 
    860         <xsl:call-template name="entityAccessForm"> 
    861           <xsl:with-param name="type"> 
    862             <xsl:choose> 
    863               <xsl:when test="calType = '5'">inbox</xsl:when> 
    864               <xsl:when test="calType = '6'">outbox</xsl:when> 
    865               <xsl:otherwise>normal</xsl:otherwise> 
    866             </xsl:choose> 
    867           </xsl:with-param> 
    868         </xsl:call-template> 
    869       </form> 
    870     </div> 
    871   </xsl:template> 
    872  
    873   <xsl:template name="selectCalForEvent"> 
    874   <!-- selectCalForEvent creates a calendar tree in a pop-up window. 
    875       Used when selecting a calendar while adding or editing an event. 
    876  
    877       This template will be called when 
    878       a) we add an event by date with no specific calendar selected 
    879       b) we import an event 
    880       c) we add an event ref 
    881       d) we edit an event and change it's calendar (or change it while adding) 
    882  
    883       The intention is to load the calendar listing in a "pop-up" widget as a 
    884       tree of myCalendars and writable calendars associated with subscriptions. 
    885       The xml for the tree is already in header.jsp in myCalendars and 
    886       mySubscriptions. 
    887        --> 
    888     <input type="button" onclick="javascript:changeClass('calSelectWidget','visible')" value="select calendar" class="small"/> 
    889     <div id="calSelectWidget" class="invisible"> 
    890       <h2>select a calendar</h2> 
    891       <a href="javascript:changeClass('calSelectWidget','invisible')" id="calSelectWidgetCloser" title="close">x</a> 
    892       <h4>My Calendars</h4> 
    893       <ul class="calendarTree"> 
    894         <xsl:choose> 
    895           <xsl:when test="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    896             <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    897           </xsl:when> 
    898           <xsl:otherwise> 
    899             <em>no writable calendars</em> 
    900           </xsl:otherwise> 
    901         </xsl:choose> 
    902       </ul> 
    903       <h4>Subscribed Calendars</h4> 
    904       <ul class="calendarTree"> 
    905         <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    906         <xsl:choose> 
    907           <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    908             <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    909           </xsl:when> 
    910           <xsl:otherwise> 
    911             <em>no writable calendars</em> 
    912           </xsl:otherwise> 
    913         </xsl:choose> 
    914       </ul> 
    915     </div> 
    916   </xsl:template> 
    917  
    918   <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
    919     <xsl:variable name="id" select="id"/> 
    920     <li> 
    921       <xsl:attribute name="class"> 
    922         <xsl:choose> 
    923           <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    924                           and name = /bedework/selectionState/subscriptions/subscription/calendar/name">selected</xsl:when> 
    925           <xsl:when test="name='Trash'">trash</xsl:when> 
    926           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    927           <xsl:otherwise>calendar</xsl:otherwise> 
    928         </xsl:choose> 
    929       </xsl:attribute> 
    930       <xsl:variable name="calPath" select="path"/> 
    931       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    932       <xsl:variable name="calDisplay"> 
    933         <xsl:choose> 
    934           <xsl:when test="contains(path,$userPath)"> 
    935             <xsl:value-of select="substring-after(path,$userPath)"/> 
    936           </xsl:when> 
    937           <xsl:otherwise> 
    938             <xsl:value-of select="path"/> 
    939           </xsl:otherwise> 
    940         </xsl:choose> 
    941       </xsl:variable> 
    942       <xsl:choose> 
    943         <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
    944           <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')"> 
    945             <strong><xsl:value-of select="name"/></strong> 
    946           </a> 
    947           <xsl:if test="name != $calDisplay"> 
    948             <span class="small">(<xsl:value-of select="$calDisplay"/>)</span> 
    949           </xsl:if> 
    950         </xsl:when> 
    951         <xsl:otherwise> 
    952           <xsl:value-of select="name"/> 
    953         </xsl:otherwise> 
    954       </xsl:choose> 
    955       <xsl:if test="calendar"> 
    956         <ul> 
    957           <xsl:apply-templates select="calendar[calType &lt; 2]" mode="selectCalForEventCalTree"/> 
    958         </ul> 
    959       </xsl:if> 
    960     </li> 
    961   </xsl:template> 
    962  
    963   <xsl:template name="calendarList"> 
    964     <h3>Managing Calendars</h3> 
    965     <ul> 
    966       <li>Select an item from the calendar list on the left to modify 
    967       a calendar or folder.</li> 
    968       <li>Select the 
    969       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
    970       icon to add a new calendar or folder to the tree. 
    971         <ul> 
    972           <li>Folders may only contain calendars and subfolders.</li> 
    973           <li>Calendars may only contain events (and other calendar items).</li> 
    974           <li> 
    975             If a calendar is empty, it may be converted to a folder and vice 
    976             versa.  If a calendar or folder are not empty, it may not be 
    977             converted. 
    978           </li> 
    979         </ul> 
    980       </li> 
    981     </ul> 
    982   </xsl:template> 
    983  
    984   <xsl:template name="calendarDescriptions"> 
    985     <h2>Calendar Information</h2> 
    986     <ul> 
    987       <li>Select an item from the calendar tree on the left to view all information 
    988       about that calendar or folder.  The tree on the left represents the calendar 
    989       heirarchy.</li> 
    990     </ul> 
    991  
    992     <p><strong>All Calendar Descriptions:</strong></p> 
    993     <table id="flatCalendarDescriptions" cellspacing="0"> 
    994       <tr> 
    995         <th>Name</th> 
    996         <th>Description</th> 
    997       </tr> 
    998       <xsl:for-each select="//calendar[calType &lt; 2]"> 
    999         <xsl:variable name="descClass"> 
    1000           <xsl:choose> 
    1001             <xsl:when test="position() mod 2 = 0">even</xsl:when> 
    1002             <xsl:otherwise>odd</xsl:otherwise> 
    1003           </xsl:choose> 
    1004         </xsl:variable> 
    1005         <tr class="{$descClass}"> 
    1006           <td> 
    1007             <xsl:value-of select="name"/> 
    1008           </td> 
    1009           <td> 
    1010             <xsl:value-of select="desc"/> 
    1011           </td> 
    1012         </tr> 
    1013       </xsl:for-each> 
    1014     </table> 
    1015   </xsl:template> 
    1016 </xsl:stylesheet> 
    1017 <?xml version="1.0" encoding="UTF-8"?> 
    1018 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    1019   <xsl:template match="calendars" mode="manageCalendars"> 
    1020     <h2>Manage Calendars</h2> 
    1021     <table id="calendarTable"> 
    1022       <tr> 
    1023         <td class="cals"> 
    1024           <h3>Calendars</h3> 
    1025           <ul class="calendarTree"> 
    1026             <xsl:choose> 
    1027               <xsl:when test="/bedework/page='calendarDescriptions' or 
    1028                               /bedework/page='displayCalendar'"> 
    1029                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForDisplay"/> 
    1030               </xsl:when> 
    1031               <xsl:otherwise> 
    1032                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForUpdate"/> 
    1033               </xsl:otherwise> 
    1034             </xsl:choose> 
    1035           </ul> 
    1036         </td> 
    1037         <td class="calendarContent"> 
    1038           <xsl:choose> 
    1039             <xsl:when test="/bedework/page='calendarList' or 
    1040                             /bedework/page='calendarReferenced'"> 
    1041               <xsl:call-template name="calendarList"/> 
    1042             </xsl:when> 
    1043             <xsl:when test="/bedework/page='calendarDescriptions'"> 
    1044               <xsl:call-template name="calendarDescriptions"/> 
    1045             </xsl:when> 
    1046             <xsl:when test="/bedework/page='displayCalendar'"> 
    1047               <xsl:apply-templates select="/bedework/currentCalendar" mode="displayCalendar"/> 
    1048             </xsl:when> 
    1049             <xsl:when test="/bedework/page='deleteCalendarConfirm'"> 
    1050               <xsl:apply-templates select="/bedework/currentCalendar" mode="deleteCalendarConfirm"/> 
    1051             </xsl:when> 
    1052             <xsl:when test="/bedework/creating='true'"> 
    1053               <xsl:apply-templates select="/bedework/currentCalendar" mode="addCalendar"/> 
    1054             </xsl:when> 
    1055             <xsl:otherwise> 
    1056               <xsl:apply-templates select="/bedework/currentCalendar" mode="modCalendar"/> 
    1057             </xsl:otherwise> 
    1058           </xsl:choose> 
    1059         </td> 
    1060       </tr> 
    1061     </table> 
    1062   </xsl:template> 
    1063  
    1064   <xsl:template match="calendar" mode="listForDisplay"> 
    1065     <xsl:variable name="calPath" select="encodedPath"/> 
    1066     <li> 
    1067       <xsl:attribute name="class"> 
    1068         <xsl:choose> 
    1069           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1070           <xsl:otherwise>calendar</xsl:otherwise> 
    1071         </xsl:choose> 
    1072       </xsl:attribute> 
    1073       <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display"> 
    1074         <xsl:value-of select="name"/> 
    1075       </a> 
    1076       <xsl:if test="calendar"> 
    1077         <ul> 
    1078           <xsl:apply-templates select="calendar" mode="listForDisplay"> 
    1079             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    1080           </xsl:apply-templates> 
    1081         </ul> 
    1082       </xsl:if> 
    1083     </li> 
    1084   </xsl:template> 
    1085  
    1086   <xsl:template match="calendar" mode="listForUpdate"> 
    1087     <xsl:variable name="calPath" select="encodedPath"/> 
    1088     <li> 
    1089       <xsl:attribute name="class"> 
    1090         <xsl:choose> 
    1091           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1092           <xsl:otherwise>calendar</xsl:otherwise> 
    1093         </xsl:choose> 
    1094       </xsl:attribute> 
    1095       <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update"> 
    1096         <xsl:value-of select="name"/> 
    1097       </a> 
    1098       <xsl:if test="calendarCollection='false'"> 
    1099         <xsl:text> </xsl:text> 
    1100         <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder"> 
    1101           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/> 
    1102         </a> 
    1103       </xsl:if> 
    1104       <xsl:if test="calendar"> 
    1105         <ul> 
    1106           <xsl:apply-templates select="calendar" mode="listForUpdate"> 
    1107             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    1108           </xsl:apply-templates> 
    1109         </ul> 
    1110       </xsl:if> 
    1111     </li> 
    1112   </xsl:template> 
    1113  
    1114  
    1115   <xsl:template match="currentCalendar" mode="displayCalendar"> 
    1116     <h2>Calendar Information</h2> 
    1117     <table class="common"> 
    1118       <tr> 
    1119         <th>Name:</th> 
    1120         <td> 
    1121           <xsl:value-of select="name"/> 
    1122         </td> 
    1123       </tr> 
    1124       <tr> 
    1125         <th>Path:</th> 
    1126         <td> 
    1127           <xsl:value-of select="path"/> 
    1128         </td> 
    1129       </tr> 
    1130       <tr> 
    1131         <th>Summary:</th> 
    1132         <td> 
    1133           <xsl:value-of select="summary"/> 
    1134         </td> 
    1135       </tr> 
    1136       <tr> 
    1137         <th>Description:</th> 
    1138         <td> 
    1139           <xsl:value-of select="desc"/> 
    1140         </td> 
    1141       </tr> 
    1142     </table> 
    1143   </xsl:template> 
    1144  
    1145   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm"> 
    1146     <xsl:choose> 
    1147       <xsl:when test="calendarCollection='true'"> 
    1148         <h3>Delete Calendar</h3> 
    1149         <p> 
    1150           The following calendar will be deleted.  Continue? 
    1151         </p> 
    1152       </xsl:when> 
    1153       <xsl:otherwise> 
    1154         <h3>Delete Folder</h3> 
    1155         <p> 
    1156           The following folder <em>and all its contents</em> will be deleted. 
    1157           Continue? 
    1158         </p> 
    1159       </xsl:otherwise> 
    1160     </xsl:choose> 
    1161  
    1162     <form name="delCalForm" method="post" action="{$calendar-delete}"> 
    1163       <table class="common"> 
    1164         <tr> 
    1165           <th>Path:</th> 
    1166           <td> 
    1167             <xsl:value-of select="path"/> 
    1168           </td> 
    1169         </tr> 
    1170         <tr> 
    1171           <th>Name:</th> 
    1172           <td> 
    1173             <xsl:value-of select="name"/> 
    1174           </td> 
    1175         </tr> 
    1176         <tr> 
    1177           <th>Summary:</th> 
    1178           <td> 
    1179             <xsl:value-of select="summary"/> 
    1180           </td> 
    1181         </tr> 
    1182         <tr> 
    1183           <th>Description:</th> 
    1184           <td> 
    1185             <xsl:value-of select="desc"/> 
    1186           </td> 
    1187         </tr> 
    1188       </table> 
    1189  
    1190       <table border="0" id="submitTable"> 
    1191         <tr> 
    1192           <td> 
    1193             <input type="submit" name="cancelled" value="cancel"/> 
    1194           </td> 
    1195           <td align="right"> 
    1196             <xsl:choose> 
    1197               <xsl:when test="calendarCollection='true'"> 
    1198                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/> 
    1199               </xsl:when> 
    1200               <xsl:otherwise> 
    1201                 <input type="submit" name="delete" value="Yes: Delete Folder!"/> 
    1202               </xsl:otherwise> 
    1203             </xsl:choose> 
    1204           </td> 
    1205         </tr> 
    1206       </table> 
    1207     </form> 
    1208   </xsl:template> 
    1209  
    1210   <xsl:template match="currentCalendar" mode="addCalendar"> 
    1211     <h3>Add Calendar / Folder</h3> 
    1212     <form name="addCalForm" method="post" action="{$calendar-update}"> 
    1213       <table class="common"> 
    1214         <tr> 
    1215           <th>Name:</th> 
    1216           <td> 
    1217             <xsl:variable name="curCalName" select="name"/> 
    1218             <input name="calendar.name" value="{$curCalName}" size="40"/> 
    1219           </td> 
    1220         </tr> 
    1221         <tr> 
    1222           <th>Summary:</th> 
    1223           <td> 
    1224             <xsl:variable name="curCalSummary" select="summary"/> 
    1225             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    1226           </td> 
    1227         </tr> 
    1228         <tr> 
    1229           <th>Description:</th> 
    1230           <td> 
    1231             <textarea name="calendar.description" cols="40" rows="4"> 
    1232               <xsl:value-of select="desc"/> 
    1233               <xsl:if test="normalize-space(desc) = ''"> 
    1234                 <xsl:text> </xsl:text> 
    1235                 <!-- keep this non-breaking space to avoid browser 
    1236                 rendering errors when the text area is empty --> 
    1237               </xsl:if> 
    1238             </textarea> 
    1239           </td> 
    1240         </tr> 
    1241         <tr> 
    1242           <th>Calendar/Folder:</th> 
    1243           <td> 
    1244             <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    1245             <input type="radio" value="false" name="calendarCollection"/> Folder 
    1246           </td> 
    1247         </tr> 
    1248       </table> 
    1249  
    1250       <table border="0" id="submitTable"> 
    1251         <tr> 
    1252           <td> 
    1253             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/> 
    1254             <input type="submit" name="cancelled" value="cancel"/> 
    1255             <input type="reset" value="Clear"/> 
    1256           </td> 
    1257         </tr> 
    1258       </table> 
    1259     </form> 
    1260  
    1261     <div id="sharingBox"> 
    1262       <h3>Current Access:</h3> 
    1263       Sharing may be added to a calendar once created. 
    1264     </div> 
    1265   </xsl:template> 
    1266  
    1267   <xsl:template match="currentCalendar" mode="modCalendar"> 
    1268     <xsl:variable name="calPath" select="path"/> 
    1269     <xsl:variable name="calPathEncoded" select="encodedPath"/> 
    1270     <xsl:choose> 
    1271       <xsl:when test="calendarCollection='true'"> 
    1272         <h3>Modify Calendar</h3> 
    1273       </xsl:when> 
    1274       <xsl:otherwise> 
    1275         <h3>Modify Folder</h3> 
    1276       </xsl:otherwise> 
    1277     </xsl:choose> 
    1278     <form name="modCalForm" method="post" action="{$calendar-update}"> 
    1279       <table class="common"> 
    1280         <tr> 
    1281           <th class="commonHeader" colspan="2"> 
    1282             <xsl:value-of select="path"/> 
    1283           </th> 
    1284         </tr> 
    1285         <tr> 
    1286           <th>Name:</th> 
    1287           <td> 
    1288             <xsl:value-of select="name"/> 
    1289           </td> 
    1290         </tr> 
    1291         <tr> 
    1292           <th>Mailing List ID:</th> 
    1293           <td> 
    1294             <xsl:value-of select="mailListId"/> 
    1295           </td> 
    1296         </tr> 
    1297         <tr> 
    1298           <th>Summary:</th> 
    1299           <td> 
    1300             <xsl:variable name="curCalSummary" select="summary"/> 
    1301             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    1302           </td> 
    1303         </tr> 
    1304         <tr> 
    1305           <th>Description:</th> 
    1306           <td> 
    1307             <textarea name="calendar.description" cols="40" rows="4"> 
    1308               <xsl:value-of select="desc"/> 
    1309               <xsl:if test="normalize-space(desc) = ''"> 
    1310                 <xsl:text> </xsl:text> 
    1311                 <!-- keep this non-breaking space to avoid browser 
    1312                 rendering errors when the text area is empty --> 
    1313               </xsl:if> 
    1314             </textarea> 
    1315           </td> 
    1316         </tr> 
    1317         <tr> 
    1318           <th>Calendar/Folder:</th> 
    1319           <td> 
    1320             <xsl:choose> 
    1321               <xsl:when test="calendarCollection='true'"> 
    1322                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    1323                 <input type="radio" value="false" name="calendarCollection"/> Folder 
    1324               </xsl:when> 
    1325               <xsl:otherwise> 
    1326                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    1327                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
    1328               </xsl:otherwise> 
    1329             </xsl:choose> 
    1330           </td> 
    1331         </tr> 
    1332       </table> 
    1333  
    1334       <table border="0" id="submitTable"> 
    1335         <tr> 
    1336           <td> 
    1337             <xsl:choose> 
    1338               <xsl:when test="calendarCollection='true'"> 
    1339                 <input type="submit" name="updateCalendar" value="Update Calendar"/> 
    1340               </xsl:when> 
    1341               <xsl:otherwise> 
    1342                 <input type="submit" name="updateCalendar" value="Update Folder"/> 
    1343               </xsl:otherwise> 
    1344             </xsl:choose> 
    1345             <input type="submit" name="cancelled" value="cancel"/> 
    1346             <input type="reset" value="Reset"/> 
    1347           </td> 
    1348           <td align="right"> 
    1349             <xsl:choose> 
    1350               <xsl:when test="calendarCollection='true'"> 
    1351                 <input type="submit" name="delete" value="Delete Calendar"/> 
    1352               </xsl:when> 
    1353               <xsl:otherwise> 
    1354                 <input type="submit" name="delete" value="Delete Folder"/> 
    1355               </xsl:otherwise> 
    1356             </xsl:choose> 
    1357           </td> 
    1358         </tr> 
    1359       </table> 
    1360     </form> 
    1361     <div id="sharingBox"> 
    1362       <xsl:apply-templates select="acl" mode="currentAccess"> 
    1363         <xsl:with-param name="action" select="$calendar-setAccess"/> 
    1364         <xsl:with-param name="calPathEncoded" select="$calPathEncoded"/> 
    1365       </xsl:apply-templates> 
    1366       <form name="calendarShareForm" method="post" action="{$calendar-setAccess}" id="shareForm" onsubmit="setAccessHow(this)"> 
    1367         <input type="hidden" name="calPath" value="{$calPath}"/> 
    1368         <xsl:call-template name="entityAccessForm"> 
    1369           <xsl:with-param name="type"> 
    1370             <xsl:choose> 
    1371               <xsl:when test="calType = '5'">inbox</xsl:when> 
    1372               <xsl:when test="calType = '6'">outbox</xsl:when> 
    1373               <xsl:otherwise>normal</xsl:otherwise> 
    1374             </xsl:choose> 
    1375           </xsl:with-param> 
    1376         </xsl:call-template> 
    1377       </form> 
    1378     </div> 
    1379   </xsl:template> 
    1380  
    1381   <xsl:template name="selectCalForEvent"> 
    1382   <!-- selectCalForEvent creates a calendar tree in a pop-up window. 
    1383       Used when selecting a calendar while adding or editing an event. 
    1384  
    1385       This template will be called when 
    1386       a) we add an event by date with no specific calendar selected 
    1387       b) we import an event 
    1388       c) we add an event ref 
    1389       d) we edit an event and change it's calendar (or change it while adding) 
    1390  
    1391       The intention is to load the calendar listing in a "pop-up" widget as a 
    1392       tree of myCalendars and writable calendars associated with subscriptions. 
    1393       The xml for the tree is already in header.jsp in myCalendars and 
    1394       mySubscriptions. 
    1395        --> 
    1396     <input type="button" onclick="javascript:changeClass('calSelectWidget','visible')" value="select calendar" class="small"/> 
    1397     <div id="calSelectWidget" class="invisible"> 
    1398       <h2>select a calendar</h2> 
    1399       <a href="javascript:changeClass('calSelectWidget','invisible')" id="calSelectWidgetCloser" title="close">x</a> 
    1400       <h4>My Calendars</h4> 
    1401       <ul class="calendarTree"> 
    1402         <xsl:choose> 
    1403           <xsl:when test="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    1404             <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    1405           </xsl:when> 
    1406           <xsl:otherwise> 
    1407             <em>no writable calendars</em> 
    1408           </xsl:otherwise> 
    1409         </xsl:choose> 
    1410       </ul> 
    1411       <h4>Subscribed Calendars</h4> 
    1412       <ul class="calendarTree"> 
    1413         <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    1414         <xsl:choose> 
    1415           <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    1416             <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    1417           </xsl:when> 
    1418           <xsl:otherwise> 
    1419             <em>no writable calendars</em> 
    1420           </xsl:otherwise> 
    1421         </xsl:choose> 
    1422       </ul> 
    1423     </div> 
    1424   </xsl:template> 
    1425  
    1426   <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
    1427     <xsl:variable name="id" select="id"/> 
    1428     <li> 
    1429       <xsl:attribute name="class"> 
    1430         <xsl:choose> 
    1431           <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    1432                           and name = /bedework/selectionState/subscriptions/subscription/calendar/name">selected</xsl:when> 
    1433           <xsl:when test="name='Trash'">trash</xsl:when> 
    1434           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1435           <xsl:otherwise>calendar</xsl:otherwise> 
    1436         </xsl:choose> 
    1437       </xsl:attribute> 
    1438       <xsl:variable name="calPath" select="path"/> 
    1439       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1440       <xsl:variable name="calDisplay"> 
    1441         <xsl:choose> 
    1442           <xsl:when test="contains(path,$userPath)"> 
    1443             <xsl:value-of select="substring-after(path,$userPath)"/> 
    1444           </xsl:when> 
    1445           <xsl:otherwise> 
    1446             <xsl:value-of select="path"/> 
    1447           </xsl:otherwise> 
    1448         </xsl:choose> 
    1449       </xsl:variable> 
    1450       <xsl:choose> 
    1451         <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
    1452           <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')"> 
    1453             <strong><xsl:value-of select="name"/></strong> 
    1454           </a> 
    1455           <xsl:if test="name != $calDisplay"> 
    1456             <span class="small">(<xsl:value-of select="$calDisplay"/>)</span> 
    1457           </xsl:if> 
    1458         </xsl:when> 
    1459         <xsl:otherwise> 
    1460           <xsl:value-of select="name"/> 
    1461         </xsl:otherwise> 
    1462       </xsl:choose> 
    1463       <xsl:if test="calendar"> 
    1464         <ul> 
    1465           <xsl:apply-templates select="calendar[calType &lt; 2]" mode="selectCalForEventCalTree"/> 
    1466         </ul> 
    1467       </xsl:if> 
    1468     </li> 
    1469   </xsl:template> 
    1470  
    1471   <xsl:template name="calendarList"> 
    1472     <h3>Managing Calendars</h3> 
    1473     <ul> 
    1474       <li>Select an item from the calendar list on the left to modify 
    1475       a calendar or folder.</li> 
    1476       <li>Select the 
    1477       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
    1478       icon to add a new calendar or folder to the tree. 
    1479         <ul> 
    1480           <li>Folders may only contain calendars and subfolders.</li> 
    1481           <li>Calendars may only contain events (and other calendar items).</li> 
    1482           <li> 
    1483             If a calendar is empty, it may be converted to a folder and vice 
    1484             versa.  If a calendar or folder are not empty, it may not be 
    1485             converted. 
    1486           </li> 
    1487         </ul> 
    1488       </li> 
    1489     </ul> 
    1490   </xsl:template> 
    1491  
    1492   <xsl:template name="calendarDescriptions"> 
    1493     <h2>Calendar Information</h2> 
    1494     <ul> 
    1495       <li>Select an item from the calendar tree on the left to view all information 
    1496       about that calendar or folder.  The tree on the left represents the calendar 
    1497       heirarchy.</li> 
    1498     </ul> 
    1499  
    1500     <p><strong>All Calendar Descriptions:</strong></p> 
    1501     <table id="flatCalendarDescriptions" cellspacing="0"> 
    1502       <tr> 
    1503         <th>Name</th> 
    1504         <th>Description</th> 
    1505       </tr> 
    1506       <xsl:for-each select="//calendar[calType &lt; 2]"> 
    1507         <xsl:variable name="descClass"> 
    1508           <xsl:choose> 
    1509             <xsl:when test="position() mod 2 = 0">even</xsl:when> 
    1510             <xsl:otherwise>odd</xsl:otherwise> 
    1511           </xsl:choose> 
    1512         </xsl:variable> 
    1513         <tr class="{$descClass}"> 
    1514           <td> 
    1515             <xsl:value-of select="name"/> 
    1516           </td> 
    1517           <td> 
    1518             <xsl:value-of select="desc"/> 
    1519           </td> 
    1520         </tr> 
    1521       </xsl:for-each> 
    1522     </table> 
    1523   </xsl:template> 
    1524 </xsl:stylesheet> 
    1525 <?xml version="1.0" encoding="UTF-8"?> 
    1526 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    1527   <xsl:template match="calendars" mode="manageCalendars"> 
    1528     <h2>Manage Calendars</h2> 
    1529     <table id="calendarTable"> 
    1530       <tr> 
    1531         <td class="cals"> 
    1532           <h3>Calendars</h3> 
    1533           <ul class="calendarTree"> 
    1534             <xsl:choose> 
    1535               <xsl:when test="/bedework/page='calendarDescriptions' or 
    1536                               /bedework/page='displayCalendar'"> 
    1537                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForDisplay"/> 
    1538               </xsl:when> 
    1539               <xsl:otherwise> 
    1540                 <xsl:apply-templates select="calendar[calType &lt; 2]" mode="listForUpdate"/> 
    1541               </xsl:otherwise> 
    1542             </xsl:choose> 
    1543           </ul> 
    1544         </td> 
    1545         <td class="calendarContent"> 
    1546           <xsl:choose> 
    1547             <xsl:when test="/bedework/page='calendarList' or 
    1548                             /bedework/page='calendarReferenced'"> 
    1549               <xsl:call-template name="calendarList"/> 
    1550             </xsl:when> 
    1551             <xsl:when test="/bedework/page='calendarDescriptions'"> 
    1552               <xsl:call-template name="calendarDescriptions"/> 
    1553             </xsl:when> 
    1554             <xsl:when test="/bedework/page='displayCalendar'"> 
    1555               <xsl:apply-templates select="/bedework/currentCalendar" mode="displayCalendar"/> 
    1556             </xsl:when> 
    1557             <xsl:when test="/bedework/page='deleteCalendarConfirm'"> 
    1558               <xsl:apply-templates select="/bedework/currentCalendar" mode="deleteCalendarConfirm"/> 
    1559             </xsl:when> 
    1560             <xsl:when test="/bedework/creating='true'"> 
    1561               <xsl:apply-templates select="/bedework/currentCalendar" mode="addCalendar"/> 
    1562             </xsl:when> 
    1563             <xsl:otherwise> 
    1564               <xsl:apply-templates select="/bedework/currentCalendar" mode="modCalendar"/> 
    1565             </xsl:otherwise> 
    1566           </xsl:choose> 
    1567         </td> 
    1568       </tr> 
    1569     </table> 
    1570   </xsl:template> 
    1571  
    1572   <xsl:template match="calendar" mode="listForDisplay"> 
    1573     <xsl:variable name="calPath" select="encodedPath"/> 
    1574     <li> 
    1575       <xsl:attribute name="class"> 
    1576         <xsl:choose> 
    1577           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1578           <xsl:otherwise>calendar</xsl:otherwise> 
    1579         </xsl:choose> 
    1580       </xsl:attribute> 
    1581       <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display"> 
    1582         <xsl:value-of select="name"/> 
    1583       </a> 
    1584       <xsl:if test="calendar"> 
    1585         <ul> 
    1586           <xsl:apply-templates select="calendar" mode="listForDisplay"> 
    1587             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    1588           </xsl:apply-templates> 
    1589         </ul> 
    1590       </xsl:if> 
    1591     </li> 
    1592   </xsl:template> 
    1593  
    1594   <xsl:template match="calendar" mode="listForUpdate"> 
    1595     <xsl:variable name="calPath" select="encodedPath"/> 
    1596     <li> 
    1597       <xsl:attribute name="class"> 
    1598         <xsl:choose> 
    1599           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1600           <xsl:otherwise>calendar</xsl:otherwise> 
    1601         </xsl:choose> 
    1602       </xsl:attribute> 
    1603       <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update"> 
    1604         <xsl:value-of select="name"/> 
    1605       </a> 
    1606       <xsl:if test="calendarCollection='false'"> 
    1607         <xsl:text> </xsl:text> 
    1608         <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder"> 
    1609           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/> 
    1610         </a> 
    1611       </xsl:if> 
    1612       <xsl:if test="calendar"> 
    1613         <ul> 
    1614           <xsl:apply-templates select="calendar" mode="listForUpdate"> 
    1615             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    1616           </xsl:apply-templates> 
    1617         </ul> 
    1618       </xsl:if> 
    1619     </li> 
    1620   </xsl:template> 
    1621  
    1622  
    1623   <xsl:template match="currentCalendar" mode="displayCalendar"> 
    1624     <h2>Calendar Information</h2> 
    1625     <table class="common"> 
    1626       <tr> 
    1627         <th>Name:</th> 
    1628         <td> 
    1629           <xsl:value-of select="name"/> 
    1630         </td> 
    1631       </tr> 
    1632       <tr> 
    1633         <th>Path:</th> 
    1634         <td> 
    1635           <xsl:value-of select="path"/> 
    1636         </td> 
    1637       </tr> 
    1638       <tr> 
    1639         <th>Summary:</th> 
    1640         <td> 
    1641           <xsl:value-of select="summary"/> 
    1642         </td> 
    1643       </tr> 
    1644       <tr> 
    1645         <th>Description:</th> 
    1646         <td> 
    1647           <xsl:value-of select="desc"/> 
    1648         </td> 
    1649       </tr> 
    1650     </table> 
    1651   </xsl:template> 
    1652  
    1653   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm"> 
    1654     <xsl:choose> 
    1655       <xsl:when test="calendarCollection='true'"> 
    1656         <h3>Delete Calendar</h3> 
    1657         <p> 
    1658           The following calendar will be deleted.  Continue? 
    1659         </p> 
    1660       </xsl:when> 
    1661       <xsl:otherwise> 
    1662         <h3>Delete Folder</h3> 
    1663         <p> 
    1664           The following folder <em>and all its contents</em> will be deleted. 
    1665           Continue? 
    1666         </p> 
    1667       </xsl:otherwise> 
    1668     </xsl:choose> 
    1669  
    1670     <form name="delCalForm" method="post" action="{$calendar-delete}"> 
    1671       <table class="common"> 
    1672         <tr> 
    1673           <th>Path:</th> 
    1674           <td> 
    1675             <xsl:value-of select="path"/> 
    1676           </td> 
    1677         </tr> 
    1678         <tr> 
    1679           <th>Name:</th> 
    1680           <td> 
    1681             <xsl:value-of select="name"/> 
    1682           </td> 
    1683         </tr> 
    1684         <tr> 
    1685           <th>Summary:</th> 
    1686           <td> 
    1687             <xsl:value-of select="summary"/> 
    1688           </td> 
    1689         </tr> 
    1690         <tr> 
    1691           <th>Description:</th> 
    1692           <td> 
    1693             <xsl:value-of select="desc"/> 
    1694           </td> 
    1695         </tr> 
    1696       </table> 
    1697  
    1698       <table border="0" id="submitTable"> 
    1699         <tr> 
    1700           <td> 
    1701             <input type="submit" name="cancelled" value="cancel"/> 
    1702           </td> 
    1703           <td align="right"> 
    1704             <xsl:choose> 
    1705               <xsl:when test="calendarCollection='true'"> 
    1706                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/> 
    1707               </xsl:when> 
    1708               <xsl:otherwise> 
    1709                 <input type="submit" name="delete" value="Yes: Delete Folder!"/> 
    1710               </xsl:otherwise> 
    1711             </xsl:choose> 
    1712           </td> 
    1713         </tr> 
    1714       </table> 
    1715     </form> 
    1716   </xsl:template> 
    1717  
    1718   <xsl:template match="currentCalendar" mode="addCalendar"> 
    1719     <h3>Add Calendar / Folder</h3> 
    1720     <form name="addCalForm" method="post" action="{$calendar-update}"> 
    1721       <table class="common"> 
    1722         <tr> 
    1723           <th>Name:</th> 
    1724           <td> 
    1725             <xsl:variable name="curCalName" select="name"/> 
    1726             <input name="calendar.name" value="{$curCalName}" size="40"/> 
    1727           </td> 
    1728         </tr> 
    1729         <tr> 
    1730           <th>Summary:</th> 
    1731           <td> 
    1732             <xsl:variable name="curCalSummary" select="summary"/> 
    1733             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    1734           </td> 
    1735         </tr> 
    1736         <tr> 
    1737           <th>Description:</th> 
    1738           <td> 
    1739             <textarea name="calendar.description" cols="40" rows="4"> 
    1740               <xsl:value-of select="desc"/> 
    1741               <xsl:if test="normalize-space(desc) = ''"> 
    1742                 <xsl:text> </xsl:text> 
    1743                 <!-- keep this non-breaking space to avoid browser 
    1744                 rendering errors when the text area is empty --> 
    1745               </xsl:if> 
    1746             </textarea> 
    1747           </td> 
    1748         </tr> 
    1749         <tr> 
    1750           <th>Calendar/Folder:</th> 
    1751           <td> 
    1752             <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    1753             <input type="radio" value="false" name="calendarCollection"/> Folder 
    1754           </td> 
    1755         </tr> 
    1756       </table> 
    1757  
    1758       <table border="0" id="submitTable"> 
    1759         <tr> 
    1760           <td> 
    1761             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/> 
    1762             <input type="submit" name="cancelled" value="cancel"/> 
    1763             <input type="reset" value="Clear"/> 
    1764           </td> 
    1765         </tr> 
    1766       </table> 
    1767     </form> 
    1768  
    1769     <div id="sharingBox"> 
    1770       <h3>Current Access:</h3> 
    1771       Sharing may be added to a calendar once created. 
    1772     </div> 
    1773   </xsl:template> 
    1774  
    1775   <xsl:template match="currentCalendar" mode="modCalendar"> 
    1776     <xsl:variable name="calPath" select="path"/> 
    1777     <xsl:variable name="calPathEncoded" select="encodedPath"/> 
    1778     <xsl:choose> 
    1779       <xsl:when test="calendarCollection='true'"> 
    1780         <h3>Modify Calendar</h3> 
    1781       </xsl:when> 
    1782       <xsl:otherwise> 
    1783         <h3>Modify Folder</h3> 
    1784       </xsl:otherwise> 
    1785     </xsl:choose> 
    1786     <form name="modCalForm" method="post" action="{$calendar-update}"> 
    1787       <table class="common"> 
    1788         <tr> 
    1789           <th class="commonHeader" colspan="2"> 
    1790             <xsl:value-of select="path"/> 
    1791           </th> 
    1792         </tr> 
    1793         <tr> 
    1794           <th>Name:</th> 
    1795           <td> 
    1796             <xsl:value-of select="name"/> 
    1797           </td> 
    1798         </tr> 
    1799         <tr> 
    1800           <th>Mailing List ID:</th> 
    1801           <td> 
    1802             <xsl:value-of select="mailListId"/> 
    1803           </td> 
    1804         </tr> 
    1805         <tr> 
    1806           <th>Summary:</th> 
    1807           <td> 
    1808             <xsl:variable name="curCalSummary" select="summary"/> 
    1809             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    1810           </td> 
    1811         </tr> 
    1812         <tr> 
    1813           <th>Description:</th> 
    1814           <td> 
    1815             <textarea name="calendar.description" cols="40" rows="4"> 
    1816               <xsl:value-of select="desc"/> 
    1817               <xsl:if test="normalize-space(desc) = ''"> 
    1818                 <xsl:text> </xsl:text> 
    1819                 <!-- keep this non-breaking space to avoid browser 
    1820                 rendering errors when the text area is empty --> 
    1821               </xsl:if> 
    1822             </textarea> 
    1823           </td> 
    1824         </tr> 
    1825         <tr> 
    1826           <th>Calendar/Folder:</th> 
    1827           <td> 
    1828             <xsl:choose> 
    1829               <xsl:when test="calendarCollection='true'"> 
    1830                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    1831                 <input type="radio" value="false" name="calendarCollection"/> Folder 
    1832               </xsl:when> 
    1833               <xsl:otherwise> 
    1834                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    1835                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
    1836               </xsl:otherwise> 
    1837             </xsl:choose> 
    1838           </td> 
    1839         </tr> 
    1840       </table> 
    1841  
    1842       <table border="0" id="submitTable"> 
    1843         <tr> 
    1844           <td> 
    1845             <xsl:choose> 
    1846               <xsl:when test="calendarCollection='true'"> 
    1847                 <input type="submit" name="updateCalendar" value="Update Calendar"/> 
    1848               </xsl:when> 
    1849               <xsl:otherwise> 
    1850                 <input type="submit" name="updateCalendar" value="Update Folder"/> 
    1851               </xsl:otherwise> 
    1852             </xsl:choose> 
    1853             <input type="submit" name="cancelled" value="cancel"/> 
    1854             <input type="reset" value="Reset"/> 
    1855           </td> 
    1856           <td align="right"> 
    1857             <xsl:choose> 
    1858               <xsl:when test="calendarCollection='true'"> 
    1859                 <input type="submit" name="delete" value="Delete Calendar"/> 
    1860               </xsl:when> 
    1861               <xsl:otherwise> 
    1862                 <input type="submit" name="delete" value="Delete Folder"/> 
    1863               </xsl:otherwise> 
    1864             </xsl:choose> 
    1865           </td> 
    1866         </tr> 
    1867       </table> 
    1868     </form> 
    1869     <div id="sharingBox"> 
    1870       <xsl:apply-templates select="acl" mode="currentAccess"> 
    1871         <xsl:with-param name="action" select="$calendar-setAccess"/> 
    1872         <xsl:with-param name="calPathEncoded" select="$calPathEncoded"/> 
    1873       </xsl:apply-templates> 
    1874       <form name="calendarShareForm" method="post" action="{$calendar-setAccess}" id="shareForm" onsubmit="setAccessHow(this)"> 
    1875         <input type="hidden" name="calPath" value="{$calPath}"/> 
    1876         <xsl:call-template name="entityAccessForm"> 
    1877           <xsl:with-param name="type"> 
    1878             <xsl:choose> 
    1879               <xsl:when test="calType = '5'">inbox</xsl:when> 
    1880               <xsl:when test="calType = '6'">outbox</xsl:when> 
    1881               <xsl:otherwise>normal</xsl:otherwise> 
    1882             </xsl:choose> 
    1883           </xsl:with-param> 
    1884         </xsl:call-template> 
    1885       </form> 
    1886     </div> 
    1887   </xsl:template> 
    1888  
    1889   <xsl:template name="selectCalForEvent"> 
    1890   <!-- selectCalForEvent creates a calendar tree in a pop-up window. 
    1891       Used when selecting a calendar while adding or editing an event. 
    1892  
    1893       This template will be called when 
    1894       a) we add an event by date with no specific calendar selected 
    1895       b) we import an event 
    1896       c) we add an event ref 
    1897       d) we edit an event and change it's calendar (or change it while adding) 
    1898  
    1899       The intention is to load the calendar listing in a "pop-up" widget as a 
    1900       tree of myCalendars and writable calendars associated with subscriptions. 
    1901       The xml for the tree is already in header.jsp in myCalendars and 
    1902       mySubscriptions. 
    1903        --> 
    1904     <input type="button" onclick="javascript:changeClass('calSelectWidget','visible')" value="select calendar" class="small"/> 
    1905     <div id="calSelectWidget" class="invisible"> 
    1906       <h2>select a calendar</h2> 
    1907       <a href="javascript:changeClass('calSelectWidget','invisible')" id="calSelectWidgetCloser" title="close">x</a> 
    1908       <h4>My Calendars</h4> 
    1909       <ul class="calendarTree"> 
    1910         <xsl:choose> 
    1911           <xsl:when test="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    1912             <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    1913           </xsl:when> 
    1914           <xsl:otherwise> 
    1915             <em>no writable calendars</em> 
    1916           </xsl:otherwise> 
    1917         </xsl:choose> 
    1918       </ul> 
    1919       <h4>Subscribed Calendars</h4> 
    1920       <ul class="calendarTree"> 
    1921         <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    1922         <xsl:choose> 
    1923           <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]"> 
    1924             <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    1925           </xsl:when> 
    1926           <xsl:otherwise> 
    1927             <em>no writable calendars</em> 
    1928           </xsl:otherwise> 
    1929         </xsl:choose> 
    1930       </ul> 
    1931     </div> 
    1932   </xsl:template> 
    1933  
    1934   <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
    1935     <xsl:variable name="id" select="id"/> 
    1936     <li> 
    1937       <xsl:attribute name="class"> 
    1938         <xsl:choose> 
    1939           <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    1940                           and name = /bedework/selectionState/subscriptions/subscription/calendar/name">selected</xsl:when> 
    1941           <xsl:when test="name='Trash'">trash</xsl:when> 
    1942           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    1943           <xsl:otherwise>calendar</xsl:otherwise> 
    1944         </xsl:choose> 
    1945       </xsl:attribute> 
    1946       <xsl:variable name="calPath" select="path"/> 
    1947       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1948       <xsl:variable name="calDisplay"> 
    1949         <xsl:choose> 
    1950           <xsl:when test="contains(path,$userPath)"> 
    1951             <xsl:value-of select="substring-after(path,$userPath)"/> 
    1952           </xsl:when> 
    1953           <xsl:otherwise> 
    1954             <xsl:value-of select="path"/> 
    1955           </xsl:otherwise> 
    1956         </xsl:choose> 
    1957       </xsl:variable> 
    1958       <xsl:choose> 
    1959         <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
    1960           <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')"> 
    1961             <strong><xsl:value-of select="name"/></strong> 
    1962           </a> 
    1963           <xsl:if test="name != $calDisplay"> 
    1964             <span class="small">(<xsl:value-of select="$calDisplay"/>)</span> 
    1965           </xsl:if> 
    1966         </xsl:when> 
    1967         <xsl:otherwise> 
    1968           <xsl:value-of select="name"/> 
    1969         </xsl:otherwise> 
    1970       </xsl:choose> 
    1971       <xsl:if test="calendar"> 
    1972         <ul> 
    1973           <xsl:apply-templates select="calendar[calType &lt; 2]" mode="selectCalForEventCalTree"/> 
    1974         </ul> 
    1975       </xsl:if> 
    1976     </li> 
    1977   </xsl:template> 
    1978  
    1979   <xsl:template name="calendarList"> 
    1980     <h3>Managing Calendars</h3> 
    1981     <ul> 
    1982       <li>Select an item from the calendar list on the left to modify 
    1983       a calendar or folder.</li> 
    1984       <li>Select the 
    1985       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
    1986       icon to add a new calendar or folder to the tree. 
    1987         <ul> 
    1988           <li>Folders may only contain calendars and subfolders.</li> 
    1989           <li>Calendars may only contain events (and other calendar items).</li> 
    1990           <li> 
    1991             If a calendar is empty, it may be converted to a folder and vice 
    1992             versa.  If a calendar or folder are not empty, it may not be 
    1993             converted. 
    1994           </li> 
    1995         </ul> 
    1996       </li> 
    1997     </ul> 
    1998   </xsl:template> 
    1999  
    2000   <xsl:template name="calendarDescriptions"> 
    2001     <h2>Calendar Information</h2> 
    2002     <ul> 
    2003       <li>Select an item from the calendar tree on the left to view all information 
    2004       about that calendar or folder.  The tree on the left represents the calendar 
    2005       heirarchy.</li> 
    2006     </ul> 
    2007  
    2008     <p><strong>All Calendar Descriptions:</strong></p> 
    2009     <table id="flatCalendarDescriptions" cellspacing="0"> 
    2010       <tr> 
    2011         <th>Name</th> 
    2012         <th>Description</th> 
    2013       </tr> 
    2014       <xsl:for-each select="//calendar[calType &lt; 2]"> 
    2015         <xsl:variable name="descClass"> 
    2016           <xsl:choose> 
    2017             <xsl:when test="position() mod 2 = 0">even</xsl:when> 
    2018             <xsl:otherwise>odd</xsl:otherwise> 
    2019           </xsl:choose> 
    2020         </xsl:variable> 
    2021         <tr class="{$descClass}"> 
    2022           <td> 
    2023             <xsl:value-of select="name"/> 
    2024           </td> 
    2025           <td> 
    2026             <xsl:value-of select="desc"/> 
    2027           </td> 
    2028         </tr> 
    2029       </xsl:for-each> 
    2030     </table> 
    2031   </xsl:template> 
    2032563 
    2033564  <xsl:template match="calendars" mode="exportCalendars"> 
    2034     <h2>Export Calendars as iCal</h2> 
     565    <h2><xsl:value-of select="$calendar.exportCalendars.h2" /></h2> 
    2035566    <form name="eventForm" id="exportCalendarForm" action="{$export}" method="post"> 
    2036567      <input type="hidden" name="calPath" value=""/> 
     
    2041572        <tr> 
    2042573          <th class="commonHeader" colspan="3"> 
    2043               Event date limits: 
     574              <xsl:value-of select="$calendar.exportCalendars.date.limits" /> 
    2044575              <input type="radio" name="dateLimits" value="active" checked="checked" onclick="changeClass('exportDateRange','invisible')"/> today forward 
    2045576              <input type="radio" name="dateLimits" value="none" onclick="changeClass('exportDateRange','invisible')"/> all dates 
     
    2049580        <tr id="exportDateRange" class="invisible"> 
    2050581          <td colspan="3" class="dates"> 
    2051             <strong>Start:</strong> 
     582            <strong><xsl:value-of select="$calendar.start" /></strong> 
    2052583            <div class="dateFields"> 
    2053584              <xsl:copy-of select="/bedework/formElements/form/start/month/*"/> 
     
    2056587            </div> 
    2057588            &#160;&#160; 
    2058             <strong>End:</strong> 
     589            <strong><xsl:value-of select="$calendar.end" /></strong> 
    2059590            <div class="dateFields"> 
    2060591              <xsl:copy-of select="/bedework/formElements/form/end/month/*"/> 
     
    2066597        <tr> 
    2067598          <th class="borderRight"> 
    2068             My Calendars 
     599            <xsl:value-of select="$calendar.my.calendars" /> 
    2069600          </th> 
    2070601          <th class="borderRight"> 
    2071             Subscriptions (underlying calendars) 
     602            <xsl:value-of select="$calendar.exportCalendars.subs" /> 
    2072603          </th> 
    2073604          <th> 
    2074             Public Calendars 
     605            <xsl:value-of select="$calendar.public.calendars" /> 
    2075606          </th> 
    2076607        </tr> 
     
    2106637            <!-- My Subscriptions (underlying calendars) --> 
    2107638            <ul class="calendarTree"> 
    2108               <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
     639              <xsl:variable name="userPath"><xsl:value-of select="$calendar.user" />/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    2109640              <xsl:for-each select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]"> 
    2110641                <xsl:choose> 
     
    2112643                    <li class="deleted"> 
    2113644                      <xsl:value-of select="name"/><br/> 
    2114                       <em>calendar not available</em> 
     645                      <em><xsl:value-of select="$calendar.exportCalendars.not.available" /></em> 
    2115646                    </li> 
    2116647                  </xsl:when> 
     
    2170701      <tr> 
    2171702        <th colspan="2"> 
    2172           All Calendars 
     703          <xsl:value-of select="$calendar.exportCalendars.all.calendars" /> 
    2173704        </th> 
    2174705      </tr> 
     
    2176707        <td colspan="2" class="infoCell"> 
    2177708          <p class="info"> 
    2178             Select a calendar from the list below to see only that calendar's events. 
     709            <xsl:value-of select="$calendar.exportCalendars.info" /> 
    2179710          </p> 
    2180711          <!-- Uncomment this block, and change the links on the download calendar 
     
    2235766    <xsl:variable name="itemClass"> 
    2236767      <xsl:choose> 
    2237         <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2238         <xsl:otherwise>calendar</xsl:otherwise> 
     768        <xsl:when test="calendarCollection='false'"> <xsl:value-of select="$calendar.folder" /></xsl:when> 
     769        <xsl:otherwise> <xsl:value-of select="$calendar.calendar" /></xsl:otherwise> 
    2239770      </xsl:choose> 
    2240771    </xsl:variable> 
     
    2266797 
    2267798  <xsl:template match="currentCalendar" mode="export"> 
    2268     <h2 class="bwStatusConfirmed">Export Calendar</h2> 
     799    <h2 class="bwStatusConfirmed"> <xsl:value-of select="$calendar.export.calendar" /></h2> 
    2269800    <div id="export"> 
    2270801      <p> 
    2271         <strong>Calendar to export:</strong> 
     802        <strong><xsl:value-of select="$calendar.export.to.export" /></strong> 
    2272803      </p> 
    2273804      <div class="indent"> 
    2274         Name: <strong><em><xsl:value-of select="name"/></em></strong><br/> 
    2275         Path: <xsl:value-of select="path"/> 
     805        <xsl:value-of select="$calendar.name" /> <strong><em><xsl:value-of select="name"/></em></strong><br/> 
     806        <xsl:value-of select="$calendar.path" /> <xsl:value-of select="path"/> 
    2276807      </div> 
    2277808      <p> 
    2278         <strong>Event date limits:</strong> 
     809        <strong><xsl:value-of select="$calendar.export.date.limits" /></strong> 
    2279810      </p> 
    2280811      <form name="exportCalendarForm" id="exportCalendarForm" action="{$export}" method="post"> 
     
    2301832        <input type="radio" name="dateLimits" value="limited" onclick="changeClass('exportDateRange','visible')"/> date range 
    2302833        <div id="exportDateRange" class="invisible"> 
    2303           Start: <div dojoType="dropdowndatepicker" formatLength="medium" saveFormat="yyyyMMdd" id="bwExportCalendarWidgetStartDate"><xsl:text> </xsl:text></div> 
    2304           End: <div dojoType="dropdowndatepicker" formatLength="medium" saveFormat="yyyyMMdd" id="bwExportCalendarWidgetEndDate"><xsl:text> </xsl:text></div> 
     834          <xsl:value-of select="$calendar.start" /> <div dojoType="dropdowndatepicker" formatLength="medium" saveFormat="yyyyMMdd" id="bwExportCalendarWidgetStartDate"><xsl:text> </xsl:text></div> 
     835          <xsl:value-of select="$calendar.end" /> <div dojoType="dropdowndatepicker" formatLength="medium" saveFormat="yyyyMMdd" id="bwExportCalendarWidgetEndDate"><xsl:text> </xsl:text></div> 
    2305836        </div> 
    2306837        <p><input type="submit" value="export" class="bwWidgetSubmit" onclick="fillExportFields(this.form)"/></p> 
     
    2308839    </div> 
    2309840  </xsl:template> 
     841 
     842  <xsl:template name="calendarMove"> 
     843    <table id="calendarTable"> 
     844      <tr> 
     845        <td class="calendarContent"> 
     846          <h3><xsl:value-of select="$calendar.calendarMove.h3" /></h3> 
     847 
     848          <table class="eventFormTable"> 
     849            <tr> 
     850              <th><xsl:value-of select="$calendar.calendarMove.current.path" /></th> 
     851              <td> 
     852                <xsl:value-of select="/bedework/currentCalendar/path"/> 
     853              </td> 
     854            </tr> 
     855            <tr> 
     856              <th><xsl:value-of select="$calendar.name" /></th> 
     857              <td> 
     858                <xsl:value-of select="/bedework/currentCalendar/name"/> 
     859              </td> 
     860            </tr> 
     861            <tr> 
     862              <th><xsl:value-of select="$calendar.modCalendar.listid" /></th> 
     863              <td> 
     864                <xsl:value-of select="/bedework/currentCalendar/mailListId"/> 
     865              </td> 
     866            </tr> 
     867            <tr> 
     868              <th><xsl:value-of select="$calendar.summary" /></th> 
     869              <td> 
     870                <xsl:value-of select="/bedework/currentCalendar/summary"/> 
     871              </td> 
     872            </tr> 
     873            <tr> 
     874              <th><xsl:value-of select="$calendar.description" /></th> 
     875              <td> 
     876                <xsl:value-of select="/bedework/currentCalendar/desc"/> 
     877              </td> 
     878            </tr> 
     879          </table> 
     880        </td> 
     881        <td class="bwCalsForMove"> 
     882          <p><xsl:value-of select="$calendar.calendarMove.new.folder" /></p> 
     883          <ul id="calendarTree"> 
     884            <xsl:apply-templates select="/bedework/calendars/calendar" mode="listForMove"/> 
     885          </ul> 
     886        </td> 
     887      </tr> 
     888    </table> 
     889  </xsl:template> 
     890 
     891  <xsl:template match="calendar" mode="listForMove"> 
     892    <xsl:variable name="calPath" select="encodedPath"/> 
     893    <xsl:if test="calendarCollection='false'"> 
     894      <li class="folder"> 
     895        <!-- test the open state of the folder; if it's open, 
     896             build a URL to close it and vice versa --> 
     897        <xsl:choose> 
     898          <xsl:when test="open = 'true'"> 
     899            <a href="{$calendar-openCloseMove}&amp;newCalPath={$calPath}&amp;open=false"> 
     900              <img src="{$resourcesRoot}/resources/minus.gif" width="9" height="9" alt="close" border="0" class="bwPlusMinusIcon"/> 
     901            </a> 
     902          </xsl:when> 
     903          <xsl:otherwise> 
     904            <a href="{$calendar-openCloseMove}&amp;newCalPath={$calPath}&amp;open=true"> 
     905              <img src="{$resourcesRoot}/resources/plus.gif" width="9" height="9" alt="open" border="0" class="bwPlusMinusIcon"/> 
     906            </a> 
     907          </xsl:otherwise> 
     908        </xsl:choose> 
     909        <a href="{$calendar-update}&amp;newCalPath={$calPath}" title="update"> 
     910          <xsl:value-of select="name"/> 
     911        </a> 
     912        <xsl:if test="calendar"> 
     913          <ul> 
     914            <xsl:apply-templates select="calendar" mode="listForMove"/> 
     915          </ul> 
     916        </xsl:if> 
     917      </li> 
     918    </xsl:if> 
     919  </xsl:template> 
    2310920</xsl:stylesheet> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/category-location.xsl

    r1622 r1705  
    44  <xsl:template name="categoryList"> 
    55    <h2> 
    6       Manage Categories 
     6      <xsl:value-of select="$category-location.categoryList.h2" /> 
    77      <input type="button" name="return" value="Add new category" onclick="javascript:location.replace('{$category-initAdd}')" class="titleButton"/> 
    88    </h2> 
    99    <table class="common" id="manage" cellspacing="0"> 
    1010      <tr> 
    11         <th class="commonHeader" colspan="2">Edit/Delete Categories</th> 
     11        <th class="commonHeader" colspan="2"><xsl:value-of select="$category-location.categoryList.edit.delete" /></th> 
     12      </tr> 
     13      <tr> 
     14        <th><xsl:value-of select="$category-location.keyword" /></th> 
     15        <th><xsl:value-of select="$category-location.description" /></th> 
    1216      </tr> 
    1317      <xsl:choose> 
     
    3034          <tr> 
    3135            <td colspan="2"> 
    32               No categories defined 
     36              <xsl:value-of select="$category-location.categoryList.not.defined" /> 
    3337            </td> 
    3438          </tr> 
     
    4145    <xsl:choose> 
    4246      <xsl:when test="/bedework/creating='true'"> 
    43         <h2>Manage Categories</h2> 
     47        <h2><xsl:value-of select="$category-location.modCategory.add.category" /></h2> 
    4448        <form action="{$category-update}" method="post"> 
    4549          <table class="common" cellspacing="0"> 
    4650            <tr> 
    47               <th class="commonHeader" colspan="2">Add Category</th> 
     51              <th class="commonHeader" colspan="2"><xsl:value-of select="$category-location.modCategory.add.category" /></th> 
    4852            </tr> 
    4953            <tr> 
    5054              <td class="fieldname"> 
    51                 Keyword: 
     55                <xsl:value-of select="$category-location.keyword" /> 
    5256              </td> 
    5357              <td> 
     
    5761            <tr> 
    5862              <td class="fieldname optional"> 
    59                 Description: 
     63                <xsl:value-of select="$category-location.description" /> 
    6064              </td> 
    6165              <td> 
     
    7882      </xsl:when> 
    7983      <xsl:otherwise> 
    80         <h2>Manage Categories</h2> 
     84        <h2><xsl:value-of select="$category-location.modCategory.update.category" /></h2> 
    8185        <form action="{$category-update}" method="post"> 
    8286          <table class="common" cellspacing="0"> 
    8387            <tr> 
    84               <th class="commonHeader" colspan="2">Update Category</th> 
     88              <th class="commonHeader" colspan="2"><xsl:value-of select="$category-location.modCategory.update.category" /></th> 
    8589            </tr> 
    8690            <tr> 
    8791              <td class="fieldname"> 
    88                 Keyword: 
     92                <xsl:value-of select="$category-location.keyword" /> 
    8993              </td> 
    9094              <td> 
     
    9599            <tr> 
    96100              <td class="fieldname optional"> 
    97                 Description: 
     101                <xsl:value-of select="$category-location.description" /> 
    98102              </td> 
    99103              <td> 
     
    128132 
    129133  <xsl:template name="deleteCategoryConfirm"> 
    130     <h2>Ok to delete this category?</h2> 
     134    <h2><xsl:value-of select="$category-location.deleteCategoryConfirm.h2" /></h2> 
    131135 
    132136    <table class="common" cellspacing="0"> 
    133137      <tr> 
    134         <th class="commonHeader" colspan="2">Delete Category</th> 
     138        <th class="commonHeader" colspan="2"><xsl:value-of select="$category-location.deleteCategoryConfirm.delete.category" /></th> 
    135139      </tr> 
    136140      <tr> 
    137141        <td class="fieldname"> 
    138           Keyword: 
     142          <xsl:value-of select="$category-location.keyword" /> 
    139143        </td> 
    140144        <td> 
     
    144148      <tr> 
    145149        <td class="fieldname optional"> 
    146           Description: 
     150          <xsl:value-of select="$category-location.description" /> 
    147151        </td> 
    148152        <td> 
     
    160164  <!--==== MANAGE LOCATIONS ====--> 
    161165  <xsl:template name="locationList"> 
    162     <h2> 
    163       Manage Locations 
    164       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')" class="titleButton"/> 
    165     </h2> 
    166     <table class="common" id="manage" cellspacing="0"> 
    167       <tr> 
    168         <th class="commonHeader">Edit/Delete Locations</th> 
    169       </tr> 
    170       <tr> 
    171         <td> 
    172           <xsl:if test="/bedework/locations/location"> 
    173             <ul> 
    174               <xsl:for-each select="/bedework/locations/location"> 
    175                 <xsl:sort select="."/> 
    176                 <li> 
    177                   <xsl:variable name="uid" select="uid"/> 
    178                   <a href="{$location-fetchForUpdate}&amp;uid={$uid}"><xsl:value-of select="address"/></a> 
    179                 </li> 
    180               </xsl:for-each> 
    181             </ul> 
    182           </xsl:if> 
    183         </td> 
    184       </tr> 
     166    <h2> <xsl:value-of select="$category-location.locationList.h2" /></h2> 
     167    <p> 
     168       <xsl:value-of select="$category-location.locationList.info" /> 
     169      <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')"/> 
     170    </p> 
     171 
     172    <table id="commonListTable"> 
     173      <tr> 
     174        <th><xsl:value-of select="$category-location.locationList.address" /></th> 
     175        <th><xsl:value-of select="$category-location.locationList.subaddress" /></th> 
     176        <th><xsl:value-of select="$category-location.locationList.url" /></th> 
     177      </tr> 
     178 
     179      <xsl:for-each select="/bedework/locations/location"> 
     180        <tr> 
     181          <td> 
     182            <xsl:copy-of select="address/*"/> 
     183          </td> 
     184          <td> 
     185            <xsl:value-of select="subaddress"/> 
     186          </td> 
     187          <td> 
     188            <xsl:variable name="link" select="link" /> 
     189            <a href="{$link}" target="linktest"> 
     190              <xsl:value-of select="link" /> 
     191            </a> 
     192          </td> 
     193        </tr> 
     194      </xsl:for-each> 
    185195    </table> 
    186196  </xsl:template> 
     197 
    187198 
    188199  <xsl:template name="modLocation"> 
    189200    <xsl:choose> 
    190       <xsl:when test="/bedework/creating = 'true'"> 
    191         <form name="addLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    192           <h2>Manage Locations</h2> 
    193           <table class="common" cellspacing="0"> 
    194             <tr> 
    195               <th class="commonHeader" colspan="2">Add Location</th> 
    196             </tr> 
    197             <tr> 
    198               <td class="fieldname"> 
    199                 Main Address: 
    200               </td> 
    201               <td> 
    202                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"/> 
    203               </td> 
    204             </tr> 
    205             <tr> 
    206               <td class="fieldname"> 
    207                 Subaddress: 
    208               </td> 
    209               <td> 
    210                 <input size="60" name="locationSubaddress.value" type="text"/> 
    211               </td> 
    212             </tr> 
    213             <tr> 
    214               <td class="fieldname"> 
    215                 Location Link: 
    216               </td> 
    217               <td> 
    218                 <input size="60" name="location.link" type="text"/> 
    219               </td> 
    220             </tr> 
    221           </table> 
    222           <table border="0" id="submitTable"> 
    223             <tr> 
    224               <td> 
    225                 <input name="submit" type="submit" value="Submit Location"/> 
    226                 <input name="cancelled" type="submit" value="cancel"/> 
    227               </td> 
    228             </tr> 
    229           </table> 
    230         </form> 
     201      <xsl:when test="/bedework/creating='true'"> 
     202        <h2> <xsl:value-of select="$category-location.modLocation.h2" /></h2> 
    231203      </xsl:when> 
    232204      <xsl:otherwise> 
    233         <form name="editLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    234           <input type="hidden" name="updateLocation" value="true"/> 
    235           <h2>Manage Locations</h2> 
    236           <table class="common" cellspacing="0"> 
    237             <tr> 
    238               <th colspan="2" class="commonHeader"> 
    239                 Edit Location 
    240               </th> 
    241             </tr> 
    242             <tr> 
    243               <td class="fieldname"> 
    244                 Main Address: 
    245               </td> 
    246               <td align="left"> 
    247                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"> 
    248                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/address"/></xsl:attribute> 
    249                 </input> 
    250               </td> 
    251             </tr> 
    252             <tr> 
    253               <td class="fieldname"> 
    254                 Subaddress: 
    255               </td> 
    256               <td align="left"> 
    257                 <input size="60" name="locationSubaddress.value" type="text"> 
    258                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/subaddress"/></xsl:attribute> 
    259                 </input> 
    260               </td> 
    261             </tr> 
    262             <tr> 
    263               <td class="fieldname"> 
    264                 Location Link: 
    265               </td> 
    266               <td> 
    267                 <input size="60" name="location.link" type="text"> 
    268                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/link"/></xsl:attribute> 
    269                 </input> 
    270               </td> 
    271             </tr> 
    272           </table> 
    273           <table border="0" id="submitTable"> 
    274             <tr> 
    275               <td> 
    276                 <input name="submit" type="submit" value="Submit Location"/> 
    277                 <input name="cancelled" type="submit" value="cancel"/> 
    278                 <input type="reset" value="Reset"/> 
    279               </td> 
    280               <td align="right"> 
    281                 <!--<xsl:variable name="uid" select="form/uid"/>--> 
    282                 <a href="{$location-delete}"><input type="button" name="delete" value="Delete Location"/></a> 
    283               </td> 
    284             </tr> 
    285           </table> 
    286         </form> 
     205        <h2> <xsl:value-of select="$category-location.modLocation.otherwise" /></h2> 
    287206      </xsl:otherwise> 
    288207    </xsl:choose> 
     208 
     209    <form action="{$location-update}" method="post"> 
     210      <table id="eventFormTable"> 
     211        <tr> 
     212          <td class="fieldName"> 
     213            <xsl:value-of select="$category-location.locationList.address" /> 
     214          </td> 
     215          <td> 
     216            <xsl:copy-of select="/bedework/formElements/form/address/*"/> 
     217          </td> 
     218        </tr> 
     219        <tr> 
     220          <td class="optional"> 
     221            <xsl:value-of select="$category-location.locationList.subaddress" /> 
     222          </td> 
     223          <td> 
     224            <xsl:copy-of select="/bedework/formElements/form/subaddress/*"/> 
     225            <span class="fieldInfo"> <xsl:value-of select="$category-location.optional" /></span> 
     226          </td> 
     227        </tr> 
     228        <tr> 
     229          <td class="optional"> 
     230            <xsl:value-of select="$category-location.modLocation.location.url" /> 
     231          </td> 
     232          <td> 
     233            <xsl:copy-of select="/bedework/formElements/form/link/*"/> 
     234            <span class="fieldInfo"> <xsl:value-of select="$category-location.optional" /></span> 
     235          </td> 
     236        </tr> 
     237      </table> 
     238 
     239      <table border="0" id="submitTable"> 
     240        <tr> 
     241          <xsl:choose> 
     242            <xsl:when test="/bedework/creating='true'"> 
     243              <td> 
     244                <input type="submit" name="addLocation" value="Add Location"/> 
     245                <input type="submit" name="cancelled" value="Cancel"/> 
     246                <input type="reset" value="Clear"/> 
     247              </td> 
     248            </xsl:when> 
     249            <xsl:otherwise> 
     250              <td> 
     251                <input type="submit" name="updateLocation" value="Update Location"/> 
     252                <input type="submit" name="cancelled" value="Cancel"/> 
     253                <input type="reset" value="Reset"/> 
     254              </td> 
     255              <td align="right"> 
     256                <input type="submit" name="delete" value="Delete Location"/> 
     257              </td> 
     258            </xsl:otherwise> 
     259          </xsl:choose> 
     260        </tr> 
     261      </table> 
     262    </form> 
    289263  </xsl:template> 
    290264 
    291265  <xsl:template name="deleteLocationConfirm"> 
    292     <h2>Ok to delete this location?</h2> 
     266    <h2><xsl:value-of select="$category-location.deleteLocationConfirm.h2" /></h2> 
    293267 
    294268    <table class="common" cellspacing="0"> 
    295269      <tr> 
    296         <th class="commonHeader" colspan="2">Delete Location</th> 
     270        <th class="commonHeader" colspan="2"><xsl:value-of select="$category-location.deleteLocationConfirm.delete" /></th> 
    297271      </tr> 
    298272      <tr> 
    299273        <td class="fieldname"> 
    300           Main Address: 
     274          <xsl:value-of select="$category-location.deleteLocationConfirm.main.address" /> 
    301275        </td> 
    302276        <td align="left"> 
     
    306280      <tr> 
    307281        <td class="fieldname"> 
    308           Subaddress: 
     282          <xsl:value-of select="$category-location.locationList.subaddress" /> 
    309283        </td> 
    310284        <td align="left"> 
     
    314288      <tr> 
    315289        <td class="fieldname"> 
    316           Location Link: 
     290          <xsl:value-of select="$category-location.deleteLocationConfirm.location.link" /> 
    317291        </td> 
    318292        <td> 
     
    329303  </xsl:template> 
    330304</xsl:stylesheet> 
    331 <?xml version="1.0" encoding="UTF-8"?> 
    332 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    333   <!--+++++++++++++++ Categories ++++++++++++++++++++--> 
    334   <xsl:template name="categoryList"> 
    335     <h2> 
    336       Manage Categories 
    337       <input type="button" name="return" value="Add new category" onclick="javascript:location.replace('{$category-initAdd}')" class="titleButton"/> 
    338     </h2> 
    339     <table class="common" id="manage" cellspacing="0"> 
    340       <tr> 
    341         <th class="commonHeader" colspan="2">Edit/Delete Categories</th> 
    342       </tr> 
    343       <xsl:choose> 
    344         <xsl:when test="/bedework/categories/category"> 
    345           <xsl:for-each select="/bedework/categories/category"> 
    346             <xsl:variable name="categoryKey" select="normalize-space(keyword)"/> 
    347             <tr> 
    348               <td> 
    349                 <a href="{$category-fetchForUpdate}&amp;categoryKey={$categoryKey}"> 
    350                   <xsl:value-of select="keyword"/> 
    351                 </a> 
    352               </td> 
    353               <td> 
    354                 <xsl:value-of select="desc"/> 
    355               </td> 
    356             </tr> 
    357           </xsl:for-each> 
    358         </xsl:when> 
    359         <xsl:otherwise> 
    360           <tr> 
    361             <td colspan="2"> 
    362               No categories defined 
    363             </td> 
    364           </tr> 
    365         </xsl:otherwise> 
    366       </xsl:choose> 
    367     </table> 
    368   </xsl:template> 
    369  
    370   <xsl:template name="modCategory"> 
    371     <xsl:choose> 
    372       <xsl:when test="/bedework/creating='true'"> 
    373         <h2>Manage Categories</h2> 
    374         <form action="{$category-update}" method="post"> 
    375           <table class="common" cellspacing="0"> 
    376             <tr> 
    377               <th class="commonHeader" colspan="2">Add Category</th> 
    378             </tr> 
    379             <tr> 
    380               <td class="fieldname"> 
    381                 Keyword: 
    382               </td> 
    383               <td> 
    384                 <input type="text" name="categoryWord.value" value="" size="40"/> 
    385               </td> 
    386             </tr> 
    387             <tr> 
    388               <td class="fieldname optional"> 
    389                 Description: 
    390               </td> 
    391               <td> 
    392                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    393                   <xsl:text> </xsl:text> 
    394                 </textarea> 
    395               </td> 
    396             </tr> 
    397           </table> 
    398           <table border="0" id="submitTable"> 
    399             <tr> 
    400               <td> 
    401                 <input type="submit" name="addCategory" value="Add Category"/> 
    402                 <input type="submit" name="cancelled" value="cancel"/> 
    403                 <input type="reset" value="Clear"/> 
    404               </td> 
    405             </tr> 
    406           </table> 
    407         </form> 
    408       </xsl:when> 
    409       <xsl:otherwise> 
    410         <h2>Manage Categories</h2> 
    411         <form action="{$category-update}" method="post"> 
    412           <table class="common" cellspacing="0"> 
    413             <tr> 
    414               <th class="commonHeader" colspan="2">Update Category</th> 
    415             </tr> 
    416             <tr> 
    417               <td class="fieldname"> 
    418                 Keyword: 
    419               </td> 
    420               <td> 
    421                 <xsl:variable name="keyword" select="normalize-space(/bedework/currentCategory/category/keyword)"/> 
    422                 <input type="text" name="categoryWord.value" value="{$keyword}" size="40"/> 
    423               </td> 
    424             </tr> 
    425             <tr> 
    426               <td class="fieldname optional"> 
    427                 Description: 
    428               </td> 
    429               <td> 
    430                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    431                   <xsl:value-of select="normalize-space(/bedework/currentCategory/category/desc)"/> 
    432                   <xsl:if test="normalize-space(/bedework/currentCategory/category/desc/textarea) = ''"> 
    433                     <xsl:text> </xsl:text> 
    434                     <!-- keep this space to avoid browser 
    435                     rendering errors when the text area is empty --> 
    436                   </xsl:if> 
    437                 </textarea> 
    438               </td> 
    439             </tr> 
    440           </table> 
    441  
    442           <table border="0" id="submitTable"> 
    443             <tr> 
    444               <td> 
    445                 <input type="submit" name="updateCategory" value="Update Category"/> 
    446                 <input type="submit" name="cancelled" value="cancel"/> 
    447                 <input type="reset" value="Reset"/> 
    448               </td> 
    449               <td align="right"> 
    450                 <input type="submit" name="delete" value="Delete Category"/> 
    451               </td> 
    452             </tr> 
    453           </table> 
    454         </form> 
    455       </xsl:otherwise> 
    456     </xsl:choose> 
    457   </xsl:template> 
    458  
    459   <xsl:template name="deleteCategoryConfirm"> 
    460     <h2>Ok to delete this category?</h2> 
    461  
    462     <table class="common" cellspacing="0"> 
    463       <tr> 
    464         <th class="commonHeader" colspan="2">Delete Category</th> 
    465       </tr> 
    466       <tr> 
    467         <td class="fieldname"> 
    468           Keyword: 
    469         </td> 
    470         <td> 
    471           <xsl:value-of select="/bedework/currentCategory/category/keyword"/> 
    472         </td> 
    473       </tr> 
    474       <tr> 
    475         <td class="fieldname optional"> 
    476           Description: 
    477         </td> 
    478         <td> 
    479           <xsl:value-of select="/bedework/currentCategory/category/desc"/> 
    480         </td> 
    481       </tr> 
    482     </table> 
    483  
    484     <form action="{$category-delete}" method="post"> 
    485       <input type="submit" name="deleteCategory" value="Yes: Delete Category"/> 
    486       <input type="submit" name="cancelled" value="No: Cancel"/> 
    487     </form> 
    488   </xsl:template> 
    489  
    490   <!--==== MANAGE LOCATIONS ====--> 
    491   <xsl:template name="locationList"> 
    492     <h2> 
    493       Manage Locations 
    494       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')" class="titleButton"/> 
    495     </h2> 
    496     <table class="common" id="manage" cellspacing="0"> 
    497       <tr> 
    498         <th class="commonHeader">Edit/Delete Locations</th> 
    499       </tr> 
    500       <tr> 
    501         <td> 
    502           <xsl:if test="/bedework/locations/location"> 
    503             <ul> 
    504               <xsl:for-each select="/bedework/locations/location"> 
    505                 <xsl:sort select="."/> 
    506                 <li> 
    507                   <xsl:variable name="uid" select="uid"/> 
    508                   <a href="{$location-fetchForUpdate}&amp;uid={$uid}"><xsl:value-of select="address"/></a> 
    509                 </li> 
    510               </xsl:for-each> 
    511             </ul> 
    512           </xsl:if> 
    513         </td> 
    514       </tr> 
    515     </table> 
    516   </xsl:template> 
    517  
    518   <xsl:template name="modLocation"> 
    519     <xsl:choose> 
    520       <xsl:when test="/bedework/creating = 'true'"> 
    521         <form name="addLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    522           <h2>Manage Locations</h2> 
    523           <table class="common" cellspacing="0"> 
    524             <tr> 
    525               <th class="commonHeader" colspan="2">Add Location</th> 
    526             </tr> 
    527             <tr> 
    528               <td class="fieldname"> 
    529                 Main Address: 
    530               </td> 
    531               <td> 
    532                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"/> 
    533               </td> 
    534             </tr> 
    535             <tr> 
    536               <td class="fieldname"> 
    537                 Subaddress: 
    538               </td> 
    539               <td> 
    540                 <input size="60" name="locationSubaddress.value" type="text"/> 
    541               </td> 
    542             </tr> 
    543             <tr> 
    544               <td class="fieldname"> 
    545                 Location Link: 
    546               </td> 
    547               <td> 
    548                 <input size="60" name="location.link" type="text"/> 
    549               </td> 
    550             </tr> 
    551           </table> 
    552           <table border="0" id="submitTable"> 
    553             <tr> 
    554               <td> 
    555                 <input name="submit" type="submit" value="Submit Location"/> 
    556                 <input name="cancelled" type="submit" value="cancel"/> 
    557               </td> 
    558             </tr> 
    559           </table> 
    560         </form> 
    561       </xsl:when> 
    562       <xsl:otherwise> 
    563         <form name="editLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    564           <input type="hidden" name="updateLocation" value="true"/> 
    565           <h2>Manage Locations</h2> 
    566           <table class="common" cellspacing="0"> 
    567             <tr> 
    568               <th colspan="2" class="commonHeader"> 
    569                 Edit Location 
    570               </th> 
    571             </tr> 
    572             <tr> 
    573               <td class="fieldname"> 
    574                 Main Address: 
    575               </td> 
    576               <td align="left"> 
    577                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"> 
    578                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/address"/></xsl:attribute> 
    579                 </input> 
    580               </td> 
    581             </tr> 
    582             <tr> 
    583               <td class="fieldname"> 
    584                 Subaddress: 
    585               </td> 
    586               <td align="left"> 
    587                 <input size="60" name="locationSubaddress.value" type="text"> 
    588                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/subaddress"/></xsl:attribute> 
    589                 </input> 
    590               </td> 
    591             </tr> 
    592             <tr> 
    593               <td class="fieldname"> 
    594                 Location Link: 
    595               </td> 
    596               <td> 
    597                 <input size="60" name="location.link" type="text"> 
    598                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/link"/></xsl:attribute> 
    599                 </input> 
    600               </td> 
    601             </tr> 
    602           </table> 
    603           <table border="0" id="submitTable"> 
    604             <tr> 
    605               <td> 
    606                 <input name="submit" type="submit" value="Submit Location"/> 
    607                 <input name="cancelled" type="submit" value="cancel"/> 
    608                 <input type="reset" value="Reset"/> 
    609               </td> 
    610               <td align="right"> 
    611                 <!--<xsl:variable name="uid" select="form/uid"/>--> 
    612                 <a href="{$location-delete}"><input type="button" name="delete" value="Delete Location"/></a> 
    613               </td> 
    614             </tr> 
    615           </table> 
    616         </form> 
    617       </xsl:otherwise> 
    618     </xsl:choose> 
    619   </xsl:template> 
    620  
    621   <xsl:template name="deleteLocationConfirm"> 
    622     <h2>Ok to delete this location?</h2> 
    623  
    624     <table class="common" cellspacing="0"> 
    625       <tr> 
    626         <th class="commonHeader" colspan="2">Delete Location</th> 
    627       </tr> 
    628       <tr> 
    629         <td class="fieldname"> 
    630           Main Address: 
    631         </td> 
    632         <td align="left"> 
    633           <xsl:value-of select="/bedework/currentLocation/address"/> 
    634         </td> 
    635       </tr> 
    636       <tr> 
    637         <td class="fieldname"> 
    638           Subaddress: 
    639         </td> 
    640         <td align="left"> 
    641           <xsl:value-of select="/bedework/currentLocation/subaddress"/> 
    642         </td> 
    643       </tr> 
    644       <tr> 
    645         <td class="fieldname"> 
    646           Location Link: 
    647         </td> 
    648         <td> 
    649           <xsl:variable name="link" select="/bedework/currentLocation/link"/> 
    650           <a href="{$link}"><xsl:value-of select="$link"/></a> 
    651         </td> 
    652       </tr> 
    653     </table> 
    654  
    655     <form action="{$location-delete}" method="post"> 
    656       <input type="submit" name="updateCategory" value="Yes: Delete Location"/> 
    657       <input type="submit" name="cancelled" value="No: Cancel"/> 
    658     </form> 
    659   </xsl:template> 
    660 </xsl:stylesheet> 
    661 <?xml version="1.0" encoding="UTF-8"?> 
    662 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    663   <!--+++++++++++++++ Categories ++++++++++++++++++++--> 
    664   <xsl:template name="categoryList"> 
    665     <h2> 
    666       Manage Categories 
    667       <input type="button" name="return" value="Add new category" onclick="javascript:location.replace('{$category-initAdd}')" class="titleButton"/> 
    668     </h2> 
    669     <table class="common" id="manage" cellspacing="0"> 
    670       <tr> 
    671         <th class="commonHeader" colspan="2">Edit/Delete Categories</th> 
    672       </tr> 
    673       <xsl:choose> 
    674         <xsl:when test="/bedework/categories/category"> 
    675           <xsl:for-each select="/bedework/categories/category"> 
    676             <xsl:variable name="categoryKey" select="normalize-space(keyword)"/> 
    677             <tr> 
    678               <td> 
    679                 <a href="{$category-fetchForUpdate}&amp;categoryKey={$categoryKey}"> 
    680                   <xsl:value-of select="keyword"/> 
    681                 </a> 
    682               </td> 
    683               <td> 
    684                 <xsl:value-of select="desc"/> 
    685               </td> 
    686             </tr> 
    687           </xsl:for-each> 
    688         </xsl:when> 
    689         <xsl:otherwise> 
    690           <tr> 
    691             <td colspan="2"> 
    692               No categories defined 
    693             </td> 
    694           </tr> 
    695         </xsl:otherwise> 
    696       </xsl:choose> 
    697     </table> 
    698   </xsl:template> 
    699  
    700   <xsl:template name="modCategory"> 
    701     <xsl:choose> 
    702       <xsl:when test="/bedework/creating='true'"> 
    703         <h2>Manage Categories</h2> 
    704         <form action="{$category-update}" method="post"> 
    705           <table class="common" cellspacing="0"> 
    706             <tr> 
    707               <th class="commonHeader" colspan="2">Add Category</th> 
    708             </tr> 
    709             <tr> 
    710               <td class="fieldname"> 
    711                 Keyword: 
    712               </td> 
    713               <td> 
    714                 <input type="text" name="categoryWord.value" value="" size="40"/> 
    715               </td> 
    716             </tr> 
    717             <tr> 
    718               <td class="fieldname optional"> 
    719                 Description: 
    720               </td> 
    721               <td> 
    722                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    723                   <xsl:text> </xsl:text> 
    724                 </textarea> 
    725               </td> 
    726             </tr> 
    727           </table> 
    728           <table border="0" id="submitTable"> 
    729             <tr> 
    730               <td> 
    731                 <input type="submit" name="addCategory" value="Add Category"/> 
    732                 <input type="submit" name="cancelled" value="cancel"/> 
    733                 <input type="reset" value="Clear"/> 
    734               </td> 
    735             </tr> 
    736           </table> 
    737         </form> 
    738       </xsl:when> 
    739       <xsl:otherwise> 
    740         <h2>Manage Categories</h2> 
    741         <form action="{$category-update}" method="post"> 
    742           <table class="common" cellspacing="0"> 
    743             <tr> 
    744               <th class="commonHeader" colspan="2">Update Category</th> 
    745             </tr> 
    746             <tr> 
    747               <td class="fieldname"> 
    748                 Keyword: 
    749               </td> 
    750               <td> 
    751                 <xsl:variable name="keyword" select="normalize-space(/bedework/currentCategory/category/keyword)"/> 
    752                 <input type="text" name="categoryWord.value" value="{$keyword}" size="40"/> 
    753               </td> 
    754             </tr> 
    755             <tr> 
    756               <td class="fieldname optional"> 
    757                 Description: 
    758               </td> 
    759               <td> 
    760                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    761                   <xsl:value-of select="normalize-space(/bedework/currentCategory/category/desc)"/> 
    762                   <xsl:if test="normalize-space(/bedework/currentCategory/category/desc/textarea) = ''"> 
    763                     <xsl:text> </xsl:text> 
    764                     <!-- keep this space to avoid browser 
    765                     rendering errors when the text area is empty --> 
    766                   </xsl:if> 
    767                 </textarea> 
    768               </td> 
    769             </tr> 
    770           </table> 
    771  
    772           <table border="0" id="submitTable"> 
    773             <tr> 
    774               <td> 
    775                 <input type="submit" name="updateCategory" value="Update Category"/> 
    776                 <input type="submit" name="cancelled" value="cancel"/> 
    777                 <input type="reset" value="Reset"/> 
    778               </td> 
    779               <td align="right"> 
    780                 <input type="submit" name="delete" value="Delete Category"/> 
    781               </td> 
    782             </tr> 
    783           </table> 
    784         </form> 
    785       </xsl:otherwise> 
    786     </xsl:choose> 
    787   </xsl:template> 
    788  
    789   <xsl:template name="deleteCategoryConfirm"> 
    790     <h2>Ok to delete this category?</h2> 
    791  
    792     <table class="common" cellspacing="0"> 
    793       <tr> 
    794         <th class="commonHeader" colspan="2">Delete Category</th> 
    795       </tr> 
    796       <tr> 
    797         <td class="fieldname"> 
    798           Keyword: 
    799         </td> 
    800         <td> 
    801           <xsl:value-of select="/bedework/currentCategory/category/keyword"/> 
    802         </td> 
    803       </tr> 
    804       <tr> 
    805         <td class="fieldname optional"> 
    806           Description: 
    807         </td> 
    808         <td> 
    809           <xsl:value-of select="/bedework/currentCategory/category/desc"/> 
    810         </td> 
    811       </tr> 
    812     </table> 
    813  
    814     <form action="{$category-delete}" method="post"> 
    815       <input type="submit" name="deleteCategory" value="Yes: Delete Category"/> 
    816       <input type="submit" name="cancelled" value="No: Cancel"/> 
    817     </form> 
    818   </xsl:template> 
    819  
    820   <!--==== MANAGE LOCATIONS ====--> 
    821   <xsl:template name="locationList"> 
    822     <h2> 
    823       Manage Locations 
    824       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')" class="titleButton"/> 
    825     </h2> 
    826     <table class="common" id="manage" cellspacing="0"> 
    827       <tr> 
    828         <th class="commonHeader">Edit/Delete Locations</th> 
    829       </tr> 
    830       <tr> 
    831         <td> 
    832           <xsl:if test="/bedework/locations/location"> 
    833             <ul> 
    834               <xsl:for-each select="/bedework/locations/location"> 
    835                 <xsl:sort select="."/> 
    836                 <li> 
    837                   <xsl:variable name="uid" select="uid"/> 
    838                   <a href="{$location-fetchForUpdate}&amp;uid={$uid}"><xsl:value-of select="address"/></a> 
    839                 </li> 
    840               </xsl:for-each> 
    841             </ul> 
    842           </xsl:if> 
    843         </td> 
    844       </tr> 
    845     </table> 
    846   </xsl:template> 
    847  
    848   <xsl:template name="modLocation"> 
    849     <xsl:choose> 
    850       <xsl:when test="/bedework/creating = 'true'"> 
    851         <form name="addLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    852           <h2>Manage Locations</h2> 
    853           <table class="common" cellspacing="0"> 
    854             <tr> 
    855               <th class="commonHeader" colspan="2">Add Location</th> 
    856             </tr> 
    857             <tr> 
    858               <td class="fieldname"> 
    859                 Main Address: 
    860               </td> 
    861               <td> 
    862                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"/> 
    863               </td> 
    864             </tr> 
    865             <tr> 
    866               <td class="fieldname"> 
    867                 Subaddress: 
    868               </td> 
    869               <td> 
    870                 <input size="60" name="locationSubaddress.value" type="text"/> 
    871               </td> 
    872             </tr> 
    873             <tr> 
    874               <td class="fieldname"> 
    875                 Location Link: 
    876               </td> 
    877               <td> 
    878                 <input size="60" name="location.link" type="text"/> 
    879               </td> 
    880             </tr> 
    881           </table> 
    882           <table border="0" id="submitTable"> 
    883             <tr> 
    884               <td> 
    885                 <input name="submit" type="submit" value="Submit Location"/> 
    886                 <input name="cancelled" type="submit" value="cancel"/> 
    887               </td> 
    888             </tr> 
    889           </table> 
    890         </form> 
    891       </xsl:when> 
    892       <xsl:otherwise> 
    893         <form name="editLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    894           <input type="hidden" name="updateLocation" value="true"/> 
    895           <h2>Manage Locations</h2> 
    896           <table class="common" cellspacing="0"> 
    897             <tr> 
    898               <th colspan="2" class="commonHeader"> 
    899                 Edit Location 
    900               </th> 
    901             </tr> 
    902             <tr> 
    903               <td class="fieldname"> 
    904                 Main Address: 
    905               </td> 
    906               <td align="left"> 
    907                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"> 
    908                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/address"/></xsl:attribute> 
    909                 </input> 
    910               </td> 
    911             </tr> 
    912             <tr> 
    913               <td class="fieldname"> 
    914                 Subaddress: 
    915               </td> 
    916               <td align="left"> 
    917                 <input size="60" name="locationSubaddress.value" type="text"> 
    918                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/subaddress"/></xsl:attribute> 
    919                 </input> 
    920               </td> 
    921             </tr> 
    922             <tr> 
    923               <td class="fieldname"> 
    924                 Location Link: 
    925               </td> 
    926               <td> 
    927                 <input size="60" name="location.link" type="text"> 
    928                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/link"/></xsl:attribute> 
    929                 </input> 
    930               </td> 
    931             </tr> 
    932           </table> 
    933           <table border="0" id="submitTable"> 
    934             <tr> 
    935               <td> 
    936                 <input name="submit" type="submit" value="Submit Location"/> 
    937                 <input name="cancelled" type="submit" value="cancel"/> 
    938                 <input type="reset" value="Reset"/> 
    939               </td> 
    940               <td align="right"> 
    941                 <!--<xsl:variable name="uid" select="form/uid"/>--> 
    942                 <a href="{$location-delete}"><input type="button" name="delete" value="Delete Location"/></a> 
    943               </td> 
    944             </tr> 
    945           </table> 
    946         </form> 
    947       </xsl:otherwise> 
    948     </xsl:choose> 
    949   </xsl:template> 
    950  
    951   <xsl:template name="deleteLocationConfirm"> 
    952     <h2>Ok to delete this location?</h2> 
    953  
    954     <table class="common" cellspacing="0"> 
    955       <tr> 
    956         <th class="commonHeader" colspan="2">Delete Location</th> 
    957       </tr> 
    958       <tr> 
    959         <td class="fieldname"> 
    960           Main Address: 
    961         </td> 
    962         <td align="left"> 
    963           <xsl:value-of select="/bedework/currentLocation/address"/> 
    964         </td> 
    965       </tr> 
    966       <tr> 
    967         <td class="fieldname"> 
    968           Subaddress: 
    969         </td> 
    970         <td align="left"> 
    971           <xsl:value-of select="/bedework/currentLocation/subaddress"/> 
    972         </td> 
    973       </tr> 
    974       <tr> 
    975         <td class="fieldname"> 
    976           Location Link: 
    977         </td> 
    978         <td> 
    979           <xsl:variable name="link" select="/bedework/currentLocation/link"/> 
    980           <a href="{$link}"><xsl:value-of select="$link"/></a> 
    981         </td> 
    982       </tr> 
    983     </table> 
    984  
    985     <form action="{$location-delete}" method="post"> 
    986       <input type="submit" name="updateCategory" value="Yes: Delete Location"/> 
    987       <input type="submit" name="cancelled" value="No: Cancel"/> 
    988     </form> 
    989   </xsl:template> 
    990 </xsl:stylesheet> 
    991 <?xml version="1.0" encoding="UTF-8"?> 
    992 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    993   <!--+++++++++++++++ Categories ++++++++++++++++++++--> 
    994   <xsl:template name="categoryList"> 
    995     <h2> 
    996       Manage Categories 
    997       <input type="button" name="return" value="Add new category" onclick="javascript:location.replace('{$category-initAdd}')" class="titleButton"/> 
    998     </h2> 
    999     <table class="common" id="manage" cellspacing="0"> 
    1000       <tr> 
    1001         <th class="commonHeader" colspan="2">Edit/Delete Categories</th> 
    1002       </tr> 
    1003       <xsl:choose> 
    1004         <xsl:when test="/bedework/categories/category"> 
    1005           <xsl:for-each select="/bedework/categories/category"> 
    1006             <xsl:variable name="categoryKey" select="normalize-space(keyword)"/> 
    1007             <tr> 
    1008               <td> 
    1009                 <a href="{$category-fetchForUpdate}&amp;categoryKey={$categoryKey}"> 
    1010                   <xsl:value-of select="keyword"/> 
    1011                 </a> 
    1012               </td> 
    1013               <td> 
    1014                 <xsl:value-of select="desc"/> 
    1015               </td> 
    1016             </tr> 
    1017           </xsl:for-each> 
    1018         </xsl:when> 
    1019         <xsl:otherwise> 
    1020           <tr> 
    1021             <td colspan="2"> 
    1022               No categories defined 
    1023             </td> 
    1024           </tr> 
    1025         </xsl:otherwise> 
    1026       </xsl:choose> 
    1027     </table> 
    1028   </xsl:template> 
    1029  
    1030   <xsl:template name="modCategory"> 
    1031     <xsl:choose> 
    1032       <xsl:when test="/bedework/creating='true'"> 
    1033         <h2>Manage Categories</h2> 
    1034         <form action="{$category-update}" method="post"> 
    1035           <table class="common" cellspacing="0"> 
    1036             <tr> 
    1037               <th class="commonHeader" colspan="2">Add Category</th> 
    1038             </tr> 
    1039             <tr> 
    1040               <td class="fieldname"> 
    1041                 Keyword: 
    1042               </td> 
    1043               <td> 
    1044                 <input type="text" name="categoryWord.value" value="" size="40"/> 
    1045               </td> 
    1046             </tr> 
    1047             <tr> 
    1048               <td class="fieldname optional"> 
    1049                 Description: 
    1050               </td> 
    1051               <td> 
    1052                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    1053                   <xsl:text> </xsl:text> 
    1054                 </textarea> 
    1055               </td> 
    1056             </tr> 
    1057           </table> 
    1058           <table border="0" id="submitTable"> 
    1059             <tr> 
    1060               <td> 
    1061                 <input type="submit" name="addCategory" value="Add Category"/> 
    1062                 <input type="submit" name="cancelled" value="cancel"/> 
    1063                 <input type="reset" value="Clear"/> 
    1064               </td> 
    1065             </tr> 
    1066           </table> 
    1067         </form> 
    1068       </xsl:when> 
    1069       <xsl:otherwise> 
    1070         <h2>Manage Categories</h2> 
    1071         <form action="{$category-update}" method="post"> 
    1072           <table class="common" cellspacing="0"> 
    1073             <tr> 
    1074               <th class="commonHeader" colspan="2">Update Category</th> 
    1075             </tr> 
    1076             <tr> 
    1077               <td class="fieldname"> 
    1078                 Keyword: 
    1079               </td> 
    1080               <td> 
    1081                 <xsl:variable name="keyword" select="normalize-space(/bedework/currentCategory/category/keyword)"/> 
    1082                 <input type="text" name="categoryWord.value" value="{$keyword}" size="40"/> 
    1083               </td> 
    1084             </tr> 
    1085             <tr> 
    1086               <td class="fieldname optional"> 
    1087                 Description: 
    1088               </td> 
    1089               <td> 
    1090                 <textarea name="categoryDesc.value" rows="3" cols="60"> 
    1091                   <xsl:value-of select="normalize-space(/bedework/currentCategory/category/desc)"/> 
    1092                   <xsl:if test="normalize-space(/bedework/currentCategory/category/desc/textarea) = ''"> 
    1093                     <xsl:text> </xsl:text> 
    1094                     <!-- keep this space to avoid browser 
    1095                     rendering errors when the text area is empty --> 
    1096                   </xsl:if> 
    1097                 </textarea> 
    1098               </td> 
    1099             </tr> 
    1100           </table> 
    1101  
    1102           <table border="0" id="submitTable"> 
    1103             <tr> 
    1104               <td> 
    1105                 <input type="submit" name="updateCategory" value="Update Category"/> 
    1106                 <input type="submit" name="cancelled" value="cancel"/> 
    1107                 <input type="reset" value="Reset"/> 
    1108               </td> 
    1109               <td align="right"> 
    1110                 <input type="submit" name="delete" value="Delete Category"/> 
    1111               </td> 
    1112             </tr> 
    1113           </table> 
    1114         </form> 
    1115       </xsl:otherwise> 
    1116     </xsl:choose> 
    1117   </xsl:template> 
    1118  
    1119   <xsl:template name="deleteCategoryConfirm"> 
    1120     <h2>Ok to delete this category?</h2> 
    1121  
    1122     <table class="common" cellspacing="0"> 
    1123       <tr> 
    1124         <th class="commonHeader" colspan="2">Delete Category</th> 
    1125       </tr> 
    1126       <tr> 
    1127         <td class="fieldname"> 
    1128           Keyword: 
    1129         </td> 
    1130         <td> 
    1131           <xsl:value-of select="/bedework/currentCategory/category/keyword"/> 
    1132         </td> 
    1133       </tr> 
    1134       <tr> 
    1135         <td class="fieldname optional"> 
    1136           Description: 
    1137         </td> 
    1138         <td> 
    1139           <xsl:value-of select="/bedework/currentCategory/category/desc"/> 
    1140         </td> 
    1141       </tr> 
    1142     </table> 
    1143  
    1144     <form action="{$category-delete}" method="post"> 
    1145       <input type="submit" name="deleteCategory" value="Yes: Delete Category"/> 
    1146       <input type="submit" name="cancelled" value="No: Cancel"/> 
    1147     </form> 
    1148   </xsl:template> 
    1149  
    1150   <!--==== MANAGE LOCATIONS ====--> 
    1151   <xsl:template name="locationList"> 
    1152     <h2> 
    1153       Manage Locations 
    1154       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')" class="titleButton"/> 
    1155     </h2> 
    1156     <table class="common" id="manage" cellspacing="0"> 
    1157       <tr> 
    1158         <th class="commonHeader">Edit/Delete Locations</th> 
    1159       </tr> 
    1160       <tr> 
    1161         <td> 
    1162           <xsl:if test="/bedework/locations/location"> 
    1163             <ul> 
    1164               <xsl:for-each select="/bedework/locations/location"> 
    1165                 <xsl:sort select="."/> 
    1166                 <li> 
    1167                   <xsl:variable name="uid" select="uid"/> 
    1168                   <a href="{$location-fetchForUpdate}&amp;uid={$uid}"><xsl:value-of select="address"/></a> 
    1169                 </li> 
    1170               </xsl:for-each> 
    1171             </ul> 
    1172           </xsl:if> 
    1173         </td> 
    1174       </tr> 
    1175     </table> 
    1176   </xsl:template> 
    1177  
    1178   <xsl:template name="modLocation"> 
    1179     <xsl:choose> 
    1180       <xsl:when test="/bedework/creating = 'true'"> 
    1181         <form name="addLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    1182           <h2>Manage Locations</h2> 
    1183           <table class="common" cellspacing="0"> 
    1184             <tr> 
    1185               <th class="commonHeader" colspan="2">Add Location</th> 
    1186             </tr> 
    1187             <tr> 
    1188               <td class="fieldname"> 
    1189                 Main Address: 
    1190               </td> 
    1191               <td> 
    1192                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"/> 
    1193               </td> 
    1194             </tr> 
    1195             <tr> 
    1196               <td class="fieldname"> 
    1197                 Subaddress: 
    1198               </td> 
    1199               <td> 
    1200                 <input size="60" name="locationSubaddress.value" type="text"/> 
    1201               </td> 
    1202             </tr> 
    1203             <tr> 
    1204               <td class="fieldname"> 
    1205                 Location Link: 
    1206               </td> 
    1207               <td> 
    1208                 <input size="60" name="location.link" type="text"/> 
    1209               </td> 
    1210             </tr> 
    1211           </table> 
    1212           <table border="0" id="submitTable"> 
    1213             <tr> 
    1214               <td> 
    1215                 <input name="submit" type="submit" value="Submit Location"/> 
    1216                 <input name="cancelled" type="submit" value="cancel"/> 
    1217               </td> 
    1218             </tr> 
    1219           </table> 
    1220         </form> 
    1221       </xsl:when> 
    1222       <xsl:otherwise> 
    1223         <form name="editLocationForm" method="post" action="{$location-update}" id="standardForm"> 
    1224           <input type="hidden" name="updateLocation" value="true"/> 
    1225           <h2>Manage Locations</h2> 
    1226           <table class="common" cellspacing="0"> 
    1227             <tr> 
    1228               <th colspan="2" class="commonHeader"> 
    1229                 Edit Location 
    1230               </th> 
    1231             </tr> 
    1232             <tr> 
    1233               <td class="fieldname"> 
    1234                 Main Address: 
    1235               </td> 
    1236               <td align="left"> 
    1237                 <input size="60" name="locationAddress.value" type="text" id="bwLocMainAddress"> 
    1238                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/address"/></xsl:attribute> 
    1239                 </input> 
    1240               </td> 
    1241             </tr> 
    1242             <tr> 
    1243               <td class="fieldname"> 
    1244                 Subaddress: 
    1245               </td> 
    1246               <td align="left"> 
    1247                 <input size="60" name="locationSubaddress.value" type="text"> 
    1248                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/subaddress"/></xsl:attribute> 
    1249                 </input> 
    1250               </td> 
    1251             </tr> 
    1252             <tr> 
    1253               <td class="fieldname"> 
    1254                 Location Link: 
    1255               </td> 
    1256               <td> 
    1257                 <input size="60" name="location.link" type="text"> 
    1258                   <xsl:attribute name="value"><xsl:value-of select="/bedework/currentLocation/link"/></xsl:attribute> 
    1259                 </input> 
    1260               </td> 
    1261             </tr> 
    1262           </table> 
    1263           <table border="0" id="submitTable"> 
    1264             <tr> 
    1265               <td> 
    1266                 <input name="submit" type="submit" value="Submit Location"/> 
    1267                 <input name="cancelled" type="submit" value="cancel"/> 
    1268                 <input type="reset" value="Reset"/> 
    1269               </td> 
    1270               <td align="right"> 
    1271                 <!--<xsl:variable name="uid" select="form/uid"/>--> 
    1272                 <a href="{$location-delete}"><input type="button" name="delete" value="Delete Location"/></a> 
    1273               </td> 
    1274             </tr> 
    1275           </table> 
    1276         </form> 
    1277       </xsl:otherwise> 
    1278     </xsl:choose> 
    1279   </xsl:template> 
    1280  
    1281   <xsl:template name="deleteLocationConfirm"> 
    1282     <h2>Ok to delete this location?</h2> 
    1283  
    1284     <table class="common" cellspacing="0"> 
    1285       <tr> 
    1286         <th class="commonHeader" colspan="2">Delete Location</th> 
    1287       </tr> 
    1288       <tr> 
    1289         <td class="fieldname"> 
    1290           Main Address: 
    1291         </td> 
    1292         <td align="left"> 
    1293           <xsl:value-of select="/bedework/currentLocation/address"/> 
    1294         </td> 
    1295       </tr> 
    1296       <tr> 
    1297         <td class="fieldname"> 
    1298           Subaddress: 
    1299         </td> 
    1300         <td align="left"> 
    1301           <xsl:value-of select="/bedework/currentLocation/subaddress"/> 
    1302         </td> 
    1303       </tr> 
    1304       <tr> 
    1305         <td class="fieldname"> 
    1306           Location Link: 
    1307         </td> 
    1308         <td> 
    1309           <xsl:variable name="link" select="/bedework/currentLocation/link"/> 
    1310           <a href="{$link}"><xsl:value-of select="$link"/></a> 
    1311         </td> 
    1312       </tr> 
    1313     </table> 
    1314  
    1315     <form action="{$location-delete}" method="post"> 
    1316       <input type="submit" name="updateCategory" value="Yes: Delete Location"/> 
    1317       <input type="submit" name="cancelled" value="No: Cancel"/> 
    1318     </form> 
    1319   </xsl:template> 
    1320 </xsl:stylesheet> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/clock.xsl

    r1624 r1705  
    1717      <div id="bwClockBox"> 
    1818        <h2> 
    19           Bedework 24-Hour Clock 
     19          <xsl:value-of select="$clock.clock" /> 
    2020        </h2> 
    2121        <div id="bwClockDateTypeIndicator"> 
    22           type 
     22          <xsl:value-of select="$clock.clock.type" /> 
    2323        </div> 
    2424        <div id="bwClockTime"> 
    25           select time 
     25          <xsl:value-of select="$clock.clock.select.time" /> 
    2626        </div> 
    2727        <div id="bwClockSwitch"> 
    28           switch 
     28          <xsl:value-of select="$clock.clock.switch" /> 
    2929        </div> 
    3030        <div id="bwClockCloseText"> 
    31           close 
     31          <xsl:value-of select="$clock.clock.close" /> 
    3232        </div> 
    3333        <div id="bwClockCloseButton"> 
     
    7878 
    7979</xsl:stylesheet> 
    80 <?xml version="1.0" encoding="UTF-8"?> 
    81 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    82  
    83   <xsl:template name="clock"> 
    84     <div id="bwClock"> 
    85       <!-- Bedework 24-Hour Clock time selection widget 
    86            used with resources/bwClock.js and resources/bwClock.css --> 
    87       <xsl:variable name="hour24" select="/bedework/hour24"/><!-- true or false --> 
    88       <div id="bwClockClock"> 
    89         <img id="clockMap" src="{$resourcesRoot}/resources/clockMap.gif" width="368" height="368" border="0" alt="bwClock" usemap="#bwClockMap" /> 
    90       </div> 
    91       <div id="bwClockCover"> 
    92         &#160; 
    93         <!-- this is a special effect div used simply to cover the pixelated edge 
    94              where the clock meets the clock box title --> 
    95       </div> 
    96       <div id="bwClockBox"> 
    97         <h2> 
    98           Bedework 24-Hour Clock 
    99         </h2> 
    100         <div id="bwClockDateTypeIndicator"> 
    101           type 
    102         </div> 
    103         <div id="bwClockTime"> 
    104           select time 
    105         </div> 
    106         <div id="bwClockSwitch"> 
    107           switch 
    108         </div> 
    109         <div id="bwClockCloseText"> 
    110           close 
    111         </div> 
    112         <div id="bwClockCloseButton"> 
    113           <a href="javascript:bwClockClose();">X</a> 
    114         </div> 
    115       </div> 
    116       <map name="bwClockMap" id="bwClockMap"> 
    117         <area shape="rect" alt="close clock" title="close clock" coords="160,167, 200,200" href="javascript:bwClockClose()"/> 
    118         <area shape="poly" alt="minute 00:55" title="minute 00:55" coords="156,164, 169,155, 156,107, 123,128" href="javascript:bwClockUpdateDateTimeForm('minute','55')" /> 
    119         <area shape="poly" alt="minute 00:50" title="minute 00:50" coords="150,175, 156,164, 123,128, 103,161" href="javascript:bwClockUpdateDateTimeForm('minute','50')" /> 
    120         <area shape="poly" alt="minute 00:45" title="minute 00:45" coords="150,191, 150,175, 103,161, 103,206" href="javascript:bwClockUpdateDateTimeForm('minute','45')" /> 
    121         <area shape="poly" alt="minute 00:40" title="minute 00:40" coords="158,208, 150,191, 105,206, 123,237" href="javascript:bwClockUpdateDateTimeForm('minute','40')" /> 
    122         <area shape="poly" alt="minute 00:35" title="minute 00:35" coords="171,218, 158,208, 123,238, 158,261" href="javascript:bwClockUpdateDateTimeForm('minute','35')" /> 
    123         <area shape="poly" alt="minute 00:30" title="minute 00:30" coords="193,218, 172,218, 158,263, 209,263" href="javascript:bwClockUpdateDateTimeForm('minute','30')" /> 
    124         <area shape="poly" alt="minute 00:25" title="minute 00:25" coords="209,210, 193,218, 209,261, 241,240" href="javascript:bwClockUpdateDateTimeForm('minute','25')" /> 
    125         <area shape="poly" alt="minute 00:20" title="minute 00:20" coords="216,196, 209,210, 241,240, 261,206" href="javascript:bwClockUpdateDateTimeForm('minute','20')" /> 
    126         <area shape="poly" alt="minute 00:15" title="minute 00:15" coords="216,178, 216,196, 261,206, 261,159" href="javascript:bwClockUpdateDateTimeForm('minute','15')" /> 
    127         <area shape="poly" alt="minute 00:10" title="minute 00:10" coords="209,164, 216,178, 261,159, 240,126" href="javascript:bwClockUpdateDateTimeForm('minute','10')" /> 
    128         <area shape="poly" alt="minute 00:05" title="minute 00:05" coords="196,155, 209,164, 238,126, 206,107" href="javascript:bwClockUpdateDateTimeForm('minute','5')" /> 
    129         <area shape="poly" alt="minute 00:00" title="minute 00:00" coords="169,155, 196,155, 206,105, 156,105" href="javascript:bwClockUpdateDateTimeForm('minute','0')" /> 
    130         <area shape="poly" alt="11 PM, 2300 hour" title="11 PM, 2300 hour" coords="150,102, 172,96, 158,1, 114,14" href="javascript:bwClockUpdateDateTimeForm('hour','23',{$hour24})" /> 
    131         <area shape="poly" alt="10 PM, 2200 hour" title="10 PM, 2200 hour" coords="131,114, 150,102, 114,14, 74,36" href="javascript:bwClockUpdateDateTimeForm('hour','22',{$hour24})" /> 
    132         <area shape="poly" alt="9 PM, 2100 hour" title="9 PM, 2100 hour" coords="111,132, 131,114, 74,36, 40,69" href="javascript:bwClockUpdateDateTimeForm('hour','21',{$hour24})" /> 
    133         <area shape="poly" alt="8 PM, 2000 hour" title="8 PM, 2000 hour" coords="101,149, 111,132, 40,69, 15,113" href="javascript:bwClockUpdateDateTimeForm('hour','20',{$hour24})" /> 
    134         <area shape="poly" alt="7 PM, 1900 hour" title="7 PM, 1900 hour" coords="95,170, 101,149, 15,113, 1,159" href="javascript:bwClockUpdateDateTimeForm('hour','19',{$hour24})" /> 
    135         <area shape="poly" alt="6 PM, 1800 hour" title="6 PM, 1800 hour" coords="95,196, 95,170, 0,159, 0,204" href="javascript:bwClockUpdateDateTimeForm('hour','18',{$hour24})" /> 
    136         <area shape="poly" alt="5 PM, 1700 hour" title="5 PM, 1700 hour" coords="103,225, 95,196, 1,205, 16,256" href="javascript:bwClockUpdateDateTimeForm('hour','17',{$hour24})" /> 
    137         <area shape="poly" alt="4 PM, 1600 hour" title="4 PM, 1600 hour" coords="116,245, 103,225, 16,256, 41,298" href="javascript:bwClockUpdateDateTimeForm('hour','16',{$hour24})" /> 
    138         <area shape="poly" alt="3 PM, 1500 hour" title="3 PM, 1500 hour" coords="134,259, 117,245, 41,298, 76,332" href="javascript:bwClockUpdateDateTimeForm('hour','15',{$hour24})" /> 
    139         <area shape="poly" alt="2 PM, 1400 hour" title="2 PM, 1400 hour" coords="150,268, 134,259, 76,333, 121,355" href="javascript:bwClockUpdateDateTimeForm('hour','14',{$hour24})" /> 
    140         <area shape="poly" alt="1 PM, 1300 hour" title="1 PM, 1300 hour" coords="169,273, 150,268, 120,356, 165,365" href="javascript:bwClockUpdateDateTimeForm('hour','13',{$hour24})" /> 
    141         <area shape="poly" alt="Noon, 1200 hour" title="Noon, 1200 hour" coords="193,273, 169,273, 165,365, 210,364" href="javascript:bwClockUpdateDateTimeForm('hour','12',{$hour24})" /> 
    142         <area shape="poly" alt="11 AM, 1100 hour" title="11 AM, 1100 hour" coords="214,270, 193,273, 210,363, 252,352" href="javascript:bwClockUpdateDateTimeForm('hour','11',{$hour24})" /> 
    143         <area shape="poly" alt="10 AM, 1000 hour" title="10 AM, 1000 hour" coords="232,259, 214,270, 252,352, 291,330" href="javascript:bwClockUpdateDateTimeForm('hour','10',{$hour24})" /> 
    144         <area shape="poly" alt="9 AM, 0900 hour" title="9 AM, 0900 hour" coords="251,240, 232,258, 291,330, 323,301" href="javascript:bwClockUpdateDateTimeForm('hour','9',{$hour24})" /> 
    145         <area shape="poly" alt="8 AM, 0800 hour" title="8 AM, 0800 hour" coords="263,219, 251,239, 323,301, 349,261" href="javascript:bwClockUpdateDateTimeForm('hour','8',{$hour24})" /> 
    146         <area shape="poly" alt="7 AM, 0700 hour" title="7 AM, 0700 hour" coords="269,194, 263,219, 349,261, 363,212" href="javascript:bwClockUpdateDateTimeForm('hour','7',{$hour24})" /> 
    147         <area shape="poly" alt="6 AM, 0600 hour" title="6 AM, 0600 hour" coords="269,172, 269,193, 363,212, 363,155" href="javascript:bwClockUpdateDateTimeForm('hour','6',{$hour24})" /> 
    148         <area shape="poly" alt="5 AM, 0500 hour" title="5 AM, 0500 hour" coords="263,150, 269,172, 363,155, 351,109" href="javascript:bwClockUpdateDateTimeForm('hour','5',{$hour24})" /> 
    149         <area shape="poly" alt="4 AM, 0400 hour" title="4 AM, 0400 hour" coords="251,130, 263,150, 351,109, 325,68" href="javascript:bwClockUpdateDateTimeForm('hour','4',{$hour24})" /> 
    150         <area shape="poly" alt="3 AM, 0300 hour" title="3 AM, 0300 hour" coords="234,112, 251,130, 325,67, 295,37" href="javascript:bwClockUpdateDateTimeForm('hour','3',{$hour24})" /> 
    151         <area shape="poly" alt="2 AM, 0200 hour" title="2 AM, 0200 hour" coords="221,102, 234,112, 295,37, 247,11" href="javascript:bwClockUpdateDateTimeForm('hour','2',{$hour24})" /> 
    152         <area shape="poly" alt="1 AM, 0100 hour" title="1 AM, 0100 hour" coords="196,96, 221,102, 247,10, 209,-1, 201,61, 206,64, 205,74, 199,75" href="javascript:bwClockUpdateDateTimeForm('hour','1',{$hour24})" /> 
    153         <area shape="poly" alt="Midnight, 0000 hour" title="Midnight, 0000 hour" coords="172,96, 169,74, 161,73, 161,65, 168,63, 158,-1, 209,-1, 201,61, 200,62, 206,64, 205,74, 198,75, 196,96, 183,95" href="javascript:bwClockUpdateDateTimeForm('hour','0',{$hour24})" /> 
    154       </map> 
    155     </div> 
    156   </xsl:template> 
    157  
    158 </xsl:stylesheet> 
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/errors.xsl

    r1597 r1705  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    33  <!-- Apart from the exception - trapped first, these are in alphabetic order of 
    44       error code. --> 
    55  <xsl:template match="error"> 
    66    <xsl:choose> 
    7       <xsl:when test="id='org.bedework.client.error.exc'"><!-- trap exceptions first --> 
    8         An exception occurred: <em><xsl:value-of select="param"/></em> 
     7      <xsl:when test="id='org.bedework.client.error.exc'"> 
     8        <xsl:value-of select="$errors.org.bedework.client.error.exc" /> <em><xsl:value-of select="param" /></em> 
    99      </xsl:when> 
    1010      <xsl:when test="id='edu.rpi.sss.util.error.exc'"> 
    11         An exception occurred: <em><xsl:value-of select="param"/></em> 
     11        <xsl:value-of select="$errors.edu.rpi.sss.util.error.exc" /> <em><xsl:value-of select="param" /></em> 
    1212      </xsl:when> 
    1313 
     
    1717 
    1818      <xsl:when test="id='org.bedework.client.error.admingroupassignedcs'"> 
    19         Error: admin group is assigned to: <em><xsl:value-of select="param"/></em> 
     19        <xsl:value-of select="$errors.org.bedework.client.error.admingroupassignedcs" /> <em><xsl:value-of select="param" /></em> 
    2020      </xsl:when> 
    2121      <xsl:when test="id='org.bedework.client.error.alreadymember'"> 
    22         Error: already a member: <em><xsl:value-of select="param"/></em> 
     22        <xsl:value-of select="$errors.org.bedework.client.error.alreadymember" /> <em><xsl:value-of select="param" /></em> 
    2323      </xsl:when> 
    2424      <xsl:when test="id='org.bedework.client.error.badfilter'"> 
    25         Error: invalid filter definition: <em><xsl:value-of select="param"/></em> 
     25        <xsl:value-of select="$errors.org.bedework.client.error.badfilter" /> <em><xsl:value-of select="param" /></em> 
    2626      </xsl:when> 
    2727      <xsl:when test="id='org.bedework.client.error.badinterval'"> 
    28         Error: bad interval. 
     28        <xsl:value-of select="$errors.org.bedework.client.error.badinterval" /> 
    2929      </xsl:when> 
    3030      <xsl:when test="id='org.bedework.client.error.badintervalunit'"> 
    31         Error: bad interval unit. 
     31        <xsl:value-of select="$errors.org.bedework.client.error.badintervalunit" /> 
    3232      </xsl:when> 
    3333      <xsl:when test="id='org.bedework.client.error.badrequest'"> 
    34         Error: Bad request. 
     34        <xsl:value-of select="$errors.org.bedework.client.error.badrequest" /> 
    3535      </xsl:when> 
    3636      <xsl:when test="id='org.bedework.client.error.badschedulewhat'"> 
    37         Error: Bad scheduling what parameter. 
     37        <xsl:value-of select="$errors.org.bedework.client.error.badschedulewhat" /> 
    3838      </xsl:when> 
    3939      <xsl:when test="id='org.bedework.error.scheduling.baddestinationcalendar'"> 
    40         Error: You must set a destination calendar 
     40        <xsl:value-of select="$errors.org.bedework.error.scheduling.baddestinationcalendar" /> 
    4141      </xsl:when> 
    4242      <xsl:when test="id='org.bedework.client.error.calsuitenotadded'"> 
    43         Error: calendar suite not added. 
     43        <xsl:value-of select="$errors.org.bedework.client.error.calsuitenotadded" /> 
    4444      </xsl:when> 
    4545      <xsl:when test="id='org.bedework.client.error.cannotchangecalmode'"> 
    46         Forbidden: you are not allowed to change the mode of the non-empty 
    47         collection <em><xsl:value-of select="param"/></em>. 
     46        <xsl:value-of select="$errors.org.bedework.client.error.cannotchangecalmode" /> <em><xsl:value-of select="param" /></em>. 
    4847      </xsl:when> 
    4948      <xsl:when test="id='org.bedework.client.error.choosegroupsuppressed'"> 
    50         Error: choose group is suppressed.  You cannot perform that action at this time. 
     49        <xsl:value-of select="$errors.org.bedework.client.error.choosegroupsuppressed" /> 
    5150      </xsl:when> 
    5251      <xsl:when test="id='org.bedework.client.error.duplicatecontact'"> 
    53         Cannot add: the contact already exists. 
     52        <xsl:value-of select="$errors.org.bedework.client.error.duplicatecontact" /> 
    5453      </xsl:when> 
    5554      <xsl:when test="id='org.bedework.client.error.duplicategroup'"> 
    56         Error: duplicate group.  <em><xsl:value-of select="param"/></em> already exists. 
     55        <xsl:value-of select="$errors.org.bedework.client.error.duplicategroup" /> <em><xsl:value-of select="param" /></em> already exists. 
    5756      </xsl:when> 
    5857      <xsl:when test="id='org.bedework.client.error.duplicatelocation'"> 
    59         Cannot add: the location already exists. 
     58        <xsl:value-of select="$errors.org.bedework.client.error.duplicatelocation" /> 
    6059      </xsl:when> 
    6160      <xsl:when test="id='org.bedework.client.error.duplicateuid'"> 
    62           Duplicate uid: this event already exists in this calendar. 
     61        <xsl:value-of select="$errors.org.bedework.client.error.duplicateuid" /> 
    6362      </xsl:when> 
    6463      <xsl:when test="id='org.bedework.client.error.failed.overrides'"> 
    65           Error: there were <xsl:value-of select="param"/> failed overrides. 
     64        <xsl:value-of select="$errors.org.bedework.client.error.failed.overrides" /> <xsl:value-of select="param" /> failed overrides. 
    6665      </xsl:when> 
    6766      <xsl:when test="id='org.bedework.client.error.mail.norecipient'"> 
    68         Error: the email has no recipient. 
     67        <xsl:value-of select="$errors.org.bedework.client.error.mail.norecipient" /> 
    6968      </xsl:when> 
    7069      <xsl:when test="id='org.bedework.client.error.missingcalendarpath'"> 
    71         Error: missing calendar path. 
     70        <xsl:value-of select="$errors.org.bedework.client.error.missingcalendarpath" /> 
    7271      </xsl:when> 
    7372      <xsl:when test="id='org.bedework.client.error.missingeventkeyfields'"> 
    74         Error: missing event key fields 
     73        <xsl:value-of select="$errors.org.bedework.client.error.missingeventkeyfields" /> 
    7574      </xsl:when> 
    7675      <xsl:when test="id='org.bedework.client.error.missingfilename'"> 
    77           You must supply a file name (required). 
     76        <xsl:value-of select="$errors.org.bedework.client.error.missingfilename" /> 
    7877      </xsl:when> 
    7978      <xsl:when test="id='org.bedework.client.error.missingrequestpar'"> 
    80           Missing request parameter: <em><xsl:value-of select="param"/></em>. 
     79        <xsl:value-of select="$errors.org.bedework.client.error.missingrequestpar" /> <em><xsl:value-of select="param" /></em>. 
    8180      </xsl:when> 
    8281      <xsl:when test="id='org.bedework.client.error.missingschedulewhat'"> 
    83         Error: Missing scheduling what parameter. 
     82        <xsl:value-of select="$errors.org.bedework.client.error.missingschedulewhat" /> 
    8483      </xsl:when> 
    8584      <xsl:when test="id='org.bedework.client.error.multipleevents'"> 
    86         System Error: Multiple events when one expected. 
     85        <xsl:value-of select="$errors.org.bedework.client.error.multipleevents" /> 
    8786      </xsl:when> 
    8887      <xsl:when test="id='org.bedework.client.error.noaccess'"> 
    89         Error: no access. 
     88        <xsl:value-of select="$errors.org.bedework.client.error.noaccess" /> 
    9089      </xsl:when> 
    9190      <xsl:when test="id='org.bedework.client.error.nodefaultview'"> 
    92           No default view defined 
     91        <xsl:value-of select="$errors.org.bedework.client.error.nodefaultview" /> 
    9392      </xsl:when> 
    9493      <xsl:when test="id='org.bedework.client.error.norecurrenceinstances'"> 
    95           There are no instances for this recurring event. 
     94        <xsl:value-of select="$errors.org.bedework.client.error.norecurrenceinstances" /> 
    9695      </xsl:when> 
    9796      <xsl:when test="id='org.bedework.client.error.noschedulingaccess'"> 
    98           You cannot schedule events with user <em><xsl:value-of select="param"/></em>. 
     97        <xsl:value-of select="$errors.org.bedework.client.error.noschedulingaccess" /> <em><xsl:value-of select="param" /></em>. 
    9998      </xsl:when> 
    10099      <xsl:when test="id='org.bedework.client.error.ongrouppath'"> 
    101         Error: group may not be added to itself. 
     100        <xsl:value-of select="$errors.org.bedework.client.error.ongrouppath" /> 
    102101      </xsl:when> 
    103102      <xsl:when test="id='org.bedework.client.error.onlyfrominbox'"> 
    104         You can only respond from your inbox. 
     103        <xsl:value-of select="$errors.org.bedework.client.error.onlyfrominbox" /> 
    105104      </xsl:when> 
    106105      <xsl:when test="id='org.bedework.client.error.onlytoinbox'"> 
    107         You can only reply to an inbox. 
     106        <xsl:value-of select="$errors.org.bedework.client.error.onlytoinbox" /> 
    108107      </xsl:when> 
    109108      <xsl:when test="id='org.bedework.client.error.referenced.calendar'"> 
    110         Cannot delete: the calendar is not empty. 
     109        <xsl:value-of select="$errors.org.bedework.client.error.referenced.calendar" /> 
    111110      </xsl:when> 
    112111      <xsl:when test="id='org.bedework.client.error.referenced.category'"> 
    113         Cannot delete: the category is referenced by events. 
     112        <xsl:value-of select="$errors.org.bedework.client.error.referenced.category" /> 
    114113      </xsl:when> 
    115114      <xsl:when test="id='org.bedework.client.error.referenced.contact'"> 
    116         Cannot delete: the contact is referenced by events. 
     115        <xsl:value-of select="$errors.org.bedework.client.error.referenced.contact" /> 
    117116      </xsl:when> 
    118117      <xsl:when test="id='org.bedework.client.error.referenced.location'"> 
    119         Cannot delete: the location is referenced by events. 
     118        <xsl:value-of select="$errors.org.bedework.client.error.referenced.location" /> 
    120119      </xsl:when> 
    121120      <xsl:when test="id='org.bedework.client.error.referenced.subscription'"> 
    122         Cannot delete: the subscription is included in view <em><xsl:value-of select="param"/></em>.<br/> 
     121        <xsl:value-of select="$errors.org.bedework.client.error.referenced.subscription" /> <em><xsl:value-of select="param" /></em>.<br /> 
    123122        You must remove the subscription from this view before deleting. 
    124123      </xsl:when> 
    125124      <xsl:when test="id='org.bedework.error.timezones.readerror'"> 
    126         Timzone error: could not read file. 
     125        <xsl:value-of select="$errors.org.bedework.error.timezones.readerror" /> 
    127126      </xsl:when> 
    128127 
    129128      <!-- things we cannot find --> 
    130129      <xsl:when test="id='org.bedework.client.error.unknown.attendee'"> 
    131           Unknown attendee <em><xsl:value-of select="param"/></em> 
     130        <xsl:value-of select="$errors.org.bedework.client.error.unknown.attendee" /> <em><xsl:value-of select="param" /></em> 
    132131      </xsl:when> 
    133132      <xsl:when test="id='org.bedework.client.error.unknown.calendar'"> 
    134         Not found: there is no calendar with the path <em><xsl:value-of select="param"/></em>. 
     133        <xsl:value-of select="$errors.org.bedework.client.error.unknown.calendar" /> <em><xsl:value-of select="param" /></em>. 
    135134      </xsl:when> 
    136135      <xsl:when test="id='org.bedework.client.error.unknown.calendarsuite'"> 
    137         There is no calendar suite with the name <em><xsl:value-of select="param"/></em>. 
     136        <xsl:value-of select="$errors.org.bedework.client.error.unknown.calendarsuite" /> <em><xsl:value-of select="param" /></em>. 
    138137      </xsl:when> 
    139138      <xsl:when test="id='org.bedework.client.error.unknown.calendartype'"> 
    140         System error: there is no calendar with the type <em><xsl:value-of select="param"/></em>. 
     139        <xsl:value-of select="$errors.org.bedework.client.error.unknown.calendartype" /> <em><xsl:value-of select="param" /></em>. 
    141140      </xsl:when> 
    142141      <xsl:when test="id='org.bedework.client.error.unknown.category'"> 
    143         Not found: there is no category with the keyword <em><xsl:value-of select="param"/></em>. 
     142        <xsl:value-of select="$errors.org.bedework.client.error.unknown.category" /> <em><xsl:value-of select="param" /></em>. 
    144143      </xsl:when> 
    145144      <xsl:when test="id='org.bedework.client.error.unknown.contact'"> 
    146         Not found: there is no contact <em><xsl:value-of select="param"/></em>. 
     145        <xsl:value-of select="$errors.org.bedework.client.error.unknown.contact" /> <em><xsl:value-of select="param" /></em>. 
    147146      </xsl:when> 
    148147      <xsl:when test="id='org.bedework.client.error.unknown.event'"> 
    149           Event <xsl:value-of select="param"/> does not exist. 
     148        <xsl:value-of select="$errors.org.bedework.client.error.unknown.event" /> <xsl:value-of select="param" /> does not exist. 
    150149      </xsl:when> 
    151150      <xsl:when test="id='org.bedework.client.error.unknown.filter'"> 
    152         Error: unknown filter:  <em><xsl:value-of select="param"/></em>. 
     151        <xsl:value-of select="$errors.org.bedework.client.error.unknown.filter" /> <em><xsl:value-of select="param" /></em>. 
    153152      </xsl:when> 
    154153      <xsl:when test="id='org.bedework.client.error.unknown.group'"> 
    155         Error: unknown group:  <em><xsl:value-of select="param"/></em>. 
     154        <xsl:value-of select="$errors.org.bedework.client.error.unknown.group" /> <em><xsl:value-of select="param" /></em>. 
    156155      </xsl:when> 
    157156      <xsl:when test="id='org.bedework.client.error.unknown.location'"> 
    158         Not found: there is no location identified by the id <em><xsl:value-of select="param"/></em>. 
     157        <xsl:value-of select="$errors.org.bedework.client.error.unknown.location" /> <em><xsl:value-of select="param" /></em>. 
    159158      </xsl:when> 
    160159      <xsl:when test="id='org.bedework.client.error.unknown.subscription'"> 
    161         Not found: there is no user identified by the name <em><xsl:value-of select="param"/></em>. 
     160        <xsl:value-of select="$errors.org.bedework.client.error.unknown.subscription" /> <em><xsl:value-of select="param" /></em>. 
    162161      </xsl:when> 
    163162      <xsl:when test="id='org.bedework.client.error.unknown.user'"> 
    164         Not found: the user <em><xsl:value-of select="param"/></em> was not found. 
     163        <xsl:value-of select="$errors.org.bedework.client.error.unknown.user" /> <em><xsl:value-of select="param" /></em> was not found. 
    165164      </xsl:when> 
    166165      <xsl:when test="id='org.bedework.client.error.unknown.userid'"> 
    167         Not found: there is no user identified by the id <em><xsl:value-of select="param"/></em>. 
     166        <xsl:value-of select="$errors.org.bedework.client.error.unknown.userid" /> <em><xsl:value-of select="param" /></em>. 
    168167      </xsl:when> 
    169168      <xsl:when test="id='org.bedework.client.error.unknown.view'"> 
    170         Not found: there is no view identified by the name <em><xsl:value-of select="param"/></em>. 
     169        <xsl:value-of select="$errors.org.bedework.client.error.unknown.view" /> <em><xsl:value-of select="param" /></em>. 
    171170      </xsl:when> 
    172171 
    173172      <xsl:when test="id='org.bedework.client.error.viewnotadded'"> 
    174         Error: the view was not added. 
     173        <xsl:value-of select="$errors.org.bedework.client.error.viewnotadded" /> 
    175174      </xsl:when> 
    176175 
    177176      <!-- icalendar translation errors --> 
    178177      <xsl:when test="id='org.bedework.exception.ical.noguid'"> 
    179         An event must have a UID property. 
     178        <xsl:value-of select="$errors.org.bedework.exception.ical.noguid" /> 
    180179      </xsl:when> 
    181180 
     
    184183 
    185184      <xsl:when test="id='org.bedework.validation.error.expectoneattendee'"> 
    186         You must supply exactly one attendee. 
     185        <xsl:value-of select="$errors.org.bedework.validation.error.expectoneattendee" /> 
    187186      </xsl:when> 
    188187      <xsl:when test="id='org.bedework.validation.error.invalid.how'"> 
    189         Error: bad ACL request (bad how setting). 
     188        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.how" /> 
    190189      </xsl:when> 
    191190      <xsl:when test="id='org.bedework.validation.error.invalid.whotype'"> 
    192         Error: bad who type (user or group). 
     191        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.whotype" /> 
    193192      </xsl:when> 
    194193      <xsl:when test="id='org.bedework.validation.error.invalid.attendee'"> 
    195           The attendee uri is invalid 
     194        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.attendee" /> 
    196195      </xsl:when> 
    197196      <xsl:when test="id='org.bedework.validation.error.invalid.date'"> 
    198           Bad or out-of-range date. 
     197        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.date" /> 
    199198      </xsl:when> 
    200199      <xsl:when test="id='org.bedework.validation.error.invalid.duration'"> 
    201         <em>Invalid duration</em> - you may not have a zero-length duration 
    202         for an all day event. 
     200        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.duration" /> 
    203201      </xsl:when> 
    204202      <xsl:when test="id='org.bedework.validation.error.invalid.endtype'"> 
    205         The endtype <em><xsl:value-of select="param"/></em> is invalid. 
     203        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.endtype" /> <em><xsl:value-of select="param" /></em> is invalid. 
    206204      </xsl:when> 
    207205      <xsl:when test="id='org.bedework.validation.error.invalid.organizer'"> 
    208           The organizer uri is invalid 
     206        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.organizer" /> 
    209207      </xsl:when> 
    210208      <xsl:when test="id='org.bedework.validation.error.invalid.prefendtype'"> 
    211         The preferred endtype <em><xsl:value-of select="param"/></em> is invalid. 
     209        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.prefendtype" /> <em><xsl:value-of select="param" /></em> is invalid. 
    212210      </xsl:when> 
    213211      <xsl:when test="id='org.bedework.validation.error.invalid.prefusermode'"> 
    214         The preferred user mode <em><xsl:value-of select="param"/></em> is invalid. 
     212        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.prefusermode" /> <em><xsl:value-of select="param" /></em> is invalid. 
    215213      </xsl:when> 
    216214      <xsl:when test="id='org.bedework.validation.error.invalid.prefworkdayend'"> 
    217         Error: invalid working days end: <em><xsl:value-of select="param"/></em> 
     215        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.prefworkdayend" /> <em><xsl:value-of select="param" /></em> 
    218216      </xsl:when> 
    219217      <xsl:when test="id='org.bedework.validation.error.invalid.prefworkdays'"> 
    220         Error: invalid working days: start after end 
     218        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.prefworkdays" /> 
    221219      </xsl:when> 
    222220      <xsl:when test="id='org.bedework.validation.error.invalid.prefworkdaystart'"> 
    223         Error: invalid working days start: <em><xsl:value-of select="param"/></em> 
     221        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.prefworkdaystart" /> <em><xsl:value-of select="param" /></em> 
    224222      </xsl:when> 
    225223      <xsl:when test="id='org.bedework.validation.error.invalid.recipient'"> 
    226           The recipient uri is invalid 
     224        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recipient" /> 
    227225      </xsl:when> 
    228226      <xsl:when test="id='org.bedework.validation.error.invalid.recurcount'"> 
    229         Error: bad value for recurrence count: <em><xsl:value-of select="param"/></em> 
     227        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recurcount" /> <em><xsl:value-of select="param" /></em> 
    230228      </xsl:when> 
    231229      <xsl:when test="id='org.bedework.validation.error.invalid.recurcountanduntil'"> 
    232         Error: Cannot specify count and until for recurrence 
     230        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recurcountanduntil" /> 
    233231      </xsl:when> 
    234232      <xsl:when test="id='org.bedework.validation.error.invalid.recurinterval'"> 
    235         Error: bad value for recurrence interval: <em><xsl:value-of select="param"/></em> 
     233        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recurinterval" /> <em><xsl:value-of select="param" /></em> 
    236234      </xsl:when> 
    237235      <xsl:when test="id='org.bedework.validation.error.invalid.recurrule'"> 
    238         Error: bad recurrence rule: <em><xsl:value-of select="param"/></em> 
     236        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recurrule" /> <em><xsl:value-of select="param" /></em> 
    239237      </xsl:when> 
    240238      <xsl:when test="id='org.bedework.validation.error.invalid.recuruntil'"> 
    241         Error: bad value for recurrence until: <em><xsl:value-of select="param"/></em> 
     239        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.recuruntil" /> <em><xsl:value-of select="param" /></em> 
    242240      </xsl:when> 
    243241      <xsl:when test="id='org.bedework.validation.error.cannot.change.method'"> 
    244         Error: you cannot change scheduling method 
     242        <xsl:value-of select="$errors.org.bedework.validation.error.cannot.change.method" /> 
    245243      </xsl:when> 
    246244 
     
    248246 
    249247      <xsl:when test="id='org.bedework.error.scheduling.attendeeaccessdisallowed'"> 
    250         Error: Access is disallowed to one or more attendees. 
     248        <xsl:value-of select="$errors.org.bedework.error.scheduling.attendeeaccessdisallowed" /> 
    251249      </xsl:when> 
    252250 
    253251      <xsl:when test="id='org.bedework.error.scheduling.badttendees'"> 
    254         Error: Attendee bad 
     252        <xsl:value-of select="$errors.org.bedework.error.scheduling.badttendees" /> 
    255253      </xsl:when> 
    256254 
    257255      <xsl:when test="id='org.bedework.error.scheduling.badmethod'"> 
    258         Error: bad scheduling method (should be request or publish). 
     256        <xsl:value-of select="$errors.org.bedework.error.scheduling.badmethod" /> 
    259257      </xsl:when> 
    260258 
    261259      <xsl:when test="id='org.bedework.error.scheduling.badresponsemethod'"> 
    262         Error: bad scheduling method for response (should be request or publish). 
     260        <xsl:value-of select="$errors.org.bedework.error.scheduling.badresponsemethod" /> 
    263261      </xsl:when> 
    264262 
    265263      <xsl:when test="id='org.bedework.error.scheduling.badsourcecalendar'"> 
    266         Error: event is not in inbox 
     264        <xsl:value-of select="$errors.org.bedework.error.scheduling.badsourcecalendar" /> 
    267265      </xsl:when> 
    268266 
    269267      <xsl:when test="id='org.bedework.error.scheduling.duplicateuid'"> 
    270         Error: Duplicate uid found in the target calendar 
     268        <xsl:value-of select="$errors.org.bedework.error.scheduling.duplicateuid" /> 
    271269      </xsl:when> 
    272270 
    273271      <xsl:when test="id='org.bedework.error.scheduling.expectoneattendee'"> 
    274         Error: Expected exactly one attendee for reply 
     272        <xsl:value-of select="$errors.org.bedework.error.scheduling.expectoneattendee" /> 
    275273      </xsl:when> 
    276274 
    277275      <xsl:when test="id='org.bedework.error.scheduling.invalidpartstatus'"> 
    278         Error: bad scheduling participation status 
     276        <xsl:value-of select="$errors.org.bedework.error.scheduling.invalidpartstatus" /> 
    279277      </xsl:when> 
    280278 
    281279      <xsl:when test="id='org.bedework.error.scheduling.multipleevents'"> 
    282         Error: Multiple events were found in the target calendar 
     280        <xsl:value-of select="$errors.org.bedework.error.scheduling.multipleevents" /> 
    283281      </xsl:when> 
    284282 
    285283      <xsl:when test="id='org.bedework.error.scheduling.noattendees'"> 
    286         Error: Entity required attendees but had none. 
     284        <xsl:value-of select="$errors.org.bedework.error.scheduling.noattendees" /> 
    287285      </xsl:when> 
    288286 
    289287      <xsl:when test="id='org.bedework.error.scheduling.noOriginator'"> 
    290         Error: Entity required originator but had none. 
     288        <xsl:value-of select="$errors.org.bedework.error.scheduling.noOriginator" /> 
    291289      </xsl:when> 
    292290 
    293291      <xsl:when test="id='org.bedework.error.scheduling.norecipients'"> 
    294         Error: Entity required recipients but had none. 
     292        <xsl:value-of select="$errors.org.bedework.error.scheduling.norecipients" /> 
    295293      </xsl:when> 
    296294 
    297295      <xsl:when test="id='org.bedework.error.scheduling.notattendee'"> 
    298         Error: You are not an attendee of this meeting. 
     296        <xsl:value-of select="$errors.org.bedework.error.scheduling.notattendee" /> 
    299297      </xsl:when> 
    300298 
    301299      <xsl:when test="id='org.bedework.error.scheduling.unknownattendee'"> 
    302         Error: Attendee for reply not in event. 
     300        <xsl:value-of select="$errors.org.bedework.error.scheduling.unknownattendee" /> 
    303301      </xsl:when> 
    304302 
    305303      <xsl:when test="id='org.bedework.error.scheduling.unknownevent'"> 
    306         Error: Unknown event - organizer possibly deleted it? 
     304        <xsl:value-of select="$errors.org.bedework.error.scheduling.unknownevent" /> 
    307305      </xsl:when> 
    308306 
     
    312310 
    313311      <xsl:when test="id='org.bedework.exception.duplicatecalendar'"> 
    314         Error: Duplicate calendar: <em><xsl:value-of select="param"/></em> 
     312        <xsl:value-of select="$errors.org.bedework.exception.duplicatecalendar" /> <em><xsl:value-of select="param" /></em> 
    315313      </xsl:when> 
    316314 
    317315      <xsl:when test="id='org.bedework.validation.error.invalid.status'"> 
    318         Error: Invalid status: <em><xsl:value-of select="param"/></em> 
     316        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.status" /> <em><xsl:value-of select="param" /></em> 
    319317      </xsl:when> 
    320318      <xsl:when test="id='org.bedework.validation.error.invalid.transparency'"> 
    321         Error: Invalid transparency: <em><xsl:value-of select="param"/></em> 
     319        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.transparency" /> <em><xsl:value-of select="param" /></em> 
    322320      </xsl:when> 
    323321      <xsl:when test="id='org.bedework.validation.error.invalid.user'"> 
    324         Error: Invalid user: <em><xsl:value-of select="param"/></em> 
     322        <xsl:value-of select="$errors.org.bedework.validation.error.invalid.user" /> <em><xsl:value-of select="param" /></em> 
    325323      </xsl:when> 
    326324 
    327325      <xsl:when test="id='org.bedework.validation.error.missinghow'"> 
    328         Error: missing how. 
     326        <xsl:value-of select="$errors.org.bedework.validation.error.missinghow" /> 
    329327      </xsl:when> 
    330328 
    331329      <xsl:when test="id='org.bedework.validation.error.missingwho'"> 
    332         Error: missing who (principal name). 
     330        <xsl:value-of select="$errors.org.bedework.validation.error.missingwho" /> 
    333331      </xsl:when> 
    334332 
    335333      <xsl:when test="id='org.bedework.validation.error.missingaddress'"> 
    336         Your information is incomplete: please supply an address. 
     334        <xsl:value-of select="$errors.org.bedework.validation.error.missingaddress" /> 
    337335      </xsl:when> 
    338336 
    339337      <xsl:when test="id='org.bedework.validation.error.missingcalendar'"> 
    340         Your information is incomplete: please supply a calendar. 
     338        <xsl:value-of select="$errors.org.bedework.validation.error.missingcalendar" /> 
    341339      </xsl:when> 
    342340 
    343341      <xsl:when test="id='org.bedework.validation.error.missingcalendarpath'"> 
    344         Your information is incomplete: please supply a calendar path. 
     342        <xsl:value-of select="$errors.org.bedework.validation.error.missingcalendarpath" /> 
    345343      </xsl:when> 
    346344 
    347345      <xsl:when test="id='org.bedework.validation.error.missingcalsuitecalendar'"> 
    348         Your information is incomplete: please supply a root calendar path. 
     346        <xsl:value-of select="$errors.org.bedework.validation.error.missingcalsuitecalendar" /> 
    349347      </xsl:when> 
    350348 
    351349      <xsl:when test="id='org.bedework.validation.error.missingcategorykeyword'"> 
    352         Your information is incomplete: please supply a category keyword. 
     350        <xsl:value-of select="$errors.org.bedework.validation.error.missingcategorykeyword" /> 
    353351      </xsl:when> 
    354352 
    355353      <xsl:when test="id='org.bedework.validation.error.missingcontact'"> 
    356         Your information is incomplete: please supply a contact. 
     354        <xsl:value-of select="$errors.org.bedework.validation.error.missingcontact" /> 
    357355      </xsl:when> 
    358356 
    359357      <xsl:when test="id='org.bedework.validation.error.missingcontactname'"> 
    360         You must enter a contact <em>name</em>. 
     358        <xsl:value-of select="$errors.org.bedework.validation.error.missingcontactname" /> 
    361359      </xsl:when> 
    362360 
    363361      <xsl:when test="id='org.bedework.validation.error.missingdescription'"> 
    364         Your information is incomplete: please supply a description. 
     362        <xsl:value-of select="$errors.org.bedework.validation.error.missingdescription" /> 
    365363      </xsl:when> 
    366364 
    367365      <xsl:when test="id='org.bedework.validation.error.missingeventowner'"> 
    368         Your information is incomplete: please supply an event owner. 
     366        <xsl:value-of select="$errors.org.bedework.validation.error.missingeventowner" /> 
    369367      </xsl:when> 
    370368 
    371369      <xsl:when test="id='org.bedework.validation.error.missingfilterdef'"> 
    372         Your information is incomplete: please supply a filter definition. 
     370        <xsl:value-of select="$errors.org.bedework.validation.error.missingfilterdef" /> 
    373371      </xsl:when> 
    374372 
    375373      <xsl:when test="id='org.bedework.validation.error.missinggroupname'"> 
    376         Your information is incomplete: please supply a group name. 
     374        <xsl:value-of select="$errors.org.bedework.validation.error.missinggroupname" /> 
    377375      </xsl:when> 
    378376 
    379377      <xsl:when test="id='org.bedework.validation.error.missinggroupowner'"> 
    380         Your information is incomplete: please supply a group owner. 
     378        <xsl:value-of select="$errors.org.bedework.validation.error.missinggroupowner" /> 
    381379      </xsl:when> 
    382380 
    383381      <xsl:when test="id='org.bedework.validation.error.missinglocation'"> 
    384         Your information is incomplete: please supply a location. 
     382        <xsl:value-of select="$errors.org.bedework.validation.error.missinglocation" /> 
    385383      </xsl:when> 
    386384 
    387385      <xsl:when test="id='org.bedework.validation.error.missingname'"> 
    388         Your information is incomplete: please supply a name. 
     386        <xsl:value-of select="$errors.org.bedework.validation.error.missingname" /> 
    389387      </xsl:when> 
    390388 
    391389      <xsl:when test="id='org.bedework.validation.error.missingorganizor'"> 
    392         Your event is missing the organizor 
     390        <xsl:value-of select="$errors.org.bedework.validation.error.missingorganizor" /> 
    393391      </xsl:when> 
    394392 
    395393      <xsl:when test="id='org.bedework.validation.error.missingoriginator'"> 
    396         Your event is missing the originator 
     394        <xsl:value-of select="$errors.org.bedework.validation.error.missingoriginator" /> 
    397395      </xsl:when> 
    398396 
    399397      <xsl:when test="id='org.bedework.validation.error.missingrecipients'"> 
    400         You must supply a recipient. 
     398        <xsl:value-of select="$errors.org.bedework.validation.error.missingrecipients" /> 
    401399      </xsl:when> 
    402400 
    403401      <xsl:when test="id='org.bedework.validation.error.missingsubscriptionid'"> 
    404         Your information is incomplete: please supply a subscription id. 
     402        <xsl:value-of select="$errors.org.bedework.validation.error.missingsubscriptionid" /> 
    405403      </xsl:when> 
    406404 
    407405      <xsl:when test="id='org.bedework.exception.duplicatesubscription'"> 
    408         Error: duplicate subscription. 
     406        <xsl:value-of select="$errors.org.bedework.exception.duplicatesubscription" /> 
    409407      </xsl:when> 
    410408 
    411409      <xsl:when test="id='org.bedework.validation.error.missingtitle'"> 
    412         Your information is incomplete: please supply a title. 
     410        <xsl:value-of select="$errors.org.bedework.validation.error.missingtitle" /> 
    413411      </xsl:when> 
    414412 
    415413      <xsl:when test="id='org.bedework.validation.error.missingsuburi'"> 
    416         Your information is incomplete: please supply a uri for the subscription. 
     414        <xsl:value-of select="$errors.org.bedework.validation.error.missingsuburi" /> 
    417415      </xsl:when> 
    418416 
    419417      <xsl:when test="id='org.bedework.validation.error.startafterend'"> 
    420         The <em>end date</em> occurs before the <em>start date</em>. 
     418        <xsl:value-of select="$errors.org.bedework.validation.error.startafterend" /> 
    421419      </xsl:when> 
    422420 
    423421      <xsl:when test="id='org.bedework.validation.error.toolong.description'"> 
    424         Your description is too long.  Please limit your entry to 
    425           characters.  You may also wish to 
    426           point the event entry at a supplemental web page by entering a <em>URL</em>. 
     422        <xsl:value-of select="$errors.org.bedework.validation.error.toolong.description" /> 
    427423      </xsl:when> 
    428424 
    429425      <xsl:when test="id='org.bedework.validation.error.toolong.name'"> 
    430         Your name is too long.  Please limit your entry to 
     426        <xsl:value-of select="$errors.org.bedework.validation.error.toolong.name" /> 
    431427      </xsl:when> 
    432428 
    433429      <xsl:when test="id='org.bedework.validation.error.toolong.summary'"> 
    434         Your summary is too long.  Please limit your entry to 
    435           characters.  You may also wish to 
    436           point the event entry at a supplemental web page by entering a <em>URL</em>. 
    437       </xsl:when> 
     430        <xsl:value-of select="$errors.org.bedework.validation.error.toolong.summary" /> 
     431      </xsl:when> 
     432       
    438433      <xsl:otherwise> 
    439         <xsl:value-of select="id"/> = <xsl:value-of select="param"/> 
     434        <xsl:value-of select="id" /> =  
     435        <xsl:value-of select="param" /> 
    440436      </xsl:otherwise> 
    441437    </xsl:choose> 
    442438  </xsl:template> 
    443439</xsl:stylesheet> 
    444  
  • branches/xslt-rewrite/deployment/resources/xsl/default/default/event-form.xsl

    r1643 r1705  
    1919                  <a href="{$eventView}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    2020                    <img src="{$resourcesRoot}/resources/glassFill-icon-viewGray.gif" width="13" height="13" border="0" alt="view"/> 
    21                     View 
     21                    <xsl:value-of select="$eventform.eventform.view"/> 
    2222                  </a> 
    2323                    | 
     
    2626                  <xsl:when test="recurrenceId != ''"> 
    2727                    <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    28                     Delete
     28                    <xsl:value-of select="$eventform.eventform.delete"/>
    2929                    <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}" title="delete master (recurring event)">all</a>, 
    30                     <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete instance (recurring event)">instance</a> 
     30                    <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete instance (recurring event)"><xsl:value-of select="$eventform.eventform.instance"/></a> 
    3131                  </xsl:when> 
    3232                  <xsl:otherwise> 
    33                     <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="delete event"> 
    34                       <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    35                       Delete 
     33                    <a href="{$delEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="{$eventform.eventform.deleteEvent}"> 
     34                      <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="{$eventform.eventform.delete2}"/> 
     35                      <xsl:value-of select="$eventform.eventform.delete"/> 
    3636                      <xsl:if test="form/recurringEntity='true'"> 
    37                         all 
     37                        <xsl:value-of select="$eventform.eventform.all"/> 
    3838                      </xsl:if> 
    3939                    </a> 
     
    4444              <xsl:variable name="entityType"> 
    4545                <xsl:choose> 
    46                   <xsl:when test="entityType = '2'">Task</xsl:when> 
    47                   <xsl:when test="scheduleMethod = '2'">Meeting</xsl:when> 
    48                   <xsl:otherwise>Event</xsl:otherwise> 
     46                  <xsl:when test="entityType = '2'"><xsl:value-of select="$eventform.eventform.task"/></xsl:when> 
     47                  <xsl:when test="scheduleMethod = '2'"><xsl:value-of select="$eventform.eventform.meeting"/></xsl:when> 
     48                  <xsl:otherwise><xsl:value-of select="$eventform.eventform.event"/></xsl:otherwise> 
    4949                </xsl:choose> 
    5050              </xsl:variable> 
    5151              <xsl:if test="form/recurringEntity='true' or recurrenceId != ''"> 
    52                 Recurring 
     52                <xsl:value-of select="$eventform.eventform.recurring"/> 
    5353              </xsl:if> 
    5454              <xsl:choose> 
    5555                <xsl:when test="form"> 
    5656                  <!-- just a placeholder: need to add owner to the jsp --> 
    57                   Personal <xsl:value-of select="$entityType"/> 
     57                  <xsl:value-of select="$eventform.eventform.personal"/> <xsl:value-of select="$entityType"/> 
    5858                </xsl:when> 
    5959                <xsl:when test="public = 'true'"> 
    60                   Public <xsl:value-of select="$entityType"/> 
     60                  <xsl:value-of select="$eventform.eventform.public"/> <xsl:value-of select="$entityType"/> 
    6161                </xsl:when> 
    6262                <xsl:otherwise> 
     
    6666              <xsl:if test="form/recurringEntity='true' and recurrenceId = ''"> 
    6767                <xsl:text> </xsl:text> 
    68                 <em>(recurrence master)</em> 
     68                <em>(<xsl:value-of select="$eventform.eventform.recurMaster"/>)</em> 
    6969              </xsl:if> 
    7070            </th> 
     
    7777        <li class="selected"> 
    7878          <a href="javascript:setTab('eventFormTabs',0); show('bwEventTab-Basic'); hide('bwEventTab-Details','bwEventTab-Recurrence','bwEventTab-Access','bwEventTab-Scheduling');"> 
    79             basic 
     79            <xsl:value-of select="$eventform.eventform.basic"/> 
    8080          </a> 
    8181        </li> 
    8282        <li> 
    8383          <a href="javascript:setTab('eventFormTabs',1); show('bwEventTab-Details'); hide('bwEventTab-Basic','bwEventTab-Recurrence','bwEventTab-Access','bwEventTab-Scheduling');"> 
    84             details 
     84            <xsl:value-of select="$eventform.eventform.details"/> 
    8585          </a> 
    8686        </li> 
    8787        <li> 
    8888          <a href="javascript:setTab('eventFormTabs',2); show('bwEventTab-Recurrence'); hide('bwEventTab-Details','bwEventTab-Basic','bwEventTab-Access','bwEventTab-Scheduling');"> 
    89             recurrence 
     89            <xsl:value-of select="$eventform.eventform.recurrence"/> 
    9090          </a> 
    9191        </li> 
    9292        <li> 
    9393          <a href="javascript:setTab('eventFormTabs',3); show('bwEventTab-Scheduling'); hide('bwEventTab-Basic','bwEventTab-Details','bwEventTab-Recurrence','bwEventTab-Access');"> 
    94             scheduling 
     94            <xsl:value-of select="$eventform.eventform.scheduling"/> 
    9595          </a> 
    9696        </li> 
    9797        <li> 
    9898          <a href="javascript:setTab('eventFormTabs',4); show('bwEventTab-Access'); hide('bwEventTab-Details','bwEventTab-Basic','bwEventTab-Recurrence','bwEventTab-Scheduling');"> 
    99             access 
     99            <xsl:value-of select="$eventform.eventform.access"/> 
    100100          </a> 
    101101        </li> 
    102102      </ul> 
    103103 
     104    <!-- Basic tab --> 
     105    <xsl:apply-templates select="." mode="bwEventTab-Basic"/> 
     106 
     107    <!-- Details tab --> 
     108    <xsl:apply-templates select="." mode="bwEventTab-Details"/> 
     109 
     110    <!-- Recurance tab --> 
     111    <div id="bwEventTab-Recurrence" class="invisible"> 
     112      <xsl:apply-templates select="." mode="bwEventTab-Recurrence"> 
     113        <xsl:with-param name="subscriptionId"><xsl:value-of select="$subscriptionId"/></xsl:with-param> 
     114        <xsl:with-param name="calPath"><xsl:value-of select="$calPath"/></xsl:with-param> 
     115        <xsl:with-param name="guid"><xsl:value-of select="$guid"/></xsl:with-param> 
     116        <xsl:with-param name="recurrenceId"><xsl:value-of select="$recurrenceId"/></xsl:with-param> 
     117      </xsl:apply-templates> 
     118    </div> 
     119 
     120 
     121    <!-- Access tab --> 
     122    <xsl:apply-templates select="." mode="bwEventTab-Access"> 
     123      <xsl:with-param name="calPathEncoded"><xsl:value-of select="$calPathEncoded"/></xsl:with-param> 
     124      <xsl:with-param name="guid"><xsl:value-of select="$guid"/></xsl:with-param> 
     125      <xsl:with-param name="recurrenceId"><xsl:value-of select="$recurrenceId"/></xsl:with-param> 
     126    </xsl:apply-templates> 
     127 
     128    <!-- Scheduling tab --> 
     129    <xsl:apply-templates select="." mode="bwEventTab-Scheduling"/> 
     130 
     131 
     132    <div class="eventSubmitButtons"> 
     133      <xsl:choose> 
     134        <xsl:when test="form/scheduleMethod = '2'"> 
     135          <input name="submit" type="submit" value="{$eventform.eventform.save}"/> 
     136          <input name="submitAndSend" type="submit" value="{$eventform.eventform.saveAndSend}"/> 
     137        </xsl:when> 
     138        <xsl:otherwise> 
     139          <input name="submit" type="submit" value="{$eventform.eventform.save}"/> 
     140        </xsl:otherwise> 
     141      </xsl:choose> 
     142      <input name="cancelled" type="submit" value="{$eventform.eventform.cancel}"/> 
     143    </div> 
     144  </xsl:template> 
     145 
     146  <xsl:template match="formElements" mode="bwEventTab-Basic"> 
    104147    <!-- Basic tab --> 
    105148    <!-- ============== --> 
     
    110153        <tr> 
    111154          <td class="fieldname"> 
    112             Calendar
     155            <xsl:value-of select="$eventform.bweventtab.calendar"/>
    113156          </td> 
    114157          <td class="fieldval"> 
     
    174217        <tr> 
    175218          <td class="fieldname"> 
    176             Title
     219            <xsl:value-of select="$eventform.bweventtab.title"/>
    177220          </td> 
    178221          <td class="fieldval"> 
     
    182225        </tr> 
    183226 
    184         <!--  Date and Time --> 
    185         <!--  ============= --> 
    186         <tr> 
    187           <td class="fieldname"> 
    188             Date &amp; Time: 
    189           </td> 
    190           <td class="fieldval"> 
    191             <!-- Set the timefields class for the first load of the page; 
    192                  subsequent changes will take place using javascript without a 
    193                  page reload. --> 
    194             <xsl:variable name="timeFieldsClass"> 
    195               <xsl:choose> 
    196                 <xsl:when test="form/allDay/input/@checked='checked'">invisible</xsl:when> 
    197                 <xsl:otherwise>timeFields</xsl:otherwise> 
    198               </xsl:choose> 
    199             </xsl:variable> 
    200  
    201             <!-- date only event: anniversary event - often interpreted as "all day event" --> 
    202             <xsl:choose> 
    203               <xsl:when test="form/allDay/input/@checked='checked'"> 
    204                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/> 
    205                 <input type="hidden" name="eventStartDate.dateOnly" value="true" id="allDayStartDateField"/> 
    206                 <input type="hidden" name="eventEndDate.dateOnly" value="true" id="allDayEndDateField"/> 
    207               </xsl:when> 
    208               <xsl:otherwise> 
    209                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/> 
    210                 <input type="hidden" name="eventStartDate.dateOnly" value="false" id="allDayStartDateField"/> 
    211                 <input type="hidden" name="eventEndDate.dateOnly" value="false" id="allDayEndDateField"/> 
    212               </xsl:otherwise> 
    213             </xsl:choose> 
    214             all day 
    215  
    216             <!-- floating event: no timezone (and not UTC) --> 
    217             <xsl:choose> 
    218               <xsl:when test="form/floating/input/@checked='checked'"> 
    219                 <input type="checkbox" name="floatingFlag" id="floatingFlag" onclick="swapFloatingTime(this)" value="on" checked="checked"/> 
    220                 <input type="hidden" name="eventStartDate.floating" value="true" id="startFloating"/> 
    221                 <input type="hidden" name="eventEndDate.floating" value="true" id="endFloating"/> 
    222               </xsl:when> 
    223               <xsl:otherwise> 
    224                 <input type="checkbox" name="floatingFlag" id="floatingFlag" onclick="swapFloatingTime(this)" value="off"/> 
    225                 <input type="hidden" name="eventStartDate.floating" value="false" id="startFloating"/> 
    226                 <input type="hidden" name="eventEndDate.floating" value="false" id="endFloating"/> 
    227               </xsl:otherwise> 
    228             </xsl:choose> 
    229             floating 
    230  
    231             <!-- store time as coordinated universal time (UTC) --> 
    232             <xsl:choose> 
    233               <xsl:when test="form/storeUTC/input/@checked='checked'"> 
    234                 <input type="checkbox" name="storeUTCFlag" id="storeUTCFlag" onclick="swapStoreUTC(this)" value="on" checked="checked"/> 
    235                 <input type="hidden" name="eventStartDate.storeUTC" value="true" id="startStoreUTC"/> 
    236                 <input type="hidden" name="eventEndDate.storeUTC" value="true" id="endStoreUTC"/> 
    237               </xsl:when> 
    238               <xsl:otherwise> 
    239                 <input type="checkbox" name="storeUTCFlag" id="storeUTCFlag" onclick="swapStoreUTC(this)" value="off"/> 
    240                 <input type="hidden" name="eventStartDate.storeUTC" value="false" id="startStoreUTC"/> 
    241                 <input type="hidden" name="eventEndDate.storeUTC" value="false" id="endStoreUTC"/> 
    242               </xsl:otherwise> 
    243             </xsl:choose> 
    244             store as UTC 
    245  
    246             <br/> 
    247             <div class="dateStartEndBox"> 
    248               <strong>Start:</strong> 
    249               <div class="dateFields"> 
    250                 <span class="startDateLabel">Date </span> 
    251                 <xsl:choose> 
    252                   <xsl:when test="$portalFriendly = 'true'"> 
    253                     <xsl:copy-of select="/bedework/formElements/form/start/month/*"/> 
    254                     <xsl:copy-of select="/bedework/formElements/form/start/day/*"/> 
    255                     <xsl:choose> 
    256                       <xsl:when test="/bedework/creating = 'true'"> 
    257                         <xsl:copy-of select="/bedework/formElements/form/start/year/*"/> 
    258                       </xsl:when> 
    259                       <xsl:otherwise> 
    260                         <xsl:copy-of select="/bedework/formElements/form/start/yearText/*"/> 
    261                       </xsl:otherwise> 
    262                     </xsl:choose> 
    263                     <script language="JavaScript" type="text/javascript"> 
    264                       <xsl:comment> 
    265                       startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'startDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/'); 
    266                       </xsl:comment> 
    267                     </script> 
    268                   </xsl:when> 
    269                   <xsl:otherwise> 
    270                     <span dojoType="dropdowndatepicker" formatLength="medium" value="today" saveFormat="yyyyMMdd" id="bwEventWidgetStartDate" iconURL="{$resourcesRoot}/resources/calIcon.gif"> 
    271                       <xsl:attribute name="value"><xsl:value-of select="form/start/rfc3339DateTime"/></xsl:attribute> 
    272                       <xsl:text> </xsl:text> 
    273                     </span> 
    274                     <input type="hidden" name="eventStartDate.year"> 
    275                       <xsl:attribute name="value"><xsl:value-of select="form/start/yearText/input/@value"/></xsl:attribute> 
    276                     </input> 
    277                     <input type="hidden" name="eventStartDate.month"> 
    278                       <xsl:attribute name="value"><xsl:value-of select="form/start/month/select/option[@selected = 'selected']/@value"/></xsl:attribute> 
    279                     </input> 
    280                     <input type="hidden" name="eventStartDate.day"> 
    281                       <xsl:attribute name="value"><xsl:value-of select="form/start/day/select/option[@selected = 'selected']/@value"/></xsl:attribute> 
    282                     </input> 
    283                   </xsl:otherwise> 
    284                 </xsl:choose> 
    285               </div> 
    286               <div class="{$timeFieldsClass}" id="startTimeFields"> 
    287                 <span id="calWidgetStartTimeHider" class="show"> 
    288                   <xsl:copy-of select="form/start/hour/*"/> 
    289                   <xsl:copy-of select="form/start/minute/*"/> 
    290                   <xsl:if test="form/start/ampm"> 
    291                     <xsl:copy-of select="form/start/ampm/*"/> 
    292                   </xsl:if> 
    293                   <xsl:text> </xsl:text> 
    294                   <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0" alt="bwClock"/></a> 
    295  
    296                   <select name="eventStartDate.tzid" id="startTzid" class="timezones"> 
    297                     <xsl:if test="form/floating/input/@checked='checked'"><xsl:attribute name="disabled">disabled</xsl:attribute></xsl:if> 
    298                     <option value="-1">select timezone...</option> 
    299                     <xsl:variable name="startTzId" select="form/start/tzid"/> 
    300                     <xsl:for-each select="/bedework/timezones/timezone"> 
    301                       <option> 
    302                         <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute> 
    303                         <xsl:if test="$startTzId = id"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if> 
    304                         <xsl:value-of select="name"/> 
    305                       </option> 
    306                     </xsl:for-each> 
    307                   </select> 
    308                 </span> 
    309               </div> 
    310             </div> 
    311             <div class="dateStartEndBox"> 
    312               <strong> 
    313                 <xsl:choose> 
    314                   <xsl:when test="form/entityType = '2'">Due:</xsl:when> 
    315                   <xsl:otherwise>End:</xsl:otherwise> 
    316                 </xsl:choose> 
    317               </strong> 
    318               <xsl:choose> 
    319                 <xsl:when test="form/end/type='E'"> 
    320                   <input type="radio" name="eventEndType" value="E" checked="checked" onclick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    321                 </xsl:when> 
    322                 <xsl:otherwise> 
    323                   <input type="radio" name="eventEndType" value="E" onclick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    324                 </xsl:otherwise> 
    325               </xsl:choose> 
    326               Date 
    327               <xsl:variable name="endDateTimeClass"> 
    328                 <xsl:choose> 
    329                   <xsl:when test="form/end/type='E'">shown</xsl:when> 
    330                   <xsl:otherwise>invisible</xsl:otherwise> 
    331                 </xsl:choose> 
    332               </xsl:variable> 
    333               <div class="{$endDateTimeClass}" id="endDateTime"> 
    334                 <div class="dateFields"> 
    335                   <xsl:choose> 
    336                     <xsl:when test="$portalFriendly = 'true'"> 
    337                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/month/*"/> 
    338                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/day/*"/> 
    339                       <xsl:choose> 
    340                         <xsl:when test="/bedework/creating = 'true'"> 
    341                           <xsl:copy-of select="/bedework/formElements/form/end/dateTime/year/*"/> 
    342                         </xsl:when> 
    343                         <xsl:otherwise> 
    344                           <xsl:copy-of select="/bedework/formElements/form/end/dateTime/yearText/*"/> 
    345                         </xsl:otherwise> 
    346                       </xsl:choose> 
    347                       <script language="JavaScript" type="text/javascript"> 
    348                       <xsl:comment> 
    349                         endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'endDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/'); 
    350                       </xsl:comment> 
    351                       </script> 
    352                     </xsl:when> 
    353                     <xsl:otherwise> 
    354                       <span dojoType="dropdowndatepicker" formatLength="medium" value="today" saveFormat="yyyyMMdd" id="bwEventWidgetEndDate" iconURL="{$resourcesRoot}/resources/calIcon.gif"> 
    355                         <xsl:attribute name="value"><xsl:value-of select="form/end/rfc3339DateTime"/></xsl:attribute> 
    356                         <xsl:text> </xsl:text> 
    357                       </span> 
    358                       <input type="hidden" name="eventEndDate.year"> 
    359                         <xsl:attribute name="value"><xsl:value-of select="form/end/dateTime/yearText/input/@value"/></xsl:attribute> 
    360                       </input> 
    361                       <input type="hidden" name="eventEndDate.month"> 
    362                         <xsl:attribute name="value"><xsl:value-of select="form/end/dateTime/month/select/option[@selected = 'selected']/@value"/></xsl:attribute> 
    363                       </input> 
    364                       <input type="hidden" name="eventEndDate.day"> 
    365                         <xsl:attribute name="value"><xsl:value-of select="form/end/dateTime/day/select/option[@selected = 'selected']/@value"/></xsl:attribute> 
    366                       </input> 
    367                     </xsl:otherwise> 
    368                   </xsl:choose> 
    369                 </div> 
    370                 <div class="{$timeFieldsClass}" id="endTimeFields"> 
    371                   <span id="calWidgetEndTimeHider" class="show"> 
    372                     <xsl:copy-of select="form/end/dateTime/hour/*"/> 
    373                     <xsl:copy-of select="form/end/dateTime/minute/*"/> 
    374                     <xsl:if test="form/end/dateTime/ampm"> 
    375                       <xsl:copy-of select="form/end/dateTime/ampm/*"/> 
    376                     </xsl:if> 
    377                     <xsl:text> </xsl:text> 
    378                     <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0" alt="bwClock"/></a> 
    379  
    380                     <select name="eventEndDate.tzid" id="endTzid" class="timezones"> 
    381                       <xsl:if test="form/floating/input/@checked='checked'"><xsl:attribute name="disabled">disabled</xsl:attribute></xsl:if> 
    382                       <option value="-1">select timezone...</option> 
    383                       <xsl:variable name="endTzId" select="form/end/dateTime/tzid"/> 
    384                       <xsl:for-each select="/bedework/timezones/timezone"> 
    385                         <option> 
    386                           <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute> 
    387                             <xsl:if test="$endTzId = id"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if> 
    388                           <xsl:value-of select="name"/> 
    389                         </option> 
    390                       </xsl:for-each> 
    391                     </select> 
    392                   </span> 
    393                 </div> 
    394               </div><br/> 
    395               <div id="clock" class="invisible"> 
    396                 <xsl:call-template name="clock"/> 
    397               </div> 
    398               <div class="dateFields"> 
    399                 <xsl:choose> 
    400                   <xsl:when test="form/end/type='D'"> 
    401                     <input type="radio" name="eventEndType" value="D" checked="checked" onclick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    402                   </xsl:when> 
    403                   <xsl:otherwise> 
    404                     <input type="radio" name="eventEndType" value="D" onclick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    405                   </xsl:otherwise> 
    406                 </xsl:choose> 
    407                 Duration 
    408                 <xsl:variable name="endDurationClass"> 
    409                   <xsl:choose> 
    410                     <xsl:when test="form/end/type='D'">shown</xsl:when> 
    411                     <xsl:otherwise>invisible</xsl:otherwise> 
    412                   </xsl:choose> 
    413                 </xsl:variable> 
    414                 <xsl:variable name="durationHrMinClass"> 
    415                   <xsl:choose> 
    416                     <xsl:when test="form/allDay/input/@checked='checked'">invisible</xsl:when> 
    417                     <xsl:otherwise>shown</xsl:otherwise> 
    418                   </xsl:choose> 
    419                 </xsl:variable> 
    420                 <div class="{$endDurationClass}" id="endDuration"> 
    421                   <xsl:choose> 
    422                     <xsl:when test="form/end/duration/weeks/input/@value = '0'"> 
    423                     <!-- we are using day, hour, minute format --> 
    424                     <!-- must send either no week value or week value of 0 (zero) --> 
    425                       <div class="durationBox"> 
    426                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/> 
    427                         <xsl:variable name="daysStr" select="form/end/duration/days/input/@value"/> 
    428                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days 
    429                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    430                           <xsl:variable name="hoursStr" select="form/end/duration/hours/input/@value"/> 
    431                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours 
    432                           <xsl:variable name="minutesStr" select="form/end/duration/minutes/input/@value"/> 
    433                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes 
    434                         </span> 
    435                       </div> 
    436                       <span class="durationSpacerText">or</span> 
    437                       <div class="durationBox"> 
    438                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/> 
    439                         <xsl:variable name="weeksStr" select="form/end/duration/weeks/input/@value"/> 
    440                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="disabled"/>weeks 
    441                       </div> 
    442                     </xsl:when> 
    443                     <xsl:otherwise> 
    444                       <!-- we are using week format --> 
    445                       <div class="durationBox"> 
    446                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/> 
    447                         <xsl:variable name="daysStr" select="form/end/duration/days/input/@value"/> 
    448                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="disabled"/>days 
    449                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    450                           <xsl:variable name="hoursStr" select="form/end/duration/hours/input/@value"/> 
    451                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="disabled"/>hours 
    452                           <xsl:variable name="minutesStr" select="form/end/duration/minutes/input/@value"/> 
    453                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="disabled"/>minutes 
    454                         </span> 
    455                       </div> 
    456                       <span class="durationSpacerText">or</span> 
    457                       <div class="durationBox"> 
    458                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/> 
    459                         <xsl:variable name="weeksStr" select="form/end/duration/weeks/input/@value"/> 
    460                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks 
    461                       </div> 
    462                     </xsl:otherwise> 
    463                   </xsl:choose> 
    464                 </div> 
    465               </div><br/> 
    466               <div class="dateFields" id="noDuration"> 
    467                 <xsl:choose> 
    468                   <xsl:when test="form/end/type='N'"> 
    469                     <input type="radio" name="eventEndType" value="N" checked="checked" onclick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    470                   </xsl:when> 
    471                   <xsl:otherwise> 
    472                     <input type="radio" name="eventEndType" value="N" onclick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    473                   </xsl:otherwise> 
    474                 </xsl:choose> 
    475                 This 
    476                 <xsl:choose> 
    477                   <xsl:when test="form/entityType = '2'">task</xsl:when> 
    478                   <xsl:otherwise>event</xsl:otherwise> 
    479                 </xsl:choose> 
    480                 has no duration / end date 
    481               </div> 
    482             </div> 
    483           </td> 
    484         </tr> 
     227        <xsl:apply-templates select="." mode="bwEvent-DateAndTime"/> 
    485228 
    486229        <!--  Percent Complete (only for Tasks)  --> 
     
    488231          <tr> 
    489232            <td class="fieldname"> 
    490               % Complete
     233              <xsl:value-of select="$eventform.bweventtab.percentComplete"/>
    491234            </td> 
    492235            <td class="fieldval" align="left"> 
     
    498241        </xsl:if> 
    499242 
    500         <!--  Transparency  --> 
    501         <tr> 
    502           <td class="fieldname padMeTop"> 
    503             Effects free/busy: 
    504           </td> 
    505           <td align="left" class="padMeTop"> 
    506             <input type="radio" value="OPAQUE" name="transparency"> 
    507               <xsl:if test="form/transparency = 'OPAQUE'"> 
    508                 <xsl:attribute name="checked">checked</xsl:attribute> 
    509               </xsl:if> 
    510             </input> 
    511             yes <span class="note">(opaque: event status affects your free/busy)</span><br/> 
    512  
    513             <input type="radio" value="TRANSPARENT" name="transparency"> 
    514               <xsl:if test="form/transparency = 'TRANSPARENT'"> 
    515                 <xsl:attribute name="checked">checked</xsl:attribute> 
    516               </xsl:if> 
    517             </input> 
    518             no <span class="note">(transparent: event status does not affect your free/busy)</span><br/> 
    519           </td> 
    520         </tr> 
     243        <xsl:apply-templates select="." mode="bwEvent-status"/> 
     244        <xsl:apply-templates select="." mode="bwEvent-transparency"/> 
     245 
    521246 
    522247        <!--  Category  --> 
    523248        <tr> 
    524249          <td class="fieldname"> 
    525             Categories
     250            <xsl:value-of select="$eventform.bweventtab.categories"/>
    526251          </td> 
    527252          <td class="fieldval" align="left"> 
     
    529254            <xsl:choose> 
    530255              <xsl:when test="not(form/categories/all/category)"> 
    531                 no categories defined 
    532                 <span class="note">(<a href="{$category-initAdd}">add category</a>)</span> 
     256                <xsl:value-of select="$eventform.bweventtab.noCategories"/> 
     257                <span class="note">(<a href="{$category-initAdd}"><xsl:value-of select="$eventform.bweventtab.addCategory"/></a>)</span> 
    533258              </xsl:when> 
    534259              <xsl:otherwise> 
     
    561286      </table> 
    562287    </div> 
    563  
    564  
     288  </xsl:template> 
     289        
     290  <xsl:template match="formElements" mode="bwEventTab-Details"> 
    565291    <!-- Details tab --> 
    566292    <!-- ============== --> 
     
    569295        <!--  Location  --> 
    570296        <tr> 
    571           <td class="fieldname">Location:</td> 
     297          <td class="fieldname"><xsl:value-of select="$eventform.bweventtab.location"/>:</td> 
    572298          <td class="fieldval" align="left"> 
    573             <span class="std-text">choose: </span> 
     299            <span class="std-text"><xsl:value-of select="$eventform.bweventtab.choose"/>: </span> 
    574300            <span id="eventFormLocationList"> 
    575301              <!-- 
     
    590316              --> 
    591317              <select name="locationUid"> 
    592                 <option value="">select...</option> 
     318                <option value=""><xsl:value-of select="$eventform.bweventtab.select"/></option> 
    593319                <xsl:copy-of select="form/location/locationmenu/select/*"/> 
    594320              </select> 
    595321            </span> 
    596             <span class="std-text"> or add new: </span> 
     322            <span class="std-text"> <xsl:value-of select="$eventform.bweventtab.orAdd"/>: </span> 
    597323            <input type="text" name="locationAddress.value" value="" /> 
    598324          </td> 
     
    600326        <!--  Link (url associated with event)  --> 
    601327        <tr> 
    602           <td class="fieldname">Event Link:</td> 
     328          <td class="fieldname"><xsl:value-of select="$eventform.bweventtab.eventLink"/>:</td> 
    603329          <td class="fieldval"> 
    604330            <xsl:variable name="link" select="form/link/input/@value"/> 
     
    608334        <!--  Description  --> 
    609335        <tr> 
    610           <td class="fieldname">Description:</td> 
     336          <td class="fieldname"><xsl:value-of select="$eventform.bweventtab.description"/>:</td> 
    611337          <td class="fieldval"> 
    612338            <xsl:choose> 
     
    626352          </td> 
    627353        </tr> 
    628         <!--<tr> 
    629           <td class="fieldname"> 
    630             Type: 
    631           </td> 
    632           <td class="fieldval"> 
    633             <input type="radio" name="schedule" size="80" value="none" checked="checked"> 
    634               <xsl:if test="form/scheduleMethod = '0'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    635               my event 
    636             </input> 
    637             <input type="radio" name="schedule" size="80" value="request"> 
    638               <xsl:if test="form/scheduleMethod = '2'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    639               meeting request 
    640             </input> 
    641             <input type="radio" name="schedule" size="80" value="publish"> 
    642               <xsl:if test="form/scheduleMethod = '1'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    643               published event 
    644             </input> 
    645             <xsl:if test="/bedework/creating = 'false' and form/scheduleMethod = '2'"> 
    646               <br/><input type="checkbox" name="schedule" value="reconfirm "/> ask attendees to reconfirm 
    647             </xsl:if> 
    648           </td> 
    649         </tr>--> 
    650         <!--  Recipients and Attendees  --> 
    651         <!-- 
    652         <tr> 
    653           <td class="fieldname"> 
    654             Recipients &amp;<br/> Attendees: 
    655           </td> 
    656           <td class="fieldval posrelative"> 
    657             <input type="button" value="Manage recipients and attendees" onclick="launchSizedWindow('{$event-showAttendeesForEvent}','500','400')" class="small"/> 
    658           </td> 
    659         </tr>--> 
    660         <!--  Status  --> 
    661         <tr> 
    662           <td class="fieldname"> 
    663             Status: 
    664           </td> 
    665           <td class="fieldval"> 
    666             <input type="radio" name="eventStatus" value="CONFIRMED"> 
    667               <xsl:if test="form/status = 'CONFIRMED' or /bedework/creating = 'true' or form/status = ''"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    668             </input> 
    669             confirmed 
    670             <input type="radio" name="eventStatus" value="TENTATIVE"> 
    671               <xsl:if test="form/status = 'TENTATIVE'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    672             </input> 
    673             tentative 
    674             <input type="radio" name="eventStatus" value="CANCELLED"> 
    675               <xsl:if test="form/status = 'CANCELLED'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    676             </input> 
    677             cancelled 
    678           </td> 
    679         </tr> 
    680354        <!--  Transparency  --> 
    681355        <xsl:if test="entityType != '2'"><!-- no transparency for Tasks --> 
    682356          <tr> 
    683357            <td class="fieldname"> 
    684               Effects free/busy
     358              <xsl:value-of select="$eventform.bweventtab.effectFreeBusy"/>
    685359            </td> 
    686360            <td class="fieldval"> 
    687361              <xsl:choose> 
    688362                <xsl:when test="form/transparency = 'TRANSPARENT'"> 
    689                   <input type="radio" name="event.transparency" value="OPAQUE"/>yes <span class="note">(opaque: event status affects your free/busy)</span><br/> 
    690                   <input type="radio" name="event.transparency" value="TRANSPARENT" checked="checked"/>no <span class="note">(transparent: event status does not affect your free/busy)</span> 
     363                  <input type="radio" name="event.transparency" value="OPAQUE"/><xsl:value-of select="$eventform.bweventtab.yes"/> <span class="note"><xsl:value-of select="$eventform.bweventtab.statusAffectsFreeBusy"/></span><br/> 
     364                  <input type="radio" name="event.transparency" value="TRANSPARENT" checked="checked"/><xsl:value-of select="$eventform.bweventtab.no"/> <span class="note"><xsl:value-of select="$eventform.bweventtab.statusNoAffectsFreeBusy"/></span> 
    691365                </xsl:when> 
    692366                <xsl:otherwise> 
    693                   <input type="radio" name="event.transparency" value="OPAQUE" checked="checked"/>yes <span class="note">(opaque: event status affects your free/busy)</span><br/> 
    694                   <input type="radio" name="event.transparency" value="TRANSPARENT"/>no <span class="note">(transparent: event status does not affect your free/busy)</span> 
     367                  <input type="radio" name="event.transparency" value="OPAQUE" checked="checked"/><xsl:value-of select="$eventform.bweventtab.yes"/> <span class="note"><xsl:value-of select="$eventform.bweventtab.statusAffectsFreeBusy"/></span><br/> 
     368                  <input type="radio" name="event.transparency" value="TRANSPARENT"/><xsl:value-of select="$eventform.bweventtab.no"/> <span class="note"><xsl:value-of select="$eventform.bweventtab.statusNoAffectsFreeBusy"/></span> 
    695369                </xsl:otherwise> 
    696370              </xsl:choose> 
     
    700374      </table> 
    701375    </div> 
    702  
     376  </xsl:template> 
     377 
     378  <xsl:template match="formElements" mode="bwEventTab-Recurrence"> 
     379    <xsl:param name="subscriptionId"/> 
     380    <xsl:param name="calPath"/> 
     381    <xsl:param name="guid"/> 
     382    <xsl:param name="recurrenceId"/> 
    703383 
    704384    <!-- Recurrence tab --> 
    705385    <!-- ============== --> 
    706     <div id="bwEventTab-Recurrence" class="invisible"> 
    707386      <xsl:choose> 
    708387        <xsl:when test="recurrenceId != ''"> 
    709388          <!-- recurrence instances can not themselves recur, 
    710389               so provide access to master event --> 
    711           <em>This event is a recurrence instance.</em><br/> 
    712           <a href="{$editEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}" title="edit master (recurring event)">edit master event</a> 
     390          <em><xsl:value-of select="$eventform.bweventtab.thisRecurrence"/></em><br/> 
     391          <a href="{$editEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}" title="{$eventform.bweventtab.editMasterRecur}"><xsl:value-of select="$eventform.bweventtab.editMaster"/></a> 
    713392        </xsl:when> 
    714393        <xsl:otherwise> 
     
    719398            <input type="radio" name="recurring" value="true" onclick="swapRecurrence(this)"> 
    720399              <xsl:if test="form/recurringEntity = 'true'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    721             </input> event recurs 
     400            </input> <xsl:value-of select="$eventform.bweventtab.eventRecurs"/> 
    722401            <input type="radio" name="recurring" value="false" onclick="swapRecurrence(this)"> 
    723402              <xsl:if test="form/recurringEntity = 'false'"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if> 
    724             </input> event does not recur 
     403            </input> <xsl:value-of select="$eventform.bweventtab.doesNotRecur"/> 
    725404          </div> 
    726405 
     
    729408            <xsl:if test="form/recurringEntity = 'true'"><xsl:attribute name="class">visible</xsl:attribute></xsl:if> 
    730409 
    731             <h4>Recurrence Rules</h4> 
     410            <h4><xsl:value-of select="$eventform.bweventtab.recurrenceRules"/></h4> 
    732411            <!-- show or hide rrules fields when editing: --> 
    733412            <xsl:if test="form/recurrence"> 
    734413              <input type="checkbox" name="rrulesFlag" onclick="swapRrules(this)" value="on"/> 
    735414              <span id="rrulesSwitch"> 
    736                 change recurrence rules 
     415                <xsl:value-of select="$eventform.bweventtab.changeRecurrence"/> 
    737416              </span> 
    738417            </xsl:if> 
     
    742421              </xsl:if> 
    743422              <input type="checkbox" name="rrulesUiSwitch" value="advanced" onchange="swapVisible(this,'advancedRrules')"/> 
    744               show advanced recurrence rules 
     423              <xsl:value-of select="$eventform.bweventtab.showAdvancedRecur"/> 
    745424            </span> 
    746425 
     
    750429                   more easily internationalized. --> 
    751430              <div id="recurrenceInfo"> 
    752                 Every 
     431                <xsl:value-of select="$eventform.bweventtab.every"/> 
    753432                <xsl:choose> 
    754433                  <xsl:when test="form/recurrence/interval &gt; 1"> 
     
    758437                <xsl:text> </xsl:text> 
    759438                <xsl:choose> 
    760                   <xsl:when test="form/recurrence/freq = 'HOURLY'">hour</xsl:when> 
    761                   <xsl:when test="form/recurrence/freq = 'DAILY'">day</xsl:when> 
    762                   <xsl:when test="form/recurrence/freq = 'WEEKLY'">week</xsl:when> 
    763                   <xsl:when test="form/recurrence/freq = 'MONTHLY'">month</xsl:when> 
    764                   <xsl:when test="form/recurrence/freq = 'YEARLY'">year</xsl:when> 
     439                  <xsl:when test="form/recurrence/freq = 'HOURLY'"><xsl:value-of select="$eventform.bweventtab.hour"/></xsl:when> 
     440                  <xsl:when test="form/recurrence/freq = 'DAILY'"><xsl:value-of select="$eventform.bweventtab.day"/></xsl:when> 
     441                  <xsl:when test="form/recurrence/freq = 'WEEKLY'"><xsl:value-of select="$eventform.bweventtab.week"/></xsl:when> 
     442                  <xsl:when test="form/recurrence/freq = 'MONTHLY'"><xsl:value-of select="$eventform.bweventtab.month"/></xsl:when> 
     443                  <xsl:when test="form/recurrence/freq = 'YEARLY'"><xsl:value-of select="$eventform.bweventtab.year"/></xsl:when> 
    765444                </xsl:choose><xsl:if test="form/recurrence/interval &gt; 1">s</xsl:if> 
    766445                <xsl:text> </xsl:text> 
     
    768447                <xsl:if test="form/recurrence/byday"> 
    769448                  <xsl:for-each select="form/recurrence/byday/pos"> 
    770                     <xsl:if test="position() != 1"> and </xsl:if> 
    771                     on 
     449                    <xsl:if test="position() != 1"> <xsl:value-of select="$eventform.bweventtab.and"/> </xsl:if> 
     450                    <xsl:value-of select="$eventform.bweventtab.on"/> 
    772451                    <xsl:choose> 
    773452                      <xsl:when test="@val='1'"> 
    774                         the first 
     453                        <xsl:value-of select="$eventform.bweventtab.theFirst"/> 
    775454                      </xsl:when> 
    776455                      <xsl:when test="@val='2'"> 
    777                         the second 
     456                        <xsl:value-of select="$eventform.bweventtab.theSecond"/> 
    778457                      </xsl:when> 
    779458                      <xsl:when test="@val='3'"> 
    780                         the third 
     459                        <xsl:value-of select="$eventform.bweventtab.theThird"/> 
    781460                      </xsl:when> 
    782461                      <xsl:when test="@val='4'"> 
    783                         the fourth 
     462                        <xsl:value-of select="$eventform.bweventtab.theFourth"/> 
    784463                      </xsl:when> 
    785464                      <xsl:when test="@val='5'"> 
    786                         the fifth 
     465                        <xsl:value-of select="$eventform.bweventtab.theFifth"/> 
    787466                      </xsl:when> 
    788467                      <xsl:when test="@val='-1'"> 
    789                         the last 
     468                        <xsl:value-of select="$eventform.bweventtab.theLast"/> 
    790469                      </xsl:when> 
    791470                      <!-- don't output "every" --> 
     
    819498 
    820499                <xsl:if test="form/recurrence/bymonthday"> 
    821                   on the 
     500                  <xsl:value-of select="$eventform.bweventtab.onThe"/> 
    822501                  <xsl:apply-templates select="form/recurrence/bymonthday/val" mode="weekMonthYearNumbers"/> 
    823                   day<xsl:if test="form/recurrence/bymonthday/val[position()=2]">s</xsl:if> of the month 
     502                  <xsl:value-of select="$eventform.bweventtab.day"/><xsl:if test="form/recurrence/bymonthday/val[position()=2]"><xsl:value-of select="$eventform.bweventtab.plural"/></xsl:if> <xsl:value-of select="$eventform.bweventtab.ofTheMonth"/> 
    824503                </xsl:if> 
    825504 
    826505                <xsl:if test="form/recurrence/byyearday"> 
    827                   on the 
     506                  <xsl:value-of select="$eventform.bweventtab.onThe"/> 
    828507                  <xsl:apply-templates select="form/recurrence/byyearday/val" mode="weekMonthYearNumbers"/> 
    829                   day<xsl:if test="form/recurrence/byyearday/val[position()=2]">s</xsl:if> of the year 
     508                  <xsl:value-of select="$eventform.bweventtab.day"/><xsl:if test="form/recurrence/byyearday/val[position()=2]"><xsl:value-of select="$eventform.bweventtab.plural"/></xsl:if> <xsl:value-of select="$eventform.bweventtab.ofTheYear"/> 
    830509                </xsl:if> 
    831510 
    832511                <xsl:if test="form/recurrence/byweekno"> 
    833                   in the 
     512                  <xsl:value-of select="$eventform.bweventtab.inThe"/> 
    834513                  <xsl:apply-templates select="form/recurrence/byweekno/val" mode="weekMonthYearNumbers"/> 
    835                   week<xsl:if test="form/recurrence/byweekno/val[position()=2]">s</xsl:if> of the year 
     514                  <xsl:value-of select="$eventform.bweventtab.week"/><xsl:if test="form/recurrence/byweekno/val[position()=2]"><xsl:value-of select="$eventform.bweventtab.plural"/></xsl:if> <xsl:value-of select="$eventform.bweventtab.ofTheYear"/> 
    836515                </xsl:if> 
    837516 
    838                 repeating 
     517                <xsl:value-of select="$eventform.bweventtab.repeating"/> 
    839518                <xsl:choose> 
    840                   <xsl:when test="form/recurrence/count = '-1'">forever</xsl:when> 
     519                  <xsl:when test="form/recurrence/count = '-1'"><xsl:value-of select="$eventform.bweventtab.forever"/></xsl:when> 
    841520                  <xsl:when test="form/recurrence/until"> 
    842                     until <xsl:value-of select="substring(form/recurrence/until,1,4)"/>-<xsl:value-of select="substring(form/recurrence/until,5,2)"/>-<xsl:value-of select="substring(form/recurrence/until,7,2)"/> 
     521                    <xsl:value-of select="$eventform.bweventtab.until"/> <xsl:value-of select="substring(form/recurrence/until,1,4)"/>-<xsl:value-of select="substring(form/recurrence/until,5,2)"/>-<xsl:value-of select="substring(form/recurrence/until,7,2)"/> 
    843522                  </xsl:when> 
    844523                  <xsl:otherwise> 
    845524                    <xsl:value-of select="form/recurrence/count"/> 
    846                     time<xsl:if test="form/recurrence/count &gt; 1">s</xsl:if> 
     525                    <xsl:value-of select="$eventform.bweventtab.time"/><xsl:if test="form/recurrence/count &gt; 1"><xsl:value-of select="$eventform.bweventtab.plural"/></xsl:if> 
    847526                  </xsl:otherwise> 
    848527                </xsl:choose> 
     
    869548              <tr> 
    870549                <td id="recurrenceFrequency" rowspan="2"> 
    871                   <em>Frequency:</em><br/> 
    872                   <input type="radio" name="freq" value="NONE" onclick="showRrules(this.value)" checked="checked"/>none<br/> 
     550                  <em><xsl:value-of select="$eventform.bweventtab.frequency"/>:</em><br/> 
     551                  <input type="radio" name="freq" value="NONE" onclick="showRrules(this.value)" checked="checked"/><xsl:value-of select="$eventform.bweventtab.none"/><br/> 
    873552                  <!--<input type="radio" name="freq" value="HOURLY" onclick="showRrules(this.value)"/>hourly<br/>--> 
    874                   <input type="radio" name="freq" value="DAILY" onclick="showRrules(this.value)"/>daily<br/> 
    875                   <input type="radio" name="freq" value="WEEKLY" onclick="showRrules(this.value)"/>weekly<br/> 
    876                   <input type="radio" name="freq" value="MONTHLY" onclick="showRrules(this.value)"/>monthly<br/> 
    877                   <input type="radio" name="freq" value="YEARLY" onclick="showRrules(this.value)"/>yearly 
     553                  <input type="radio" name="freq" value="DAILY" onclick="showRrules(this.value)"/><xsl:value-of select="$eventform.bweventtab.daily"/><br/> 
     554                  <input type="radio" name="freq" value="WEEKLY" onclick="showRrules(this.value)"/><xsl:value-of select="$eventform.bweventtab.weekly"/><br/> 
     555                  <input type="radio" name="freq" value="MONTHLY" onclick="showRrules(this.value)"/><xsl:value-of select="$eventform.bweventtab.monthly"/><br/> 
     556                  <input type="radio" name="freq" value="YEARLY" onclick="showRrules(this.value)"/><xsl:value-of select="$eventform.bweventtab.yearly"/> 
    878557                </td> 
    879558                <!-- recurrence count, until, forever --> 
    880559                <td id="recurrenceUntil"> 
    881560                  <div id="noneRecurrenceRules"> 
    882                     no recurrence rules 
     561                    <xsl:value-of select="$eventform.bweventtab.noRecur"/> 
    883562                  </div> 
    884563                  <div id="recurrenceUntilRules" class="invisible"> 
    885                     <em>Repeat:</em> 
     564                    <em><xsl:value-of select="$eventform.bweventtab.repeat"/>:</em> 
    886565                    <p> 
    887                       <input type="radio" name="recurCountUntil" value="forever"> 
     566                      <input type="radio" name="recurCountUntil" value="{$eventform.bweventtab.forever}"> 
    888567                        <xsl:if test="not(form/recurring) or form/recurring/count = '-1'"> 
    889568                          <xsl:attribute name="checked">checked</xsl:attribute> 
    890569                        </xsl:if> 
    891570                      </input> 
    892                       forever 
     571                      <xsl:value-of select="$eventform.bweventtab.forever"/> 
    893572                      <input type="radio" name="recurCountUntil" value="count" id="recurCount"> 
    894573                        <xsl:if test="form/recurring/count != '-1'"> 
     
    901580                        </xsl:if> 
    902581                      </input> 
    903                       time(s) 
    904                       <input type="radio" name="recurCountUntil" value="until" id="recurUntil"> 
     582                      <xsl:value-of select="$eventform.bweventtab.times"/> 
     583                      <input type="radio" name="recurCountUntil" value="${eventform.bweventtab.until}" id="recurUntil"> 
    905584                        <xsl:if test="form/recurring/until"> 
    906585                          <xsl:attribute name="checked">checked</xsl:attribute> 
    907586                        </xsl:if> 
    908587                      </input> 
    909                       until 
     588                      <xsl:value-of select="$eventform.bweventtab.until"/> 
    910589                      <span id="untilHolder"> 
    911590                        <span dojoType="dropdowndatepicker" formatLength="medium" value="today" saveFormat="yyyyMMdd" id="bwEventWidgetUntilDate" iconURL="{$resourcesRoot}/resources/calIcon.gif"> 
     
    923602                  <div id="hourlyRecurrenceRules" class="invisible"> 
    924603                    <p> 
    925                       <em>Interval:</em> 
    926                       every 
     604                      <em><xsl:value-of select="$eventform.bweventtab.interval"/>:</em> 
     605                      <xsl:value-of select="$eventform.bweventtab.every"/> 
    927606                      <input type="text" name="hourlyInterval" size="2" value="1"> 
    928607                        <xsl:if test="form/recurrence/interval"> 
     
    930609                        </xsl:if> 
    931610                      </input> 
    932                       hour(s) 
     611                      <xsl:value-of select="$eventform.bweventtab.hours"/> 
    933612                    </p> 
    934613                  </div> 
     
    936615                  <div id="dailyRecurrenceRules" class="invisible"> 
    937616                    <p> 
    938                       <em>Interval:</em> 
    939                       every 
     617                      <em><xsl:value-of select="$eventform.bweventtab.interval"/>:</em> 
     618                      <xsl:value-of select="$eventform.bweventtab.every"/> 
    940619                      <input type="text" name="dailyInterval" size="2" value="1"> 
    941620                        <xsl:if test="form/recurrence/interval"> 
     
    943622                        </xsl:if> 
    944623                      </input> 
    945                       day(s) 
     624                      <xsl:value-of select="$eventform.bweventtab.days"/> 
    946625                    </p> 
    947626                    <p> 
    948627                      <input type="checkbox" name="swapDayMonthCheckBoxList" value="" onclick="swapVisible(this,'dayMonthCheckBoxList')"/> 
    949                       in these months
     628                      <xsl:value-of select="$eventform.bweventtab.inTheseMonths"/>
    950629                      <div id="dayMonthCheckBoxList" class="invisible"> 
    951630                        <xsl:for-each select="/bedework/monthlabels/val"> 
     
    971650                  <div id="weeklyRecurrenceRules" class="invisible"> 
    972651                    <p> 
    973                       <em>Interval:</em> 
    974                       every 
     652                      <em><xsl:value-of select="$eventform.bweventtab.interval"/>:</em> 
     653                      <xsl:value-of select="$eventform.bweventtab.every"/> 
    975654                      <input type="text" name="weeklyInterval" size="2" value="1"> 
    976655                        <xsl:if test="form/recurrence/interval"> 
     
    978657                        </xsl:if> 
    979658                      </input> 
    980                       week(s) on
     659                      <xsl:value-of select="$eventform.bweventtab.weeksOn"/>
    981660                    </p> 
    982661                    <p> 
     
    988667                    </p> 
    989668                    <p class="weekRecurLinks"> 
    990                       <a href="javascript:recurSelectWeekdays('weekRecurFields')">select weekdays</a> | 
    991                       <a href="javascript:recurSelectWeekends('weekRecurFields')">select weekends</a> 
     669                      <a href="javascript:recurSelectWeekdays('weekRecurFields')"><xsl:value-of select="$eventform.bweventtab.selectWeekdays"/></a> | 
     670                      <a href="javascript:recurSelectWeekends('weekRecurFields')"><xsl:value-of select="$eventform.bweventtab.selectWeekends"/></a> 
    992671                    </p> 
    993672                    <p> 
    994                       Week start
     673                      <xsl:value-of select="$eventform.bweventtab.weekStart"/>
    995674                      <select name="weekWkst"> 
    996675                        <xsl:for-each select="/bedework/shortdaynames/val"> 
     
    1007686                  <div id="monthlyRecurrenceRules" class="invisible"> 
    1008687                    <p> 
    1009                       <em>Interval:</em> 
    1010                       every 
     688                      <em><xsl:value-of select="$eventform.bweventtab.interval"/>:</em> 
     689                      <xsl:value-of select="$eventform.bweventtab.every"/> 
    1011690                      <input type="text" name="monthlyInterval" size="2" value="1"> 
    1012691                        <xsl:if test="form/recurrence/interval"> 
     
    1014693                        </xsl:if> 
    1015694                      </input> 
    1016                       month(s) 
     695                      <xsl:value-of select="$eventform.bweventtab.months"/> 
    1017696                    </p> 
    1018697                    <div id="monthRecurFields"> 
    1019698                      <div id="monthRecurFields1"> 
    1020                         on 
     699                        <xsl:value-of select="$eventform.bweventtab.on"/> 
    1021700                        <select name="bymonthposPos1" width="7em" onchange="changeClass('monthRecurFields2','shown')"> 
    1022701                          <xsl:call-template name="recurrenceDayPosOptions"/> 
     
    1032711                    <p> 
    1033712                      <input type="checkbox" name="swapMonthDaysCheckBoxList" value="" onclick="swapVisible(this,'monthDaysCheckBoxList')"/> 
    1034                       on these days:<br/> 
     713                      <xsl:value-of select="$eventform.bweventtab.inTheseDays"/>:<br/> 
    1035714                      <div id="monthDaysCheckBoxList" class="invisible"> 
    1036715                        <xsl:call-template name="buildCheckboxList"> 
     
    1045724                  <div id="yearlyRecurrenceRules" class="invisible"> 
    1046725                    <p> 
    1047                       <em>Interval:</em> 
    1048                       every 
     726                      <em><xsl:value-of select="$eventform.bweventtab.interval"/>:</em> 
     727                      <xsl:value-of select="$eventform.bweventtab.every"/> 
    1049728                      <input type="text" name="yearlyInterval" size="2" value="1"> 
    1050729                        <xsl:if test="form/recurrence/interval"> 
     
    1052731                        </xsl:if> 
    1053732                      </input> 
    1054                       years(s) 
     733                      <xsl:value-of select="$eventform.bweventtab.years"/> 
    1055734                    </p> 
    1056735                    <div id="yearRecurFields"> 
    1057736                      <div id="yearRecurFields1"> 
    1058                         on 
     737                        <xsl:value-of select="$eventform.bweventtab.on"/> 
    1059738                        <select name="byyearposPos1" width="7em" onchange="changeClass('yearRecurFields2','shown')"> 
    1060739                          <xsl:call-template name="recurrenceDayPosOptions"/> 
     
    1070749                    <p> 
    1071750                      <input type="checkbox" name="swapYearMonthCheckBoxList" value="" onclick="swapVisible(this,'yearMonthCheckBoxList')"/> 
    1072                       in these months
     751                      <xsl:value-of select="$eventform.bweventtab.inTheseMonths"/>
    1073752                      <div id="yearMonthCheckBoxList" class="invisible"> 
    1074753                        <xsl:for-each select="/bedework/monthlabels/val"> 
     
    1086765                    <p> 
    1087766                      <input type="checkbox" name="swapYearMonthDaysCheckBoxList" value="" onclick="swapVisible(this,'yearMonthDaysCheckBoxList')"/> 
    1088                       on these days of the month:<br/> 
     767                      <xsl:value-of select="$eventform.bweventtab.onTheseDaysMonth"/>:<br/> 
    1089768                      <div id="yearMonthDaysCheckBoxList" class="invisible"> 
    1090769                        <xsl:call-template name="buildCheckboxList"> 
     
    1097776                    <p> 
    1098777                      <input type="checkbox" name="swapYearWeeksCheckBoxList" value="" onclick="swapVisible(this,'yearWeeksCheckBoxList')"/> 
    1099                       in these weeks of the year:<br/> 
     778                      <xsl:value-of select="$eventform.bweventtab.inTheseWeeks"/>:<br/> 
    1100779                      <div id="yearWeeksCheckBoxList" class="invisible"> 
    1101780                        <xsl:call-template name="buildCheckboxList"> 
     
    1108787                    <p> 
    1109788                      <input type="checkbox" name="swapYearDaysCheckBoxList" value="" onclick="swapVisible(this,'yearDaysCheckBoxList')"/> 
    1110                       on these days of the year:<br/> 
     789                      <xsl:value-of select="$eventform.bweventtab.onTheseDaysYear"/>:<br/> 
    1111790                      <div id="yearDaysCheckBoxList" class="invisible"> 
    1112791                        <xsl:call-template name="buildCheckboxList"> 
     
    1118797                    </p> 
    1119798                    <p> 
    1120                       Week start
     799                      <xsl:value-of select="$eventform.bweventtab.weekStart"/>
    1121800                      <select name="yearWkst"> 
    1122801                        <xsl:for-each select="/bedework/shortdaynames/val"> 
     
    1135814 
    1136815            <h4> 
    1137               Recurrence and Exception Dates 
     816              <xsl:value-of select="$eventform.bweventtab.recurrenceAndException"/> 
    1138817            </h4> 
    1139818            <div id="raContent"> 
     
    1141820                <!-- dateonly event: this is temporary - should be determined by the main event --> 
    1142821                <input type="checkbox" name="dateOnly" id="rdateDateOnly" onclick="swapRdateAllDay(this)" value="true"/> 
    1143                 all day 
     822                <xsl:value-of select="$eventform.bweventtab.allDay"/> 
    1144823                <!-- floating event: no timezone (and not UTC) --> 
    1145824                <input type="checkbox" name="floating" id="rdateFloating" onclick="swapRdateFloatingTime(this)" value="true"/> 
    1146                 floating 
     825                <xsl:value-of select="$eventform.bweventtab.floating"/> 
    1147826                <!-- store time as coordinated universal time (UTC) --> 
    1148827                <input type="checkbox" name="storeUTC" id="rdateStoreUTC" onclick="swapRdateStoreUTC(this)" value="true"/> 
    1149                 store as UTC<br/> 
     828                <xsl:value-of select="$eventform.bweventtab.storeAsUTC"/><br/> 
    1150829                <div class="dateFields"> 
    1151830                  <input name="eventRdate.date" 
     
    1202881                  <select name="tzid" id="rdateTzid" class="timezones"> 
    1203882                    <xsl:if test="form/floating/input/@checked='checked'"><xsl:attribute name="disabled">disabled</xsl:attribute></xsl:if> 
    1204                     <option value="">select timezone...</option> 
     883                    <option value=""><xsl:value-of select="$eventform.bweventtab.selectTimezone"/></option> 
    1205884                    <xsl:variable name="rdateTzId" select="/bedework/now/defaultTzid"/> 
    1206885                    <xsl:for-each select="/bedework/timezones/timezone"> 
     
    1221900                <!-- if there are no recurrence dates, the following table will show --> 
    1222901                <table cellspacing="0" class="invisible" id="bwCurrentRdatesNone"> 
    1223                   <tr><th>Recurrence Dates</th></tr> 
    1224                   <tr><td>No recurrence dates</td></tr> 
     902                  <tr><th><xsl:value-of select="$eventform.bweventtab.recurDates"/></th></tr> 
     903                  <tr><td><xsl:value-of select="$eventform.bweventtab.noRecurDates"/></td></tr> 
    1225904                </table> 
    1226905 
     
    1228907                <table cellspacing="0" class="invisible" id="bwCurrentRdates"> 
    1229908                  <tr> 
    1230                     <th colspan="4">Recurrence Dates</th> 
     909                    <th colspan="4"><xsl:value-of select="$eventform.bweventtab.recurDates"/></th> 
    1231910                  </tr> 
    1232911                  <tr class="colNames"> 
    1233                     <td>Date</td> 
    1234                     <td>Time</td> 
    1235                     <td>TZid</td> 
     912                    <td><xsl:value-of select="$eventform.bweventtab.date"/></td> 
     913                    <td><xsl:value-of select="$eventform.bweventtab.time"/></td> 
     914                    <td><xsl:value-of select="$eventform.bweventtab.tzid"/></td> 
    1236915                    <td></td> 
    1237916                  </tr> 
     
    1241920                <!-- if there are no exception dates, the following table will show --> 
    1242921                <table cellspacing="0" class="invisible" id="bwCurrentExdatesNone"> 
    1243                   <tr><th>Exception Dates</th></tr> 
    1244                   <tr><td>No exception dates</td></tr> 
     922                  <tr><th><xsl:value-of select="$eventform.bweventtab.exceptionDates"/></th></tr> 
     923                  <tr><td><xsl:value-of select="$eventform.bweventtab.noExceptionDates"/></td></tr> 
    1245924                </table> 
    1246925 
     
    1248927                <table cellspacing="0" class="invisible" id="bwCurrentExdates"> 
    1249928                  <tr> 
    1250                     <th colspan="4">Exception Dates</th> 
     929                    <th colspan="4"><xsl:value-of select="$eventform.bweventtab.exceptionDates"/></th> 
    1251930                  </tr> 
    1252931                  <tr class="colNames"> 
    1253                     <td>Date</td> 
    1254                     <td>Time</td> 
    1255                     <td>TZid</td> 
     932                    <td><xsl:value-of select="$eventform.bweventtab.date"/></td> 
     933                    <td><xsl:value-of select="$eventform.bweventtab.time"/></td> 
     934                    <td><xsl:value-of select="$eventform.bweventtab.tzid"/></td> 
    1256935                    <td></td> 
    1257936                  </tr> 
    1258937                </table> 
    1259938                <p> 
    1260                   Exception dates may also be created by deleting an instance 
    1261                   of a recurring event. 
     939                  <xsl:value-of select="$eventform.bweventtab.exceptionDates"/> 
    1262940                </p> 
    1263941              </div> 
     
    1266944        </xsl:otherwise> 
    1267945      </xsl:choose> 
    1268     </div> 
     946  </xsl:template> 
     947 
     948  <xsl:template match="formElements" mode="bwEventTab-Access"> 
     949    <xsl:param name="calPathEncoded"/> 
     950    <xsl:param name="guid"/> 
     951    <xsl:param name="recurrenceId"/> 
    1269952 
    1270953    <!-- Access tab --> 
     
    1283966          </xsl:when> 
    1284967          <xsl:otherwise> 
    1285             <h3>Current Access:</h3> 
     968            <h3><xsl:value-of select="$eventform.bweventtab.currentAccess"/>:</h3> 
    1286969            <table class="common scheduling" id="bwCurrentAccess"> 
    1287970              <thead> 
    1288971                <tr> 
    1289                   <th>Entry</th> 
    1290                   <th>Access</th> 
    1291                   <th>Inherited from</th> 
     972                  <th><xsl:value-of select="$eventform.bweventtab.entry"/></th> 
     973                  <th><xsl:value-of select="$eventform.bweventtab.access"/></th> 
     974                  <th><xsl:value-of select="$eventform.bweventtab.inherited"/></th> 
    1292975                  <td></td> 
    1293976                </tr> 
     
    1295978              <tbody> 
    1296979                <tr id="bwEventNoAcl"> 
    1297                   <td colspan="4">no access defined</td> 
     980                  <td colspan="4"><xsl:value-of select="$eventform.bweventtab.noAccessDef"/></td> 
    1298981                </tr> 
    1299982              </tbody> 
     
    1306989      </div> 
    1307990    </div> 
    1308  
     991  </xsl:template> 
     992 
     993  <xsl:template match="formElements" mode="bwEventTab-Scheduling"> 
    1309994    <!-- Scheduling tab --> 
    1310995    <!-- ============== --> 
     
    13251010          <xsl:choose> 
    13261011            <xsl:when test="form/scheduleMethod = '2'"> 
    1327               <input name="editEventAttendees" type="submit" value="edit attendees and recipients"/> 
     1012              <input name="editEventAttendees" type="submit" value="{$eventform.bweventtab.editAttendeeRecip}"/> 
    13281013            </xsl:when> 
    13291014            <xsl:otherwise> 
    13301015              <xsl:choose> 
    13311016                <xsl:when test="form/entityType = '2'"> 
    1332                   <input name="makeEventIntoMeeting" type="submit" value="schedule this task with other users"/> 
     1017                  <input name="makeEventIntoMeeting" type="submit" value="{$eventform.bweventtab.scheduleTaskUser}"/> 
    13331018                </xsl:when> 
    13341019                <xsl:otherwise> 
    1335                   <input name="makeEventIntoMeeting" type="submit" value="make into meeting - invite attendees and recipients"/> 
     1020                  <input name="makeEventIntoMeeting" type="submit" value="{$eventform.bweventtab.makeIntoMeet}"/> 
    13361021                </xsl:otherwise> 
    13371022              </xsl:choose> 
     
    13401025        </p> 
    13411026      </div> 
    1342     </div> 
    1343  
    1344     <div class="eventSubmitButtons"> 
    1345       <xsl:choose> 
    1346         <xsl:when test="form/scheduleMethod = '2'"> 
    1347           <input name="submit" type="submit" value="save"/> 
    1348           <input name="submitAndSend" type="submit" value="save &amp; send invitations"/> 
    1349         </xsl:when> 
    1350         <xsl:otherwise> 
    1351           <input name="submit" type="submit" value="save"/> 
    1352         </xsl:otherwise> 
    1353       </xsl:choose> 
    1354       <input name="cancelled" type="submit" value="cancel"/> 
    13551027    </div> 
    13561028  </xsl:template> 
     
    14061078 
    14071079  <xsl:template name="recurrenceDayPosOptions"> 
    1408     <option value="0">none</option> 
    1409     <option value="1">the first</option> 
    1410     <option value="2">the second</option> 
    1411     <option value="3">the third</option> 
    1412     <option value="4">the fourth</option> 
    1413     <option value="5">the fifth</option> 
    1414     <option value="-1">the last</option> 
    1415     <option value="">every</option> 
     1080    <option value="0"><xsl:value-of select="$eventform.bweventtab.none"/></option> 
     1081    <option value="1"><xsl:value-of select="$eventform.bweventtab.theFirst"/></option> 
     1082    <option value="2"><xsl:value-of select="$eventform.bweventtab.theSecond"/></option> 
     1083    <option value="3"><xsl:value-of select="$eventform.bweventtab.theThird"/></option> 
     1084    <option value="4"><xsl:value-of select="$eventform.bweventtab.theFourth"/></option> 
     1085    <option value="5"><xsl:value-of select="$eventform.bweventtab.theFifth"/></option> 
     1086    <option value="-1"><xsl:value-of select="$eventform.bweventtab.theLast"/></option> 
     1087    <option value=""><xsl:value-of select="$eventform.bweventtab.every"/></option> 
    14161088  </xsl:template> 
    14171089 
     
    14221094    <div class="invisible"> 
    14231095      <xsl:attribute name="id"><xsl:value-of select="$name"/>RecurFields<xsl:value-of select="$current"/></xsl:attribute> 
    1424       and 
     1096      <xsl:value-of select="$eventform.bweventtab.and"/> 
    14251097      <select width="12em"> 
    1426         <xsl:attribute name="name">by<xsl:value-of select="$name"/>posPos<xsl:value-of select="$current"/></xsl:attribute> 
     1098        <xsl:attribute name="name"><xsl:value-of select="$eventform.bweventtab.by"/><xsl:value-of select="$name"/>posPos<xsl:value-of select="$current"/></xsl:attribute> 
    14271099        <xsl:if test="$current != $total"> 
    14281100          <xsl:attribute name="onchange">changeClass('<xsl:value-of select="$name"/>RecurFields<xsl:value-of select="$current+1"/>','shown')</xsl:attribute> 
     
    14441116    <h2> 
    14451117      <span class="formButtons"><input type="button" value="continue" onclick="window.location='{$gotoEditEvent}'"/></span> 
    1446         Schedule Meeting or Task 
     1118      <xsl:value-of select="$eventform.attendees.scheduleMeet"/> 
    14471119    </h2> 
    14481120 
    14491121    <div id="recipientsAndAttendees"> 
    1450       <h4> Add attendees and recipients</h4> 
     1122      <h4> <xsl:value-of select="$eventform.attendees.addAttendeeRecip"/></h4> 
    14511123      <form name="raForm" id="recipientsAndAttendeesForm" action="{$event-attendeesForEvent}" method="post"> 
    14521124        <div id="raContent"> 
    14531125          <div id="raFields"> 
    14541126            <input name="uri" width="40" id="bwRaUri"/> 
    1455             <input type="submit" value="add" /> 
     1127            <input type="submit" value="{$eventform.attendees.add}" /> 
    14561128            &#160; 
    1457             <input type="checkbox" name="recipient" value="true" checked="checked"/> recipient 
    1458             <input type="checkbox" name="attendee" value="true" checked="checked"/> attendee 
     1129            <input type="checkbox" name="recipient" value="true" checked="checked"/> <xsl:value-of select="$eventform.attendees.recipient"/> 
     1130            <input type="checkbox" name="attendee" value="true" checked="checked"/> <xsl:value-of select="$eventform.attendees.attendee"/> 
    14591131            &#160; 
    1460             Role
     1132            <xsl:value-of select="$eventform.attendees.role"/>
    14611133            <select name="role"> 
    1462               <option value="REQ-PARTICIPANT">required participant</option> 
    1463               <option value="OPT-PARTICIPANT">optional participant</option> 
    1464               <option value="CHAIR">chair</option> 
    1465               <option value="NON-PARTICIPANT">non-participant</option> 
     1134              <option value="REQ-PARTICIPANT"><xsl:value-of select="$eventform.attendees.reqPart"/></option> 
     1135              <option value="OPT-PARTICIPANT"><xsl:value-of select="$eventform.attendees.optPart"/></option> 
     1136              <option value="CHAIR"><xsl:value-of select="$eventform.attendees.chair"/></option> 
     1137              <option value="NON-PARTICIPANT"><xsl:value-of select="$eventform.attendees.nonPart"/></option> 
    14661138            </select> 
    14671139            &#160; 
    1468             Status
     1140            <xsl:value-of select="$eventform.attendees.status"/>
    14691141            <select name="partstat"> 
    1470               <option value="NEEDS-ACTION">needs action</option> 
    1471               <option value="ACCEPTED">accepted</option> 
    1472               <option value="DECLINED">declined</option> 
    1473               <option value="TENTATIVE">tentative</option> 
    1474               <option value="DELEGATED">delegated</option> 
     1142              <option value="NEEDS-ACTION"><xsl:value-of select="$eventform.attendees.needsAction"/></option> 
     1143              <option value="ACCEPTED"><xsl:value-of select="$eventform.attendees.accepted"/></option> 
     1144              <option value="DECLINED"><xsl:value-of select="$eventform.attendees.declined"/></option> 
     1145              <option value="TENTATIVE"><xsl:value-of select="$eventform.attendees.tentative"/></option> 
     1146              <option value="DELEGATED"><xsl:value-of select="$eventform.attendees.delegated"/></option> 
    14751147            </select> 
    14761148          </div> 
     
    15011173    <table id="recipients" class="widget" cellspacing="0"> 
    15021174      <tr> 
    1503         <th colspan="2">Recipients</th> 
     1175        <th colspan="2"><xsl:value-of select="$eventform.recipients.recipients"/></th> 
    15041176      </tr> 
    15051177      <tr class="subHead"> 
    15061178        <xsl:if test="$trash = 'yes'"><td></td></xsl:if> 
    1507         <td>recipient</td> 
     1179        <td><xsl:value-of select="$eventform.attendees.recipient"/></td> 
    15081180      </tr> 
    15091181      <xsl:for-each select="recipient"> 
     
    15121184          <xsl:if test="$trash = 'yes'"> 
    15131185            <td class="trash"> 
    1514               <a href="{$event-attendeesForEvent}&amp;uri={$recipientUri}&amp;recipient=true&amp;delete=true" title="remove"> 
    1515                 <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/> 
     1186              <a href="{$event-attendeesForEvent}&amp;uri={$recipientUri}&amp;recipient=true&amp;delete=true" title="{$eventform.recipients.remove}"> 
     1187                <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="{$eventform.recipients.remove}"/> 
    15161188              </a> 
    15171189            </td> 
     
    15271199  </xsl:template> 
    15281200 
    1529   <xsl:template name="entityAccessForm"> 
    1530     <xsl:param name="type"/><!-- optional: currently used for inbox and outbox to conditionally display scheduling access --> 
    1531     <xsl:param name="method">1</xsl:param><!-- optional: 
    1532       there are two methods of setting access 
    1533       - method 1, the older method, uses a single request/response per principal 
    1534       - method 2 constructs a javascript object that commits the entire ACL 
    1535         structure in a single request 
    1536       Both methods are currently supported.  Method one is used for calendars, 
    1537       method two for setting event access.  At some point we may move all access 
    1538       control setting to method two. --> 
    1539     <xsl:param name="acl"/><!-- nodeset of entity acls used to initialize 
    1540       javascript object. Required for method two. --> 
    1541  
    1542     <table cellpadding="0" id="shareFormTable" class="common"> 
    1543       <tr> 
    1544         <th colspan="2" class="commonHeader">Add:</th> 
    1545       </tr> 
    1546       <tr> 
    1547         <td> 
    1548           <h5>Who:</h5> 
    1549           <div class="whoTypes"> 
    1550             <input type="text" name="who" size="20"/><br/> 
    1551             <input type="radio" value="user" name="whoType" checked="checked"/> user 
    1552             <input type="radio" value="group" name="whoType"/> group 
    1553             <p>OR</p> 
    1554             <p> 
    1555               <input type="radio" value="owner" name="whoType"/> owner<br/> 
    1556               <input type="radio" value="auth" name="whoType"/> authenticated<br/> 
    1557               <input type="radio" value="unauth" name="whoType"/> unauthenticated<br/> 
    1558               <input type="radio" value="all" name="whoType"/> all users 
    1559             </p> 
    1560           </div> 
    1561         </td> 
    1562         <td> 
    1563           <h5> 
    1564             <span id="accessRightsToggle"> 
    1565               <xsl:choose> 
    1566                 <xsl:when test="/bedework/appvar[key='accessRightsToggle']/value='advanced'"> 
    1567                   <input type="radio" name="setappvar" value="accessRightsToggle(basic)" onclick="changeClass('howList','visible');changeClass('howTable','invisible');"/>basic 
    1568                   <input type="radio" name="setappvar" value="accessRightsToggle(advanced)" checked="checked" onclick="changeClass('howList','invisible');changeClass('howTable','visible');"/>advanced 
    1569                 </xsl:when> 
    1570                 <xsl:otherwise> 
    1571                   <input type="radio" name="setappvar" value="accessRightsToggle(basic)" checked="checked" onclick="changeClass('howList','visible');changeClass('howTable','invisible');"/>basic 
    1572                   <input type="radio" name="setappvar" value="accessRightsToggle(advanced)" onclick="changeClass('howList','invisible');changeClass('howTable','visible');"/>advanced 
    1573                 </xsl:otherwise> 
    1574               </xsl:choose> 
    1575             </span> 
    1576             Rights: 
    1577           </h5> 
    1578           <input type="hidden" name="how" value="" id="bwCurrentHow"/> 
    1579           <!-- field 'acl' will receive xml for method 2 --> 
    1580           <input type="hidden" name="acl" value="" id="bwCurrentAcl" /> 
    1581           <!-- Advanced Access Rights: --> 
    1582           <!-- the "how" field is set by iterating over the howItems below --> 
    1583           <table id="howTable" class="invisible" cellspacing="0"> 
    1584             <xsl:if test="/bedework/appvar[key='accessRightsToggle']/value='advanced'"> 
    1585               <xsl:attribute name="class">visible</xsl:attribute> 
    1586             </xsl:if> 
    1587             <tr> 
    1588               <th>access type</th> 
    1589               <th>allow</th> 
    1590               <th>deny</th> 
    1591             </tr> 
    1592             <tr> 
    1593               <td class="level1"> 
    1594                 <input type="checkbox" value="A" name="howItem" onclick="setupAccessForm(this, this.form); toggleAllowDenyFlag(this, this.form)"/>All 
    1595               </td> 
    1596               <td> 
    1597                 <input type="radio" value="A" name="A" checked="checked" disabled="disabled"/> 
    1598               </td> 
    1599               <td> 
    1600                 <input type="radio" value="-A" name="A" disabled="disabled"/>