The header.jsp and main.jsp creates the calendar xml data which includes the action urls. This is then transformed to html using xslt stylesheets. The "cal.xml" contains the raw xml data created by the jsp files before transformation.

I am including all the approriate files.

Ate Douma wrote:

Satish,

You don't give me much to go by for your problem.
But the logged path "/http://bluefin.cc.mun.ca:8080/cal/eventView"; certainly
doesn't look valid (note the '/' in front of the http:// part).
Most likely you are not using the struts-bridge link (or resource) tag correctly. Please provide a snippet from the jsp code and the related struts mapping.
Maybe then I'll be able to help you more.

Satish Sekharan wrote:

Hi Ate,

I am sending the message again to this newly created list.

I am using the portal-struts-bridge to get a struts based UW Calendar client to work with uPortal. I wrote a uPortal implementation for the ServletContextProviderImpl interface with a wrapper for the response object. This wrapper rewraps the response object and always calls getOutputStream to write the response. This was needed because uPortal calls getWriter and the calendar filter calls getOutputStream.

Using the above, I got the calendar to render inside uPortal as a portlet. But when I click any url generated inside the portlet the window goes blank. I have double checked that I am using the correct struts-portlet-bridge taglib but the portlet urls are still not generated correctly.

This is the information from the log file >>

2005-07-12 09:31:59,734 DEBUG [org.jasig.portal.container.PortletContainerImpl] PortletContainerImpl.portletService(E25B1FB8CA6D78E507E0D9AFC3A60310/86) called. 2005-07-12 09:32:00,165 ERROR [org.apache.struts.action.RequestProcessor] Invalid path /http://bluefin.cc.mun.ca:8080/cal/eventView was requested 2005-07-12 09:32:00,235 DEBUG [org.jasig.portal.ChannelRenderer] ChannelRenderer.Worker::run() : recorded instance character cache based on a key "INSTANCE_SCOPE_KEY" 2005-07-12 09:32:00,485 DEBUG [org.jasig.portal.UserInstance] UserInstance::renderState() : recorded transformation character block cache with key "2,userLayoutRootNode,system 1current_structure=layoutfocusedTabID=83lastSessionTabID=no lastSessionTabID parametermode=viewnewNodeID=authenticated=trueuserName=Demo Userskin=immIIauthorizedChannelPublisher=trueauthorizedFragmentPublisher=trueac033741-d4fa-4027-ffe6-†™ìB? ?????"

Any help would be appreciated.

Thanks,

Satish

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]








---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



<?xml version="1.0" encoding="UTF-8"?>

<config>
  <render-context>
    <attribute name="errors"/>
    <attribute name="message"/>
  </render-context>
  <portlet-url-type>
    <render path="/show"/>
    <action path="/setup"/>
    <action path="/selectFilter"/>
    <action path="/showCals"/>
    <action path="/setView"/>
    <action path="/eventView"/>
    <action path="/addEvent"/>
    <action path="/editEvent"/>
    <action path="/addEventRef"/>
    <action path="/delEventRef"/>
    <action path="/showPage"/>
    <action path="/manageLocations"/>
    <action path="/addLocation"/>
    <action path="/editLocation"/>
    <action path="/delLocation"/>
    <action path="/subscribe"/>
  </portlet-url-type>
</config>


<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd";>

  <!-- ====================================================================
     This is a the Struts configuration for the uwcal client.
     ====================================================================== -->

<struts-config>
  <!-- ========== Form Bean Definitions =================================== -->
  <form-beans>
    <form-bean      name="calForm"
                    type="edu.rpi.cct.uwcal.webclient.UWCalActionForm"/>
  </form-beans>

  <!-- ========== Global Forward Definitions ============================== -->
  <global-forwards>
    <!-- render forwards -->
    <forward name="initialise" path="/initialise.rdo"/>
    <forward name="showCals" path="/showCals.rdo"/>
    <forward name="showManageLocations" path="/showManageLocations.rdo"/>
    <forward name="showEditLocation" path="/showEditLocation.rdo"/>
    <forward name="showEditEvent" path="/showEditEvent.rdo"/>
    <forward name="eventMore" path="/showEventMore.rdo"/>

    <forward name="initial" path="/setup.do"/>

    <forward name="doNothing" path="/showMain.rdo" redirect="true" />
    <forward name="error" path="/showMain.rdo" redirect="true" />
    <forward name="success" path="/showMain.rdo" redirect="true" />
    <forward name="cancelled" path="/showMain.rdo" redirect="true" />
  </global-forwards>

  <!-- ========== Action Mapping Definitions ============================== -->
  <action-mappings>

    <!-- ===============================================================
         Render actions - these should be referenced by the rdo suffix to
         invoke the xslt filter
         =============================================================== -->

         <!--
    <action    path="/showMain"
               name="calForm"
               scope="session"
               validate="false"
               include="/docs/main.jsp"/>
