Changeset 1032

Show
Ignore:
Timestamp:
10/10/06 16:44:13
Author:
johnsa
Message:

rudimentary ical upload added to admin client - currently balks at more than one event in ical file

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/deployment/webadmin/webapp/resources/default/default/default.css

    r1027 r1032  
    475475  font-style: italic; 
    476476} 
     477#calTreeBlock { 
     478  font-size: 0.9em; 
     479  padding: 2em; 
     480} 
    477481#calendarTree ul { 
    478482  padding-left: 10px; 
  • trunk/deployment/webadmin/webapp/resources/default/default/default.xsl

    r1029 r1032  
    7575  <xsl:variable name="event-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/event/fetchForUpdate/a/@href"/> 
    7676  <xsl:variable name="event-update" select="/bedeworkadmin/urlPrefixes/event/update/a/@href"/> 
     77  <xsl:variable name="event-selectCalForEvent" select="/bedeworkadmin/urlPrefixes/event/selectCalForEvent/a/@href"/> 
     78  <xsl:variable name="event-initUpload" select="/bedeworkadmin/urlPrefixes/event/initUpload/a/@href"/> 
     79  <xsl:variable name="event-upload" select="/bedeworkadmin/urlPrefixes/event/upload/a/@href"/> 
    7780  <xsl:variable name="sponsor-showSponsor" select="/bedeworkadmin/urlPrefixes/sponsor/showSponsor/a/@href"/> 
    7881  <xsl:variable name="sponsor-showReferenced" select="/bedeworkadmin/urlPrefixes/sponsor/showReferenced/a/@href"/> 
     
    173176          <script type="text/javascript" src="{$resourcesRoot}/resources/browserSniffer.js"></script> 
    174177        </xsl:if> 
     178        <xsl:if test="/bedeworkadmin/page='upload' or /bedeworkadmin/page='selectCalForEvent'"> 
     179          <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script> 
     180        </xsl:if> 
    175181        <xsl:if test="/bedeworkadmin/page='calendarDescriptions' or 
    176182                      /bedeworkadmin/page='displayCalendar'"> 
     
    192198      </head> 
    193199      <body onLoad="focusFirstElement()"> 
    194         <xsl:call-template name="header"/> 
    195         <div id="content"> 
    196           <xsl:choose> 
    197             <xsl:when test="/bedeworkadmin/page='eventList'"> 
    198               <xsl:call-template name="eventList"/> 
    199             </xsl:when> 
    200             <xsl:when test="/bedeworkadmin/page='modEvent'"> 
    201               <xsl:call-template name="modEvent"/> 
    202             </xsl:when> 
    203             <xsl:when test="/bedeworkadmin/page='displayEvent' or 
    204                             /bedeworkadmin/page='deleteEventConfirm'"> 
    205               <xsl:apply-templates select="/bedeworkadmin/event" mode="displayEvent"/> 
    206             </xsl:when> 
    207             <xsl:when test="/bedeworkadmin/page='sponsorList'"> 
    208               <xsl:call-template name="sponsorList"/> 
    209             </xsl:when> 
    210             <xsl:when test="/bedeworkadmin/page='modSponsor'"> 
    211               <xsl:call-template name="modSponsor"/> 
    212             </xsl:when> 
    213             <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm' or 
    214                             /bedeworkadmin/page='sponsorReferenced'"> 
    215               <xsl:call-template name="deleteSponsorConfirm"/> 
    216             </xsl:when> 
    217             <xsl:when test="/bedeworkadmin/page='locationList'"> 
    218               <xsl:call-template name="locationList"/> 
    219             </xsl:when> 
    220             <xsl:when test="/bedeworkadmin/page='modLocation'"> 
    221               <xsl:call-template name="modLocation"/> 
    222             </xsl:when> 
    223             <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'"> 
    224               <xsl:call-template name="deleteLocationConfirm"/> 
    225             </xsl:when> 
    226             <xsl:when test="/bedeworkadmin/page='calendarList' or 
    227                             /bedeworkadmin/page='calendarDescriptions' or 
    228                             /bedeworkadmin/page='displayCalendar' or 
    229                             /bedeworkadmin/page='modCalendar' or 
    230                             /bedeworkadmin/page='deleteCalendarConfirm' or 
    231                             /bedeworkadmin/page='calendarReferenced'"> 
    232               <xsl:apply-templates select="/bedeworkadmin/calendars"/> 
    233             </xsl:when> 
    234             <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'"> 
    235               <xsl:apply-templates select="/bedeworkadmin/subscriptions"/> 
    236             </xsl:when> 
    237             <xsl:when test="/bedeworkadmin/page='views'"> 
    238               <xsl:apply-templates select="/bedeworkadmin/views" mode="viewList"/> 
    239             </xsl:when> 
    240             <xsl:when test="/bedeworkadmin/page='modView'"> 
    241               <xsl:call-template name="modView"/> 
    242             </xsl:when> 
    243             <xsl:when test="/bedeworkadmin/page='deleteViewConfirm'"> 
    244               <xsl:call-template name="deleteViewConfirm"/> 
    245             </xsl:when> 
    246             <xsl:when test="/bedeworkadmin/page='modSyspars'"> 
    247               <xsl:call-template name="modSyspars"/> 
    248             </xsl:when> 
    249             <xsl:when test="/bedeworkadmin/page='calSuiteList'"> 
    250               <xsl:apply-templates select="/bedeworkadmin/calSuites" mode="calSuiteList"/> 
    251             </xsl:when> 
    252             <xsl:when test="/bedeworkadmin/page='addCalSuite'"> 
    253               <xsl:call-template name="addCalSuite"/> 
    254             </xsl:when> 
    255             <xsl:when test="/bedeworkadmin/page='modCalSuite'"> 
    256               <xsl:apply-templates select="/bedeworkadmin/calSuite"/> 
    257             </xsl:when> 
    258             <xsl:when test="/bedeworkadmin/page='calSuitePrefs'"> 
    259               <xsl:call-template name="calSuitePrefs"/> 
    260             </xsl:when> 
    261             <xsl:when test="/bedeworkadmin/page='authUserList'"> 
    262               <xsl:call-template name="authUserList"/> 
    263             </xsl:when> 
    264             <xsl:when test="/bedeworkadmin/page='modAuthUser'"> 
    265               <xsl:call-template name="modAuthUser"/> 
    266             </xsl:when> 
    267             <xsl:when test="/bedeworkadmin/page='modPrefs'"> 
    268               <xsl:call-template name="modPrefs"/> 
    269             </xsl:when> 
    270             <xsl:when test="/bedeworkadmin/page='chooseGroup'"> 
    271               <xsl:apply-templates select="/bedeworkadmin/groups" mode="chooseGroup"/> 
    272             </xsl:when> 
    273             <xsl:when test="/bedeworkadmin/page='adminGroupList'"> 
    274               <xsl:call-template name="listAdminGroups"/> 
    275             </xsl:when> 
    276             <xsl:when test="/bedeworkadmin/page='modAdminGroup'"> 
    277               <xsl:call-template name="modAdminGroup"/> 
    278             </xsl:when> 
    279             <xsl:when test="/bedeworkadmin/page='modAdminGroupMembers'"> 
    280               <xsl:call-template name="modAdminGroupMembers"/> 
    281             </xsl:when> 
    282             <xsl:when test="/bedeworkadmin/page='deleteAdminGroupConfirm'"> 
    283               <xsl:call-template name="deleteAdminGroupConfirm"/> 
    284             </xsl:when> 
    285             <xsl:when test="/bedeworkadmin/page='noGroup'"> 
    286               <h2>No administrative group</h2> 
    287               <p>Your userid has not been assigned to an administrative group. 
    288                 Please inform your administrator.</p> 
    289             </xsl:when> 
    290             <xsl:when test="/bedeworkadmin/page='uploadTimezones'"> 
    291               <xsl:call-template name="uploadTimezones"/> 
    292             </xsl:when> 
    293             <xsl:when test="/bedeworkadmin/page='showSysStats'"> 
    294               <xsl:apply-templates select="/bedeworkadmin/sysStats" mode="showSysStats"/> 
    295             </xsl:when> 
    296             <xsl:when test="/bedeworkadmin/page='noAccess'"> 
    297               <h2>No Access</h2> 
    298               <p> 
    299                 You have no access to the action you just attempted. If you believe 
    300                 you should have access and the problem persists, contact your 
    301                 administrator. 
    302               </p> 
    303               <p><a href="{$setup}">continue</a></p> 
    304             </xsl:when> 
    305             <xsl:when test="/bedeworkadmin/page='error'"> 
    306               <h2>Application error</h2> 
    307               <p>An application error occurred.</p> 
    308               <p><a href="{$setup}">continue</a></p> 
    309             </xsl:when> 
    310             <xsl:otherwise> 
    311               <xsl:call-template name="mainMenu"/> 
    312             </xsl:otherwise> 
    313           </xsl:choose> 
    314         </div> 
    315         <!-- footer --> 
    316         <xsl:call-template name="footer"/> 
     200        <xsl:choose> 
     201          <xsl:when test="/bedeworkadmin/page='selectCalForEvent'"> 
     202            <xsl:call-template name="selectCalForEvent"/> 
     203          </xsl:when> 
     204          <xsl:otherwise> 
     205            <xsl:call-template name="header"/> 
     206            <div id="content"> 
     207              <xsl:choose> 
     208                <xsl:when test="/bedeworkadmin/page='eventList'"> 
     209                  <xsl:call-template name="eventList"/> 
     210                </xsl:when> 
     211                <xsl:when test="/bedeworkadmin/page='modEvent'"> 
     212                  <xsl:call-template name="modEvent"/> 
     213                </xsl:when> 
     214                <xsl:when test="/bedeworkadmin/page='displayEvent' or 
     215                                /bedeworkadmin/page='deleteEventConfirm'"> 
     216                  <xsl:apply-templates select="/bedeworkadmin/event" mode="displayEvent"/> 
     217                </xsl:when> 
     218                <xsl:when test="/bedeworkadmin/page='sponsorList'"> 
     219                  <xsl:call-template name="sponsorList"/> 
     220                </xsl:when> 
     221                <xsl:when test="/bedeworkadmin/page='modSponsor'"> 
     222                  <xsl:call-template name="modSponsor"/> 
     223                </xsl:when> 
     224                <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm' or 
     225                                /bedeworkadmin/page='sponsorReferenced'"> 
     226                  <xsl:call-template name="deleteSponsorConfirm"/> 
     227                </xsl:when> 
     228                <xsl:when test="/bedeworkadmin/page='locationList'"> 
     229                  <xsl:call-template name="locationList"/> 
     230                </xsl:when> 
     231                <xsl:when test="/bedeworkadmin/page='modLocation'"> 
     232                  <xsl:call-template name="modLocation"/> 
     233                </xsl:when> 
     234                <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'"> 
     235                  <xsl:call-template name="deleteLocationConfirm"/> 
     236                </xsl:when> 
     237                <xsl:when test="/bedeworkadmin/page='calendarList' or 
     238                                /bedeworkadmin/page='calendarDescriptions' or 
     239                                /bedeworkadmin/page='displayCalendar' or 
     240                                /bedeworkadmin/page='modCalendar' or 
     241                                /bedeworkadmin/page='deleteCalendarConfirm' or 
     242                                /bedeworkadmin/page='calendarReferenced'"> 
     243                  <xsl:apply-templates select="/bedeworkadmin/calendars"/> 
     244                </xsl:when> 
     245                <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'"> 
     246                  <xsl:apply-templates select="/bedeworkadmin/subscriptions"/> 
     247                </xsl:when> 
     248                <xsl:when test="/bedeworkadmin/page='views'"> 
     249                  <xsl:apply-templates select="/bedeworkadmin/views" mode="viewList"/> 
     250                </xsl:when> 
     251                <xsl:when test="/bedeworkadmin/page='modView'"> 
     252                  <xsl:call-template name="modView"/> 
     253                </xsl:when> 
     254                <xsl:when test="/bedeworkadmin/page='deleteViewConfirm'"> 
     255                  <xsl:call-template name="deleteViewConfirm"/> 
     256                </xsl:when> 
     257                <xsl:when test="/bedeworkadmin/page='modSyspars'"> 
     258                  <xsl:call-template name="modSyspars"/> 
     259                </xsl:when> 
     260                <xsl:when test="/bedeworkadmin/page='calSuiteList'"> 
     261                  <xsl:apply-templates select="/bedeworkadmin/calSuites" mode="calSuiteList"/> 
     262                </xsl:when> 
     263                <xsl:when test="/bedeworkadmin/page='addCalSuite'"> 
     264                  <xsl:call-template name="addCalSuite"/> 
     265                </xsl:when> 
     266                <xsl:when test="/bedeworkadmin/page='modCalSuite'"> 
     267                  <xsl:apply-templates select="/bedeworkadmin/calSuite"/> 
     268                </xsl:when> 
     269                <xsl:when test="/bedeworkadmin/page='calSuitePrefs'"> 
     270                  <xsl:call-template name="calSuitePrefs"/> 
     271                </xsl:when> 
     272                <xsl:when test="/bedeworkadmin/page='authUserList'"> 
     273                  <xsl:call-template name="authUserList"/> 
     274                </xsl:when> 
     275                <xsl:when test="/bedeworkadmin/page='modAuthUser'"> 
     276                  <xsl:call-template name="modAuthUser"/> 
     277                </xsl:when> 
     278                <xsl:when test="/bedeworkadmin/page='modPrefs'"> 
     279                  <xsl:call-template name="modPrefs"/> 
     280                </xsl:when> 
     281                <xsl:when test="/bedeworkadmin/page='chooseGroup'"> 
     282                  <xsl:apply-templates select="/bedeworkadmin/groups" mode="chooseGroup"/> 
     283                </xsl:when> 
     284                <xsl:when test="/bedeworkadmin/page='adminGroupList'"> 
     285                  <xsl:call-template name="listAdminGroups"/> 
     286                </xsl:when> 
     287                <xsl:when test="/bedeworkadmin/page='modAdminGroup'"> 
     288                  <xsl:call-template name="modAdminGroup"/> 
     289                </xsl:when> 
     290                <xsl:when test="/bedeworkadmin/page='modAdminGroupMembers'"> 
     291                  <xsl:call-template name="modAdminGroupMembers"/> 
     292                </xsl:when> 
     293                <xsl:when test="/bedeworkadmin/page='deleteAdminGroupConfirm'"> 
     294                  <xsl:call-template name="deleteAdminGroupConfirm"/> 
     295                </xsl:when> 
     296                <xsl:when test="/bedeworkadmin/page='noGroup'"> 
     297                  <h2>No administrative group</h2> 
     298                  <p>Your userid has not been assigned to an administrative group. 
     299                    Please inform your administrator.</p> 
     300                </xsl:when> 
     301                <xsl:when test="/bedeworkadmin/page='upload'"> 
     302                  <xsl:call-template name="upload"/> 
     303                </xsl:when> 
     304                <xsl:when test="/bedeworkadmin/page='uploadTimezones'"> 
     305                  <xsl:call-template name="uploadTimezones"/> 
     306                </xsl:when> 
     307                <xsl:when test="/bedeworkadmin/page='showSysStats'"> 
     308                  <xsl:apply-templates select="/bedeworkadmin/sysStats" mode="showSysStats"/> 
     309                </xsl:when> 
     310                <xsl:when test="/bedeworkadmin/page='noAccess'"> 
     311                  <h2>No Access</h2> 
     312                  <p> 
     313                    You have no access to the action you just attempted. If you believe 
     314                    you should have access and the problem persists, contact your 
     315                    administrator. 
     316                  </p> 
     317                  <p><a href="{$setup}">continue</a></p> 
     318                </xsl:when> 
     319                <xsl:when test="/bedeworkadmin/page='error'"> 
     320                  <h2>Application error</h2> 
     321                  <p>An application error occurred.</p> 
     322                  <p><a href="{$setup}">continue</a></p> 
     323                </xsl:when> 
     324                <xsl:otherwise> 
     325                  <xsl:call-template name="mainMenu"/> 
     326                </xsl:otherwise> 
     327              </xsl:choose> 
     328            </div> 
     329            <!-- footer --> 
     330            <xsl:call-template name="footer"/> 
     331          </xsl:otherwise> 
     332        </xsl:choose> 
    317333      </body> 
    318334    </html> 
     
    402418          <a href="{$calsuite-fetchPrefsForUpdate}"> 
    403419            Manage preferences 
     420          </a> 
     421        </li> 
     422        <li> 
     423          <a href="{$event-initUpload}"> 
     424            Upload iCAL file 
    404425          </a> 
    405426        </li> 
     
    20862107      </table> 
    20872108    </form> 
    2088  
     2109  </xsl:template> 
     2110 
     2111  <!-- the selectCalForEvent listing creates a calendar tree in a pop-up window --> 
     2112  <xsl:template name="selectCalForEvent"> 
     2113    <div id="calTreeBlock"> 
     2114      <h2>Select a calendar</h2> 
     2115      <!--<form name="toggleCals" action="{$event-selectCalForEvent}"> 
     2116        <xsl:choose> 
     2117          <xsl:when test="/bedework/appvar[key='showAllCalsForEvent']/value = 'true'"> 
     2118            <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" onclick="submit()"/> 
     2119            show only writable calendars 
     2120            <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" checked="checked" onclick="submit()"/> 
     2121            show all calendars 
     2122          </xsl:when> 
     2123          <xsl:otherwise> 
     2124            <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" checked="checked" onclick="submit()"/> 
     2125            show only writable calendars 
     2126            <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" onclick="submit()"/> 
     2127            show all calendars 
     2128          </xsl:otherwise> 
     2129        </xsl:choose> 
     2130      </form>--> 
     2131      <h4>Calendars</h4> 
     2132      <ul id="calendarTree"> 
     2133         <xsl:apply-templates select="/bedeworkadmin/calendars/calendar" mode="selectCalForEventCalTree"/> 
     2134      </ul> 
     2135     </div> 
     2136  </xsl:template> 
     2137 
     2138  <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
     2139    <xsl:variable name="id" select="id"/> 
     2140    <li> 
     2141      <xsl:attribute name="class"> 
     2142        <xsl:choose> 
     2143          <xsl:when test="calendarCollection='false'">folder</xsl:when> 
     2144          <xsl:otherwise>calendar</xsl:otherwise> 
     2145        </xsl:choose> 
     2146      </xsl:attribute> 
     2147      <xsl:variable name="calPath" select="encodedPath"/> 
     2148      <xsl:variable name="calDisplay" select="path"/> 
     2149      <xsl:choose> 
     2150        <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
     2151          <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')"> 
     2152            <strong><xsl:value-of select="name"/></strong> 
     2153          </a> 
     2154        </xsl:when> 
     2155        <xsl:otherwise> 
     2156          <xsl:value-of select="name"/> 
     2157        </xsl:otherwise> 
     2158      </xsl:choose> 
     2159      <xsl:if test="calendar"> 
     2160        <ul> 
     2161          <xsl:apply-templates select="calendar" mode="selectCalForEventCalTree"/> 
     2162        </ul> 
     2163      </xsl:if> 
     2164    </li> 
    20892165  </xsl:template> 
    20902166 
     
    24582534    </form> 
    24592535 
     2536  </xsl:template> 
     2537 
     2538  <!--==== UPLOAD ====--> 
     2539  <xsl:template name="upload"> 
     2540  <!-- The name "eventForm" is referenced by several javascript functions. Do not 
     2541    change it without modifying includes.js --> 
     2542    <form name="eventForm" method="post" action="{$event-upload}" id="standardForm"  enctype="multipart/form-data"> 
     2543      <h2>Upload iCAL File</h2> 
     2544      <table class="common" cellspacing="0"> 
     2545        <tr> 
     2546          <td class="fieldname"> 
     2547            Filename: 
     2548          </td> 
     2549          <td align="left"> 
     2550            <input type="file" name="uploadFile" size="60" /> 
     2551          </td> 
     2552        </tr> 
     2553        <tr> 
     2554          <td class="fieldname padMeTop"> 
     2555            Into calendar: 
     2556          </td> 
     2557          <td align="left" class="padMeTop"> 
     2558            <input type="hidden" name="newCalPath" value=""/> 
     2559            <span id="bwEventCalDisplay"> 
     2560              <em>none selected</em> 
     2561            </span> 
     2562            <xsl:text> </xsl:text> 
     2563            [<a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">change</a>] 
     2564          </td> 
     2565        </tr> 
     2566        <!--<tr> 
     2567          <td class="fieldname padMeTop"> 
     2568            Effects free/busy: 
     2569          </td> 
     2570          <td align="left" class="padMeTop"> 
     2571            <input type="radio" value="" name="transparency" checked="checked"/> accept event's settings<br/> 
     2572            <input type="radio" value="OPAQUE" name="transparency"/> yes <span class="note">(opaque: event status affects your free/busy)</span><br/> 
     2573            <input type="radio" value="TRANSPARENT" name="transparency"/> no <span class="note">(transparent: event status does not affect your free/busy)</span><br/> 
     2574          </td> 
     2575        </tr>--> 
     2576        <tr> 
     2577          <td class="fieldname padMeTop"> 
     2578            Status: 
     2579          </td> 
     2580          <td align="left" class="padMeTop"> 
     2581            <input type="radio" value="" name="status" checked="checked"/> accept event's status<br/> 
     2582            <input type="radio" value="CONFIRMED" name="status"/> confirmed<br/> 
     2583            <input type="radio" value="TENTATIVE" name="status"/> tentative<br/> 
     2584            <input type="radio" value="CANCELLED" name="status"/> cancelled<br/> 
     2585          </td> 
     2586        </tr> 
     2587      </table> 
     2588      <table border="0" id="submitTable"> 
     2589        <tr> 
     2590          <td> 
     2591            <input name="submit" type="submit" value="Continue"/> 
     2592            <input name="cancelled" type="submit" value="Cancel"/> 
     2593          </td> 
     2594        </tr> 
     2595      </table> 
     2596    </form> 
    24602597  </xsl:template> 
    24612598 
  • trunk/deployment/webadmin/webapp/resources/resources/includes.js

    r952 r1032  
    5454  if (String(date).length == 1) { 
    5555      date = '0' + date; 
    56   }     
     56  } 
    5757  today = new Date(); 
    5858  if (year < today.getFullYear()) { 
     
    7070  if (String(date).length == 1) { 
    7171      date = '0' + date; 
    72   }     
     72  } 
    7373  today = new Date(); 
    7474  if (year < today.getFullYear()) { 
     
    8080  } 
    8181} 
     82// launch the calSelect pop-up window for selecting a calendar when creating, 
     83// editing, and importing events 
     84function launchCalSelectWindow(URL) { 
     85  calSelect = window.open(URL, "calSelect", "width=500,height=600,scrollbars=yes,resizable=yes,alwaysRaised=yes,menubar=no,toolbar=no"); 
     86  window.calSelect.focus(); 
     87} 
     88// used to update the calendar in an upload event form from 
     89// the calSelect pop-up window.  We must do two things: update the hidden calendar 
     90// input field and update the displayed text. 
     91function updateEventFormCalendar(newCalPath,calDisplay) { 
     92  if (window.opener.document.eventForm) { 
     93    window.opener.document.eventForm.newCalPath.value = newCalPath; 
     94    bwCalDisplay = window.opener.document.getElementById("bwEventCalDisplay"); 
     95    bwCalDisplay.innerHTML = calDisplay; 
     96  } else { 
     97    alert("The event form is not available."); 
     98  } 
     99  window.close(); 
     100}