Changeset 1655

Show
Ignore:
Timestamp:
12/05/07 17:10:16
Author:
johnsa
Message:

admin client:

major revision to primary navigation (now tabbed) to incorporate elements of the
public submission client.

addition of public submissions tab "Pending Events" from which submissions
may be collected.


some general updates to the UI and architecture for clarity - e.g. moved
"manage calendars" under "System" tab with "manage calendar suites", etc.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/deployment/resources/login/login.html

    r952 r1655  
    4545        text-align: left; 
    4646        margin-left: 0em; 
     47        white-space: nowrap; 
    4748      } 
    4849      #loginBox td { 
  • trunk/deployment/webadmin/webapp/resources/default/default/default.css

    r1515 r1655  
    44  margin: 0em; 
    55  font-family: Arial, Helvetica, sans-serif; 
    6   font-size: 100%
     6  font-size: 16px
    77  min-width: 680px; 
    88} 
     
    4747  margin: 0; 
    4848} 
    49 #adminLeftColumn { 
    50   float: left; 
    51 } 
    52 #adminRightColumn { 
    53   float: left; 
    54   margin: 1em 0 1em 3em; 
    55 } 
    5649#statusBarTable { 
    57   margin: 0em; 
    58   color: black; 
     50  margin: 0; 
     51  color: black; 
     52  /*background-color: #ccc;*/ 
    5953  background-color: #edc; 
    6054  font-size: 0.8em; 
    6155  width: 100%; 
     56  border-bottom: 1px solid #999; 
    6257} 
    6358#statusBarTable td.rightCell { 
     
    6661} 
    6762#statusBarTable td.leftCell { 
    68   color: #666; 
    69   background-color: #edc; 
    7063  text-align: left; 
    7164  padding: 0.2em 0em 0.2em 1em; 
     
    8578  background-color: #ffe; 
    8679  color: black; 
     80} 
     81#statusBarTable #bwLogoutButton { 
     82  margin: 0 0 0 4px; 
     83} 
     84#bwAdminMenu { 
     85  margin: 0; 
     86  padding: 6px 0 4px 0; 
     87  color: #eee; 
     88  background-color: #ddd; 
     89  font-size: 0.9em; 
     90  border-bottom: 1px solid #999; 
     91} 
     92#bwAdminMenu li { 
     93  display: inline; 
     94  margin: 0; 
     95  /*color: #eee; 
     96  background: #009 url("../../resources/menuBgBlue.gif") repeat-x top;*/ 
     97  color: #777; 
     98  background-color: #eee; 
     99  padding-top: 6px; 
     100  padding-bottom: 4px; 
     101  padding-left: 1em; 
     102  padding-right: 1em; 
     103  border-bottom: 1px solid #999; 
     104  border-right: 1px solid #999; 
     105} 
     106#bwAdminMenu li.selected { 
     107  color: #333; 
     108  background: white url("../../resources/menuBgGray.gif") repeat-x top; 
     109  border-bottom: 1px solid white; 
     110} 
     111#bwAdminMenu a:link, 
     112#bwAdminMenu a:active, 
     113#bwAdminMenu a:hover, 
     114#bwAdminMenu a:visited { 
     115  color: #777; 
     116  background-color: transparent; 
     117  text-decoration: none; 
     118} 
     119#bwAdminMenu li.selected a:link, 
     120#bwAdminMenu li.selected a:active, 
     121#bwAdminMenu li.selected a:hover, 
     122#bwAdminMenu li.selected a:visited { 
     123  color: black; 
     124  background-color: transparent; 
     125  text-decoration: none; 
    87126} 
    88127#titleBar { 
     
    214253  background-color: #2c5f89; 
    215254  color: black; 
     255} 
     256#calSuiteTitle { 
     257  border: 1px solid #666; 
     258  color: black; 
     259  background-color: #ffe; 
     260  padding: 0.5em; 
     261  margin: 1em 0; 
     262 
    216263} 
    217264.adminMenu { 
  • trunk/deployment/webadmin/webapp/resources/default/default/default.xsl

    r1618 r1655  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    3   <xsl:output 
    4       method="html" 
    5       indent="no" 
    6       media-type="text/html" 
    7       doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" 
    8       doctype-system="http://www.w3.org/TR/html4/strict.dtd" 
    9       standalone="yes" 
    10       omit-xml-declaration="yes"/> 
    11    <xsl:strip-space elements="*"/> 
    12  
     3<xsl:output 
     4     method="html" 
     5     indent="no" 
     6     media-type="text/html" 
     7     doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" 
     8     doctype-system="http://www.w3.org/TR/html4/strict.dtd" 
     9     standalone="yes" 
     10     omit-xml-declaration="yes"/> 
     11 <xsl:strip-space elements="*"/> 
    1312  <!-- ======================================== --> 
    1413  <!--      BEDEWORK ADMIN CLIENT STYLESHEET     --> 
     
    6665       we will probably change the way we create these before long (e.g. build them 
    6766       dynamically in the xslt). --> 
     67  <!-- primary navigation, menu tabs --> 
    6868  <xsl:variable name="setup" select="/bedework/urlPrefixes/setup/a/@href"/> 
     69  <xsl:variable name="initPendingTab" select="/bedework/urlPrefixes/initPendingTab/a/@href"/> 
     70  <xsl:variable name="showCalsuitesTab" select="/bedework/urlPrefixes/showCalsuitesTab/a/@href"/> 
     71  <xsl:variable name="showUsersTab" select="/bedework/urlPrefixes/showUsersTab/a/@href"/> 
     72  <xsl:variable name="showSystemTab" select="/bedework/urlPrefixes/showSystemTab/a/@href"/> 
    6973  <xsl:variable name="logout" select="/bedework/urlPrefixes/logout/a/@href"/> 
    7074  <xsl:variable name="search" select="/bedework/urlPrefixes/search/search/a/@href"/> 
    7175  <xsl:variable name="search-next" select="/bedework/urlPrefixes/search/next/a/@href"/> 
     76 
    7277  <!-- events --> 
    7378  <xsl:variable name="event-showEvent" select="/bedework/urlPrefixes/event/showEvent/a/@href"/> 
     
    248253            <div id="content"> 
    249254              <xsl:choose> 
     255                <xsl:when test="/bedework/page='tabPendingEvents'"> 
     256                  <xsl:call-template name="tabPendingEvents"/> 
     257                </xsl:when> 
     258                <xsl:when test="/bedework/page='tabCalsuites'"> 
     259                  <xsl:call-template name="tabCalsuites"/> 
     260                </xsl:when> 
     261                <xsl:when test="/bedework/page='tabUsers'"> 
     262                  <xsl:call-template name="tabUsers"/> 
     263                </xsl:when> 
     264                <xsl:when test="/bedework/page='tabSystem'"> 
     265                  <xsl:call-template name="tabSystem"/> 
     266                </xsl:when> 
    250267                <xsl:when test="/bedework/page='eventList'"> 
    251268                  <xsl:call-template name="eventList"/> 
     
    462479      <tr> 
    463480        <td class="leftCell"> 
    464           <a href="{$setup}">Main Menu</a> | 
     481          <a href="{$setup}">Home</a> | 
    465482          <a href="{$publicCal}" target="calendar">Launch Calendar</a> | 
    466           <a href="{$logout}">Log Out</a> 
     483          <a href="{$logout}" id="bwLogoutButton">Log Out</a> 
    467484        </td> 
    468485        <xsl:if test="/bedework/userInfo/user"> 
     
    490507      </tr> 
    491508    </table> 
    492     <div id="titleBar"> 
    493       CALENDAR of EVENTS 
    494     </div> 
     509    <xsl:if test="/bedework/userInfo/group"> 
     510      <!-- user has selected a group, so show menu tabs --> 
     511      <ul id="bwAdminMenu"> 
     512        <li> 
     513          <xsl:if test="/bedework/appvar[key='menutab']/value = 'home' or not(/bedework/appvar[key='menutab']) or /bedework/page = 'main'"> 
     514            <xsl:attribute name="class">selected</xsl:attribute> 
     515          </xsl:if> 
     516          <a href="{$setup}&amp;setappvar=menutab(home)">Event Management</a> 
     517        </li> 
     518        <li> 
     519          <xsl:if test="/bedework/appvar[key='menutab']/value = 'pending' and /bedework/page != 'main'"> 
     520            <xsl:attribute name="class">selected</xsl:attribute> 
     521          </xsl:if> 
     522          <a href="{$initPendingTab}&amp;setappvar=menutab(pending)&amp;ignoreCreator=yes&amp;calPath=%2Fpublic%2Funbrowsable%2Fsubmissions">Pending Events</a> 
     523        </li> 
     524        <xsl:if test="/bedework/currentCalSuite/currentAccess/current-user-privilege-set/privilege/write or /bedework/userInfo/superUser='true'"> 
     525          <li> 
     526            <xsl:if test="/bedework/appvar[key='menutab']/value = 'calsuites' and /bedework/page != 'main'"> 
     527              <xsl:attribute name="class">selected</xsl:attribute> 
     528            </xsl:if> 
     529            <a href="{$showCalsuitesTab}&amp;setappvar=menutab(calsuites)">Calendar Suites</a> 
     530          </li> 
     531        </xsl:if> 
     532        <xsl:if test="/bedework/userInfo/contentAdminUser='true'"> 
     533          <li> 
     534            <xsl:if test="/bedework/appvar[key='menutab']/value = 'users' and /bedework/page != 'main'"> 
     535              <xsl:attribute name="class">selected</xsl:attribute> 
     536            </xsl:if> 
     537            <a href="{$showUsersTab}&amp;setappvar=menutab(users)">Users</a> 
     538          </li> 
     539        </xsl:if> 
     540        <xsl:if test="/bedework/userInfo/superUser='true'"> 
     541          <li> 
     542            <xsl:if test="/bedework/appvar[key='menutab']/value = 'system' and /bedework/page != 'main'"> 
     543              <xsl:attribute name="class">selected</xsl:attribute> 
     544            </xsl:if> 
     545            <a href="{$showSystemTab}&amp;setappvar=menutab(system)">System</a> 
     546          </li> 
     547        </xsl:if> 
     548      </ul> 
     549    </xsl:if> 
    495550  </xsl:template> 
    496551 
     
    518573  <!--==============================================--> 
    519574 
    520   <!--+++++++++++++++ Main Menu ++++++++++++++++++++--> 
     575  <!--+++++++++++++++ Main Menu Tab ++++++++++++++++++++--> 
    521576  <xsl:template name="mainMenu"> 
    522     <div id="adminLeftColumn"> 
    523       <h2 class="menuTitle">Main Menu</h2> 
    524       <table id="mainMenuTable"> 
    525         <tr> 
    526           <th>Events</th> 
    527           <td> 
    528             <a id="addEventLink" href="{$event-initAddEvent}"> 
    529               Add 
    530             </a> 
    531           </td> 
    532           <td> 
    533             <a href="{$event-initUpdateEvent}"> 
    534               Edit / Delete 
    535             </a> 
    536           </td> 
    537           <!-- 
    538           Disable direct selection by ID; we'll need to find another way 
    539           of quickly getting to events: search and grid views should be implemented. --> 
    540           <!-- 
    541           <td> 
    542             Event ID: 
    543             <xsl:copy-of select="/bedework/formElements/*"/> 
    544           </td>--> 
    545         </tr> 
    546         <tr> 
    547           <th>Contacts</th> 
    548           <td> 
    549             <a id="addContactLink" href="{$contact-initAdd}"> 
    550               Add 
    551             </a> 
    552           </td> 
    553           <td> 
    554             <a href="{$contact-initUpdate}"> 
    555               Edit / Delete 
    556             </a> 
    557           </td> 
    558         </tr> 
    559         <tr> 
    560           <th>Locations</th> 
    561           <td> 
    562             <a id="addLocationLink" href="{$location-initAdd}"> 
    563               Add 
    564             </a> 
    565           </td> 
    566           <td> 
    567             <a href="{$location-initUpdate}"> 
    568               Edit / Delete 
    569             </a> 
    570           </td> 
    571         </tr> 
    572         <tr> 
    573           <th>Categories</th> 
    574           <td> 
    575             <a id="addCategoryLink" href="{$category-initAdd}"> 
    576               Add 
    577             </a> 
    578           </td> 
    579           <td> 
    580             <a href="{$category-initUpdate}"> 
    581               Edit / Delete 
    582             </a> 
    583           </td> 
    584         </tr> 
    585       </table> 
    586  
    587       <h4 class="menuTitle">Event search:</h4> 
    588       <form name="searchForm" method="post" action="{$search}" id="searchForm"> 
    589         <input type="text" name="query" size="30"> 
    590           <xsl:attribute name="value"><xsl:value-of select="/bedework/searchResults/query"/></xsl:attribute> 
    591         </input> 
    592         <input type="submit" name="submit" value="go"/> 
    593         <div id="searchFields"> 
    594           Limit: 
    595           <input type="radio" name="searchLimits" value="fromToday" checked="checked"/>today forward 
    596           <input type="radio" name="searchLimits" value="beforeToday"/>past dates 
    597           <input type="radio" name="searchLimits" value="none"/>all dates 
    598         </div> 
    599       </form> 
    600  
    601     </div> 
    602  
    603     <div id="adminRightColumn"> 
    604       <xsl:if test="/bedework/currentCalSuite/currentAccess/current-user-privilege-set/privilege/write or /bedework/userInfo/superUser='true'"> 
    605         <h4 class="menuTitle"> 
    606           Manage calendar suite: 
    607           <em><xsl:value-of select="/bedework/currentCalSuite/name"/> 
    608           </em> 
    609         </h4> 
    610         <ul class="adminMenu"> 
     577    <h2 class="menuTitle">Main Menu</h2> 
     578    <table id="mainMenuTable"> 
     579      <tr> 
     580        <th>Events</th> 
     581        <td> 
     582          <a id="addEventLink" href="{$event-initAddEvent}"> 
     583            Add 
     584          </a> 
     585        </td> 
     586        <td> 
     587          <a href="{$event-initUpdateEvent}"> 
     588            Edit / Delete 
     589          </a> 
     590        </td> 
     591        <!-- 
     592        Disable direct selection by ID; we'll need to find another way 
     593        of quickly getting to events: search and grid views should be implemented. --> 
     594        <!-- 
     595        <td> 
     596          Event ID: 
     597          <xsl:copy-of select="/bedework/formElements/*"/> 
     598        </td>--> 
     599      </tr> 
     600      <tr> 
     601        <th>Contacts</th> 
     602        <td> 
     603          <a id="addContactLink" href="{$contact-initAdd}"> 
     604            Add 
     605          </a> 
     606        </td> 
     607        <td> 
     608          <a href="{$contact-initUpdate}"> 
     609            Edit / Delete 
     610          </a> 
     611        </td> 
     612      </tr> 
     613      <tr> 
     614        <th>Locations</th> 
     615        <td> 
     616          <a id="addLocationLink" href="{$location-initAdd}"> 
     617            Add 
     618          </a> 
     619        </td> 
     620        <td> 
     621          <a href="{$location-initUpdate}"> 
     622            Edit / Delete 
     623          </a> 
     624        </td> 
     625      </tr> 
     626      <tr> 
     627        <th>Categories</th> 
     628        <td> 
     629          <a id="addCategoryLink" href="{$category-initAdd}"> 
     630            Add 
     631          </a> 
     632        </td> 
     633        <td> 
     634          <a href="{$category-initUpdate}"> 
     635            Edit / Delete 
     636          </a> 
     637        </td> 
     638      </tr> 
     639    </table> 
     640 
     641    <h4 class="menuTitle">Event search:</h4> 
     642    <form name="searchForm" method="post" action="{$search}" id="searchForm"> 
     643      <input type="text" name="query" size="30"> 
     644        <xsl:attribute name="value"><xsl:value-of select="/bedework/searchResults/query"/></xsl:attribute> 
     645      </input> 
     646      <input type="submit" name="submit" value="go"/> 
     647      <div id="searchFields"> 
     648        Limit: 
     649        <input type="radio" name="searchLimits" value="fromToday" checked="checked"/>today forward 
     650        <input type="radio" name="searchLimits" value="beforeToday"/>past dates 
     651        <input type="radio" name="searchLimits" value="none"/>all dates 
     652      </div> 
     653    </form> 
     654  </xsl:template> 
     655 
     656  <!--+++++++++++++++ Pending Events Tab ++++++++++++++++++++--> 
     657  <xsl:template name="tabPendingEvents"> 
     658    <h2>Pending Events</h2> 
     659    <p>The following events were submitted to the calendar:</p> 
     660    <xsl:call-template name="eventListCommon"/> 
     661  </xsl:template> 
     662 
     663  <!--+++++++++++++++ Calendar Suites Tab ++++++++++++++++++++--> 
     664  <xsl:template name="tabCalsuites"> 
     665    <xsl:if test="/bedework/currentCalSuite/currentAccess/current-user-privilege-set/privilege/write or /bedework/userInfo/superUser='true'"> 
     666      <h2> 
     667        Manage Calendar Suite 
     668      </h2> 
     669      <div id="calSuiteTitle"> 
     670        Calendar Suite: 
     671        <strong><xsl:value-of select="/bedework/currentCalSuite/name"/></strong> 
     672        <xsl:text> </xsl:text> 
     673        <a href="{$admingroup-switch}" class="fieldInfo">change</a> 
     674      </div> 
     675      <ul class="adminMenu"> 
     676        <li> 
     677          <a href="{$subscriptions-fetch}"> 
     678            Manage subscriptions 
     679          </a> 
     680        </li> 
     681        <li> 
     682          <a href="{$view-fetch}"> 
     683            Manage views 
     684          </a> 
     685        </li> 
     686        <li> 
     687          <a href="{$calsuite-fetchPrefsForUpdate}"> 
     688            Manage preferences 
     689          </a> 
     690        </li> 
     691        <li> 
     692          <a href="{$event-initUpload}"> 
     693            Upload iCAL file 
     694          </a> 
     695        </li> 
     696      </ul> 
     697    </xsl:if> 
     698  </xsl:template> 
     699 
     700  <!--+++++++++++++++ User/Group Tab ++++++++++++++++++++--> 
     701  <xsl:template name="tabUsers"> 
     702    <xsl:if test="/bedework/userInfo/contentAdminUser='true'"> 
     703      <h2>Manage Users &amp; Groups</h2> 
     704      <ul class="adminMenu"> 
     705        <xsl:if test="/bedework/userInfo/userMaintOK='true'"> 
    611706          <li> 
    612             <a href="{$calendar-fetch}"> 
    613               Manage calendar
     707            <a href="{$authuser-initUpdate}"> 
     708              Manage admin role
    614709            </a> 
    615710          </li> 
     711        </xsl:if> 
     712        <xsl:if test="/bedework/userInfo/adminGroupMaintOk='true'"> 
    616713          <li> 
    617             <a href="{$subscriptions-fetch}"> 
    618               Manage subscription
     714            <a href="{$admingroup-initUpdate}"> 
     715              Manage admin group
    619716            </a> 
    620717          </li> 
     718        </xsl:if> 
     719        <li> 
     720          <a href="{$admingroup-switch}"> 
     721            Change group... 
     722          </a> 
     723        </li> 
     724        <xsl:if test="/bedework/userInfo/userMaintOK='true'"> 
    621725          <li> 
    622             <a href="{$view-fetch}"> 
    623               Manage views 
    624             </a> 
     726            <form action="{$prefs-fetchForUpdate}" method="post"> 
     727              Edit user preferences (enter userid):<br/> 
     728              <input type="text" name="user" size="15"/> 
     729              <input type="submit" name="getPrefs" value="go"/> 
     730            </form> 
    625731          </li> 
    626           <li> 
    627             <a href="{$calsuite-fetchPrefsForUpdate}"> 
    628               Manage preferences 
    629             </a> 
    630           </li> 
    631           <li> 
    632             <a href="{$event-initUpload}"> 
    633               Upload iCAL file 
    634             </a> 
    635           </li> 
    636         </ul> 
    637       </xsl:if> 
    638  
    639       <xsl:if test="/bedework/userInfo/contentAdminUser='true'"> 
    640         <h4 class="menuTitle">Manage users:</h4> 
    641         <ul class="adminMenu"> 
    642           <xsl:if test="/bedework/userInfo/userMaintOK='true'"> 
    643             <li> 
    644               <a href="{$authuser-initUpdate}"> 
    645                 Manage admin roles 
    646               </a> 
    647             </li> 
    648           </xsl:if> 
    649           <xsl:if test="/bedework/userInfo/adminGroupMaintOk='true'"> 
    650             <li> 
    651               <a href="{$admingroup-initUpdate}"> 
    652                 Manage admin groups 
    653               </a> 
    654             </li> 
    655           </xsl:if> 
    656           <li> 
    657             <a href="{$admingroup-switch}"> 
    658               Choose/change group... 
    659             </a> 
    660           </li> 
    661           <xsl:if test="/bedework/userInfo/userMaintOK='true'"> 
    662             <li> 
    663               <form action="{$prefs-fetchForUpdate}" method="post"> 
    664                 Edit user preferences (enter userid):<br/> 
    665                 <input type="text" name="user" size="15"/> 
    666                 <input type="submit" name="getPrefs" value="go"/> 
    667               </form> 
    668             </li> 
    669           </xsl:if> 
    670         </ul> 
    671       </xsl:if> 
    672  
    673       <xsl:if test="/bedework/userInfo/superUser='true'"> 
    674         <h4 class="menuTitle">Super user features:</h4> 
    675         <ul class="adminMenu"> 
    676           <li> 
    677             <a href="{$calsuite-fetch}"> 
    678               Manage calendar suites 
    679             </a> 
    680           </li> 
    681           <li> 
    682             <a href="{$system-fetch}"> 
    683               Manage system preferences 
    684             </a> 
    685           </li> 
    686           <li> 
    687             <a href="{$timezones-initUpload}"> 
    688               Manage system timezones 
    689             </a> 
    690           </li> 
    691           <li> 
    692             System statistics: 
    693             <ul> 
    694               <li> 
    695                 <a href="{$stats-update}&amp;fetch=yes"> 
    696                   admin web client 
    697                 </a> 
    698               </li> 
    699               <li> 
    700                 <a href="{$publicCal}/stats.do" target="pubClient"> 
    701                   public web client 
    702                 </a> 
    703               </li> 
    704             </ul> 
    705           </li> 
    706         </ul> 
    707       </xsl:if> 
    708     </div> 
     732        </xsl:if> 
     733      </ul> 
     734    </xsl:if> 
     735  </xsl:template> 
     736 
     737  <!--+++++++++++++++ System Tab ++++++++++++++++++++--> 
     738  <xsl:template name="tabSystem"> 
     739    <xsl:if test="/bedework/userInfo/superUser='true'"> 
     740      <h2>Manage System</h2> 
     741      <h4 class="menuTitle">Calendars and Calendar Suites</h4> 
     742      <ul class="adminMenu"> 
     743        <li> 
     744          <a href="{$calendar-fetch}"> 
     745            Manage calendars 
     746          </a> 
     747        </li> 
     748        <li> 
     749          <a href="{$calsuite-fetch}"> 
     750            Manage calendar suites 
     751          </a> 
     752        </li> 
     753      </ul> 
     754      <h4 class="menuTitle">System settings</h4> 
     755      <ul class="adminMenu"> 
     756        <li> 
     757          <a href="{$system-fetch}"> 
     758            Manage system preferences 
     759          </a> 
     760        </li> 
     761        <li> 
     762          <a href="{$timezones-initUpload}"> 
     763            Manage system timezones 
     764          </a> 
     765        </li> 
     766      </ul> 
     767      <h4 class="menuTitle">Statistics</h4> 
     768      <ul class="adminMenu"> 
     769        <li> 
     770          <a href="{$stats-update}&amp;fetch=yes"> 
     771            admin web client 
     772          </a> 
     773        </li> 
     774        <li> 
     775          <a href="{$publicCal}/stats.do" target="pubClient"> 
     776            public web client 
     777          </a> 
     778        </li> 
     779      </ul> 
     780    </xsl:if> 
    709781  </xsl:template> 
    710782 
     
    733805    </form> 
    734806 
     807    <xsl:call-template name="eventListCommon"/> 
     808  </xsl:template> 
     809 
     810  <xsl:template name="eventListCommon"> 
    735811    <table id="commonListTable"> 
    736812      <tr> 
  • trunk/deployment/websubmit/webapp/resources/demoskins/default/default/default.xsl

    r1651 r1655  
    154154        document.getElementById(id).focus(); 
    155155      } 
     156      function validate(form) { 
     157        alert ("check"); 
     158        if (form.summary.value == "") { 
     159          alert("Please enter a summary."); 
     160          form.summary.focus(); 
     161          return false; 
     162        } 
     163      } 
    156164      ]]> 
    157165      </xsl:comment> 
     
    261269  <!--==== ADD EVENT ====--> 
    262270  <xsl:template match="formElements" mode="addEvent"> 
    263     <form name="eventForm" method="post" action="{$addEvent}" id="standardForm" onsubmit="setEventFields(this)"> 
     271    <form name="eventForm" method="post" action="{$addEvent}" id="standardForm" onsubmit="return validate(); setEventFields(this);"> 
    264272      <xsl:apply-templates select="." mode="eventForm"/> 
    265273    </form> 
     
    268276  <!--==== EDIT EVENT ====--> 
    269277  <xsl:template match="formElements" mode="editEvent"> 
    270     <form name="eventForm" method="post" action="{$updateEvent}" id="standardForm" onsubmit="setEventFields(this)"> 
     278    <form name="eventForm" method="post" action="{$updateEvent}" id="standardForm" onsubmit="return validate(); setEventFields(this);"> 
    271279      <xsl:apply-templates select="." mode="eventForm"/> 
    272280    </form> 
     
    452460      <!-- this tab is visible by default --> 
    453461      <div id="bwEventTab-Details"> 
    454         <!--  For now, hard code the path to the submissions calendar 
    455         <input type="hidden" name="newCalPath" 
    456                value="/public/unbrowsable/submissions/submissions"/>--> 
    457462        <table cellspacing="0" class="common"> 
    458           <!--  and hide calendar selection code; --> 
    459463          <tr> 
    460464            <td class="fieldname">