-->
    <action    path="/showMain"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/main.jsp"/>
    </action>

    <action    path="/showCals"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/calendars.jsp" />
    </action>

    <action    path="/showEventMore"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/eventMore.jsp" />
    </action>

   <action    path="/showAddEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/addEvent.jsp" />
    </action>

    <action    path="/showEditEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/editEvent.jsp" />
    </action>

    <action    path="/showEditLocation"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/editLocation.jsp" />
    </action>

    <action    path="/showManageLocations"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/manageLocations.jsp" />
    </action>

    <action    path="/showEmailOptions"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/emailOptions.jsp" />
    </action>

    <action    path="/showAlarmOptions"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/alarmOptions.jsp" />
    </action>

    <action    path="/initialise"
               type="edu.rpi.cct.uwcal.webclient.UWCalRenderAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/main.jsp" />
      <forward name="loggedOut" path="/docs/login/logout.html" />
    </action>

    <!-- ===============================================================
         These actions do not render - these should be referenced by the do
         suffix and should redirect to a render action.
         =============================================================== -->

    <action    path="/setup"
               type="edu.rpi.cct.uwcal.webclient.UWCalAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="loggedOut" path="/docs/login/logout.html" />
    </action>

    <action    path="/selectFilter"
               type="edu.rpi.cct.uwcal.webclient.UWCalFilterAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="noCalDef" path="/showMain.rdo" redirect="true" />
    </action>

    <action    path="/setView"
               type="edu.rpi.cct.uwcal.webclient.UWCalGoToAction"
               name="calForm"
               scope="session"
               validate="false">
     <forward name="noCalDef" path="/showMain.rdo" redirect="true" />
    </action>

    <action    path="/eventView"
               type="edu.rpi.cct.uwcal.webclient.UWCalEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/showEventMore.rdo" redirect="true" />
    </action>

    <!-- The following action is used for adding events from a form on the main
         personal calandar page (a la Washington); on error or success, we return to the
         main.jsp page. -->
    <action    path="/addEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalAddEventAction"
               name="calForm"
               scope="session"
               validate="false">
    </action>

    <!-- The following 2 actions are used for adding events from an "add event" page
         (a la Demo, Rensselaer); on error, we return to the
         addEvent.jsp page. -->
    <action    path="/initEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/showAddEvent.rdo" redirect="true" />
    </action>

    <action    path="/addEventUsingPage"
               type="edu.rpi.cct.uwcal.webclient.UWCalAddEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="error" path="/showAddEvent.rdo" redirect="true" />
      <forward name="doNothing" path="/showAddEvent.rdo" redirect="true" />
    </action>

    <action    path="/editEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalEditEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="edit" path="/showEditEvent.rdo" redirect="true" />
    </action>

    <action    path="/delEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalDelEventAction"
               name="calForm"
               scope="session"
               validate="false">
    </action>

    <action    path="/addEventRef"
               type="edu.rpi.cct.uwcal.webclient.UWCalAddEventRefAction"
               name="calForm"
               scope="session"
               validate="false">
    </action>

    <action    path="/delEventRef"
               type="edu.rpi.cct.uwcal.webclient.UWCalDelEventRefAction"
               name="calForm"
               scope="session"
               validate="false">
    </action>

    <action    path="/showPage"
               type="edu.rpi.cct.uwcal.webclient.UWCalAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/docs/showPage.jsp" />
    </action>

    <action    path="/manageLocations"
               type="edu.rpi.cct.uwcal.webclient.UWCalAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/showManageLocations.rdo" redirect="true" />
    </action>

    <action    path="/addLocation"
               type="edu.rpi.cct.uwcal.webclient.UWCalAddLocationAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="success" path="/showManageLocations.rdo" redirect="true" />
    </action>

    <action    path="/editLoc"
               type="edu.rpi.cct.uwcal.webclient.UWCalEditLocationAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="edit" path="/showEditLocation.rdo" redirect="true" />
      <forward name="success" path="/showManageLocations.rdo" redirect="true" />
    </action>

    <action    path="/delLocation"
               type="edu.rpi.cct.uwcal.webclient.UWCalDelLocationAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="referenced" path="/showManageLocations.rdo" redirect="true" />
      <forward name="success" path="/showManageLocations.rdo" redirect="true" />
    </action>

    <!-- ....................... mailing events ........................ -->

    <action    path="/initMailEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalFetchEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="notFound" path="/showMain.rdo" redirect="true" />
      <forward name="success" path="/showEmailOptions.rdo" redirect="true" />
    </action>

    <action    path="/mailEvent"
               type="edu.rpi.cct.uwcal.webclient.UWCalMailEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="noEvent" path="/showMain.rdo" redirect="true" />
      <forward name="retry" path="/showEmailOptions.rdo" redirect="true" />
      <forward name="success" path="/showMain.rdo" redirect="true" />
    </action>

    <!-- ....................... event alarms .......................... -->

    <action    path="/initEventAlarm"
               type="edu.rpi.cct.uwcal.webclient.UWCalFetchEventAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="notFound" path="/showMain.rdo" redirect="true" />
      <forward name="success" path="/showAlarmOptions.rdo" redirect="true" />
    </action>

    <action    path="/setAlarm"
               type="edu.rpi.cct.uwcal.webclient.UWCalSetAlarmAction"
               name="calForm"
               scope="session"
               validate="false">
      <forward name="noEvent" path="/showMain.rdo" redirect="true" />
      <forward name="retry" path="/showAlarmOptions.rdo" redirect="true" />
      <forward name="success" path="/showMain.rdo" redirect="true" />
    </action>

    <!-- ..................... subscriptionss .......................... -->

    <action    path="/subscribe"
               type="edu.rpi.cct.uwcal.webclient.UWCalSubscribeAction"
               name="calForm"
               scope="session"
               validate="false">
    </action>
  </action-mappings>
<!--               unknown="true" -->

  <!-- Below will be one or more comments which must not be edited or removed
       for the portlet build process to succeed. The comment will be replaced
        by some extra cofiguration.
       -->

 <!-- ========== Controller Configuration ================================ -->

  <controller pagePattern="$M$P" inputForward="true" processorClass="org.apache.portals.bridges.struts.PortletRequestProcessor"/>

  <message-resources parameter="client" null="true" />

</struts-config>

<!DOCTYPE ucalendar
[
  <!ENTITY nbsp "&#160;">
]>
    <ucalendar>
      <now>
        <date>
          20050729
        </date>
        <longdate>
          July 29, 2005
        </longdate>
        <shortdate>
          7/29/05
        </shortdate>
        <time>
          9:50 AM
        </time>
      </now>
      <currentdate>
        <date>
          20050729
        </date>
        <longdate>
          Friday, July 29, 2005
        </longdate>
        <shortdate>
          7/29/05
        </shortdate>
        <monthname>
          July
        </monthname>
      </currentdate>
      <firstday>
        <date>
          20050724
        </date>
        <longdate>
          Sunday, July 24, 2005
        </longdate>
        <shortdate>
          7/24/05
        </shortdate>
        <monthname>
          July
        </monthname>
      </firstday>
      <lastday>
        <date>
          20050730
        </date>
        <longdate>
          Saturday, July 30, 2005
        </longdate>
        <shortdate>
          7/30/05
        </shortdate>
        <monthname>
          July
        </monthname>
      </lastday>
      <previousdate>
        20050722
      </previousdate>
      <nextdate>
        20050805
      </nextdate>
      <periodname>
        Week
      </periodname>
      <multiday>
        true
      </multiday>
      <hour24>
        true
      </hour24>
      <title></title>
      <calid></calid>
      <search></search>
      <publicview>
        true
      </publicview>
      <guest>
        true
      </guest>
      <approot>
        http://bluefin.cc.mun.ca:8080/calrsrc
      </approot>
      <urlprefix>
        http://bluefin.cc.mun.ca:8080/cal
      </urlprefix>
      <urlpattern>
        /cal/DUMMYACTION.do
      </urlpattern>
      <personaluri>
        /ucal
      </personaluri>
      <publicuri>
        /cal
      </publicuri>
      <adminuri>
        /caladmin
      </adminuri>
      <urlPrefixes>
        <initialise>
          /cal/initialise.rdo
        </initialise>
        <showCals>
          /cal/showCals.rdo
        </showCals>
        <eventMore>
          /cal/showEventMore.rdo
        </eventMore>
        <setup>
          /cal/setup.do
        </setup>
        <selectFilter>
          /cal/selectFilter.do
        </selectFilter>
        <setView>
          /cal/setView.do
        </setView>
        <eventView>
          /cal/eventView.do
        </eventView>
        <initEvent>
          /cal/initEvent.do
        </initEvent>
        <addEvent>
          /cal/addEvent.do
        </addEvent>
        <addEventUsingPage>
          /cal/addEventUsingPage.do
        </addEventUsingPage>
        <editEvent>
          /cal/editEvent.do
        </editEvent>
        <delEvent>
          /cal/delEvent.do
        </delEvent>
        <delEventRef>
          /cal/delEventRef.do
        </delEventRef>
        <mailEvent>
          /cal/mailEvent.do
        </mailEvent>
        <showPage>
          /cal/showPage.do
        </showPage>
        <manageLocations>
          /cal/manageLocations.do
        </manageLocations>
        <addLocation>
          /cal/addLocation.do
        </addLocation>
        <editLocation>
          /cal/editLoc.do
        </editLocation>
        <delLocation>
          /cal/delLocation.do
        </delLocation>
        <subscribe>
          /cal/subscribe.do
        </subscribe>
        <initEventAlarm>
          /cal/initEventAlarm.do
        </initEventAlarm>
        <setAlarm>
          /cal/setAlarm.do
        </setAlarm>
        <addEventRef>
          /cal/addEventRef.do
        </addEventRef>
      </urlPrefixes>
      <confirmationid>
        JWPWVWIXBLXD3DRQ0
      </confirmationid>
      <page>
        eventscalendar
      </page>
      <eventscalendar>
        <year>
          <value>
            2005
          </value>
          <month>
            <value>
              07
            </value>
            <longname>
              July
            </longname>
            <shortname>
              July
            </shortname>
            <week>
              <value>
                1
              </value>
              <day>
                <filler>
                  false
                </filler>
                <value>
                  24
                </value>
                <name>
                  Sunday
                </name>
                <date>
                  20050724
                </date>
                <longdate>
                  July 24, 2005
                </longdate>
                <shortdate>
                  7/24/05
                </shortdate>
              </day>
            </week>
          </month>
        </year>
      </eventscalendar>
     </ucalendar>
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
 xmlns="http://java.sun.com/xml/ns/j2ee"; 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"; 
 version="2.4"> 

<display-name>UWCal public client</display-name>

  <context-param>
    <param-name>rpiappname</param-name>
    <param-value>DemoCal</param-value>
  </context-param>

  <context-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
  </context-param>

	
  <filter>
    <filter-name>XSLT Filter</filter-name>
    <filter-class>edu.rpi.sss.util.servlets.ConfiguredXSLTFilter</filter-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>directoryBrowsingDisallowed</param-name>
      <param-value>no</param-value>
    </init-param>
    <init-param>
      <param-name>ignoreContentType</param-name>
      <param-value>false</param-value>
    </init-param>
  </filter>

  <filter>
    <filter-name>SvcI Filter</filter-name>
    <filter-class>edu.rpi.cct.uwcal.webcommon.UWCalSvciFilter</filter-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
  </filter>

  <filter>
    <filter-name>Session Filter</filter-name>
    <filter-class>edu.rpi.sss.util.servlets.SessionFilter</filter-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>attributePrefix</param-name>
      <param-value>org.uwcal.portlet.DemoCal</param-value>
    </init-param>
  </filter>


  <filter-mapping>
    <filter-name>Session Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>SvcI Filter</filter-name>
    <url-pattern>*.do</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>SvcI Filter</filter-name>
    <url-pattern>*.rdo</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>XSLT Filter</filter-name>
    <url-pattern>*.rdo</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>	
  </filter-mapping>

    <listener>
        <listener-class>edu.rpi.sss.util.jsp.SessionListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.portals.bridges.struts.PortletServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>PublicCal</servlet-name>
        <display-name>PublicCal Wrapper</display-name>
        <description>Automated generated Portlet Wrapper</description>
        <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
        <init-param>
            <param-name>portlet-class</param-name>
            <param-value>org.apache.portals.bridges.struts.StrutsPortlet</param-value>
        </init-param>
        <init-param>
            <param-name>portlet-guid</param-name>
            <param-value>cal.PublicCal</param-value>
        </init-param>
    </servlet>
   <servlet-mapping>
         <servlet-name>action</servlet-name>
         <url-pattern>*.rdo</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>PublicCal</servlet-name>
        <url-pattern>/PublicCal/*</url-pattern>
    </servlet-mapping>
    <session-config/>
    <welcome-file-list>
        <welcome-file>docs/index.html</welcome-file>
    </welcome-file-list>

    <taglib>
        <taglib-uri>http://java.sun.com/portlet</taglib-uri>
        <taglib-location>/WEB-INF/tld/portlet.tld</taglib-location>
    </taglib>

    <resource-ref>
        <description>The calendar DS</description>
        <res-ref-name>jdbc/calDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
<%@ page contentType="text/xml;charset=UTF-8" buffer="none" language="java" %>
<%@ taglib uri="http://struts.apache.org/tags-logic"; prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean" %>
<%@ taglib uri="http://portals.apache.org/bridges/struts/tags-portlet-html"; 
prefix="html" %>
<%@ taglib uri="http://portals.apache.org/bridges/struts/tags-portlet-html-el"; 
prefix="html-el" %>

<%-- Load the header common to all pages --%>
<%@ include file="header.jsp" %>

<%-- the <page> element allows us to branch in our XSLT based on what page
    (what "state") we are in.  The value is hard coded into the top-level
    JSP pages for the calendar.  It has four possible values:

      1. eventscalendar - the event calendar tree from which we build our
                          day, week, month, and year views (main.jsp)
      2. event          - a single event (see eventMore.jsp)
      3. calendars      - the listing of calendars (see calendars.jsp)
      4. other          - an arbitrary page (see showPage.jsp)
--%>
<page>eventscalendar</page>
<bean:define id="dayViewName" name="calForm" property="viewTypeName[1]"/>

<%-- The events listing in a calendar tree --%>
<eventscalendar>
  <bean:define id="timeInfo" name="calForm"
               property="curTimeView.timePeriodInfo"/>
  <logic:iterate id="yearInfo" name="timeInfo" >
    <year>
      <value><bean:write name="yearInfo" property="year"/></value>
      <logic:iterate id="monthInfo" name="yearInfo" property="entries" >
        <month>
          <value><bean:write name="monthInfo" property="month"/></value>
          <longname><bean:write name="monthInfo" 
property="monthName"/></longname>
          <shortname><bean:write name="monthInfo" 
property="monthName"/></shortname>
          <logic:iterate id="weekInfo" name="monthInfo" property="entries" >
            <week>
              <value><bean:write name="weekInfo" property="weekOfYear"/></value>
              <logic:iterate id="dayInfo" name="weekInfo" property="entries" >
                <day>
                  <filler><bean:write name="dayInfo" 
property="filler"/></filler>
                  <%/* Fillers currently have no information */%>
                  <logic:equal name="dayInfo" property="filler" value="false">
                    <value><bean:write name="dayInfo" 
property="dayOfMonth"/></value>
                    <name><bean:write name="dayInfo" property="dayName"/></name>
                    <date><bean:write name="dayInfo" property="date"/></date>
                    <longdate><bean:write name="dayInfo" 
property="dateLong"/></longdate>
                    <shortdate><bean:write name="dayInfo" 
property="dateShort"/></shortdate>
                    <%/* Do not produce events if we are in the year view */%>
                    <logic:equal name="calForm"
                                    property="curTimeView.showData"
                                    value="true">
                      <logic:notEqual name="dayInfo" property="filler" 
value="true" >
                        <logic:notEmpty name="dayInfo" 
property="eventFormatters" >
                          <logic:iterate id="eventFmt" name="dayInfo"
                                         property="eventFormatters" >
                            <bean:define id="eventFormatter" name="eventFmt"
                                         toScope="request" />
                            <jsp:include page="emitEvent.jsp" />
                          </logic:iterate>
                        </logic:notEmpty>
                      </logic:notEqual>
                    </logic:equal>
                  </logic:equal>
                </day>
              </logic:iterate>
            </week>
          </logic:iterate>
        </month>
      </logic:iterate>
    </year>
  </logic:iterate>
</eventscalendar>

<%-- List of top-level ("important") calendars for menuing --%>
<calendars>
  <logic:present name="calForm" property="publicCalendars">
    <bean:define id="calendars" name="calForm" property="publicCalendars" />
    <logic:iterate id="calendar" name="calendars" >
      <calendar>
        <name><bean:write name="calendar" property="name"/></name>
        <id><bean:write name="calendar" property="id"/></id>
        <title><bean:write name="calendar" property="title"/></title>
        <description><bean:write name="calendar" 
property="description"/></description>
        <important>true</important>
      </calendar>
    </logic:iterate>
  </logic:present>
</calendars>

<%-- Produce date and time form elements for personal calendar to be used
     for creating the personal event entry form. --%>
<logic:equal name="calForm" property="guest" value="false">
  <eventform>
    <html:form action="addEvent">
      <title>
        <html:text property="newEvent.shortdesc"/></input>
      </title>
      <description>
        <html:textarea property="newEvent.longdesc"/>
      </description>
      <link>
        <html:text property="newEvent.link"/></input>
      </link>
      <location>
        <locationmenu>
          <html:select property="locationId">
            <html:optionsCollection property="locations"
                                    label="address"
                                    value="id"/>
          </html:select>
        </locationmenu>
        <locationtext>
          <html:text property="newLocation.address" /></input>
        </locationtext>
      </location>
      <startdate>
        <html:select property="eventStartDate.month">
         <html:options labelProperty="eventStartDate.monthLabels"
                        property="eventStartDate.monthVals"/>
        </html:select>
        <html:select property="eventStartDate.day">
          <html:options labelProperty="eventStartDate.dayLabels"
                        property="eventStartDate.dayVals"/>
        </html:select>
        <html:select property="eventStartDate.year">
          <html:options property="yearVals"/>
        </html:select>
      </startdate>
      <starttime>
        <html:select property="eventStartDate.hour">
          <html:options labelProperty="eventStartDate.hourLabels"
                        property="eventStartDate.hourVals"/>
        </html:select>
        <html:select property="eventStartDate.minute">
          <html:options labelProperty="eventStartDate.minuteLabels"
                        property="eventStartDate.minuteVals"/>
        </html:select>
        <logic:notEqual name="calForm" property="hour24" value="true" >
          <html:select property="eventStartDate.ampm">
            <html:options property="eventStartDate.ampmLabels"/>
          </html:select>
        </logic:notEqual>
      </starttime>
      <enddate>
        <html:select property="eventEndDate.month">
          <html:options labelProperty="eventEndDate.monthLabels"
                        property="eventEndDate.monthVals"/>
        </html:select>
        <html:select property="eventEndDate.day">
          <html:options labelProperty="eventEndDate.dayLabels"
                        property="eventEndDate.dayVals"/>
        </html:select>
        <html:select property="eventEndDate.year">
          <html:options property="yearVals"/>
        </html:select>
      </enddate>
      <endtime>
        <html:select property="eventEndDate.hour">
          <html:options labelProperty="eventEndDate.hourLabels"
                        property="eventEndDate.hourVals"/>
        </html:select>
        <html:select property="eventEndDate.minute">
          <html:options labelProperty="eventEndDate.minuteLabels"
                        property="eventEndDate.minuteVals"/>
        </html:select>
        <logic:notEqual name="calForm" property="hour24" value="true" >
          <html:select property="eventEndDate.ampm">
            <html:options property="eventEndDate.ampmLabels"/>
          </html:select>
        </logic:notEqual>
      </endtime>
    </html:form>
  </eventform>
</logic:equal>

<%@ include file="footer.jsp" %>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to