[Bedework-commit] r609 - in trunk/calendar3: bldfiles
common/src/edu/rpi/sss/util/jsp config/configs deployment
deployment/dumprestore/shellscr
deployment/publiccaldav/webapp deployment/termination/webapp
deployment/usercaldav/webapp deployment/webadmin/webapp
deployment/webconfig/webapp deployment/webpublic
deployment/webpublic/uportal2
deployment/webpublic/uportal2/resources
deployment/webpublic/uportal2/resources/demoskins
deployment/webpublic/uportal2/resources/demoskins/default
deployment/webpublic/uportal2/resources/demoskins/default/PDA
deployment/webpublic/uportal2/resources/demoskins/default/default
deployment/webpublic/uportal2/resources/demoskins/images
deployment/webpublic/uportal2/resources/demoskins/images/soecal
deployment/webpublic/uportal2/resources/demoskins/images/videocal
deployment/webpublic/webapp deployment/webuser/webapp docs
webcommon/src/org/bedework/webcommon
svnadmin at bedework.org
svnadmin at bedework.org
Tue Jun 20 09:42:17 EDT 2006
Author: douglm
Date: 2006-06-20 09:42:12 -0400 (Tue, 20 Jun 2006)
New Revision: 609
Added:
trunk/calendar3/deployment/webpublic/uportal2/
trunk/calendar3/deployment/webpublic/uportal2/build.xml
trunk/calendar3/deployment/webpublic/uportal2/pluto-portlet.tld
trunk/calendar3/deployment/webpublic/uportal2/portlet.xml
trunk/calendar3/deployment/webpublic/uportal2/resources/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/default.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/ical.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/vcal.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/xsltdir.properties
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/blue.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/cleanXml.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/common.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/default.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/errors.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/green.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/ical.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/jsToday.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/print.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/red.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/rss.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/vcal.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.css
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.xsl
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/xsltdir.properties
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/xsltdir.properties
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon-small.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/addref.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedework.ico
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo2.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/calIcon-sm.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/catIcon.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-left.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-right.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-left.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-right.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-left.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-right.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeBedeworkLogo.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeTitleBg.jpg
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/spacer.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-left.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-right.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-refresh.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-on.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon_small.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-print-icon.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-on.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-on.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-space.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-on.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-off.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-on.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-left.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-right.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-space.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/tentativeLines.gif
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/videocal/
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/videocal/calBackground1.jpg
trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/xsltdir.properties
trunk/calendar3/deployment/webpublic/uportal2/struts-portlet-config.xml
trunk/calendar3/deployment/webpublic/uportal2/struts-portlet.tld
Modified:
trunk/calendar3/bldfiles/buildwar.xml
trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java
trunk/calendar3/config/configs/democal.options.xml
trunk/calendar3/config/configs/democal.properties
trunk/calendar3/deployment/build.xml
trunk/calendar3/deployment/dumprestore/shellscr/build.xml
trunk/calendar3/deployment/publiccaldav/webapp/build.xml
trunk/calendar3/deployment/termination/webapp/build.xml
trunk/calendar3/deployment/usercaldav/webapp/build.xml
trunk/calendar3/deployment/webadmin/webapp/build.xml
trunk/calendar3/deployment/webconfig/webapp/build.xml
trunk/calendar3/deployment/webpublic/webapp/build.xml
trunk/calendar3/deployment/webuser/webapp/build.xml
trunk/calendar3/docs/BedeworkDeploymentManual.odt
trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
trunk/calendar3/webcommon/src/org/bedework/webcommon/ConfigBase.java
Log:
More uportal integration
When running as a portlet will now suffix the approot with "_" + protletPlatform.
Allows us to have a separate set of stylesheets for portlet mode as against stand-alone mode.
Committed a copy of the current set of standalone stylesheets ready for customization.
Also made more run-time properties available via the options object.
Modified: trunk/calendar3/bldfiles/buildwar.xml
===================================================================
--- trunk/calendar3/bldfiles/buildwar.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/bldfiles/buildwar.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -43,6 +43,7 @@
<target name="init" depends="init.common,init.uportal2,init.j2ee,init.standalone" />
<target name="init.common">
+ <!--
<condition property="org.bedework.build.for.jetspeed2">
<equals arg1="jetspeed2" arg2="${propval.app.portal.platform}"/>
</condition>
@@ -54,6 +55,7 @@
<condition property="org.bedework.build.for.jboss">
<equals arg1="jboss" arg2="${org.bedework.global.j2ee.platform}"/>
</condition>
+ -->
<!-- Destinations - where we build an unwrapped war -->
<property name="app.dest.war"
@@ -151,6 +153,9 @@
<filter token="APP-DESCRIPTION"
value="${propval.app.description}" />
+ <filter token="PORTAL-PLATFORM"
+ value="${propval.app.portal.platform}"/>
+
<filter token="SERVLET-CLASS"
value="${propval.app.servlet.class}"/>
@@ -177,6 +182,8 @@
value="${propval.app.default.contenttype}" />
<filter token="NOXSLT"
value="${propval.app.noxslt}" />
+ <filter token="APPLICATION-ROOT"
+ value="${propval.app.root}" />
<filter token="APP-GUESTMODE"
value="${propval.app.guestmode}" />
@@ -216,7 +223,12 @@
file="${org.bedework.config.properties}" />
<copy tofile="${app.dest.properties}/options.xml"
- file="${org.bedework.config.options}" />
+ file="${org.bedework.config.options}" >
+ <filterset>
+ <filter token="RPI-DEBUG" value="${app.debug.val}"/>
+ </filterset>
+ <filterset refid="property.filters" />
+ </copy>
<!-- Make a modified copy of the web.xml file -->
<copy tofile="${app.dest.web.xml}"
Modified: trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java
===================================================================
--- trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java 2006-06-20 13:42:12 UTC (rev 609)
@@ -182,7 +182,7 @@
private boolean noActionErrors = false;
- private boolean isPortlet;
+ protected boolean isPortlet;
/** This is the routine which does the work.
*
Modified: trunk/calendar3/config/configs/democal.options.xml
===================================================================
--- trunk/calendar3/config/configs/democal.options.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/config/configs/democal.options.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -85,6 +85,9 @@
<minIncrement>5</minIncrement>
<logPrefix>PubEventsAdmin</logPrefix>
+
+ <appRoot>@APPLICATION-ROOT@</appRoot>
+ <portalPlatform>@PORTAL-PLATFORM@</portalPlatform>
</CalAdmin>
<!-- ==================================================================
@@ -106,6 +109,9 @@
<logPrefix>PubEvents</logPrefix>
+ <appRoot>@APPLICATION-ROOT@</appRoot>
+ <portalPlatform>@PORTAL-PLATFORM@</portalPlatform>
+
<refreshAction>setup.do</refreshAction>
<refreshInterval>300</refreshInterval>
@@ -131,6 +137,9 @@
<logPrefix>SoEDept</logPrefix>
+ <appRoot>@APPLICATION-ROOT@</appRoot>
+ <portalPlatform>@PORTAL-PLATFORM@</portalPlatform>
+
<refreshAction>setup.do</refreshAction>
<refreshInterval>300</refreshInterval>
@@ -156,6 +165,9 @@
<logPrefix>PersonalCalendar</logPrefix>
+ <appRoot>@APPLICATION-ROOT@</appRoot>
+ <portalPlatform>@PORTAL-PLATFORM@</portalPlatform>
+
<refreshAction>setup.do</refreshAction>
<refreshInterval>300</refreshInterval>
</UserCal>
Modified: trunk/calendar3/config/configs/democal.properties
===================================================================
--- trunk/calendar3/config/configs/democal.properties 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/config/configs/democal.properties 2006-06-20 13:42:12 UTC (rev 609)
@@ -98,6 +98,8 @@
org.bedework.app.Events.version=3.1
org.bedework.app.Events.default.contenttype=text/xml
org.bedework.app.Events.web.xml=guest/web.xml
+#org.bedework.app.Events.portal.platform=uportal2
+#org.bedework.app.Events.portlet.name=PublicCal
org.bedework.app.Events.war.name=cal
org.bedework.app.Events.ear.name=cal
Modified: trunk/calendar3/deployment/build.xml
===================================================================
--- trunk/calendar3/deployment/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -242,6 +242,22 @@
<globmapper from="org.bedework.app.${org.bedework.deploy.name}.*" to="propval.app.*"/>
</propertyset>
+ <!--
+ <property name="${propval.app.portal.platform}" value="" />
+
+ <condition property="org.bedework.build.for.jetspeed2">
+ <equals arg1="jetspeed2" arg2="${propval.app.portal.platform}"/>
+ </condition>
+
+ <condition property="org.bedework.build.for.uportal2">
+ <equals arg1="uportal2" arg2="${propval.app.portal.platform}"/>
+ </condition>
+
+ <condition property="org.bedework.build.for.jboss">
+ <equals arg1="jboss" arg2="${org.bedework.global.j2ee.platform}"/>
+ </condition>
+ -->
+
<property name="org.bedework.deploy.type.dir"
location="${org.bedework.deployment.base}/termination" />
@@ -285,6 +301,22 @@
<globmapper from="org.bedework.app.${org.bedework.deploy.name}.*" to="propval.app.*"/>
</propertyset>
+ <!--
+ <property name="${propval.app.portal.platform}" value="" />
+
+ <condition property="org.bedework.build.for.jetspeed2">
+ <equals arg1="jetspeed2" arg2="${propval.app.portal.platform}"/>
+ </condition>
+
+ <condition property="org.bedework.build.for.uportal2">
+ <equals arg1="uportal2" arg2="${propval.app.portal.platform}"/>
+ </condition>
+
+ <condition property="org.bedework.build.for.jboss">
+ <equals arg1="jboss" arg2="${org.bedework.global.j2ee.platform}"/>
+ </condition>
+ -->
+
<property name="org.bedework.deploy.type.dir"
location="${org.bedework.deployment.base}/${org.bedework.deploy.type}" />
Modified: trunk/calendar3/deployment/dumprestore/shellscr/build.xml
===================================================================
--- trunk/calendar3/deployment/dumprestore/shellscr/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/dumprestore/shellscr/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwdumpres.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init" >
<dirname property="this.dir" file="${ant.file}"/>
Modified: trunk/calendar3/deployment/publiccaldav/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/publiccaldav/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/publiccaldav/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwpubcaldav.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init" >
<!-- and define some properties based on those -->
<property name="app.war.file"
Modified: trunk/calendar3/deployment/termination/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/termination/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/termination/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwpubcaldav.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init">
</target>
Modified: trunk/calendar3/deployment/usercaldav/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/usercaldav/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/usercaldav/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwusercaldav.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init" >
<!-- and define some properties based on those -->
<property name="app.war.file"
Modified: trunk/calendar3/deployment/webadmin/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/webadmin/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/webadmin/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwadmin.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init">
<!-- and define some properties based on those -->
<property name="app.war.file"
Modified: trunk/calendar3/deployment/webconfig/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/webconfig/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/webconfig/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwconfig.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init" >
<!-- and define some properties based on those -->
<property name="app.war.file"
Added: trunk/calendar3/deployment/webpublic/uportal2/build.xml
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/build.xml (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+
+<!-- ===================================================================
+ uportal2 portlet deployer
+ =================================================================== -->
+
+<project name="bwpublic.uportal2.deploy" default="deploy" >
+ <target name="init">
+ <!-- and define some properties based on those -->
+ <property name="app.war.file"
+ location="${dist.home}/${propval.app.war.name}.war" />
+
+ <dirname property="this.dir" file="${ant.file}"/>
+
+ <property name="app.sou.dir" location="${org.bedework.webclient.base}" />
+
+ <!-- Flag as struts -->
+ <property name="org.bedework.strutsapp" value="true" />
+
+ <!-- Properties that differ from the personal client -->
+ <property name="app.web.xml"
+ value="${app.sou.dir}/war/WEB-INF/publicweb.xml" />
+
+ <!-- This should be in the config stuff -->
+ <property name="propval.directory.browsing.disallowed"
+ value="${app.directory.browsing.disallowed}" />
+
+ <property name="propval.app.guestmode" value="true" />
+
+ <property name="app.resources.dir"
+ location="${this.dir}/resources" />
+ </target>
+
+ <!-- =================================================================
+ The "deploy" target first builds a configured component then copies
+ all required files to the appropriate servlet container directories.
+
+ Currently this only works for the quickstart distribution.
+ For example, it does not handle deploying into jboss and copying
+ resource files (images, stylesheets) to external locations.
+ ================================================================= -->
+
+ <target name="deploy" depends="init,build.configured" >
+ <!-- Copy the resources into the server -->
+ <echo message="###################${app.resources.dir}/${propval.app.skinset.name}" />
+ <delete dir="${org.bedework.appserver.dir}/${propval.app.resources.dir}_${propval.app.portal.platform}" />
+ <copy todir="${org.bedework.appserver.dir}/${propval.app.resources.dir}_${propval.app.portal.platform}">
+ <fileset dir="${app.resources.dir}/${propval.app.skinset.name}" />
+ </copy>
+ </target>
+
+ <target name="build.configured" depends="init" >
+ </target>
+</project>
+
Added: trunk/calendar3/deployment/webpublic/uportal2/pluto-portlet.tld
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/pluto-portlet.tld (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/pluto-portlet.tld 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib PUBLIC
+ "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
+ "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
+<taglib>
+ <tlibversion>1.0</tlibversion>
+ <jspversion>1.1</jspversion>
+ <shortname>portlet</shortname>
+ <uri>http://java.sun.com/portlet</uri>
+ <tag>
+ <name>defineObjects</name>
+ <tagclass>org.apache.pluto.tags.DefineObjectsTag</tagclass>
+ <teiclass>org.apache.pluto.tags.DefineObjectsTag$TEI</teiclass>
+ <bodycontent>empty</bodycontent>
+ </tag>
+ <tag>
+ <name>param</name>
+ <tagclass>org.apache.pluto.tags.ParamTag</tagclass>
+ <bodycontent>empty</bodycontent>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>actionURL</name>
+ <tagclass>org.apache.pluto.tags.ActionURLTag</tagclass>
+ <teiclass>org.apache.pluto.tags.BasicURLTag$TEI</teiclass>
+ <bodycontent>JSP</bodycontent>
+ <attribute>
+ <name>windowState</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>portletMode</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>secure</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>renderURL</name>
+ <tagclass>org.apache.pluto.tags.RenderURLTag</tagclass>
+ <teiclass>org.apache.pluto.tags.BasicURLTag$TEI</teiclass>
+ <bodycontent>JSP</bodycontent>
+ <attribute>
+ <name>windowState</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>portletMode</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>secure</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>namespace</name>
+ <tagclass>org.apache.pluto.tags.NamespaceTag</tagclass>
+ <bodycontent>empty</bodycontent>
+ </tag>
+</taglib>
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/portlet.xml
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/portlet.xml (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/portlet.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Based on jpetstore example application with contributions from:
+
+ Author: Xavier Lawrence @ jahia . com
+ Author: Mike Douglass douglm at rpi.edu
+-->
+<portlet-app id="calApp" version="1.0">
+ <portlet id="PublicEventsPortlet">
+ <portlet-name>PublicCal</portlet-name>
+ <display-name>Public Events Display</display-name>
+ <portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class>
+ <init-param>
+ <name>ServletContextProvider</name>
+ <value>ca.mun.portal.strutsbridge.PortalServletContextProvider</value>
+ </init-param>
+ <init-param>
+ <name>ViewPage</name>
+ <value>/initialise.rdo</value>
+ </init-param>
+ <description>
+ The Bedework application displays public events.
+ </description>
+ <expiration-cache>-1</expiration-cache>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ <!--<portlet-mode>HELP</portlet-mode>-->
+ </supports>
+ <portlet-info>
+ <title>PublicCal</title>
+ <short-title>PublicCal</short-title>
+ <keywords>Struts, Bedework, Calendar, Public, Events</keywords>
+ </portlet-info>
+ </portlet>
+</portlet-app>
+
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/default.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/default.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/default.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,469 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="html"
+ indent="yes"
+ media-type="text/html"
+ doctype-public="-//W3C//DTD HTML 3.2 Final//EN"
+ standalone="yes"
+/>
+ <!-- ============================ -->
+ <!-- PDA STYLESHEET -->
+ <!-- designed for Palm Treo 600 -->
+ <!-- ============================ -->
+
+ <!-- DEFINE GLOBAL CONSTANTS -->
+ <!-- URL of html resources (images, css, other html); by default this is
+ set to the application root -->
+ <xsl:variable name="resourcesRoot" select="/ucalendar/approot"/>
+
+ <!-- URL of the XSL template directory -->
+ <!-- The approot is an appropriate place to put
+ included stylesheets and xml fragments. These are generally
+ referenced relatively (like errors.xsl and messages.xsl above);
+ this variable is here for your convenience if you choose to
+ reference it explicitly. It is not used in this stylesheet, however,
+ and can be safely removed if you so choose. -->
+ <xsl:variable name="appRoot" select="/ucalendar/approot"/>
+
+ <!-- URL of the web application - includes web context -->
+ <xsl:variable name="urlPrefix" select="/ucalendar/urlprefix"/>
+
+ <xsl:variable name="prevdate" select="/ucalendar/previousdate"/>
+ <xsl:variable name="nextdate" select="/ucalendar/nextdate"/>
+ <xsl:variable name="curdate" select="/ucalendar/currentdate"/>
+
+ <!-- MAIN TEMPLATE -->
+ <xsl:template match="/">
+ <html lang="en">
+ <head>
+ <title>Calendar of Events</title>
+ </head>
+ <body>
+ <xsl:call-template name="headBar"/>
+ <!-- <xsl:call-template name="alerts"/> -->
+ <xsl:choose>
+ <xsl:when test="/ucalendar/page='event'">
+ <!-- show an event -->
+ <xsl:apply-templates select="/ucalendar/event"/>
+ </xsl:when>
+ <xsl:when test="/ucalendar/page='calendars'">
+ <!-- show a list of all calendars -->
+ <xsl:apply-templates select="/ucalendar/calendars"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- otherwise, show the eventsCalendar -->
+ <!-- main eventCalendar content -->
+ <xsl:call-template name="listView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- <xsl:if test="/ucalendar/periodname!='Year' and /ucalendar/periodname!='Day'">
+ <p align="center">
+ <xsl:call-template name="searchBar"/>
+ <xsl:call-template name="navigation"/>
+ </p>
+ </xsl:if>-->
+ <!-- footer -->
+ <xsl:call-template name="footer"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!--==== SINGLE EVENT ====-->
+ <xsl:template match="event">
+ <table id="eventTable" cellpadding="0" cellspacing="0">
+ <tr>
+ <th align="left" valign="top">Event:</th>
+ <th align="left" valign="top">
+ <xsl:choose>
+ <xsl:when test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}">
+ <xsl:value-of select="summary"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="summary"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </th>
+ </tr>
+ <tr>
+ <td valign="top">When:</td>
+ <td valign="top">
+ <!-- was using abbrev dayname: substring(start/dayname,1,3) -->
+ <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text>
+ <span class="time"><xsl:value-of select="start/time"/></span>
+ <xsl:if test="end/time != '' or end/longdate != start/longdate"> - </xsl:if>
+ <xsl:if test="end/longdate != start/longdate"><xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text></xsl:if>
+ <xsl:if test="end/time != ''"><span class="time"><xsl:value-of select="end/time"/></span></xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">Where:</td>
+ <td valign="top">
+ <xsl:choose>
+ <xsl:when test="location/link=''">
+ <xsl:value-of select="location/address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="locationLink" select="location/link"/>
+ <a href="{$locationLink}">
+ <xsl:value-of select="location/address"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="location/subaddress!=''">
+ <br/><xsl:value-of select="location/subaddress"/>
+ </xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">Desc:</td>
+ <td valign="top">
+ <xsl:value-of select="description"/>
+ </td>
+ </tr>
+ <xsl:if test="cost!=''">
+ <tr>
+ <td valign="top">Cost:</td>
+ <td colspan="2" valign="top"><xsl:value-of select="cost"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="link != ''">
+ <tr>
+ <td valign="top">See:</td>
+ <td valign="top">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}"><xsl:value-of select="link"/></a>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ <tr>
+ <td valign="top">Contact:</td>
+ <td valign="top">
+ <xsl:choose>
+ <xsl:when test="sponsor/link=''">
+ <xsl:value-of select="sponsor/name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sponsorLink" select="sponsor/link"/>
+ <a href="{$sponsorLink}">
+ <xsl:value-of select="sponsor/name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="sponsor/phone!=''">
+ <br /><xsl:value-of select="sponsor/phone"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ <p align="center">
+ <xsl:variable name="id" select="id"/>
+ <xsl:variable name="vcalName" select="concat($id,'.vcs')"/>
+ <b>
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}&nocache=no&skinName=vcal&contentType=text/calendar&contentName={$vcalName}" title="Download event as vCal">
+ Download this Event
+ </a>
+ </b>
+ </p>
+ </xsl:template>
+
+ <!--==== LIST VIEW (for day, week, and month) ====-->
+ <xsl:template name="listView">
+ <xsl:choose>
+ <xsl:when test="count(/ucalendar/eventscalendar/year/month/week/day/event)=0">
+ There are no events posted
+ <xsl:choose>
+ <xsl:when test="/ucalendar/periodname='Day'">
+ today<xsl:if test="/ucalendar/title!=''"> for <strong><xsl:value-of select="/ucalendar/title"/></strong></xsl:if><xsl:if test="/ucalendar/search!=''"> for search term <strong>"<xsl:value-of select="/ucalendar/search"/>"</strong></xsl:if>.
+ </xsl:when>
+ <xsl:when test="/ucalendar/periodname='Month'">
+ this month<xsl:if test="/ucalendar/title!=''"> for <strong><xsl:value-of select="/ucalendar/title"/></strong></xsl:if><xsl:if test="/ucalendar/search!=''"> for search term <strong>"<xsl:value-of select="/ucalendar/search"/>"</strong></xsl:if>.
+ </xsl:when>
+ <xsl:otherwise>
+ this week<xsl:if test="/ucalendar/title!=''"> for <strong><xsl:value-of select="/ucalendar/title"/></strong></xsl:if><xsl:if test="/ucalendar/search!=''"> for search term <strong>"<xsl:value-of select="/ucalendar/search"/>"</strong></xsl:if>.
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="/ucalendar/eventscalendar/year/month/week/day[count(event)!=0]">
+ <xsl:if test="/ucalendar/periodname='Week' or /ucalendar/periodname='Month' or /ucalendar/periodname=''">
+ <h3>
+ <xsl:variable name="date" select="date"/>
+ <a href="{$urlPrefix}/setView.do?viewType=dayView&date={$date}">
+ <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/>
+ </a>
+ </h3>
+ </xsl:if>
+ <xsl:for-each select="event">
+ <xsl:variable name="id" select="id"/>
+ <dl>
+ <dt>
+ <xsl:choose>
+ <xsl:when test="start/time!=''">
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">
+ <xsl:choose>
+ <xsl:when test="parent::day/shortdate != start/shortdate">
+ <span class="littleArrow">«</span> 
+ <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="start/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">
+ All day
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="end/time!=''">
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">-</a>
+ </xsl:when>
+ <xsl:otherwise>
+  
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="end/time!=''">
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">
+ <xsl:choose>
+ <xsl:when test="parent::day/shortdate != end/shortdate">
+ <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/>
+  <span class="littleArrow">»</span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="end/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+  
+ </xsl:otherwise>
+ </xsl:choose>
+ </dt>
+ <dd>
+ <xsl:choose>
+ <xsl:when test="/ucalendar/appvar[key='summaryMode']/value='details'">
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">
+ <strong><xsl:value-of select="summary"/>: </strong>
+ <xsl:value-of select="description"/> 
+ <em>
+ <xsl:value-of select="location/address"/>
+ <xsl:if test="location/subaddress != ''">
+ , <xsl:value-of select="location/subaddress"/>
+ </xsl:if>. 
+ <xsl:if test="cost!=''">
+ <xsl:value-of select="cost"/>. 
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ Contact: <xsl:value-of select="sponsor/name"/>
+ </xsl:if>
+ </em>
+ </a>
+ <xsl:if test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/eventView.do?eventId={$id}">
+ <xsl:value-of select="summary"/>, <xsl:value-of select="location/address"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dd>
+ </dl>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--==== CALENDARS PAGE ====-->
+ <xsl:template match="calendars">
+ <xsl:variable name="topLevelCalCount" select="count(/ucalendar/calendars/calendar)"/>
+ <p><b>All Calendars</b><br />
+ Select a calendar from the list below to see only that calendar's events.</p>
+ <xsl:apply-templates select="calendar"/>
+ </xsl:template>
+
+ <xsl:template match="calendar">
+ <xsl:variable name="id" select="id"/>
+ <h2><a href="{$urlPrefix}/selectCalendar.do?calId={$id}"><xsl:value-of select="title"/></a></h2>
+ <ul>
+ <xsl:for-each select="calendar">
+ <xsl:sort select="title" order="ascending" case-order="upper-first"/>
+ <xsl:variable name="id" select="id"/>
+ <li><a href="{$urlPrefix}/selectCalendar.do?calId={$id}"><xsl:value-of select="title"/></a></li>
+ </xsl:for-each>
+ </ul>
+ </xsl:template>
+
+ <!--==== BLOCK (named) TEMPLATES and NAVIGATION ====-->
+ <!-- these templates are separated out for convenience and to simplify the default template -->
+
+ <xsl:template name="headBar">
+ <p align="center">
+ <b>Rensselaer Events Calendar</b><br />
+ <xsl:if test="/ucalendar/page!='calendars' and /ucalendar/page!='event'">
+ <a href="{$urlPrefix}/setView.do?date={$prevdate}"><img src="{$resourcesRoot}/images/rensselaer/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a>
+ <xsl:text> </xsl:text>
+ <xsl:choose>
+ <xsl:when test="/ucalendar/periodname='Day'">
+ <xsl:value-of select="substring(/ucalendar/eventscalendar/year/month/week/day/name,1,3)"/>, <xsl:value-of select="/ucalendar/eventscalendar/year/month/shortname"/> <xsl:value-of select="/ucalendar/eventscalendar/year/month/week/day/value"/>, <xsl:value-of select="/ucalendar/eventscalendar/year/value"/>
+ </xsl:when>
+ <xsl:when test="/ucalendar/periodname='Week' or /ucalendar/periodname=''">
+ Week of <xsl:value-of select="/ucalendar/eventscalendar/year/month/shortname"/> <xsl:value-of select="/ucalendar/eventscalendar/year/month/week/day/value"/>, <xsl:value-of select="/ucalendar/eventscalendar/year/value"/>
+ </xsl:when>
+ <xsl:when test="/ucalendar/periodname='Month'">
+ <xsl:value-of select="/ucalendar/eventscalendar/year/month/longname"/>, <xsl:value-of select="/ucalendar/eventscalendar/year/value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/ucalendar/eventscalendar/year/value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <a href="{$urlPrefix}/setView.do?date={$nextdate}"><img src="{$resourcesRoot}/images/rensselaer/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a><br />
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="/ucalendar/page='eventscalendar'">
+ <xsl:choose>
+ <xsl:when test="/ucalendar/periodname='Day'">
+ day
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/setView.do?viewType=dayView&date={$curdate}">day</a>
+ </xsl:otherwise>
+ </xsl:choose> |
+ <xsl:choose>
+ <xsl:when test="/ucalendar/periodname='Week' or /ucalendar/periodname=''">
+ week
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/setView.do?viewType=weekView&date={$curdate}">week</a>
+ </xsl:otherwise>
+ </xsl:choose> |
+ <xsl:choose>
+ <xsl:when test="/ucalendar/periodname='Month'">
+ month
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/setView.do?viewType=monthView&date={$curdate}">month</a>
+ </xsl:otherwise>
+ </xsl:choose> |
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$urlPrefix}/setView.do?viewType=dayView&date={$curdate}">day</a> |
+ <a href="{$urlPrefix}/setView.do?viewType=weekView&date={$curdate}">week</a> |
+ <a href="{$urlPrefix}/setView.do?viewType=monthView&date={$curdate}">month</a> |
+ </xsl:otherwise>
+ </xsl:choose>
+ <a href="{$urlPrefix}/setView.do?viewType=todayView&date={$curdate}">
+ today
+ </a><br />
+ <xsl:choose>
+ <xsl:when test="/ucalendar/title!=''">
+ Calendar: <xsl:value-of select="/ucalendar/title"/><xsl:text> </xsl:text>
+ [<a href="{$urlPrefix}/selectCalendar.do?calId=">clear</a>]
+ </xsl:when>
+ <xsl:when test="/ucalendar/search!=''">
+ Current search: <xsl:value-of select="/ucalendar/search"/><xsl:text> </xsl:text>
+ [<a href="{$urlPrefix}/selectCalendar.do?calId=">clear</a>]
+ </xsl:when>
+ <xsl:otherwise>
+ Current calendar: All [<a href="{$urlPrefix}/showCals.do">select</a>]
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+ </xsl:template>
+
+ <xsl:template name="alerts">
+ <table id="alertsTable">
+ <tr>
+ <td>
+ I'm an alert
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!-- <xsl:template name="searchBar">
+ <form name="calForm" method="post" action="{$urlPrefix}/selectCalendar.do">Search: <input type="text" name="searchString" size="30" value=""/><input type="submit" value="go"/></form>
+ </xsl:template> -->
+
+ <xsl:template name="dateSelect">
+ <form name="calForm" method="get" action="{$urlPrefix}/setView.do">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:if test="/ucalendar/periodname!='Year'">
+ <td>
+ <select name="viewStartDate.month">
+ <xsl:for-each select="/ucalendar/monthvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/ucalendar/monthvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/ucalendar/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/ucalendar/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ <xsl:if test="/ucalendar/periodname!='Month'">
+ <td>
+ <select name="viewStartDate.day">
+ <xsl:for-each select="/ucalendar/dayvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/ucalendar/dayvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/ucalendar/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/ucalendar/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ </xsl:if>
+ </xsl:if>
+ <td>
+ <xsl:variable name="temp" select="/ucalendar/yearvalues/start"/>
+ <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/>
+ </td>
+ <td>
+ <input name="submit" type="submit" value="go"/>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </xsl:template>
+
+ <xsl:template name="footer">
+ <p align="center">
+ <a href="http://www.rpi.edu/pda/">Return to the Portable Rensselaer</a><br />
+ <small>Maintained by C&CT, DotCIO<br />Rensselaer Polytechnic Institute</small>
+ </p>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/ical.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/ical.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/ical.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="text"
+ indent="no"
+ media-type="text/calendar"
+/>
+
+<xsl:strip-space elements="*"/>
+ <!-- ================= -->
+ <!-- iCAL STYLESHEET -->
+ <!-- ================= -->
+
+ <!-- MAIN TEMPLATE -->
+ <xsl:template match="/"><xsl:apply-templates select="/ucalendar//event"/></xsl:template>
+
+ <!--==== SINGLE EVENT ====-->
+ <xsl:template match="event">
+BEGIN:VCALENDAR
+BEGIN:VEVENT
+ORGANIZER:<xsl:value-of select="sponsor/name"/>
+MAILTO:<xsl:value-of select="sponsor/email"/>
+DTSTART:<xsl:value-of select="start/fourdigityear"/><xsl:value-of select="start/twodigitmonth"/><xsl:value-of select="start/twodigitday"/>T<xsl:value-of select="start/twodigithour24"/><xsl:value-of select="start/twodigitminute"/>00
+DTEND:<xsl:value-of select="end/fourdigityear"/><xsl:value-of select="end/twodigitmonth"/><xsl:value-of select="end/twodigitday"/>T<xsl:choose><xsl:when test="start/time='' and end/time=''">235959</xsl:when><xsl:when test="(end/longdate = start/longdate) and (end/twodigithour24 < start/twodigithour24)"><xsl:value-of select="start/twodigithour24"/><xsl:value-of select="end/twodigitminute"/>00</xsl:when><xsl:otherwise><xsl:value-of select="end/twodigithour24"/><xsl:value-of select="end/twodigitminute"/>00</xsl:otherwise></xsl:choose>
+LOCATION:<xsl:value-of select="location/address"/>
+TRANSP:OPAQUE
+SEQUENCE:0
+UID:<xsl:value-of select="startdate"/><xsl:value-of select="starttime"/>_<xsl:value-of select="id"/>@<xsl:value-of select="/ucalendar/urlprefix"/>
+DESCRIPTION:<xsl:value-of select="normalize-space(description)"/><xsl:if test="cost!=''">\nCost: <xsl:value-of select="cost"/></xsl:if><xsl:if test="sponsor/name!=''">\nSponsor: <xsl:value-of select="sponsor/name"/></xsl:if><xsl:if test="sponsor/phone!=''">\nSponsor phone: <xsl:value-of select="sponsor/phone"/></xsl:if>\n
+SUMMARY:<xsl:value-of select="summary"/>
+PRIORITY:5
+CLASS:PUBLIC
+END:VEVENT
+END:VCALENDAR
+
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/vcal.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/vcal.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/vcal.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="text"
+ indent="no"
+ media-type="text/x-vCalendar"
+ standalone="yes"
+/>
+
+<xsl:strip-space elements="*"/>
+<!-- ================= -->
+<!-- vCAL STYLESHEET -->
+<!-- ================= -->
+<xsl:template match="/">BEGIN:VCALENDAR<xsl:apply-templates select="/ucalendar//event"/>END:VCALENDAR</xsl:template>
+<xsl:template match="event">
+BEGIN:VEVENT
+ORGANIZER:<xsl:value-of select="sponsor/name"/>
+MAILTO:<xsl:value-of select="sponsor/email"/>
+DTSTART:<xsl:value-of select="start/fourdigityear"/><xsl:value-of select="start/twodigitmonth"/><xsl:value-of select="start/twodigitday"/>T<xsl:value-of select="start/twodigithour24"/><xsl:value-of select="start/twodigitminute"/>00
+DTEND:<xsl:value-of select="end/fourdigityear"/><xsl:value-of select="end/twodigitmonth"/><xsl:value-of select="end/twodigitday"/>T<xsl:choose><xsl:when test="start/time='' and end/time=''">235959</xsl:when><xsl:when test="(end/longdate = start/longdate) and (end/twodigithour24 < start/twodigithour24)"><xsl:value-of select="start/twodigithour24"/><xsl:value-of select="end/twodigitminute"/>00</xsl:when><xsl:otherwise><xsl:value-of select="end/twodigithour24"/><xsl:value-of select="end/twodigitminute"/>00</xsl:otherwise></xsl:choose>
+LOCATION:<xsl:value-of select="location/address"/>
+TRANSP:OPAQUE
+SEQUENCE:0
+UID:<xsl:value-of select="startdate"/><xsl:value-of select="starttime"/>_<xsl:value-of select="id"/>@<xsl:value-of select="/ucalendar/urlprefix"/>
+DESCRIPTION:<xsl:value-of select="normalize-space(description)"/><xsl:if test="cost!=''">\nCost: <xsl:value-of select="cost"/></xsl:if><xsl:if test="sponsor/name!=''">\nSponsor: <xsl:value-of select="sponsor/name"/></xsl:if><xsl:if test="sponsor/phone!=''">\nSponsor phone: <xsl:value-of select="sponsor/phone"/></xsl:if>\n
+SUMMARY:<xsl:value-of select="summary"/>
+PRIORITY:5
+CLASS:PUBLIC
+CATEGORIES:<xsl:choose><xsl:when test="/ucalendar/title!=''">edu.rpi.maincalendar.<xsl:value-of select="/ucalendar/title"/></xsl:when><xsl:otherwise>edu.rpi.maincalendar</xsl:otherwise></xsl:choose>
+END:VEVENT
+</xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/PDA/xsltdir.properties
===================================================================
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/blue.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/blue.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/blue.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,845 @@
+body {
+ font-family : Arial, Helvetica, sans-serif;
+ font-size: 100%; /* needed for IE */
+ background-color : white;
+ color : black;
+ padding: 0.75em 1em 0em 1em;
+ min-width: 700px;
+}
+#logoTable {
+ padding: 0em;
+ margin: 0em;
+}
+#logoTable img {
+ display: inline;
+ padding: 0 0 1px 5px;
+}
+#logoTable #logoCell {
+ white-space: nowrap;
+ font-weight: bold;
+ font-size: 2em;
+}
+#logoTable #schoolLinksCell {
+ vertical-align: bottom;
+ text-align: right;
+ font-size: 0.8em;
+ white-space : nowrap;
+ padding: 0 2px 2px 0;
+}
+#logoTable #schoolLinksCell h2 {
+ margin: 0 0 2px 0;
+ padding: 0;
+ font-size: 2em;
+ color: #444;
+ background-color: transparent;
+ border: none;
+}
+#logoTable #schoolLinksCell a:link,
+#logoTable #schoolLinksCell a:visited,
+#logoTable #schoolLinksCell a:active {
+ background-color: transparent;
+ color: #999;
+ text-decoration: none;
+}
+#logoTable #schoolLinksCell a:hover {
+ background-color: #eee;
+ color: #333;
+ text-decoration: none;
+}
+#curDateRangeTable {
+ width: 100%;
+ height: 26px;
+ background: #2c5f89 url(../../images/curDateRangeBlue.gif) repeat-x bottom;
+ color : #eee;
+ margin: 0em;
+ font-weight : bold;
+ text-align : center;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+#curDateRangeTable td {
+ padding-top: 5px;
+ padding-bottom: 1px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+#curDateRangeTable td.sideBarOpenCloseIcon {
+ background: url(../../images/curDateRangeBlue-left.gif) no-repeat top left;
+ color: inherit;
+ width: 200px;
+}
+#curDateRangeTable td.date {
+ font-weight : bold;
+ text-align : center;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint {
+ background: url(../../images/curDateRangeBlue-right.gif) no-repeat top right;
+ color: inherit;
+ width: 200px;
+ font-weight : bold;
+ text-align : right;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint img {
+ position: relative;
+ top: 3px;
+}
+#curDateRangeTable td.rssPrint a:link,
+#curDateRangeTable td.rssPrint a:active,
+#curDateRangeTable td.rssPrint a:visited {
+ font-size: 10px;
+ color: #eee;
+ background-color: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+ padding: 0;
+ text-decoration: none;
+ margin-right: 0.5em;
+ position: relative;
+ top: -3px;
+}
+#curDateRangeTable td.rssPrint a:hover {
+ color: #663;
+ background-color: #fff;
+}
+#curDateRangeTable td.rssPrint a.rss:link,
+#curDateRangeTable td.rssPrint a.rss:active,
+#curDateRangeTable td.rssPrint a.rss:visited {
+ font-size: 10px;
+ font-weight: bold;
+ color: #444;
+ background-color: #ddd;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ padding: 0px 1px 0px 1px;
+ text-decoration: none;
+ margin-right: 0.5em;
+ margin-left: 2px;
+ position: relative;
+ top: -3px;
+ border: solid 1px #666;
+}
+#curDateRangeTable td.rssPrint a.rss:hover {
+ color: #900;
+ background-color: #fff;
+}
+#searchBarTable {
+ margin: 0px;
+ padding: 0em;
+ background-color : #eee;
+ color: black;
+ font-size: 0.9em;
+}
+#searchBarTable .leftCell {
+ margin: 0px;
+ padding: 0em;
+ border-left: 3px solid #aaa;
+ padding: 0.1em 0 0 0.5em;
+ white-space: nowrap;
+}
+#searchBarTable .leftCell .link {
+ font-size: 0.8em;
+ padding-left: 1em;
+ color: #999;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a {
+ color: #888;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+#searchBarTable .rightCell {
+ margin: 0px;
+ padding: 0em;
+ text-align: right;
+ border-right: 3px solid #aaa;
+ padding: 0.1em 0.1em 0em 0em;
+ white-space: nowrap;
+}
+#searchBarTable form {
+ display: inline;
+ margin: 0px 0px 1px 0px;
+ padding: 0em;
+}
+#tabsTable {
+ margin: 0em;
+ padding: 4px 0px 0px 0px;
+ text-align: center;
+ background-color: #333;
+ color: #eee;
+}
+#tabsTable .centerCell a {
+ text-decoration: none;
+ color: #eee;
+}
+#tabsTable .centerCell img {
+ margin-right: 1px;
+}
+#tabsTable .rightCell {
+ background : url(../../images/demo/std-tab-space.gif);
+ padding-right: 0.5em;
+}
+#navigationBarTable {
+ font-size: 0.8em;
+ margin: 0em;
+ padding: 0em;
+ vertical-align: top;
+ border-left : 2px solid #aaa;
+ border-right : 2px solid #aaa;
+ border-bottom: 1px solid Gray;
+}
+#navigationBarTable a {
+ text-decoration: none;
+ white-space: nowrap;
+}
+#navigationBarTable td {
+ vertical-align: top;
+}
+#navigationBarTable form {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable table {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable td.todayButton {
+ padding: 1em 1em 0 1em;
+}
+#navigationBarTable td.gotoForm {
+ padding: 1em 0.5em 0 0;
+}
+#navigationBarTable td.leftCell {
+ text-align: left;
+ white-space: nowrap;
+ padding-left: 0.5em;
+ font-size: 1.3em;
+ font-weight: bold;
+ padding: 0.75em 0em 0.75em 1em;
+ width: 100%;
+ vertical-align: middle;
+}
+#navigationBarTable td.leftCell .prevImg {
+ margin: 0 0.2em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.leftCell .nextImg {
+ margin: 0 0.75em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.rightCell {
+ text-align: right;
+ padding: 1em 0.5em 0em 0em;
+}
+#navigationBarTable td.rightCell select {
+ padding-right: 0em;
+ margin: 0em;
+ width: 10em;
+}
+#searchBarTable .calLinks {
+ white-space: nowrap;
+}
+#eventTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#eventTable td.fieldname {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 0.5em;
+ background-color: #eee;
+ /*background-color: #EDF5F9;*/
+ color: black;
+}
+#eventTable td.fieldval {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 1em;
+}
+#eventTable th.icalIcon {
+ margin: 0em;
+ vertical-align: middle;
+ text-align: right;
+ padding: 0.5em 1em 0.2em 0.5em;
+ white-space: nowrap;
+ font-size: 0.9em;
+ font-weight: normal;
+}
+#eventTable th.icalIcon a {
+ text-decoration: none;
+}
+#eventTable th.icalIcon img {
+ vertical-align: middle;
+ padding-left: 1em;
+}
+#eventTable th.fieldname {
+ text-align: left;
+ padding: 1em 0.5em 1em 0.5em;
+ background-color: #eee;
+ /*background-color: #EDF5F9;*/
+ color: black;
+}
+#eventTable th.fieldval {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 1em;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#calPageTable {
+ width: 100%;
+ font-size: 100%;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#calPageTable td {
+ width: 50%;
+ vertical-align: top;
+ padding: 0.5em 2em 1em 3em;
+}
+#calPageTable th {
+ font-size: 1.2em;
+ background-color: #ccc;
+ color: black;
+ font-weight: bold;
+}
+#calPageTable td.leftCell {
+ border-right : thin dashed #999;
+}
+#calPageTable h2 {
+ font-size: 1.2em;
+}
+#calPageTable td.infoCell {
+ background-color: #eee;
+ color: black;
+ text-align: center;
+}
+#dayCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#dayCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#dayCalendarTable .dateRange {
+ text-align: left;
+ background-color: #D3E4F0;
+ color: black;
+ white-space: nowrap;
+}
+#dayCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#dayCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#weekCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#weekCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#weekCalendarTable .dateRange {
+ text-align: left;
+ background-color: #D3E4F0;
+ color: black;
+ white-space: nowrap;
+}
+#weekCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#weekCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#monthCalendarTable {
+ width: 100%;
+ font-size: 0.8em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#monthCalendarTable th.dayHeading {
+ width: 14%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #2c5f89;
+ color: #eee;
+ border: 1px solid black;
+}
+#monthCalendarTable td {
+ width: 14%;
+ height: 60px;
+ vertical-align: top;
+ text-align: left;
+ padding: 0em;
+ border: 1px solid #aaa;
+ background-color: white;
+ color: black;
+}
+#monthCalendarTable td.filler {
+ border: none;
+ background-color: #eee;
+ color: black;
+ /*border: 1px solid #aaa;*/
+}
+/*#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : disc;
+ margin: 0em 0em 0em 1em;
+ padding-left: 0.75em;
+ padding-right: 0.1em;
+ color: #999;
+}*/
+#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : none;
+ margin: 0em;
+ padding: 0.3em 0em 0em 0em;
+}
+#monthCalendarTable ul li {
+ margin: 0em;
+ padding: 0em;
+ display: inline;
+}
+#monthCalendarTable a.eventLinkA:link,
+#monthCalendarTable a.eventLinkA:visited,
+#monthCalendarTable a.eventLinkA:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #A3C8D9;
+ color: black;
+}
+#monthCalendarTable a.eventLinkB:link,
+#monthCalendarTable a.eventLinkB:visited,
+#monthCalendarTable a.eventLinkB:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #DEECF2;
+ color: black;
+}
+#monthCalendarTable a.eventCancelled:link,
+#monthCalendarTable a.eventCancelled:visited,
+#monthCalendarTable a.eventCancelled:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #ccc;
+ color: black;
+}
+#monthCalendarTable a.eventTentative:link,
+#monthCalendarTable a.eventTentative:visited,
+#monthCalendarTable a.eventTentative:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ border-bottom: 1px solid #ccc;
+ border-top: 1px solid #ccc;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#monthCalendarTable a.holiday:link,
+#monthCalendarTable a.holiday:visited,
+#monthCalendarTable a.holiday:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fff;
+ color: black;
+ /*border-top: 1px solid black;
+ border-bottom: 1px solid black;*/
+}
+#monthCalendarTable a.eventLinkA:hover,
+#monthCalendarTable a.eventLinkB:hover,
+#monthCalendarTable a.eventCancelled:hover,
+#monthCalendarTable a.eventTentative:hover,
+#monthCalendarTable a.holiday:hover {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ color: black;
+ background-color: #ddd;
+}
+#monthCalendarTable a.dayLink {
+ text-decoration: none;
+ color: black;
+ background-color: transparent;
+}
+#monthCalendarTable a:hover.dayLink {
+ text-decoration: none;
+ color: #eee;
+ background-color: black;
+}
+#monthCalendarTable a:hover {
+ /* required for eventTip to hover correctly;
+ apply only to the hover pseudo class, or
+ the other anchors nearby will cover the eventTip in IE */
+ position: relative;
+}
+#monthCalendarTable a span.eventTip,
+#monthCalendarTable a span.eventTipReverse {
+ display: none;
+}
+#monthCalendarTable a:hover span.eventTip {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: 12em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+}
+#monthCalendarTable a:hover span.eventTipReverse {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: -21em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+}
+#monthCalendarTable a:hover span.eventTipStatusCancelled {
+ display: block;
+ color: white;
+ background-color: #333;
+ padding: 2px;
+ margin-bottom: 6px;
+ text-align: center;
+}
+#monthCalendarTable a:hover span.eventTipStatusTentative {
+ display: block;
+ color: black;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ padding: 2px;
+ margin-bottom: 6px;
+ border: 1px solid #ccc;
+ text-align: center;
+}
+a.gridAdd {
+ display: block;
+ float: right;
+ font-size: 0.8em;
+ text-decoration: none;
+ margin-right: 2px;
+}
+#yearCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0em;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#yearCalendarTable td {
+ padding: 1em 0em 0em 0em;
+ margin: 0em;
+ vertical-align: top;
+ text-align: center;
+ width: 33%;
+}
+#yearCalendarTable table.yearViewMonthTable {
+ margin: 0em 1em 0.5em 1em;
+ border: 1px solid #ddd;
+}
+#yearCalendarTable table.yearViewMonthTable td {
+ text-align: center;
+ padding: 0.2em;
+ width: 12.5%;
+}
+#yearCalendarTable table.yearViewMonthTable th {
+ font-weight: bold;
+ background-color: #f5f5f5;
+ color: black;
+ padding: 0.2em;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName {
+ font-weight: bold;
+ text-align: center;
+ background-color: #EDF5F9;
+ color: black;
+ white-space: nowrap;
+ border-bottom: 1px solid #999;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell {
+ font-weight: bold;
+ font-size: 0.8em;
+ background-color: #f5f5f5;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a:hover {
+ text-decoration: none;
+ background-color: #FFC;
+ color: black;
+ border: 1px solid black;
+ padding: 0;
+}
+#listTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#listTable td {
+ padding: 0.5em;
+ margin: 0em;
+ border-bottom: 1px solid #bbb;
+}
+#listTable td a {
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRangeCrossDay {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #eee;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEarlyMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #C0D4DD;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #F0F9FF;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeAfternoon {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #DEECF2;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEvening {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #A3C8D9;
+ color: black;
+ white-space: nowrap;
+}
+#listTable span.littleArrow {
+ font-size: 1.4em;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: white;
+ color: black;
+ width: 100%;
+}
+#listTable td.bwStatusCancelled {
+ background-color: #ddd;
+ color: black;
+}
+#listTable td.bwStatusTentative {
+ background: white url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#listTable td.description a {
+ display: block;
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.description a.moreLink {
+ display: inline;
+ background-color: transparent;
+ color: #009;
+ text-decoration: underline;
+}
+#listTable td.description:hover {
+ background-color: #f5f5f5;
+ color: black;
+}
+#listTable td.dateRow {
+ text-align: left;
+ background-color: #B1D4E3;
+ color: #333;
+ font-size: 0.8em;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ margin: 0em;
+}
+#listTable td.dateRow a {
+ display: block;
+ color: #333;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration : none;
+}
+#listTable td.icons {
+ color: black;
+ background-color: #ddd;
+ white-space: nowrap;
+}
+#listTable td.icons img.addref {
+ margin-right: 0.5em;
+}
+#calPageTable ul.calendarTree li {
+ font-weight: bold;
+}
+#calPageTable ul.calendarTree li ul li {
+ font-weight: normal;
+}
+#calPageTable ul.calendarTree li.folder {
+ list-style-image: url(../../images/demo/catIcon.gif);
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+#calPageTable ul.calendarTree li.calendar {
+ list-style-image: url(../../images/demo/calIcon-sm.gif);
+}
+.noEventsCell {
+ padding: 1em;
+}
+#footer {
+ font-size: 0.75em;
+ text-align : center;
+ margin-top: 0em;
+ padding: 1em;
+ color: #333;
+ background-color: #eee;
+ border-bottom: 2px solid #999;
+ border-left: 2px solid #999;
+ border-right: 2px solid #999;
+ white-space: nowrap;
+}
+#footer a {
+ color: #333;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#skinSelectorTable {
+ width: 100%;
+ padding-top: 0.5em;
+ font-size: 0.7em;
+ color: #333;
+ background-color: inherit;
+}
+#skinSelectorTable td {
+ vertical-align: top;
+}
+#skinSelectorTable td.rightCell {
+ text-align: right;
+}
+#skinSelectorTable td.leftCell {
+ text-align: left;
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.leftCell a {
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.rightCell form {
+ display: inline;
+ margin: 0em;
+ padding: 0em;
+}
+#skinSelectorTable td.rightCell select {
+ font-size: 0.9em;
+ color: #333;
+ background-color: #eee;
+}
+#featureHighlight {
+ color: #dd0;
+ font-style: italic;
+}
+/* LINKS */
+a:link, a:active, a:visited {
+ color: #2c5f89;
+ background-color: transparent;
+}
+a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+.center {
+ text-align: center;
+}
+.left {
+ text-align: left;
+}
+.right {
+ text-align: right;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/cleanXml.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/cleanXml.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/cleanXml.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="xml"
+ indent="yes"
+ omit-xml-declaration="no"
+ media-type="text/xml"
+ standalone="yes"
+/>
+
+<!-- =========================================================
+
+ DEMONSTRATION CALENDAR STYLESHEET
+
+ a simple stylesheet to provide a proper xml declaration
+ and clean xml for use on other systems. This is slightly
+ more expensive than simply turning off the transform with
+ noxslt=yes, but it may play better with some systems.
+
+=============================================================== -->
+
+ <xsl:template match="/">
+ <xsl:copy-of select="."/>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/common.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/common.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/common.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,66 @@
+/* Generic selectors*/
+h2 {
+ margin: 0em;
+ padding: 0.2em 0.2em 0.2em 0.5em;
+ font-size: 1.3em;
+ border-bottom: 1px solid #ccc;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+h2 a:link,
+h2 a:active,
+h2 a:visited,
+h2 a:hover {
+ color: black;
+ background-color: inherit;
+ text-decoration: none;
+}
+h2.bwStatusConfirmed {
+ background-color: #eee;
+ color: black;
+}
+h2.bwStatusCancelled {
+ background-color: #eee;
+ color: black;
+}
+h2.bwStatusTentative {
+ background: #eee url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+/* Header IDs and classes */
+#errors {
+ margin: 0;
+ padding: 1em;
+ background-color: #333;
+ color: #ff9;
+ font-weight: bold;
+}
+#tabsTable .centerCell {
+ text-align: left;
+ background : url(../../images/demo/std-tab-space.gif);
+ font-size: 0.8em;
+ white-space: nowrap;
+ width: 100%;
+ padding: 0 1em;
+}
+#stats {
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 1em;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#statsTable {
+ margin: 1em 0 0 4em;
+ width: 300px;
+}
+#statsTable th {
+ padding: 0.5em;
+ background-color: #eee;
+ color: black;
+}
+#statsTable td.label {
+ text-align: right;
+ padding-right: 2em;
+}
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/default.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/default.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/default.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,1187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="html"
+ indent="yes"
+ media-type="text/html"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ standalone="yes"
+/>
+
+<!-- =========================================================
+
+ DEMONSTRATION CALENDAR STYLESHEET
+
+ This stylesheet is devoid of school branding. It is a good
+ starting point for development of a customized calendar.
+
+ For detailed instructions on how to work with the XSLT
+ stylesheets included with this distribution, please see the
+ Bedework Design Guide at
+ http://www.bedework.org/bedework/update.do?artcenterkey=24
+
+=============================================================== -->
+<!-- **********************************************************************
+ Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
+
+ Redistribution and use of this distribution in source and binary forms,
+ with or without modification, are permitted provided that:
+ The above copyright notice and this permission notice appear in all
+ copies and supporting documentation;
+
+ The name, identifiers, and trademarks of Rensselaer Polytechnic
+ Institute are not used in advertising or publicity without the
+ express prior written permission of Rensselaer Polytechnic Institute;
+
+ DISCLAIMER: The software is distributed" AS IS" without any express or
+ implied warranty, including but not limited to, any implied warranties
+ of merchantability or fitness for a particular purpose or any warrant)'
+ of non-infringement of any current or pending patent rights. The authors
+ of the software make no representations about the suitability of this
+ software for any particular purpose. The entire risk as to the quality
+ and performance of the software is with the user. Should the software
+ prove defective, the user assumes the cost of all necessary servicing,
+ repair or correction. In particular, neither Rensselaer Polytechnic
+ Institute, nor the authors of the software are liable for any indirect,
+ special, consequential, or incidental damages related to the software,
+ to the maximum extent the law permits. -->
+
+ <!-- ================================= -->
+ <!-- DEMO PUBLIC CALENDAR STYLESHEET -->
+ <!-- ================================= -->
+
+ <!-- DEFINE INCLUDES -->
+ <xsl:include href="errors.xsl"/>
+
+ <!-- DEFINE GLOBAL CONSTANTS -->
+
+ <!-- URL of the XSL template directory -->
+ <!-- The approot is an appropriate place to put
+ included stylesheets and xml fragments. These are generally
+ referenced relatively (like errors.xsl and messages.xsl above);
+ this variable is here for your convenience if you choose to
+ reference it explicitly. It is not used in this stylesheet, however,
+ and can be safely removed if you so choose. -->
+ <xsl:variable name="appRoot" select="/bedework/approot"/>
+
+ <!-- URL of html resources (images, css, other html); by default this is
+ set to the application root -->
+ <xsl:variable name="resourcesRoot" select="/bedework/approot"/>
+
+ <!-- Properly encoded prefixes to the application actions; use these to build
+ urls; allows the application to be used without cookies or within a portal. -->
+ <xsl:variable name="setup" select="/bedework/urlPrefixes/setup"/>
+ <xsl:variable name="setSelection" select="/bedework/urlPrefixes/setSelection"/>
+ <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/fetchPublicCalendars"/>
+ <xsl:variable name="setViewPeriod" select="/bedework/urlPrefixes/setViewPeriod"/>
+ <xsl:variable name="eventView" select="/bedework/urlPrefixes/eventView"/>
+ <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/addEventRef"/>
+ <xsl:variable name="export" select="/bedework/urlPrefixes/export"/>
+ <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mailEvent"/>
+ <xsl:variable name="showPage" select="/bedework/urlPrefixes/showPage"/>
+ <xsl:variable name="stats" select="/bedework/urlPrefixes/stats"/>
+
+ <!-- Other generally useful global variables -->
+ <xsl:variable name="privateCal">/ucal</xsl:variable>
+ <xsl:variable name="prevdate" select="/bedework/previousdate"/>
+ <xsl:variable name="nextdate" select="/bedework/nextdate"/>
+ <xsl:variable name="curdate" select="/bedework/currentdate/date"/>
+
+
+ <!-- MAIN TEMPLATE -->
+ <xsl:template match="/">
+ <html lang="en">
+ <head>
+ <title>Bedework Events Calendar</title>
+ <link rel="stylesheet" type="text/css" href="{$resourcesRoot}/default/default/common.css" />
+ <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" />
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='style']/value='red'">
+ <link rel="stylesheet" href="{$resourcesRoot}/default/default/red.css"/>
+ </xsl:when>
+ <xsl:when test="/bedework/appvar[key='style']/value='green'">
+ <link rel="stylesheet" href="{$resourcesRoot}/default/default/green.css"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <link rel="stylesheet" href="{$resourcesRoot}/default/default/blue.css"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <link rel="icon" type="image/ico" href="{$resourcesRoot}/images/bedework.ico" />
+ </head>
+ <body>
+ <xsl:call-template name="headBar"/>
+ <xsl:if test="/bedework/error">
+ <div id="errors">
+ <xsl:apply-templates select="/bedework/error"/>
+ </div>
+ </xsl:if>
+ <xsl:call-template name="tabs"/>
+ <xsl:call-template name="navigation"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/page='event'">
+ <!-- show an event -->
+ <xsl:apply-templates select="/bedework/event"/>
+ </xsl:when>
+ <xsl:when test="/bedework/page='showSysStats'">
+ <!-- show system stats -->
+ <xsl:call-template name="stats"/>
+ </xsl:when>
+ <xsl:when test="/bedework/page='calendarList'">
+ <!-- show a list of all calendars -->
+ <xsl:apply-templates select="/bedework/calendars"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- otherwise, show the eventsCalendar -->
+ <xsl:if test="/bedework/periodname!='Year'">
+ <xsl:call-template name="searchBar"/>
+ </xsl:if>
+ <!-- main eventCalendar content -->
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <xsl:call-template name="listView"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'">
+ <xsl:call-template name="listView"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="weekView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
+ <xsl:call-template name="listView"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="monthView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="yearView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- footer -->
+ <xsl:call-template name="footer"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!--==== HEADER TEMPLATES and NAVIGATION ====-->
+ <!-- these templates are separated out for convenience and to simplify the default template -->
+
+ <xsl:template name="headBar">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable">
+ <tr>
+ <td colspan="3" id="logoCell"><a href="http://www.bedework.org/"><img src="{$resourcesRoot}/images/bedeworkLogo.gif" width="292" height="75" border="0" alt="Bedework"/></a></td>
+ <td colspan="2" id="schoolLinksCell">
+ <h2>Public Calendar</h2>
+ <a href="{$privateCal}">Personal Calendar</a> |
+ <a href="http://www.yourschoolhere.edu">School Home</a> |
+ <a href="http://www.bedework.org/">Other Link</a> |
+ <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51">
+ Example Calendar Help
+ </a>
+ </td>
+ </tr>
+ </table>
+ <table id="curDateRangeTable" cellspacing="0">
+ <td class="sideBarOpenCloseIcon">
+  
+ <!--
+ we may choose to implement calendar selection in the public calendar
+ using a sidebar; leave this comment here for now.
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'">
+ <a href="?setappvar=sidebar(opened)">
+ <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="?setappvar=sidebar(closed)">
+ <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>-->
+ </td>
+ <td class="date">
+ <xsl:choose>
+ <xsl:when test="/bedework/page='event'">
+ Event Information
+ </xsl:when>
+ <xsl:when test="/bedework/page='showSysStats' or
+ /bedework/page='calendars'">
+  
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/firstday/longdate"/>
+ <xsl:if test="/bedework/periodname!='Day'">
+ -
+ <xsl:value-of select="/bedework/lastday/longdate"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="rssPrint">
+ <a href="javascript:window.print()" title="print this view">
+ <img alt="print this view" src="{$resourcesRoot}/images/std-print-icon.gif" width="20" height="14" border="0"/> print
+ </a>
+ <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&skinName=rss" title="RSS feed">RSS</a>
+ </td>
+ </table>
+ </xsl:template>
+
+ <xsl:template name="tabs">
+ <xsl:choose>
+ <xsl:when test="/bedework/page='eventscalendar'">
+ <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
+ <tr>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-on.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Month'">
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year'">
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-on.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="centerCell">
+  <!--<img src="{$resourcesRoot}/images/std-button-today.gif" width="46" height="17" border="0" alt="TODAY"/>-->
+ </td>
+ <td class="rightCell">
+  
+ </td>
+ </tr>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
+ <tr>
+ <td>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </td>
+ <td class="centerCell">
+  <!--<img src="{$resourcesRoot}/images/std-button-today.gif" width="46" height="17" border="0" alt="TODAY"/>-->
+ </td>
+ <td class="rightCell">
+  
+ </td>
+ </tr>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="navigation">
+ <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable">
+ <tr>
+ <td class="leftCell">
+ <a id="prevViewPeriod" href="{$setViewPeriod}?date={$prevdate}"><img src="{$resourcesRoot}/images/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a>
+ <a id="nextViewPeriod" href="{$setViewPeriod}?date={$nextdate}"><img src="{$resourcesRoot}/images/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year'">
+ <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Week'">
+ Week of <xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/firstday/longdate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="todayButton">
+ <a href="{$setViewPeriod}?viewType=todayView&date={$curdate}">
+ <img src="{$resourcesRoot}/images/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/>
+ </a>
+ </td>
+ <td align="right" class="gotoForm">
+ <form name="calForm" method="get" action="{$setViewPeriod}">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:if test="/bedework/periodname!='Year'">
+ <td>
+ <select name="viewStartDate.month">
+ <xsl:for-each select="/bedework/monthvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/monthvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ <xsl:if test="/bedework/periodname!='Month'">
+ <td>
+ <select name="viewStartDate.day">
+ <xsl:for-each select="/bedework/dayvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/dayvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ </xsl:if>
+ </xsl:if>
+ <td>
+ <xsl:variable name="temp" select="/bedework/yearvalues/start"/>
+ <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/>
+ </td>
+ <td>
+ <input name="submit" type="submit" value="go"/>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </td>
+ <td class="rightCell">
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template name="searchBar">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" id="searchBarTable">
+ <tr>
+ <td class="leftCell">
+ <xsl:choose>
+ <xsl:when test="/bedework/selectionState/selectionType = 'calendar'">
+ Calendar: <xsl:value-of select="/bedework/selectionState/subscriptions/subscription/calendar/name"/>
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'search'">
+ Current search: <xsl:value-of select="/bedework/search"/>
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'subscription'">
+ Subscription: (not implemented yet)
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'filter'">
+ Filter: (not implemented yet)
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:otherwise><!-- view -->
+ View:
+ <form name="selectViewForm" method="get" action="{$setSelection}">
+ <select name="viewName" onChange="submit()" >
+ <xsl:for-each select="/bedework/views/view">
+ <xsl:variable name="name" select="name"/>
+ <xsl:choose>
+ <xsl:when test="name=/bedework/selectionState/view/name">
+ <option value="{$name}" selected="selected"><xsl:value-of select="name"/></option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$name}"><xsl:value-of select="name"/></option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </form>
+ <span class="calLinks"><a href="{$setSelection}">default view</a> | <a href="{$fetchPublicCalendars}">available calendars</a></span>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="rightCell">
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <img src="{$resourcesRoot}/images/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Year'">
+ <img src="{$resourcesRoot}/images/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
+ <a href="{$setup}?setappvar=monthViewMode(cal)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=monthViewMode(list)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'">
+ <a href="{$setup}?setappvar=weekViewMode(cal)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=weekViewMode(list)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year' or
+ (/bedework/periodname='Month' and
+ (/bedework/appvar[key='monthViewMode']/value='cal' or
+ not(/bedework/appvar[key='monthViewMode']))) or
+ (/bedework/periodname='Week' and
+ (/bedework/appvar[key='weekViewMode']/value='cal' or
+ not(/bedework/appvar[key='weekViewMode'])))">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <img src="{$resourcesRoot}/images/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{$resourcesRoot}/images/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <a href="{$setup}?setappvar=summaryMode(summary)" title="toggle summary/detailed view">
+ <img src="{$resourcesRoot}/images/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=summaryMode(details)" title="toggle summary/detailed view">
+ <img src="{$resourcesRoot}/images/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <a href="setup.do"><img src="{$resourcesRoot}/images/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== SINGLE EVENT ====-->
+ <xsl:template match="event">
+ <xsl:variable name="statusClass">
+ <xsl:choose>
+ <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when>
+ <xsl:otherwise>bwStatusConfirmed</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <h2 class="{$statusClass}">
+ <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if>
+ <xsl:choose>
+ <xsl:when test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}">
+ <xsl:value-of select="summary"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="summary"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ <table id="eventTable" cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="fieldname">When:</td>
+ <td class="fieldval">
+ <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text>
+ <xsl:if test="start/allday = 'false'">
+ <span class="time"><xsl:value-of select="start/time"/></span>
+ </xsl:if>
+ <xsl:if test="(end/longdate != start/longdate) or
+ ((end/longdate = start/longdate) and (end/time != start/time))"> - </xsl:if>
+ <xsl:if test="end/longdate != start/longdate">
+ <xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true'">
+ <span class="time"><em>(all day)</em></span>
+ </xsl:when>
+ <xsl:when test="end/longdate != start/longdate">
+ <span class="time"><xsl:value-of select="end/time"/></span>
+ </xsl:when>
+ <xsl:when test="end/time != start/time">
+ <span class="time"><xsl:value-of select="end/time"/></span>
+ </xsl:when>
+ </xsl:choose>
+ </td>
+ <th class="icalIcon" rowspan="2">
+ <div id="eventIcons">
+ <xsl:variable name="id" select="id"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <a href="{$privateCal}/addEventRef.do?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" title="Add event to MyCalendar" target="myCalendar">
+ <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon.gif" width="20" height="26" border="0" alt="Add event to MyCalendar"/>
+ add to my calendar</a>
+ <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/>
+ <a href="{$export}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}&nocache=no&skinName=ical&contentType=text/calendar&contentName={$eventIcalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
+ <img src="{$resourcesRoot}/images/std-ical_icon.gif" width="20" height="26" border="0" alt="Download this event"/>
+ download</a>
+ </div>
+ </th>
+ </tr>
+ <tr>
+ <td class="fieldname">Where:</td>
+ <td class="fieldval">
+ <xsl:choose>
+ <xsl:when test="location/link=''">
+ <xsl:value-of select="location/address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="locationLink" select="location/link"/>
+ <a href="{$locationLink}">
+ <xsl:value-of select="location/address"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="location/subaddress!=''">
+ <br/><xsl:value-of select="location/subaddress"/>
+ </xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldname">Description:</td>
+ <td colspan="2" class="fieldval description">
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="description"/>
+ <xsl:with-param name="pattern" select="'
'"/>
+ <xsl:with-param name="replacement"><br/></xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <xsl:if test="status !='' and status != 'CONFIRMED'">
+ <tr>
+ <td class="fieldname">Status:</td>
+ <td class="fieldval">
+ <xsl:value-of select="status"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="cost!=''">
+ <tr>
+ <td class="fieldname">Cost:</td>
+ <td colspan="2" class="fieldval"><xsl:value-of select="cost"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="link != ''">
+ <tr>
+ <td class="fieldname">See:</td>
+ <td colspan="2" class="fieldval">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}"><xsl:value-of select="link"/></a>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ <tr>
+ <td class="fieldname">Contact:</td>
+ <td colspan="2" class="fieldval">
+ <xsl:choose>
+ <xsl:when test="sponsor/link=''">
+ <xsl:value-of select="sponsor/name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sponsorLink" select="sponsor/link"/>
+ <a href="{$sponsorLink}">
+ <xsl:value-of select="sponsor/name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="sponsor/phone!=''">
+ <br /><xsl:value-of select="sponsor/phone"/>
+ </xsl:if>
+ <!-- If you want to display email addresses, uncomment the
+ following 8 lines. -->
+ <!-- <xsl:if test="sponsor/email!=''">
+ <br />
+ <xsl:variable name="email" select="sponsor/email"/>
+ <xsl:variable name="subject" select="summary"/>
+ <a href="mailto:{$email}?subject={$subject}">
+ <xsl:value-of select="sponsor/email"/>
+ </a>
+ </xsl:if> -->
+ </td>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td class="fieldname">Calendar:</td>
+ <td class="fieldval">
+ <xsl:variable name="calUrl" select="calendar/path"/>
+ <a href="{$setSelection}?calUrl={$calUrl}">
+ <xsl:value-of select="calendar/name"/>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== LIST VIEW (for day, week, and month) ====-->
+ <xsl:template name="listView">
+ <table id="listTable" border="0" cellpadding="0" cellspacing="0">
+ <xsl:choose>
+ <xsl:when test="not(/bedework/eventscalendar/year/month/week/day/event)">
+ <tr>
+ <td class="noEventsCell">
+ No events to display.
+ </td>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[event]">
+ <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''">
+ <tr>
+ <td colspan="5" class="dateRow">
+ <xsl:variable name="date" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$date}">
+ <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/>
+ </a>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:for-each select="event">
+ <xsl:variable name="id" select="id"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <tr>
+ <xsl:variable name="dateRangeStyle">
+ <xsl:choose>
+ <xsl:when test="start/shortdate = parent::day/shortdate">
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when>
+ <xsl:when test="start/hour24 < 6">dateRangeEarlyMorning</xsl:when>
+ <xsl:when test="start/hour24 < 12">dateRangeMorning</xsl:when>
+ <xsl:when test="start/hour24 < 18">dateRangeAfternoon</xsl:when>
+ <xsl:otherwise>dateRangeEvening</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>dateRangeCrossDay</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true' and
+ start/shortdate = end/shortdate">
+ <td class="{$dateRangeStyle} center" colspan="3">
+ all day
+ </td>
+ </xsl:when>
+ <xsl:when test="start/shortdate = end/shortdate and
+ start/time = end/time">
+ <td class="{$dateRangeStyle} center" colspan="3">
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:value-of select="start/time"/>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td class="{$dateRangeStyle} right">
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true' and
+ parent::day/shortdate = start/shortdate">
+ today
+ </xsl:when>
+ <xsl:when test="parent::day/shortdate != start/shortdate">
+ <span class="littleArrow">«</span> 
+ <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="start/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </td>
+ <td class="{$dateRangeStyle} center">
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">-</a>
+ </td>
+ <td class="{$dateRangeStyle} left">
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:choose>
+ <xsl:when test="end/allday = 'true' and
+ parent::day/shortdate = end/shortdate">
+ today
+ </xsl:when>
+ <xsl:when test="parent::day/shortdate != end/shortdate">
+ <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/>
+  <span class="littleArrow">»</span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="end/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="descriptionClass">
+ <xsl:choose>
+ <xsl:when test="status='CANCELLED'">description bwStatusCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">description bwStatusTentative</xsl:when>
+ <xsl:otherwise>description</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <td class="{$descriptionClass}">
+ <xsl:if test="status='CANCELLED'"><strong>CANCELLED: </strong></xsl:if>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <strong>
+ <xsl:value-of select="summary"/>:
+ </strong>
+ <xsl:value-of select="description"/> 
+ <em>
+ <xsl:value-of select="location/address"/>
+ <xsl:if test="location/subaddress != ''">
+ , <xsl:value-of select="location/subaddress"/>
+ </xsl:if>. 
+ <xsl:if test="cost!=''">
+ <xsl:value-of select="cost"/>. 
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ Contact: <xsl:value-of select="sponsor/name"/>
+ </xsl:if>
+ </em>
+ </a>
+ <xsl:if test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:value-of select="summary"/>
+ <xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="icons">
+ <variable name="confId" select="/bedework/confirmationid"/>
+ <a href="{$privateCal}/addEventRef.do?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" title="Add event to MyCalendar" target="myCalendar">
+ <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="Add event to MyCalendar"/>
+ </a>
+ <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/>
+ <a href="{$export}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}&nocache=no&skinName=ical&contentType=text/calendar&contentName={$eventIcalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
+ <img src="{$resourcesRoot}/images/std-ical_icon_small.gif" width="12" height="16" border="0" alt="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars"/>
+ </a>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </xsl:template>
+
+ <!--==== WEEK CALENDAR VIEW ====-->
+ <xsl:template name="weekView">
+ <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:for-each select="/bedework/daynames/val">
+ <th class="dayHeading"><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <tr>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week/day">
+ <xsl:variable name="dayPos" select="position()"/>
+ <xsl:if test="filler='false'">
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}" class="dayLink">
+ <xsl:value-of select="value"/>
+ </a>
+ <ul>
+ <xsl:apply-templates select="event" mode="calendarLayout">
+ <xsl:with-param name="dayPos" select="$dayPos"/>
+ </xsl:apply-templates>
+ </ul>
+ </td>
+ </xsl:if>
+ </xsl:for-each>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== MONTH CALENDAR VIEW ====-->
+ <xsl:template name="monthView">
+ <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:for-each select="/bedework/daynames/val">
+ <th class="dayHeading"><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week">
+ <tr>
+ <xsl:for-each select="day">
+ <xsl:variable name="dayPos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="filler='true'">
+ <td class="filler"> </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}" class="dayLink">
+ <xsl:value-of select="value"/>
+ </a>
+ <ul>
+ <xsl:apply-templates select="event" mode="calendarLayout">
+ <xsl:with-param name="dayPos" select="$dayPos"/>
+ </xsl:apply-templates>
+ </ul>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="event" mode="calendarLayout">
+ <xsl:param name="dayPos"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <xsl:variable name="eventClass">
+ <xsl:choose>
+ <!-- Special styles for the month grid -->
+ <xsl:when test="status='CANCELLED'">eventCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">eventTentative</xsl:when>
+ <xsl:when test="calendar/name='Holidays'">holiday</xsl:when>
+ <!-- Alternating colors for all standard events -->
+ <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when>
+ <xsl:otherwise>eventLinkB</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <li>
+ <a href="{$eventView}&subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" class="{$eventClass}">
+ <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if>
+ <xsl:value-of select="summary"/>
+ <xsl:variable name="eventTipClass">
+ <xsl:choose>
+ <xsl:when test="$dayPos > 5">eventTipReverse</xsl:when>
+ <xsl:otherwise>eventTip</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <span class="{$eventTipClass}">
+ <xsl:if test="status='CANCELLED'"><span class="eventTipStatusCancelled">CANCELLED</span></xsl:if>
+ <xsl:if test="status='TENTATIVE'"><span class="eventTipStatusTentative">TENTATIVE</span></xsl:if>
+ <strong><xsl:value-of select="summary"/></strong><br/>
+ Time:
+ <xsl:choose>
+ <xsl:when test="start/allday = 'false'">
+ <xsl:value-of select="start/time"/>
+ <xsl:if test="start/time != end/time">
+ - <xsl:value-of select="end/time"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ all day
+ </xsl:otherwise>
+ </xsl:choose><br/>
+ <xsl:if test="location/address">
+ Location: <xsl:value-of select="location/address"/><br/>
+ </xsl:if>
+ Calendar: <xsl:value-of select="calendar/name"/>
+ </span>
+ </a>
+ </li>
+ </xsl:template>
+
+ <!--==== YEAR VIEW ====-->
+ <xsl:template name="yearView">
+ <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() <= 3]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() > 3) and (position() <= 6)]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() > 6) and (position() <= 9)]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() > 9]"/>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!-- year view month tables -->
+ <xsl:template match="month">
+ <td>
+ <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td colspan="8" class="monthName">
+ <xsl:variable name="firstDayOfMonth" select="week/day/date"/>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$firstDayOfMonth}">
+ <xsl:value-of select="longname"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <th> </th>
+ <xsl:for-each select="/bedework/shortdaynames/val">
+ <th><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <xsl:for-each select="week">
+ <tr>
+ <td class="weekCell">
+ <xsl:variable name="firstDayOfWeek" select="day/date"/>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$firstDayOfWeek}">
+ <xsl:value-of select="value"/>
+ </a>
+ </td>
+ <xsl:for-each select="day">
+ <xsl:choose>
+ <xsl:when test="filler='true'">
+ <td class="filler"> </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}">
+ <xsl:value-of select="value"/>
+ </a>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </td>
+ </xsl:template>
+
+ <!--==== CALENDARS PAGE ====-->
+ <xsl:template match="calendars">
+ <xsl:variable name="topLevelCalCount" select="count(calendar/calendar)"/>
+ <table id="calPageTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <th colspan="2">
+ All Calendars
+ </th>
+ </tr>
+ <tr>
+ <td colspan="2" class="infoCell">
+ Select a calendar from the list below to see only that calendar's events.
+ </td>
+ </tr>
+ <tr>
+ <td class="leftCell">
+ <ul class="calendarTree">
+ <xsl:apply-templates select="calendar/calendar[position() <= ceiling($topLevelCalCount div 2)]" mode="calTree"/>
+ </ul>
+ </td>
+ <td>
+ <ul class="calendarTree">
+ <xsl:apply-templates select="calendar/calendar[position() > ceiling($topLevelCalCount div 2)]" mode="calTree"/>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="calendar" mode="calTree">
+ <xsl:variable name="itemClass">
+ <xsl:choose>
+ <xsl:when test="calendarCollection='false'">folder</xsl:when>
+ <xsl:otherwise>calendar</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="url" select="path"/>
+ <li class="{$itemClass}">
+ <a href="{$setSelection}?calUrl={$url}"><xsl:value-of select="name"/></a>
+ <xsl:if test="calendar">
+ <ul>
+ <xsl:apply-templates select="calendar" mode="calTree"/>
+ </ul>
+ </xsl:if>
+ </li>
+ </xsl:template>
+
+ <!--+++++++++++++++ System Stats ++++++++++++++++++++-->
+ <xsl:template name="stats">
+ <div id="stats">
+ <h2>System Statistics</h2>
+
+ <p>
+ Stats collection:
+ </p>
+ <ul>
+ <li>
+ <a href="{$stats}&enable=yes">enable</a> |
+ <a href="{$stats}&disable=yes">disable</a>
+ </li>
+ <li><a href="{$stats}&fetch=yes">fetch statistics</a></li>
+ <li><a href="{$stats}&dump=yes">dump stats to log</a></li>
+ </ul>
+ <table id="statsTable" cellpadding="0">
+ <xsl:for-each select="/bedework/sysStats/*">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'header'">
+ <tr>
+ <th colspan="2">
+ <xsl:value-of select="."/>
+ </th>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr>
+ <td class="label">
+ <xsl:value-of select="label"/>
+ </td>
+ <td class="value">
+ <xsl:value-of select="value"/>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </table>
+ </div>
+ </xsl:template>
+
+ <!--==== UTILITY TEMPLATES ====-->
+
+ <!-- search and replace template taken from
+ http://www.biglist.com/lists/xsl-list/archives/200211/msg00337.html -->
+ <xsl:template name="replace">
+ <xsl:param name="string" select="''"/>
+ <xsl:param name="pattern" select="''"/>
+ <xsl:param name="replacement" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$pattern != '' and $string != '' and contains($string, $pattern)">
+ <xsl:value-of select="substring-before($string, $pattern)"/>
+ <xsl:copy-of select="$replacement"/>
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="substring-after($string, $pattern)"/>
+ <xsl:with-param name="pattern" select="$pattern"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--==== FOOTER ====-->
+
+ <xsl:template name="footer">
+ <div id="footer">
+ Demonstration calendar; place footer information here.
+ </div>
+ <table id="skinSelectorTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="leftCell">
+ Based on the <a href="http://www.bedework.org/">Bedework Calendar</a> |
+ <a href="?noxslt=yes">show XML</a> |
+ <a href="?refreshXslt=yes">refresh XSLT</a>
+ </td>
+ <td class="rightCell">
+ <form name="styleSelectForm" method="get" action="{$setup}">
+ <select name="setappvar" onChange="submit()">
+ <option>example styles:</option>
+ <option value="style(green)">green</option>
+ <option value="style(red)">red</option>
+ <option value="style(blue)">blue</option>
+ </select>
+ </form>
+ <form name="skinSelectForm" method="get" action="{$setup}">
+ <input type="hidden" name="setappvar" value="summaryMode(details)"/>
+ <select name="skinPicker" onchange="window.location = this.value">
+ <option>example skins:</option>
+ <option value="{$setViewPeriod}?viewType=weekView&skinName=rss&setappvar=summaryMode(details)">rss feed</option>
+ <option value="{$setViewPeriod}?viewType=todayView&skinName=jsToday&contentType=text/javascript&contentName=bedework.js">javascript feed</option>
+ <option value="{$setViewPeriod}?viewType=todayView&skinName=videocal">video feed</option>
+ <option value="{$setup}?skinName=default">reset to calendar default</option>
+ </select>
+ </form>
+ <form name="skinSelectForm" method="get" action="">
+ <select name="sitePicker" onchange="window.location = this.value">
+ <option>production examples:</option>
+ <option value="http://events.dal.ca/">Dalhousie</option>
+ <option value="http://events.rpi.edu">Rensselaer</option>
+ <option value="http://myuw.washington.edu/cal/">Washington</option>
+ </select>
+ </form>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/errors.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/errors.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/errors.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:template match="error">
+ <xsl:choose>
+ <xsl:when test="id='edu.rpi.sss.util.error.exc'">
+ An exception occurred:<br/>
+ <em><xsl:value-of select="param"/></em>
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.nosuchevent'">
+ Event does not exist:<br/><em><xsl:value-of select="param"/></em>
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.baddate'">
+ The date you have entered is out of range.
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.noaccess'">
+ You have insufficient access to make that request
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.missingsubscriptionid'">
+ The request cannot be processed: missing subscription ID.
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.unknowncalendar'">
+ Unknown calendar
+ </xsl:when>
+ <xsl:when test="id='org.bedework.client.error.unknownview'">
+ Unknown view
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="id"/> = <xsl:value-of select="param"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
+
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/green.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/green.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/green.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,845 @@
+body {
+ font-family : Arial, Helvetica, sans-serif;
+ font-size: 100%; /* needed for IE */
+ background-color : white;
+ color : black;
+ padding: 0.75em 1em 0em 1em;
+ min-width: 700px;
+}
+/* Generic selector (overides to common.css) */
+h2 {
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+/* end generic selectors */
+#logoTable {
+ padding: 0em;
+ margin: 0em;
+}
+#logoTable img {
+ display: inline;
+ padding: 0 0 1px 5px;
+}
+#logoTable #logoCell {
+ white-space: nowrap;
+ font-weight: bold;
+ font-size: 2em;
+}
+#logoTable #schoolLinksCell {
+ vertical-align: bottom;
+ text-align: right;
+ font-size: 0.8em;
+ white-space : nowrap;
+ padding: 0 2px 2px 0;
+}
+#logoTable #schoolLinksCell h2 {
+ margin: 0 0 2px 0;
+ padding: 0;
+ font-size: 2em;
+ color: #444;
+ background-color: transparent;
+ border: none;
+}
+#logoTable #schoolLinksCell a:link,
+#logoTable #schoolLinksCell a:visited,
+#logoTable #schoolLinksCell a:active {
+ background-color: transparent;
+ color: #999;
+ text-decoration: none;
+}
+#logoTable #schoolLinksCell a:hover {
+ background-color: #eee;
+ color: #333;
+ text-decoration: none;
+}
+#titleBar {
+ display: none;
+}
+#curDateRangeTable {
+ width: 100%;
+ height: 26px;
+ background: #2c5f89 url(../../images/curDateRangeGreen.gif) repeat-x bottom;
+ color : #eee;
+ margin: 0em;
+ font-weight : bold;
+ text-align : center;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+#curDateRangeTable td {
+ padding-top: 5px;
+ padding-bottom: 1px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+#curDateRangeTable td.sideBarOpenCloseIcon {
+ background: url(../../images/curDateRangeGreen-left.gif) no-repeat top left;
+ color: inherit;
+ width: 200px;
+}
+#curDateRangeTable td.date {
+ font-weight : bold;
+ text-align : center;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint {
+ background: url(../../images/curDateRangeGreen-right.gif) no-repeat top right;
+ color: inherit;
+ width: 200px;
+ font-weight : bold;
+ text-align : right;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint img {
+ position: relative;
+ top: 3px;
+}
+#curDateRangeTable td.rssPrint a:link,
+#curDateRangeTable td.rssPrint a:active,
+#curDateRangeTable td.rssPrint a:visited {
+ font-size: 10px;
+ color: #eee;
+ background-color: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+ padding: 0;
+ text-decoration: none;
+ margin-right: 0.5em;
+ position: relative;
+ top: -3px;
+}
+#curDateRangeTable td.rssPrint a:hover {
+ color: #663;
+ background-color: #fff;
+}
+#curDateRangeTable td.rssPrint a.rss:link,
+#curDateRangeTable td.rssPrint a.rss:active,
+#curDateRangeTable td.rssPrint a.rss:visited {
+ font-size: 10px;
+ font-weight: bold;
+ color: #444;
+ background-color: #ddd;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ padding: 0px 1px 0px 1px;
+ text-decoration: none;
+ margin-right: 0.5em;
+ margin-left: 2px;
+ position: relative;
+ top: -3px;
+ border: solid 1px #666;
+}
+#curDateRangeTable td.rssPrint a.rss:hover {
+ color: #900;
+ background-color: #fff;
+}
+#searchBarTable {
+ margin: 0px;
+ padding: 0em;
+ background-color : #eee;
+ color: black;
+ font-size: 0.9em;
+}
+#searchBarTable .leftCell {
+ margin: 0px;
+ padding: 0em;
+ border-left: 3px solid #333;
+ padding: 0.1em 0 0 0.5em;
+ white-space: nowrap;
+}
+#searchBarTable .leftCell .link {
+ font-size: 0.8em;
+ padding-left: 1em;
+ color: #999;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a {
+ color: #888;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+#searchBarTable .rightCell {
+ margin: 0px;
+ padding: 0em;
+ text-align: right;
+ border-right: 3px solid #333;
+ padding: 0.1em 0.1em 0em 0em;
+ white-space: nowrap;
+}
+#searchBarTable form {
+ display: inline;
+ margin: 0px 0px 1px 0px;
+ padding: 0em;
+}
+#tabsTable {
+ margin: 0em;
+ padding: 4px 0px 0px 0px;
+ text-align: center;
+ background-color: #333;
+ color: #eee;
+}
+#tabsTable .centerCell a {
+ text-decoration: none;
+ color: #eee;
+}
+#tabsTable .centerCell img {
+ margin-right: 1px;
+}
+#tabsTable .rightCell {
+ background : url(../../images/demo/std-tab-space.gif);
+ padding-right: 0.5em;
+}
+#navigationBarTable {
+ font-size: 0.8em;
+ margin: 0em;
+ padding: 0em;
+ vertical-align: top;
+ border-left : 2px solid #333;
+ border-right : 2px solid #333;
+ border-bottom: 1px solid Gray;
+}
+#navigationBarTable a {
+ text-decoration: none;
+ white-space: nowrap;
+}
+#navigationBarTable td {
+ vertical-align: top;
+}
+#navigationBarTable form {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable table {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable td.todayButton {
+ padding: 1em 1em 0 1em;
+}
+#navigationBarTable td.gotoForm {
+ padding: 1em 0.5em 0 0;
+}
+#navigationBarTable td.leftCell {
+ text-align: left;
+ white-space: nowrap;
+ padding-left: 0.5em;
+ font-size: 1.3em;
+ font-weight: bold;
+ padding: 0.75em 0em 0.75em 1em;
+ width: 100%;
+ vertical-align: middle;
+}
+#navigationBarTable td.leftCell .prevImg {
+ margin: 0 0.2em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.leftCell .nextImg {
+ margin: 0 0.75em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.rightCell {
+ text-align: right;
+ padding: 1em 0.5em 0em 0em;
+}
+#navigationBarTable td.rightCell select {
+ padding-right: 0em;
+ margin: 0em;
+ width: 10em;
+}
+#searchBarTable .calLinks {
+ white-space: nowrap;
+}
+#eventTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#eventTable td.fieldval {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 1em;
+}
+#eventTable td.fieldname {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 0.5em;
+ color: black;
+ background-color: #eee;
+}
+#eventTable th.fieldval {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 1em;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#eventTable th.fieldname {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 0.5em;
+ background-color: #eee;
+ color: black;
+}
+#eventTable th.icalIcon {
+ margin: 0em;
+ vertical-align: middle;
+ text-align: right;
+ padding: 0.5em 1em 0.2em 0.5em;
+ white-space: nowrap;
+ font-size: 0.9em;
+ font-weight: normal;
+}
+#eventTable th.icalIcon a {
+ text-decoration: none;
+}
+#eventTable th.icalIcon img {
+ vertical-align: middle;
+ padding-left: 1em;
+}
+#calPageTable {
+ width: 100%;
+ font-size: 100%;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#calPageTable td {
+ width: 50%;
+ vertical-align: top;
+ padding: 0.5em 2em 1em 3em;
+}
+#calPageTable th {
+ font-size: 1.2em;
+ background-color: #ccc;
+ color: black;
+ font-weight: bold;
+}
+#calPageTable td.leftCell {
+ border-right : thin dashed #999;
+}
+#calPageTable h2 {
+ font-size: 1.2em;
+}
+#calPageTable td.infoCell {
+ background-color: #eee;
+ color: black;
+ text-align: center;
+}
+#dayCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#dayCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#dayCalendarTable .dateRange {
+ text-align: left;
+ background-color: #dadfaf;
+ color: black;
+ white-space: nowrap;
+}
+#dayCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#dayCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#weekCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#weekCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#weekCalendarTable .dateRange {
+ text-align: left;
+ background-color: #dfd;
+ color: black;
+ white-space: nowrap;
+}
+#weekCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#weekCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#monthCalendarTable {
+ width: 100%;
+ font-size: 0.8em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#monthCalendarTable th.dayHeading {
+ width: 14%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #363;
+ color: #eee;
+ border: 1px solid black;
+}
+#monthCalendarTable td {
+ width: 14%;
+ height: 60px;
+ vertical-align: top;
+ text-align: left;
+ padding: 0em;
+ border: 1px solid #aaa;
+ background-color: white;
+ color: black;
+}
+#monthCalendarTable td.filler {
+ border: none;
+ background-color: #eee;
+ color: black;
+}
+#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : none;
+ margin: 0em;
+ padding: 0.3em 0em 0em 0em;
+}
+#monthCalendarTable ul li {
+ margin: 0em;
+ padding: 0em;
+ display: inline;
+}
+#monthCalendarTable a.eventLinkA:link,
+#monthCalendarTable a.eventLinkA:visited,
+#monthCalendarTable a.eventLinkA:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #dadfaf;
+ color: black;
+}
+#monthCalendarTable a.eventLinkB:link,
+#monthCalendarTable a.eventLinkB:visited,
+#monthCalendarTable a.eventLinkB:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #edf2bd;
+ color: black;
+}
+#monthCalendarTable a.eventCancelled:link,
+#monthCalendarTable a.eventCancelled:visited,
+#monthCalendarTable a.eventCancelled:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #ccc;
+ color: black;
+}
+#monthCalendarTable a.eventTentative:link,
+#monthCalendarTable a.eventTentative:visited,
+#monthCalendarTable a.eventTentative:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ border-bottom: 1px solid #ccc;
+ border-top: 1px solid #ccc;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#monthCalendarTable a.holiday:link,
+#monthCalendarTable a.holiday:visited,
+#monthCalendarTable a.holiday:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fff;
+ color: black;
+ /*border-top: 1px solid black;
+ border-bottom: 1px solid black;*/
+}
+#monthCalendarTable a.eventLinkA:hover,
+#monthCalendarTable a.eventLinkB:hover,
+#monthCalendarTable a.eventCancelled:hover,
+#monthCalendarTable a.eventTentative:hover,
+#monthCalendarTable a.holiday:hover {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ color: black;
+ background-color: #ffc;
+}
+#monthCalendarTable a.dayLink {
+ text-decoration: none;
+ color: black;
+ background-color: transparent;
+}
+#monthCalendarTable a:hover.dayLink {
+ text-decoration: none;
+ color: #eee;
+ background-color: black;
+}
+#monthCalendarTable a:hover {
+ /* required for eventTip to hover correctly;
+ apply only to the hover pseudo class, or
+ the other anchors nearby will cover the eventTip in IE */
+ position: relative;
+}
+#monthCalendarTable a span.eventTip,
+#monthCalendarTable a span.eventTipReverse {
+ display: none;
+}
+#monthCalendarTable a:hover span.eventTip {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: 12em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+ /*opacity: .80;
+ filter: alpha(opacity=80);*/
+}
+#monthCalendarTable a:hover span.eventTipReverse {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: -21em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+ /*opacity: .80;
+ filter: alpha(opacity=80);*/
+}
+#monthCalendarTable a:hover span.eventTipStatusCancelled {
+ display: block;
+ color: white;
+ background-color: #333;
+ padding: 2px;
+ margin-bottom: 6px;
+ text-align: center;
+}
+#monthCalendarTable a:hover span.eventTipStatusTentative {
+ display: block;
+ color: black;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ padding: 2px;
+ margin-bottom: 6px;
+ border: 1px solid #ccc;
+ text-align: center;
+}
+a.gridAdd {
+ display: block;
+ float: right;
+ font-size: 0.8em;
+ text-decoration: none;
+ margin-right: 2px;
+}
+#yearCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0em;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#yearCalendarTable td {
+ padding: 1em 0em 0em 0em;
+ margin: 0em;
+ vertical-align: top;
+ text-align: center;
+ width: 33%;
+}
+#yearCalendarTable table.yearViewMonthTable {
+ margin: 0em 1em 0.5em 1em;
+ border: 1px solid #666;
+}
+#yearCalendarTable table.yearViewMonthTable td {
+ text-align: center;
+ padding: 0.2em;
+ width: 12.5%;
+}
+#yearCalendarTable table.yearViewMonthTable th {
+ font-weight: bold;
+ background-color: #f5f5f5;
+ color: black;
+ padding: 0.2em;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName {
+ font-weight: bold;
+ text-align: center;
+ background-color: #666;
+ color: #eee;
+ white-space: nowrap;
+ border-bottom: 1px solid #999;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell {
+ font-weight: bold;
+ font-size: 0.8em;
+ background-color: #f5f5f5;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: #eee;
+}
+#yearCalendarTable table.yearViewMonthTable td a:hover {
+ text-decoration: none;
+ background-color: #ffc;
+ color: black;
+ border: 1px solid black;
+ padding: 0;
+}
+#listTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#listTable td {
+ padding: 0.5em;
+ margin: 0em;
+ border-bottom: 1px solid #bbb;
+}
+#listTable td a {
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRangeCrossDay {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #ddd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEarlyMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #d4d5c9;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #edf2bd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeAfternoon {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #dadfaf;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEvening {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #cacf9f;
+ color: black;
+ white-space: nowrap;
+}
+#listTable span.littleArrow {
+ font-size: 1.4em;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: white;
+ color: black;
+ width: 100%;
+}
+#listTable td.bwStatusCancelled {
+ background-color: #ddd;
+ color: black;
+}
+#listTable td.bwStatusTentative {
+ background: white url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#listTable td.description a {
+ display: block;
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.description a.moreLink {
+ display: inline;
+ background-color: transparent;
+ color: #900;
+ text-decoration: underline;
+}
+#listTable td.description:hover {
+ background-color: #eee;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRow {
+ text-align: left;
+ background-color: #888;
+ color: #eee;
+ font-size: 0.8em;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ margin: 0em;
+}
+#listTable td.dateRow a {
+ display: block;
+ color: #fff;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration : none;
+}
+#listTable td.icons {
+ color: black;
+ background-color: #ddd;
+ white-space: nowrap;
+}
+#listTable td.icons img.addref {
+ margin-right: 0.5em;
+}
+#calPageTable ul.calendarTree li {
+ font-weight: bold;
+}
+#calPageTable ul.calendarTree li ul li {
+ font-weight: normal;
+}
+#calPageTable ul.calendarTree li.folder {
+ list-style-image: url(../../images/demo/catIcon.gif);
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+#calPageTable ul.calendarTree li.calendar {
+ list-style-image: url(../../images/demo/calIcon-sm.gif);
+}
+.noEventsCell {
+ padding: 1em;
+}
+#footer {
+ font-size: 0.75em;
+ text-align : center;
+ margin-top: 0em;
+ padding: 1em;
+ color: #333;
+ background-color: #eee;
+ border-bottom: 2px solid #333;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+ white-space: nowrap;
+}
+#footer a {
+ color: #333;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#skinSelectorTable {
+ width: 100%;
+ padding-top: 0.5em;
+ font-size: 0.7em;
+ color: #333;
+ background-color: inherit;
+}
+#skinSelectorTable td {
+ vertical-align: top;
+}
+#skinSelectorTable td.rightCell {
+ text-align: right;
+}
+#skinSelectorTable td.leftCell {
+ text-align: left;
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.leftCell a {
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.rightCell form {
+ display: inline;
+ margin: 0em;
+ padding: 0em;
+}
+#skinSelectorTable td.rightCell select {
+ font-size: 0.9em;
+ color: #333;
+ background-color: #eee;
+}
+/* LINKS */
+a:link, a:active, a:visited {
+ color: #060;
+ background-color: transparent;
+}
+a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+span.time {
+ text-transform : lowercase;
+}
+#featureHighlight {
+ color: #dd0;
+ font-style: italic;
+}
+.center {
+ text-align: center;
+}
+.left {
+ text-align: left;
+}
+.right {
+ text-align: right;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/ical.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/ical.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/ical.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="text"
+ indent="no"
+ media-type="text/calendar"
+ standalone="yes"
+/>
+
+<xsl:strip-space elements="*"/>
+<!-- ================= -->
+<!-- iCAL STYLESHEET -->
+<!-- ================= -->
+<xsl:template match="/"><xsl:value-of select="/bedework/vcalendar"/></xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/jsToday.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/jsToday.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/jsToday.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="html" omit-xml-declaration="yes" indent="no" media-type="text/javascript" standalone="yes"/>
+
+ <!-- usage: call the javascript feed from an html file by embedding the
+ following script tag:
+ <script src="http://yourservername/cal/setViewPeriod.do?viewType=todayView&skinName=jsToday&contentType=text/javascript&contentName=bedework.js" type="text/javascript"></script>
+
+ e.g.
+ <script src="http://localhost:8080/cal/setViewPeriod.do?viewType=todayView&skinName=jsToday&contentType=text/javascript&contentName=bedework.js" type="text/javascript"></script>
+
+ You should uncomment the code below that reads "Today's Events" and throw
+ away the following line. You should modify this stylesheet if you intend
+ to display more than a single day's events.
+ -->
+
+ <!-- **********************************************************************
+ Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
+
+ Redistribution and use of this distribution in source and binary forms,
+ with or without modification, are permitted provided that:
+ The above copyright notice and this permission notice appear in all
+ copies and supporting documentation;
+
+ The name, identifiers, and trademarks of Rensselaer Polytechnic
+ Institute are not used in advertising or publicity without the
+ express prior written permission of Rensselaer Polytechnic Institute;
+
+ DISCLAIMER: The software is distributed" AS IS" without any express or
+ implied warranty, including but not limited to, any implied warranties
+ of merchantability or fitness for a particular purpose or any warrant)'
+ of non-infringement of any current or pending patent rights. The authors
+ of the software make no representations about the suitability of this
+ software for any particular purpose. The entire risk as to the quality
+ and performance of the software is with the user. Should the software
+ prove defective, the user assumes the cost of all necessary servicing,
+ repair or correction. In particular, neither Rensselaer Polytechnic
+ Institute, nor the authors of the software are liable for any indirect,
+ special, consequential, or incidental damages related to the software,
+ to the maximum extent the law permits. -->
+
+ <xsl:variable name="urlprefix" select="/bedework/urlprefix"/>
+ <xsl:template match="/">
+ <xsl:text disable-output-escaping="yes">document.writeln('<h3>');</xsl:text>
+ <!--<xsl:text disable-output-escaping="yes">document.writeln("Today's Events");</xsl:text>-->
+ <xsl:text disable-output-escaping="yes">document.writeln("This Period's Events");</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln('</h3>');</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln('<ul class="eventFeed">');</xsl:text>
+ <xsl:choose>
+ <xsl:when test="/bedework/eventscalendar/year/month/week/day/event">
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month/week/day/event"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping="yes">document.writeln('<li>');</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln('There are no events posted today');</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln('</li>');</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text disable-output-escaping="yes">document.writeln('</ul>');</xsl:text>
+ </xsl:template>
+ <xsl:template match="event">
+ <xsl:variable name="aposStrippedSummary">
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="summary"/>
+ <xsl:with-param name="pattern" select='"'"'/>
+ <xsl:with-param name="replacement" select='"\'"'/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="strippedSummary" select='translate($aposStrippedSummary,"
"," ")'/>
+ <xsl:text disable-output-escaping="yes">document.writeln('<li>');</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln(' <a href="</xsl:text><xsl:value-of select="$urlprefix"/><xsl:text disable-output-escaping="yes">/eventView.do?subid=</xsl:text><xsl:value-of select="subscription/id"/><xsl:text disable-output-escaping="yes">&guid=</xsl:text><xsl:value-of select="guid"/><xsl:text disable-output-escaping="yes">&recurrenceId=</xsl:text><xsl:value-of select="recurrenceId"/><xsl:text disable-output-escaping="yes">&calPath=</xsl:text><xsl:value-of select="calendar/encodedPath"/><xsl:text disable-output-escaping="yes">&skinName=default" target="_top"></xsl:text><xsl:value-of select="$strippedSummary" disable-output-escaping="yes"/><xsl:text disable-output-escaping="yes"></a>');</xsl:text>
+ <xsl:text disable-output-escaping="yes">document.writeln('</li>');</xsl:text>
+ </xsl:template>
+ <xsl:template name="replace">
+ <xsl:param name="string" select="''"/>
+ <xsl:param name="pattern" select="''"/>
+ <xsl:param name="replacement" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$pattern != '' and $string != '' and contains($string, $pattern)">
+ <xsl:value-of select="substring-before($string, $pattern)"/>
+ <xsl:copy-of select="$replacement"/>
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="substring-after($string, $pattern)"/>
+ <xsl:with-param name="pattern" select="$pattern"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/print.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/print.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/print.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,401 @@
+body {
+ font-family : Arial, Helvetica, sans-serif;
+ background-color : white;
+ color : black;
+ padding: 0.75em 1em 0em 1em;
+ margin: 0in;
+ font-size: 10pt;
+}
+tr {
+ page-break-inside: avoid;
+}
+td {
+ page-break-inside: avoid;
+}
+#logoTable {
+ display: none;
+}
+#titleBar {
+ background-color: #eee;
+ color: black;
+ display: block;
+ text-align: center;
+ font-size: 0.7em;
+ margin: 0em;
+ padding: 0em;
+ letter-spacing : 0.1em;
+}
+#dateBarTable td {
+ background-color: #eee;
+ color : black;
+ padding-top: 2px;
+ padding-bottom: 1em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ border-bottom: 1px solid #333;
+ margin: 0em;
+ font-weight : bold;
+ text-align : center;
+ white-space: nowrap;
+}
+#dateBarTable td.imgCell {
+ display: none;
+}
+#searchBarTable {
+ display: none;
+}
+#tabsTable {
+ display: none;
+}
+#navigationBarTable {
+ display: none;
+}
+#eventTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #333;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#eventTable td {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 0.5em;
+}
+#eventTable td.icalIcon {
+ display: none;
+}
+#eventTable th {
+ text-align: left;
+ padding: 1em 0.5em 1em 0.5em;
+ background-color: #666;
+ color: #eee;
+}
+#eventTable th.fieldval {
+ width: 100%;
+}
+#calPageTable {
+ width: 100%;
+ font-size: 100%;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#calPageTable td {
+ width: 50%;
+ vertical-align: top;
+ padding: 0.5em 2em 1em 3em;
+}
+#calPageTable th {
+ font-size: 1.2em;
+ background-color: #ccc;
+ color: black;
+ font-weight: bold;
+}
+#calPageTable td.leftCell {
+ border-right : thin dashed #999;
+}
+#calPageTable h2 {
+ font-size: 1.2em;
+}
+#calPageTable td.infoCell {
+ background-color: #eee;
+ color: black;
+ text-align: center;
+}
+#dayCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#dayCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#dayCalendarTable .dateRange {
+ text-align: left;
+ background-color: #fee;
+ color: black;
+ white-space: nowrap;
+}
+#dayCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#dayCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#weekCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#weekCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#weekCalendarTable .dateRange {
+ text-align: left;
+ background-color: #fdd;
+ color: black;
+ white-space: nowrap;
+}
+#weekCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#weekCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#monthCalendarTable {
+ width: 100%;
+ font-size: 0.8em;
+ margin: 0px;
+ padding: 0px;
+ /*border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;*/
+}
+#monthCalendarTable th.dayHeading {
+ width: 14%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #666;
+ color: #eee;
+ border: 1px solid black;
+}
+#monthCalendarTable td {
+ width: 14%;
+ height: 60px;
+ vertical-align: top;
+ text-align: left;
+ padding: 0em;
+ border: 1px solid #333;
+ background-color: white;
+ color: black;
+}
+#monthCalendarTable td.filler {
+ border: none;
+ background-color: #eee;
+ color: black;
+ /*border: 1px solid #aaa;*/
+}
+#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : none;
+ margin: 0em;
+ padding: 0.3em 0em 0em 0em;
+}
+#monthCalendarTable ul li {
+ margin: 0em;
+ padding: 0em;
+ display: block;
+ border-top: 1px solid #666;
+}
+#monthCalendarTable ul li:first-child {
+ border-top: none;
+}
+
+#monthCalendarTable span.eventLinkA {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fcc;
+ color: black;
+ border-bottom: 1px solid #666;
+}
+#monthCalendarTable span.eventLinkB {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fee;
+ color: black;
+}
+#yearCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0em;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#yearCalendarTable td {
+ padding: 1em 0em 0em 0em;
+ margin: 0em;
+ vertical-align: top;
+ text-align: center;
+ width: 33%;
+}
+#yearCalendarTable table.yearViewMonthTable {
+ margin: 0em 1em 0.5em 1em;
+ border: 1px solid #666;
+}
+#yearCalendarTable table.yearViewMonthTable td {
+ text-align: center;
+ padding: 0.2em;
+ width: 12.5%;
+}
+#yearCalendarTable table.yearViewMonthTable th {
+ font-weight: bold;
+ background-color: #f5f5f5;
+ color: black;
+ padding: 0.2em;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName {
+ font-weight: bold;
+ text-align: center;
+ background-color: #666;
+ color: #eee;
+ white-space: nowrap;
+ border-bottom: 1px solid #999;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell {
+ font-weight: bold;
+ font-size: 0.8em;
+ background-color: #f5f5f5;
+ color: black;
+}
+#listTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#listTable td {
+ padding: 0.5em;
+ margin: 0em;
+ border-bottom: 1px solid #bbb;
+}
+#listTable td.dateRangeCrossDay {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #ddd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEarlyMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #dcc3c3;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fee;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeAfternoon {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fdd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEvening {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fcc;
+ color: black;
+ white-space: nowrap;
+}
+#listTable span.littleArrow {
+ font-size: 1.4em;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#listTable td.dateRow {
+ text-align: left;
+ background-color: #888;
+ color: #eee;
+ font-size: 0.8em;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ margin: 0em;
+}
+#listTable td.icons {
+ display: none;
+}
+.noEventsCell {
+ padding: 1em;
+}
+#footer {
+ font-size: 0.8em;
+ text-align : center;
+ margin-top: 0em;
+ padding: 1em;
+ color: #333;
+ background-color: #eee;
+ border-bottom: 2px solid #333;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#skinSelectorTable {
+ display: none;
+ width: 100%;
+ padding-top: 0.5em;
+ font-size: 0.7em;
+ color: #333;
+ background-color: inherit;
+}
+#skinSelectorTable td {
+ vertical-align: top;
+}
+#skinSelectorTable td.rightCell {
+ text-align: right;
+}
+#skinSelectorTable td.leftCell {
+ text-align: left;
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.rightCell form {
+ display: inline;
+ margin: 0em;
+ padding: 0em;
+}
+#skinSelectorTable td.rightCell select {
+ font-size: 0.9em;
+ color: #333;
+ background-color: #eee;
+}
+a.submitPublicEvent {
+ display: none;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/red.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/red.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/red.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,850 @@
+body {
+ font-family : Arial, Helvetica, sans-serif;
+ font-size: 100%; /* needed for IE */
+ background-color : white;
+ color : black;
+ padding: 0.75em 1em 0em 1em;
+ min-width: 700px;
+}
+/* Generic selector (overides to common.css) */
+h2 {
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+/* end generic selectors */
+#logoTable {
+ padding: 0em;
+ margin: 0em;
+}
+#logoTable img {
+ display: inline;
+ padding: 0 0 1px 5px;
+}
+#logoTable #logoCell {
+ white-space: nowrap;
+ font-weight: bold;
+ font-size: 2em;
+}
+#logoTable #schoolLinksCell {
+ vertical-align: bottom;
+ text-align: right;
+ font-size: 0.8em;
+ white-space : nowrap;
+ padding: 0 2px 2px 0;
+}
+#logoTable #schoolLinksCell h2 {
+ margin: 0 0 2px 0;
+ padding: 0;
+ font-size: 2em;
+ color: #444;
+ background-color: transparent;
+ border: none;
+}
+#logoTable #schoolLinksCell a:link,
+#logoTable #schoolLinksCell a:visited,
+#logoTable #schoolLinksCell a:active {
+ background-color: transparent;
+ color: #999;
+ text-decoration: none;
+}
+#logoTable #schoolLinksCell a:hover {
+ background-color: #eee;
+ color: #333;
+ text-decoration: none;
+}
+#titleBar {
+ display: none;
+}
+#curDateRangeTable {
+ width: 100%;
+ height: 26px;
+ background: #2c5f89 url(../../images/curDateRangeRed.gif) repeat-x bottom;
+ color : #eee;
+ margin: 0em;
+ font-weight : bold;
+ text-align : center;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+#curDateRangeTable td {
+ padding-top: 5px;
+ padding-bottom: 1px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+#curDateRangeTable td.sideBarOpenCloseIcon {
+ background: url(../../images/curDateRangeRed-left.gif) no-repeat top left;
+ color: inherit;
+ width: 200px;
+}
+#curDateRangeTable td.date {
+ font-weight : bold;
+ text-align : center;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint {
+ background: url(../../images/curDateRangeRed-right.gif) no-repeat top right;
+ color: inherit;
+ width: 200px;
+ font-weight : bold;
+ text-align : right;
+ white-space: nowrap;
+}
+#curDateRangeTable td.rssPrint img {
+ position: relative;
+ top: 3px;
+}
+#curDateRangeTable td.rssPrint a:link,
+#curDateRangeTable td.rssPrint a:active,
+#curDateRangeTable td.rssPrint a:visited {
+ font-size: 10px;
+ color: #eee;
+ background-color: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+ padding: 0;
+ text-decoration: none;
+ margin-right: 0.5em;
+ position: relative;
+ top: -3px;
+}
+#curDateRangeTable td.rssPrint a:hover {
+ color: #663;
+ background-color: #fff;
+}
+#curDateRangeTable td.rssPrint a.rss:link,
+#curDateRangeTable td.rssPrint a.rss:active,
+#curDateRangeTable td.rssPrint a.rss:visited {
+ font-size: 10px;
+ font-weight: bold;
+ color: #444;
+ background-color: #ddd;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ padding: 0px 1px 0px 1px;
+ text-decoration: none;
+ margin-right: 0.5em;
+ margin-left: 2px;
+ position: relative;
+ top: -3px;
+ border: solid 1px #666;
+}
+#curDateRangeTable td.rssPrint a.rss:hover {
+ color: #900;
+ background-color: #fff;
+}
+#searchBarTable {
+ margin: 0px;
+ padding: 0em;
+ background-color : #eee;
+ color: black;
+ font-size: 0.9em;
+}
+#searchBarTable .leftCell {
+ margin: 0px;
+ padding: 0em;
+ border-left: 3px solid #333;
+ padding: 0.1em 0 0 0.5em;
+ white-space: nowrap;
+}
+#searchBarTable .leftCell .link {
+ font-size: 0.8em;
+ padding-left: 1em;
+ color: #999;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a {
+ color: #888;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+#searchBarTable .rightCell {
+ margin: 0px;
+ padding: 0em;
+ text-align: right;
+ border-right: 3px solid #333;
+ padding: 0.1em 0.1em 0em 0em;
+ white-space: nowrap;
+}
+#searchBarTable form {
+ display: inline;
+ margin: 0px 0px 1px 0px;
+ padding: 0em;
+}
+#tabsTable {
+ margin: 0em;
+ padding: 4px 0px 0px 0px;
+ text-align: center;
+ background-color: #333;
+ color: #eee;
+}
+#tabsTable .centerCell a {
+ text-decoration: none;
+ color: #eee;
+}
+#tabsTable .centerCell img {
+ margin-right: 1px;
+}
+#tabsTable .rightCell {
+ background : url(../../images/demo/std-tab-space.gif);
+ padding-right: 0.5em;
+}
+#navigationBarTable {
+ font-size: 0.8em;
+ margin: 0em;
+ padding: 0em;
+ vertical-align: top;
+ border-left : 2px solid #333;
+ border-right : 2px solid #333;
+ border-bottom: 1px solid Gray;
+}
+#navigationBarTable a {
+ text-decoration: none;
+ white-space: nowrap;
+}
+#navigationBarTable td {
+ vertical-align: top;
+}
+#navigationBarTable form {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable table {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable td.todayButton {
+ padding: 1em 1em 0 1em;
+}
+#navigationBarTable td.gotoForm {
+ padding: 1em 0.5em 0 0;
+}
+#navigationBarTable td.leftCell {
+ text-align: left;
+ white-space: nowrap;
+ padding-left: 0.5em;
+ font-size: 1.3em;
+ font-weight: bold;
+ padding: 0.75em 0em 0.75em 1em;
+ width: 100%;
+ vertical-align: middle;
+}
+#navigationBarTable td.leftCell .prevImg {
+ margin: 0;
+ vertical-align: top;
+}
+#navigationBarTable td.leftCell .prevImg {
+ margin: 0 0.2em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.leftCell .nextImg {
+ margin: 0 0.75em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.rightCell select {
+ padding-right: 0em;
+ margin: 0em;
+ width: 10em;
+}
+#searchBarTable .calLinks {
+ white-space: nowrap;
+}
+#eventTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#eventTable td.fieldval {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 1em;
+}
+#eventTable td.fieldname {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 0.5em;
+ color: black;
+ background-color: #eee;
+}
+#eventTable th.fieldval {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 1em;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#eventTable th.fieldname {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 0.5em;
+ background-color: #eee;
+ color: black;
+}
+#eventTable th.icalIcon {
+ margin: 0em;
+ vertical-align: middle;
+ text-align: right;
+ padding: 0.5em 1em 0.2em 0.5em;
+ white-space: nowrap;
+ font-size: 0.9em;
+ font-weight: normal;
+}
+#eventTable th.icalIcon a {
+ text-decoration: none;
+}
+#eventTable th.icalIcon img {
+ vertical-align: middle;
+ padding-left: 1em;
+}
+#calPageTable {
+ width: 100%;
+ font-size: 100%;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#calPageTable td {
+ width: 50%;
+ vertical-align: top;
+ padding: 0.5em 2em 1em 3em;
+}
+#calPageTable th {
+ font-size: 1.2em;
+ background-color: #ccc;
+ color: black;
+ font-weight: bold;
+}
+#calPageTable td.leftCell {
+ border-right : thin dashed #999;
+}
+#calPageTable h2 {
+ font-size: 1.2em;
+}
+#calPageTable td.infoCell {
+ background-color: #eee;
+ color: black;
+ text-align: center;
+}
+#dayCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#dayCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#dayCalendarTable .dateRange {
+ text-align: left;
+ background-color: #fee;
+ color: black;
+ white-space: nowrap;
+}
+#dayCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#dayCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#weekCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#weekCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#weekCalendarTable .dateRange {
+ text-align: left;
+ background-color: #fdd;
+ color: black;
+ white-space: nowrap;
+}
+#weekCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#weekCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#monthCalendarTable {
+ width: 100%;
+ font-size: 0.8em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#monthCalendarTable th.dayHeading {
+ width: 14%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #900;
+ color: #eee;
+ border: 1px solid black;
+}
+#monthCalendarTable td {
+ width: 14%;
+ height: 60px;
+ vertical-align: top;
+ text-align: left;
+ padding: 0em;
+ border: 1px solid #aaa;
+ background-color: white;
+ color: black;
+}
+#monthCalendarTable td.filler {
+ border: none;
+ background-color: #eee;
+ color: black;
+}
+#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : none;
+ margin: 0em;
+ padding: 0.3em 0em 0em 0em;
+}
+#monthCalendarTable ul li {
+ margin: 0em;
+ padding: 0em;
+ display: inline;
+}
+#monthCalendarTable a.eventLinkA:link,
+#monthCalendarTable a.eventLinkA:visited,
+#monthCalendarTable a.eventLinkA:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fcc;
+ color: black;
+}
+#monthCalendarTable a.eventLinkB:link,
+#monthCalendarTable a.eventLinkB:visited,
+#monthCalendarTable a.eventLinkB:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fee;
+ color: black;
+}
+#monthCalendarTable a.eventCancelled:link,
+#monthCalendarTable a.eventCancelled:visited,
+#monthCalendarTable a.eventCancelled:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #ccc;
+ color: black;
+}
+#monthCalendarTable a.eventTentative:link,
+#monthCalendarTable a.eventTentative:visited,
+#monthCalendarTable a.eventTentative:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ border-bottom: 1px solid #ccc;
+ border-top: 1px solid #ccc;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#monthCalendarTable a.holiday:link,
+#monthCalendarTable a.holiday:visited,
+#monthCalendarTable a.holiday:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fff;
+ color: black;
+ /*border-top: 1px solid black;
+ border-bottom: 1px solid black;*/
+}
+#monthCalendarTable a.eventLinkA:hover,
+#monthCalendarTable a.eventLinkB:hover,
+#monthCalendarTable a.eventCancelled:hover,
+#monthCalendarTable a.eventTentative:hover,
+#monthCalendarTable a.holiday:hover {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ color: black;
+ background-color: #ffe;
+}
+#monthCalendarTable a.dayLink {
+ text-decoration: none;
+ color: black;
+ background-color: transparent;
+}
+#monthCalendarTable a:hover.dayLink {
+ text-decoration: none;
+ color: #eee;
+ background-color: black;
+}
+#monthCalendarTable a:hover {
+ /* required for eventTip to hover correctly;
+ apply only to the hover pseudo class, or
+ the other anchors nearby will cover the eventTip in IE */
+ position: relative;
+}
+#monthCalendarTable a span.eventTip,
+#monthCalendarTable a span.eventTipReverse {
+ display: none;
+}
+#monthCalendarTable a:hover span.eventTip {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: 12em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+ /*opacity: .80;
+ filter: alpha(opacity=80);*/
+}
+#monthCalendarTable a:hover span.eventTipReverse {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: -21em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+ /*opacity: .80;
+ filter: alpha(opacity=80);*/
+}
+
+#monthCalendarTable a:hover span.eventTipStatusCancelled {
+ display: block;
+ color: white;
+ background-color: #333;
+ padding: 2px;
+ margin-bottom: 6px;
+ text-align: center;
+}
+#monthCalendarTable a:hover span.eventTipStatusTentative {
+ display: block;
+ color: black;
+ background: #eee url('../../images/tentativeLines.gif') top;
+ padding: 2px;
+ margin-bottom: 6px;
+ border: 1px solid #ccc;
+ text-align: center;
+}
+a.gridAdd {
+ display: block;
+ float: right;
+ font-size: 0.8em;
+ text-decoration: none;
+ margin-right: 2px;
+}
+#yearCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0em;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#yearCalendarTable td {
+ padding: 1em 0em 0em 0em;
+ margin: 0em;
+ vertical-align: top;
+ text-align: center;
+ width: 33%;
+}
+#yearCalendarTable table.yearViewMonthTable {
+ margin: 0em 1em 0.5em 1em;
+ border: 1px solid #666;
+}
+#yearCalendarTable table.yearViewMonthTable td {
+ text-align: center;
+ padding: 0.2em;
+ width: 12.5%;
+}
+#yearCalendarTable table.yearViewMonthTable th {
+ font-weight: bold;
+ background-color: #f5f5f5;
+ color: black;
+ padding: 0.2em;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName {
+ font-weight: bold;
+ text-align: center;
+ background-color: #666;
+ color: #eee;
+ white-space: nowrap;
+ border-bottom: 1px solid #999;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell {
+ font-weight: bold;
+ font-size: 0.8em;
+ background-color: #f5f5f5;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: #eee;
+}
+#yearCalendarTable table.yearViewMonthTable td a:hover {
+ text-decoration: none;
+ background-color: #FFC;
+ color: black;
+ border: 1px solid black;
+ padding: 0;
+}
+#listTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#listTable td {
+ padding: 0.5em;
+ margin: 0em;
+ border-bottom: 1px solid #bbb;
+}
+#listTable td a {
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRangeCrossDay {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #ddd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEarlyMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #dcc3c3;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fee;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeAfternoon {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fdd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEvening {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #fcc;
+ color: black;
+ white-space: nowrap;
+}
+#listTable span.littleArrow {
+ font-size: 1.4em;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: white;
+ color: black;
+ width: 100%;
+}
+#listTable td.bwStatusCancelled {
+ background-color: #ddd;
+ color: black;
+}
+#listTable td.bwStatusTentative {
+ background: white url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#listTable td.description a {
+ display: block;
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.description a.moreLink {
+ display: inline;
+ background-color: transparent;
+ color: #900;
+ text-decoration: underline;
+}
+#listTable td.description:hover {
+ background-color: #eee;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRow {
+ text-align: left;
+ background-color: #888;
+ color: #eee;
+ font-size: 0.8em;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ margin: 0em;
+}
+#listTable td.dateRow a {
+ display: block;
+ color: #fff;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration : none;
+}
+#listTable td.icons {
+ color: black;
+ background-color: #ddd;
+ white-space: nowrap;
+}
+#listTable td.icons img.addref {
+ margin-right: 0.5em;
+}
+#calPageTable ul.calendarTree li {
+ font-weight: bold;
+}
+#calPageTable ul.calendarTree li ul li {
+ font-weight: normal;
+}
+#calPageTable ul.calendarTree li.folder {
+ list-style-image: url(../../images/demo/catIcon.gif);
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+#calPageTable ul.calendarTree li.calendar {
+ list-style-image: url(../../images/demo/calIcon-sm.gif);
+}
+.noEventsCell {
+ padding: 1em;
+}
+#footer {
+ font-size: 0.75em;
+ text-align : center;
+ margin-top: 0em;
+ padding: 1em;
+ color: #333;
+ background-color: #eee;
+ border-bottom: 2px solid #333;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+ white-space: nowrap;
+}
+#footer a {
+ color: #333;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#skinSelectorTable {
+ width: 100%;
+ padding-top: 0.5em;
+ font-size: 0.7em;
+ color: #333;
+ background-color: inherit;
+}
+#skinSelectorTable td {
+ vertical-align: top;
+}
+#skinSelectorTable td.rightCell {
+ text-align: right;
+}
+#skinSelectorTable td.leftCell {
+ text-align: left;
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.leftCell a {
+ color: #999;
+ background-color: inherit;
+}
+#skinSelectorTable td.rightCell form {
+ display: inline;
+ margin: 0em;
+ padding: 0em;
+}
+#skinSelectorTable td.rightCell select {
+ font-size: 0.9em;
+ color: #333;
+ background-color: #eee;
+}
+/* LINKS */
+a:link, a:active {
+ color: #900;
+ background-color: transparent;
+}
+a:visited {
+ color: #600;
+ background-color: transparent;
+}
+a:hover {
+ color: #b33;
+ background-color: transparent;
+}
+span.time {
+ text-transform : lowercase;
+}
+#featureHighlight {
+ color: #dd0;
+ font-style: italic;
+}
+.center {
+ text-align: center;
+}
+.left {
+ text-align: left;
+}
+.right {
+ text-align: right;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/rss.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/rss.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/rss.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output
+ method="xml"
+ omit-xml-declaration="no"
+ indent="yes"
+ doctype-public="'-//Netscape Communications//DTD RSS 0.91//EN' 'http://my.netscape.com/public/formats/rss-0.91.dtd'"
+ media-type="text/xml"
+ encoding="ISO-8859-1"
+ />
+ <xsl:template match="/">
+ <rss version="2.0">
+ <channel>
+ <title>Bedework Events Calendar</title>
+ <link><xsl:value-of select="/bedework/urlprefix"/></link>
+ <description>My Site's Events</description>
+ <language>en-US</language>
+ <copyright>Copyright <xsl:value-of select="substring(/bedework/currentdate,1,4)"/>, Your Institution Here</copyright>
+ <managingEditor>editor at mysite.edu, Editor Name</managingEditor>
+ <xsl:apply-templates select="/bedework//event"/>
+ </channel>
+ </rss>
+ </xsl:template>
+ <xsl:template match="event">
+ <item>
+ <title><xsl:value-of select="summary"/> - <xsl:value-of select="substring(start/monthname,1,3)"/><xsl:text> </xsl:text><xsl:value-of select="start/day"/></title>
+ <link><xsl:value-of select="/bedework/urlprefix"/>/eventView.do?subid=<xsl:value-of select="subscription/id"/>&calPath=<xsl:value-of select="calendar/encodedPath"/>&guid=<xsl:value-of select="guid"/>&recurrenceId=<xsl:value-of select="recurrenceId"/></link>
+ <pubDate><xsl:value-of select="substring(start/dayname,1,3)"/>,
+ <xsl:value-of select="start/twodigitday"/><xsl:text> </xsl:text>
+ <xsl:value-of select="substring(start/monthname,1,3)"/><xsl:text> </xsl:text>
+ <xsl:value-of select="start/fourdigityear"/><xsl:text> </xsl:text>
+ <xsl:value-of select="start/twodigithour24"/>:<xsl:value-of select="start/twodigitminute"/>:00 EST</pubDate>
+ <description>
+ <xsl:value-of select="substring(start/dayname,1,3)"/>,
+ <xsl:value-of select="start/longdate"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="start/time"/>
+ <xsl:if test="end/time != ''"> - </xsl:if>
+ <xsl:if test="end/dayname != start/dayname"><xsl:value-of select="substring(end/dayname,1,3)"/>, </xsl:if>
+ <xsl:if test="end/longdate != start/longdate"><xsl:value-of select="end/longdate"/>,</xsl:if>
+ <xsl:if test="end/time != ''"><xsl:value-of select="end/time"/></xsl:if>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="location/address"/>.
+ <xsl:if test="cost!=''"><xsl:value-of select="cost"/>. </xsl:if>
+ <xsl:value-of select="description"/>
+ </description>
+ </item>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,893 @@
+body {
+ font-family : Arial, Helvetica, sans-serif;
+ font-size: 100%; /* needed for IE */
+ background-color : #666;
+ color : black;
+ padding: 0 1em 0em 1em;
+ margin: 0;
+}
+#headBar {
+ position: relative;
+ background: #663 url(../../images/soecal/soeTitleBg.jpg);
+ color: #eee;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+ height: 106px;
+ padding: 12px;
+ margin: 0;
+ text-align: right;
+}
+#headBar img {
+ display: inline;
+ padding: 0 10px 20px 0;
+}
+#headBar h1 {
+ margin: 0;
+ padding: 84px 0 0 0;
+ font-size: 1em;
+ letter-spacing: 1px;
+ font-weight: normal;
+ color: #eee;
+ background-color: transparent;
+}
+#headBar #bedeworkLogo {
+ position: absolute;
+ top: 18px;
+ right: 0;
+}
+#headBar #schoolLinks {
+ font-size: 0.8em;
+ white-space : nowrap;
+ padding: 110px 0 0 0;
+ margin: 0;
+}
+#headBar #schoolLinks li {
+ display: inline;
+ list-style: none;
+ padding: 0 0 0 1.5em;
+}
+#headBar #schoolLinks a:link,
+#headBar #schoolLinks a:visited,
+#headBar #schoolLinks a:active {
+ background-color: transparent;
+ color: #ddd;
+ text-decoration: none;
+}
+#headBar #schoolLinks a:hover {
+ background-color: transparent;
+ color: #fff;
+ text-decoration: none;
+}
+#curDateRangeTable {
+ width: 100%;
+ height: 26px;
+ background: #663;
+ color : #eee;
+ margin: 0em;
+ font-weight : bold;
+ text-align : center;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+#curDateRangeTable td {
+ padding-top: 5px;
+ padding-bottom: 1px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+#curDateRangeTable td.sideBarOpenCloseIcon {
+ width: 200px;
+}
+#curDateRangeTable td.date {
+ font-weight : bold;
+ text-align : center;
+ white-space: nowrap;
+}
+#searchBarTable {
+ margin: 0px;
+ padding: 0em;
+ background-color : #eee;
+ color: black;
+ font-size: 0.9em;
+}
+#searchBarTable .leftCell {
+ margin: 0px;
+ padding: 0em;
+ border-left: 2px solid #333;
+ padding: 0.1em 0 0 0.5em;
+ white-space: nowrap;
+}
+#searchBarTable .leftCell .link {
+ font-size: 0.8em;
+ padding-left: 1em;
+ color: #999;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a {
+ color: #888;
+ background-color: transparent;
+}
+#searchBarTable .leftCell a:hover {
+ color: #b00;
+ background-color: transparent;
+}
+#searchBarTable .rightCell {
+ margin: 0px;
+ padding: 0em;
+ text-align: right;
+ border-right: 2px solid #333;
+ padding: 0.1em 0.1em 0em 0em;
+ white-space: nowrap;
+}
+#searchBarTable form {
+ display: inline;
+ margin: 0px 0px 1px 0px;
+ padding: 0em;
+}
+#tabsTable {
+ margin: 0em;
+ padding: 4px 0px 0px 0px;
+ text-align: center;
+ background-color: #333;
+ color: #eee;
+ border-left: 1px solid #333;
+}
+#tabsTable td.rssPrint {
+ background : url(../../images/demo/std-tab-space.gif);
+ padding-right: 0.5em;
+ width: 100%;
+ font-weight : bold;
+ text-align : right;
+ white-space: nowrap;
+}
+#tabsTable td.rssPrint img {
+ position: relative;
+ top: 3px;
+}
+#tabsTable td.rssPrint a:link,
+#tabsTable td.rssPrint a:active,
+#tabsTable td.rssPrint a:visited {
+ font-size: 10px;
+ color: #eee;
+ background-color: transparent;
+ font-family: Arial, Helvetica, sans-serif;
+ padding: 0;
+ text-decoration: none;
+ margin-right: 0.5em;
+ position: relative;
+ top: -3px;
+}
+#tabsTable td.rssPrint a:hover {
+ color: #663;
+ background-color: #fff;
+}
+#tabsTable td.rssPrint a.rss:link,
+#tabsTable td.rssPrint a.rss:active,
+#tabsTable td.rssPrint a.rss:visited {
+ font-size: 10px;
+ font-weight: bold;
+ color: #444;
+ background-color: #ddd;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ padding: 0px 1px 0px 1px;
+ text-decoration: none;
+ margin-right: 0.5em;
+ margin-left: 2px;
+ position: relative;
+ top: -3px;
+ border: solid 1px #666;
+}
+#tabsTable td.rssPrint a.rss:hover {
+ color: #900;
+ background-color: #fff;
+}
+#navigationBarTable {
+ font-size: 0.8em;
+ margin: 0em;
+ padding: 0em;
+ vertical-align: top;
+ color: black;
+ background: white;
+ border-left : 2px solid #333;
+ border-right : 2px solid #333;
+ border-bottom: 1px solid Gray;
+}
+#navigationBarTable a {
+ text-decoration: none;
+ white-space: nowrap;
+}
+#navigationBarTable td {
+ vertical-align: top;
+}
+#navigationBarTable form {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable table {
+ display: inline;
+ margin-bottom: 0em;
+}
+#navigationBarTable td.todayButton {
+ padding: 1em 1em 0 1em;
+}
+#navigationBarTable td.gotoForm {
+ padding: 1em 0.5em 0 0;
+}
+#navigationBarTable td.leftCell {
+ text-align: left;
+ white-space: nowrap;
+ padding-left: 0.5em;
+ font-size: 1.3em;
+ font-weight: bold;
+ padding: 0.75em 0em 0.75em 1em;
+ width: 100%;
+ vertical-align: middle;
+}
+#navigationBarTable td.leftCell .prevImg {
+ margin: 0 0.2em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.leftCell .nextImg {
+ margin: 0 0.75em 0 0;
+ vertical-align: top;
+}
+#navigationBarTable td.rightCell {
+ text-align: right;
+ padding: 1em 0.5em 0em 0em;
+}
+#navigationBarTable td.rightCell select {
+ padding-right: 0em;
+ margin: 0em;
+ width: 10em;
+}
+#searchBarTable .calLinks {
+ white-space: nowrap;
+}
+#eventTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#eventTable td.fieldname {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 0.5em;
+ background-color: #eee;
+ /*background-color: #EDF5F9;*/
+ color: black;
+}
+#eventTable td.fieldval {
+ margin: 0em;
+ vertical-align: top;
+ padding: 0.5em 0.5em 0.2em 1em;
+}
+#eventTable th.fieldval {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 1em;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#eventTable th.icalIcon {
+ margin: 0em;
+ vertical-align: middle;
+ text-align: right;
+ padding: 0.5em 1em 0.2em 0.5em;
+ white-space: nowrap;
+ font-size: 0.9em;
+ font-weight: normal;
+}
+#eventTable th.icalIcon a {
+ text-decoration: none;
+}
+#eventTable th.icalIcon img {
+ vertical-align: middle;
+ padding-left: 1em;
+}
+#eventTable th.fieldname {
+ text-align: left;
+ padding: 1em 0.5em 1em 0.5em;
+ background-color: #eee;
+ /*background-color: #EDF5F9;*/
+ color: black;
+}
+#eventTable th.fieldval {
+ text-align: left;
+ padding: 1em 0.5em 0.5em 1em;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#calPageTable {
+ width: 100%;
+ font-size: 100%;
+ margin: 0px;
+ padding: 0px;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#calPageTable td {
+ width: 50%;
+ vertical-align: top;
+ padding: 0.5em 2em 1em 3em;
+}
+#calPageTable th {
+ font-size: 1.2em;
+ background-color: #ccc;
+ color: black;
+ font-weight: bold;
+}
+#calPageTable td.leftCell {
+ border-right : thin dashed #999;
+}
+#calPageTable h2 {
+ font-size: 1.2em;
+}
+#calPageTable td.infoCell {
+ background-color: #ddd;
+ color: black;
+ text-align: center;
+}
+#dayCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#dayCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#dayCalendarTable .dateRange {
+ text-align: left;
+ background-color: #f0eee5;
+ color: black;
+ white-space: nowrap;
+}
+#dayCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#dayCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#weekCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#weekCalendarTable td {
+ padding: 0.4em;
+ margin: 0em;
+}
+#weekCalendarTable .dateRange {
+ text-align: left;
+ background-color: #e2decc;
+ color: black;
+ white-space: nowrap;
+}
+#weekCalendarTable .description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#weekCalendarTable .more {
+ text-align: center;
+ background-color: #eee;
+ color: black;
+ font-size: 0.8em;
+}
+#monthCalendarTable {
+ width: 100%;
+ font-size: 0.8em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#monthCalendarTable th.dayHeading {
+ width: 14%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #663;
+ color: #eee;
+ border: 1px solid black;
+}
+#monthCalendarTable td {
+ width: 14%;
+ height: 60px;
+ vertical-align: top;
+ text-align: left;
+ padding: 0em;
+ border: 1px solid #aaa;
+ background-color: white;
+ color: black;
+}
+#monthCalendarTable td.filler {
+ border: none;
+ background-color: #eee;
+ color: black;
+}
+#monthCalendarTable ul {
+ font-size: 0.8em;
+ list-style : none;
+ margin: 0em;
+ padding: 0.3em 0em 0em 0em;
+}
+#monthCalendarTable ul li {
+ margin: 0em;
+ padding: 0em;
+ display: inline;
+}
+#monthCalendarTable a.eventLinkA:link,
+#monthCalendarTable a.eventLinkA:visited,
+#monthCalendarTable a.eventLinkA:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #d1cbb3;
+ color: black;
+}
+#monthCalendarTable a.eventLinkB:link,
+#monthCalendarTable a.eventLinkB:visited,
+#monthCalendarTable a.eventLinkB:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #f0eee5;
+ color: black;
+}
+#monthCalendarTable a.eventCancelled:link,
+#monthCalendarTable a.eventCancelled:visited,
+#monthCalendarTable a.eventCancelled:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #ccc;
+ color: black;
+}
+#monthCalendarTable a.eventTentative:link,
+#monthCalendarTable a.eventTentative:visited,
+#monthCalendarTable a.eventTentative:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ border-bottom: 1px solid #ccc;
+ border-top: 1px solid #ccc;
+ background: #f0eee5 url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#monthCalendarTable a.holiday:link,
+#monthCalendarTable a.holiday:visited,
+#monthCalendarTable a.holiday:active {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ background-color: #fff;
+ color: black;
+ /*border-top: 1px solid black;
+ border-bottom: 1px solid black;*/
+}
+#monthCalendarTable a.eventLinkA:hover,
+#monthCalendarTable a.eventLinkB:hover,
+#monthCalendarTable a.eventCancelled:hover,
+#monthCalendarTable a.eventTentative:hover,
+#monthCalendarTable a.holiday:hover {
+ display: block;
+ padding: 0.1em 0.2em 0.1em 0.2em;
+ text-decoration: none;
+ color: black;
+ background-color: #ffe;
+}
+#monthCalendarTable a.dayLink {
+ text-decoration: none;
+ color: black;
+ background-color: transparent;
+}
+#monthCalendarTable a:hover.dayLink {
+ text-decoration: none;
+ color: #eee;
+ background-color: black;
+}
+#monthCalendarTable a:hover {
+ /* required for eventTip to hover correctly;
+ apply only to the hover pseudo class, or
+ the other anchors nearby will cover the eventTip in IE */
+ position: relative;
+}
+#monthCalendarTable a span.eventTip,
+#monthCalendarTable a span.eventTipReverse {
+ display: none;
+}
+#monthCalendarTable a:hover span.eventTip {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: 12em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+}
+#monthCalendarTable a:hover span.eventTipReverse {
+ display: block;
+ position: absolute;
+ width: 20em;
+ top: 1em;
+ left: -21em;
+ background-color: #ffe;
+ color: black;
+ padding: 4px;
+ border: 1px solid #333;
+}
+#monthCalendarTable a:hover span.eventTipStatus {
+ display: block;
+ color: white;
+ background-color: #333;
+ padding: 2px;
+ margin-bottom: 6px;
+ text-align: center;
+}
+a.gridAdd {
+ display: block;
+ float: right;
+ font-size: 0.8em;
+ text-decoration: none;
+ margin-right: 2px;
+}
+#yearCalendarTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0em;
+ color: black;
+ background: white;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+}
+#yearCalendarTable td {
+ padding: 1em 0em 0em 0em;
+ margin: 0em;
+ vertical-align: top;
+ text-align: center;
+ width: 33%;
+}
+#yearCalendarTable table.yearViewMonthTable {
+ margin: 0em 1em 0.5em 1em;
+ border: 1px solid #666;
+}
+#yearCalendarTable table.yearViewMonthTable td {
+ text-align: center;
+ padding: 0.2em;
+ width: 12.5%;
+}
+#yearCalendarTable table.yearViewMonthTable th {
+ font-weight: bold;
+ background-color: #f5f5f5;
+ color: black;
+ padding: 0.2em;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName {
+ font-weight: bold;
+ text-align: center;
+ background-color: #d1cbb3;
+ color: #eee;
+ white-space: nowrap;
+ border-bottom: 1px solid #999;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell {
+ font-weight: bold;
+ font-size: 0.8em;
+ background-color: #f5f5f5;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a {
+ text-decoration: none;
+ background-color: inherit;
+ border: 1px solid #dlcbb3;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.weekCell a {
+ text-decoration: none;
+ background-color: inherit;
+ border: 1px solid #f5f5f5;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td.monthName a {
+ text-decoration: none;
+ background-color: inherit;
+ padding: 1px;
+ color: black;
+}
+#yearCalendarTable table.yearViewMonthTable td a:hover {
+ text-decoration: none;
+ background-color: #FFC;
+ color: black;
+ border: 1px solid black;
+ padding: 0;
+}
+#listTable {
+ width: 100%;
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 0px;
+ border-top: 1px solid #666;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+ color: black;
+ background: white;
+}
+#listTable td {
+ padding: 0.5em;
+ margin: 0em;
+ border-bottom: 1px solid #bbb;
+}
+#listTable td a {
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRangeCrossDay {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #ddd;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEarlyMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #cbd1de;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeMorning {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #f0eee5;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeAfternoon {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #e2decc;
+ color: black;
+ white-space: nowrap;
+}
+#listTable td.dateRangeEvening {
+ font-size: 0.9em;
+ text-transform: lowercase;
+ background-color: #d1cbb3;
+ color: black;
+ white-space: nowrap;
+}
+#listTable span.littleArrow {
+ font-size: 1.4em;
+}
+#listTable td.description {
+ text-align: left;
+ background-color: #fff;
+ color: black;
+ width: 100%;
+}
+#listTable td.bwStatusCancelled {
+ background-color: #ddd;
+ color: black;
+}
+#listTable td.bwStatusTentative {
+ background: white url('../../images/tentativeLines.gif') top;
+ color: black;
+}
+#listTable td.description a {
+ display: block;
+ background-color: transparent;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.description a.moreLink {
+ display: inline;
+ background-color: transparent;
+ color: #663;
+ text-decoration: underline;
+}
+#listTable td.description:hover {
+ background-color: #eee;
+ color: black;
+ text-decoration: none;
+}
+#listTable td.dateRow {
+ text-align: left;
+ background-color: #888;
+ color: #eee;
+ font-size: 0.8em;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ margin: 0em;
+}
+#listTable td.dateRow a {
+ display: block;
+ color: #fff;
+ background-color: transparent;
+ font-weight: bold;
+ text-decoration : none;
+}
+#listTable td.icons {
+ color: black;
+ background-color: #ddd;
+ white-space: nowrap;
+}
+#listTable td.icons img.addref {
+ margin-right: 0.5em;
+}
+#calPageTable {
+ background: white;
+ color: black;
+}
+#calPageTable ul.calendarTree li {
+ font-weight: bold;
+}
+#calPageTable ul.calendarTree li ul li {
+ font-weight: normal;
+}
+#calPageTable ul.calendarTree li.folder {
+ list-style-image: url(../../images/demo/catIcon.gif);
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+}
+#calPageTable ul.calendarTree li.calendar {
+ list-style-image: url(../../images/demo/calIcon-sm.gif);
+}
+.noEventsCell {
+ padding: 1em;
+}
+#footer {
+ font-size: 0.75em;
+ text-align : center;
+ margin-top: 0em;
+ padding: 1em;
+ color: #333;
+ background-color: #eee;
+ border-bottom: 2px solid #333;
+ border-left: 2px solid #333;
+ border-right: 2px solid #333;
+ white-space: nowrap;
+}
+#footer a {
+ color: #333;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#subFoot {
+ width: 100%;
+ padding-top: 0.5em;
+ font-size: 0.7em;
+ color: #bbb;
+ background-color: inherit;
+}
+#subFoot a {
+ color: #bbb;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#subFoot a:hover {
+ color: #eee;
+ background-color: transparent;
+ text-decoration: underline;
+}
+#featureHighlight {
+ color: #dd0;
+ font-style: italic;
+}
+/* LINKS */
+a:link, a:active {
+ color: #552;
+ background-color: transparent;
+}
+a:visited {
+ color: #600;
+ background-color: transparent;
+}
+a:hover {
+ color: red;
+ background-color: transparent;
+}
+/* Generic selectors*/
+.center {
+ text-align: center;
+}
+.left {
+ text-align: left;
+}
+.right {
+ text-align: right;
+}
+h2 {
+ margin: 0em;
+ padding: 0.2em 0.2em 0.2em 0.5em;
+ font-size: 1.3em;
+ border-bottom: 1px solid #ccc;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+h2 a:link,
+h2 a:active,
+h2 a:visited,
+h2 a:hover {
+ color: black;
+ background-color: inherit;
+ text-decoration: none;
+}
+h2.bwStatusConfirmed {
+ background-color: #eee;
+ color: black;
+}
+h2.bwStatusCancelled {
+ background-color: #eee;
+ color: black;
+}
+h2.bwStatusTentative {
+ background: #eee url('../../images/tentativeLines.gif') top;
+}
+/* Header IDs and classes */
+#errors {
+ margin: 0;
+ padding: 1em;
+ background-color: #333;
+ color: #ff9;
+ font-weight: bold;
+}
+#tabsTable .centerCell {
+ text-align: left;
+ background : url(../../images/demo/std-tab-space.gif);
+ font-size: 0.8em;
+ white-space: nowrap;
+ width: 100%;
+ padding: 0 1em;
+}
+#stats {
+ font-size: 0.9em;
+ margin: 0px;
+ padding: 1em;
+ border-bottom: 2px solid #aaa;
+ border-left: 2px solid #aaa;
+ border-right: 2px solid #aaa;
+}
+#statsTable {
+ margin: 1em 0 0 4em;
+ width: 300px;
+}
+#statsTable th {
+ padding: 0.5em;
+ background-color: #eee;
+ color: black;
+}
+#statsTable td.label {
+ text-align: right;
+ padding-right: 2em;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/soe.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,1161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="html"
+ indent="yes"
+ media-type="text/html"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ standalone="yes"
+/>
+
+<!-- =========================================================
+
+ DEMONSTRATION "DEPARTMENTAL" CALENDAR STYLESHEET
+
+ This stylesheet is for the "soe" (School of Engineering)
+ calendar suite; it is an example of a departmental skin.
+
+ This skin, along with the preferences for the Calendar
+ Suite owner differ from the main public skin (default.xsl) in the
+ following ways:
+ - different header, title, and footer
+ - default view = Month
+ - default layout = list view (rather than calendar grid)
+ - different color scheme
+
+ Otherwise, for the sake of demonstration, we've left most of the
+ functionality of the public client in place.
+
+ For detailed instructions on how to work with the XSLT
+ stylesheets included with this distribution, please see the
+ Bedework Design Guide at
+ http://www.bedework.org/bedework/update.do?artcenterkey=24
+
+=============================================================== -->
+
+<!-- **********************************************************************
+ Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
+
+ Redistribution and use of this distribution in source and binary forms,
+ with or without modification, are permitted provided that:
+ The above copyright notice and this permission notice appear in all
+ copies and supporting documentation;
+
+ The name, identifiers, and trademarks of Rensselaer Polytechnic
+ Institute are not used in advertising or publicity without the
+ express prior written permission of Rensselaer Polytechnic Institute;
+
+ DISCLAIMER: The software is distributed" AS IS" without any express or
+ implied warranty, including but not limited to, any implied warranties
+ of merchantability or fitness for a particular purpose or any warrant)'
+ of non-infringement of any current or pending patent rights. The authors
+ of the software make no representations about the suitability of this
+ software for any particular purpose. The entire risk as to the quality
+ and performance of the software is with the user. Should the software
+ prove defective, the user assumes the cost of all necessary servicing,
+ repair or correction. In particular, neither Rensselaer Polytechnic
+ Institute, nor the authors of the software are liable for any indirect,
+ special, consequential, or incidental damages related to the software,
+ to the maximum extent the law permits. -->
+
+ <!-- ================================= -->
+ <!-- DEMO PUBLIC CALENDAR STYLESHEET -->
+ <!-- ================================= -->
+
+ <!-- DEFINE INCLUDES -->
+ <xsl:include href="errors.xsl"/>
+
+ <!-- DEFINE GLOBAL CONSTANTS -->
+
+ <!-- URL of the XSL template directory -->
+ <!-- The approot is an appropriate place to put
+ included stylesheets and xml fragments. These are generally
+ referenced relatively (like errors.xsl and messages.xsl above);
+ this variable is here for your convenience if you choose to
+ reference it explicitly. It is not used in this stylesheet, however,
+ and can be safely removed if you so choose. -->
+ <xsl:variable name="appRoot" select="/bedework/approot"/>
+
+ <!-- URL of html resources (images, css, other html); by default this is
+ set to the application root -->
+ <xsl:variable name="resourcesRoot" select="/bedework/approot"/>
+
+ <!-- Properly encoded prefixes to the application actions; use these to build
+ urls; allows the application to be used without cookies or within a portal. -->
+ <xsl:variable name="setup" select="/bedework/urlPrefixes/setup"/>
+ <xsl:variable name="setSelection" select="/bedework/urlPrefixes/setSelection"/>
+ <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/fetchPublicCalendars"/>
+ <xsl:variable name="setViewPeriod" select="/bedework/urlPrefixes/setViewPeriod"/>
+ <xsl:variable name="eventView" select="/bedework/urlPrefixes/eventView"/>
+ <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/addEventRef"/>
+ <xsl:variable name="export" select="/bedework/urlPrefixes/export"/>
+ <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mailEvent"/>
+ <xsl:variable name="showPage" select="/bedework/urlPrefixes/showPage"/>
+ <xsl:variable name="stats" select="/bedework/urlPrefixes/stats"/>
+
+ <!-- Other generally useful global variables -->
+ <xsl:variable name="privateCal">/ucal</xsl:variable>
+ <xsl:variable name="prevdate" select="/bedework/previousdate"/>
+ <xsl:variable name="nextdate" select="/bedework/nextdate"/>
+ <xsl:variable name="curdate" select="/bedework/currentdate/date"/>
+ <xsl:variable name="skin">default</xsl:variable>
+
+
+ <!-- MAIN TEMPLATE -->
+ <xsl:template match="/">
+ <html lang="en">
+ <head>
+ <title>School of Engineering: Example Bedework Departmental Calendar Suite</title>
+ <link rel="stylesheet" type="text/css" href="{$resourcesRoot}/default/default/soe.css" />
+ <link rel="icon" type="image/ico" href="{$resourcesRoot}/images/bedework.ico" />
+ </head>
+ <body>
+ <xsl:call-template name="headBar"/>
+ <xsl:if test="/bedework/error">
+ <div id="errors">
+ <xsl:apply-templates select="/bedework/error"/>
+ </div>
+ </xsl:if>
+ <xsl:call-template name="tabs"/>
+ <xsl:call-template name="navigation"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/page='event'">
+ <!-- show an event -->
+ <xsl:apply-templates select="/bedework/event"/>
+ </xsl:when>
+ <xsl:when test="/bedework/page='showSysStats'">
+ <!-- show system stats -->
+ <xsl:call-template name="stats"/>
+ </xsl:when>
+ <xsl:when test="/bedework/page='calendarList'">
+ <!-- show a list of all calendars -->
+ <xsl:apply-templates select="/bedework/calendars"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- otherwise, show the eventsCalendar -->
+ <xsl:if test="/bedework/periodname!='Year'">
+ <xsl:call-template name="searchBar"/>
+ </xsl:if>
+ <!-- main eventCalendar content -->
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <xsl:call-template name="listView"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='weekViewMode']/value='cal'">
+ <xsl:call-template name="weekView"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="listView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
+ <xsl:call-template name="listView"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="monthView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="yearView"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- footer -->
+ <xsl:call-template name="footer"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!--==== HEADER TEMPLATES and NAVIGATION ====-->
+ <!-- these templates are separated out for convenience and to simplify the default template -->
+
+ <xsl:template name="headBar">
+ <div id="headBar">
+ <div id="bedeworkLogo">
+ <a href="http://www.bedework.org/">
+ <img src="{$resourcesRoot}/images/soecal/soeBedeworkLogo.gif" width="296" height="69" border="0" alt="Bedework" align="right"/>
+ </a>
+ </div>
+ <h1>Example Departmental Calendar Suite</h1>
+ <!--<ul id="schoolLinks">
+ <li><a href="{$privateCal}">Personal Calendar</a></li>
+ <li><a href="http://www.yourschoolhere.edu">School Home</a></li>
+ <li><a href="http://www.bedework.org/">Other Link</a></li>
+ <li>
+ <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51">
+ Example Calendar Help
+ </a>
+ </li>
+ </ul> -->
+ </div>
+ <!-- Turn off the date range table for this departmental view -->
+ <!--<table id="curDateRangeTable" cellspacing="0">
+ <td class="sideBarOpenCloseIcon">
+   -->
+ <!--
+ we may choose to implement calendar selection in the public calendar
+ using a sidebar; leave this comment here for now.
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'">
+ <a href="?setappvar=sidebar(opened)">
+ <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="?setappvar=sidebar(closed)">
+ <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>-->
+ <!-- </td>
+ <td class="date">
+ <xsl:choose>
+ <xsl:when test="/bedework/page='event'">
+ Event Information
+ </xsl:when>
+ <xsl:when test="/bedework/page='showSysStats' or
+ /bedework/page='calendars'">
+  
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/firstday/longdate"/>
+ <xsl:if test="/bedework/periodname!='Day'">
+ -
+ <xsl:value-of select="/bedework/lastday/longdate"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="rssPrint">
+ <a href="javascript:window.print()" title="print this view">
+ <img alt="print this view" src="{$resourcesRoot}/images/std-print-icon.gif" width="20" height="14" border="0"/> print
+ </a>
+ <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&skinName=rss" title="RSS feed">RSS</a>
+ </td>
+ </table>-->
+ </xsl:template>
+
+ <xsl:template name="tabs">
+ <xsl:choose>
+ <xsl:when test="/bedework/page='eventscalendar'">
+ <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
+ <tr>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-on.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Month'">
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year'">
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-on.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="rssPrint">
+ <a href="javascript:window.print()" title="print this view">
+ <img alt="print this view" src="{$resourcesRoot}/images/std-print-icon.gif" width="20" height="14" border="0"/> print
+ </a>
+ <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&skinName=rss" title="RSS feed">RSS</a>
+ </td>
+ </tr>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
+ <tr>
+ <td>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
+ </td>
+ <td>
+ <a href="{$setViewPeriod}?viewType=yearView&date={$curdate}"><img src="{$resourcesRoot}/images/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
+ </td>
+ <td class="rssPrint">
+ <a href="javascript:window.print()" title="print this view">
+ <img alt="print this view" src="{$resourcesRoot}/images/std-print-icon.gif" width="20" height="14" border="0"/> print
+ </a>
+ <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&skinName=rss" title="RSS feed">RSS</a>
+ </td>
+ </tr>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="navigation">
+ <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable">
+ <tr>
+ <td class="leftCell">
+ <a id="prevViewPeriod" href="{$setViewPeriod}?date={$prevdate}"><img src="{$resourcesRoot}/images/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a>
+ <a id="nextViewPeriod" href="{$setViewPeriod}?date={$nextdate}"><img src="{$resourcesRoot}/images/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year'">
+ <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Week'">
+ Week of <xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/firstday/longdate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="todayButton">
+ <a href="{$setViewPeriod}?viewType=todayView&date={$curdate}">
+ <img src="{$resourcesRoot}/images/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/>
+ </a>
+ </td>
+ <td align="right" class="gotoForm">
+ <form name="calForm" method="get" action="{$setViewPeriod}">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:if test="/bedework/periodname!='Year'">
+ <td>
+ <select name="viewStartDate.month">
+ <xsl:for-each select="/bedework/monthvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/monthvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ <xsl:if test="/bedework/periodname!='Month'">
+ <td>
+ <select name="viewStartDate.day">
+ <xsl:for-each select="/bedework/dayvalues/val">
+ <xsl:variable name="temp" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="/bedework/dayvalues[start=$temp]">
+ <option value="{$temp}" selected="selected">
+ <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$temp}">
+ <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
+ </option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </td>
+ </xsl:if>
+ </xsl:if>
+ <td>
+ <xsl:variable name="temp" select="/bedework/yearvalues/start"/>
+ <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/>
+ </td>
+ <td>
+ <input name="submit" type="submit" value="go"/>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </td>
+ <td class="rightCell">
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template name="searchBar">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" id="searchBarTable">
+ <tr>
+ <td class="leftCell">
+ <xsl:choose>
+ <xsl:when test="/bedework/selectionState/selectionType = 'calendar'">
+ Calendar: <xsl:value-of select="/bedework/selectionState/subscriptions/subscription/calendar/name"/>
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'search'">
+ Current search: <xsl:value-of select="/bedework/search"/>
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'subscription'">
+ Subscription: (not implemented yet)
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:when test="/bedework/selectionState/selectionType = 'filter'">
+ Filter: (not implemented yet)
+ <span class="link">[<a href="{$setSelection}">default view</a>]</span>
+ </xsl:when>
+ <xsl:otherwise><!-- view -->
+ View:
+ <form name="selectViewForm" method="get" action="{$setSelection}">
+ <select name="viewName" onChange="submit()" >
+ <xsl:for-each select="/bedework/views/view">
+ <xsl:variable name="name" select="name"/>
+ <xsl:choose>
+ <xsl:when test="name=/bedework/selectionState/view/name">
+ <option value="{$name}" selected="selected"><xsl:value-of select="name"/></option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="{$name}"><xsl:value-of select="name"/></option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </select>
+ </form>
+ <span class="calLinks"><a href="{$setSelection}">default view</a> | <a href="{$fetchPublicCalendars}">available calendars</a></span>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="rightCell">
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Day'">
+ <img src="{$resourcesRoot}/images/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Year'">
+ <img src="{$resourcesRoot}/images/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </xsl:when>
+ <xsl:when test="/bedework/periodname='Month'">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
+ <a href="{$setup}?setappvar=monthViewMode(cal)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=monthViewMode(list)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='weekViewMode']/value='cal'">
+ <a href="{$setup}?setappvar=weekViewMode(list)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=weekViewMode(cal)" title="toggle list/calendar view">
+ <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname='Year' or
+ (/bedework/periodname='Month' and
+ (/bedework/appvar[key='monthViewMode']/value='cal' or
+ not(/bedework/appvar[key='monthViewMode']))) or
+ (/bedework/periodname='Week' and
+ (/bedework/appvar[key='weekViewMode']/value='cal' or
+ not(/bedework/appvar[key='weekViewMode'])))">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <img src="{$resourcesRoot}/images/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{$resourcesRoot}/images/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <a href="{$setup}?setappvar=summaryMode(summary)" title="toggle summary/detailed view">
+ <img src="{$resourcesRoot}/images/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$setup}?setappvar=summaryMode(details)" title="toggle summary/detailed view">
+ <img src="{$resourcesRoot}/images/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <a href="setup.do"><img src="{$resourcesRoot}/images/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== SINGLE EVENT ====-->
+ <xsl:template match="event">
+ <xsl:variable name="statusClass">
+ <xsl:choose>
+ <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when>
+ <xsl:otherwise>bwStatusConfirmed</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <h2 class="{$statusClass}">
+ <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if>
+ <xsl:choose>
+ <xsl:when test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}">
+ <xsl:value-of select="summary"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="summary"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ <table id="eventTable" cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="fieldname">When:</td>
+ <td class="fieldval">
+ <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text>
+ <xsl:if test="start/allday = 'false'">
+ <span class="time"><xsl:value-of select="start/time"/></span>
+ </xsl:if>
+ <xsl:if test="(end/longdate != start/longdate) or
+ ((end/longdate = start/longdate) and (end/time != start/time))"> - </xsl:if>
+ <xsl:if test="end/longdate != start/longdate">
+ <xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true'">
+ <span class="time"><em>(all day)</em></span>
+ </xsl:when>
+ <xsl:when test="end/longdate != start/longdate">
+ <span class="time"><xsl:value-of select="end/time"/></span>
+ </xsl:when>
+ <xsl:when test="end/time != start/time">
+ <span class="time"><xsl:value-of select="end/time"/></span>
+ </xsl:when>
+ </xsl:choose>
+ </td>
+ <th class="icalIcon" rowspan="2">
+ <div id="eventIcons">
+ <xsl:variable name="id" select="id"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <a href="{$privateCal}/addEventRef.do?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" title="Add event to MyCalendar" target="myCalendar">
+ <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon.gif" width="20" height="26" border="0" alt="Add event to MyCalendar"/>
+ add to my calendar</a>
+ <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/>
+ <a href="{$export}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}&nocache=no&skinName=ical&contentType=text/calendar&contentName={$eventIcalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
+ <img src="{$resourcesRoot}/images/std-ical_icon.gif" width="20" height="26" border="0" alt="Download this event"/>
+ download</a>
+ </div>
+ </th>
+ </tr>
+ <tr>
+ <td class="fieldname">Where:</td>
+ <td class="fieldval">
+ <xsl:choose>
+ <xsl:when test="location/link=''">
+ <xsl:value-of select="location/address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="locationLink" select="location/link"/>
+ <a href="{$locationLink}">
+ <xsl:value-of select="location/address"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="location/subaddress!=''">
+ <br/><xsl:value-of select="location/subaddress"/>
+ </xsl:if>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldname">Description:</td>
+ <td colspan="2" class="fieldval description">
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="description"/>
+ <xsl:with-param name="pattern" select="'
'"/>
+ <xsl:with-param name="replacement"><br/></xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </tr>
+ <xsl:if test="status !='' and status != 'CONFIRMED'">
+ <tr>
+ <td class="fieldname">Status:</td>
+ <td class="fieldval">
+ <xsl:value-of select="status"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="cost!=''">
+ <tr>
+ <td class="fieldname">Cost:</td>
+ <td colspan="2" class="fieldval"><xsl:value-of select="cost"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="link != ''">
+ <tr>
+ <td class="fieldname">See:</td>
+ <td colspan="2" class="fieldval">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}"><xsl:value-of select="link"/></a>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ <tr>
+ <td class="fieldname">Contact:</td>
+ <td colspan="2" class="fieldval">
+ <xsl:choose>
+ <xsl:when test="sponsor/link=''">
+ <xsl:value-of select="sponsor/name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sponsorLink" select="sponsor/link"/>
+ <a href="{$sponsorLink}">
+ <xsl:value-of select="sponsor/name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="sponsor/phone!=''">
+ <br /><xsl:value-of select="sponsor/phone"/>
+ </xsl:if>
+ <!-- If you want to display email addresses, uncomment the
+ following 8 lines. -->
+ <!-- <xsl:if test="sponsor/email!=''">
+ <br />
+ <xsl:variable name="email" select="sponsor/email"/>
+ <xsl:variable name="subject" select="summary"/>
+ <a href="mailto:{$email}?subject={$subject}">
+ <xsl:value-of select="sponsor/email"/>
+ </a>
+ </xsl:if> -->
+ </td>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td class="fieldname">Calendar:</td>
+ <td class="fieldval">
+ <xsl:variable name="calUrl" select="calendar/path"/>
+ <a href="{$setSelection}?calUrl={$calUrl}">
+ <xsl:value-of select="calendar/name"/>
+ </a>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== LIST VIEW (for day, week, and month) ====-->
+ <xsl:template name="listView">
+ <table id="listTable" border="0" cellpadding="0" cellspacing="0">
+ <xsl:choose>
+ <xsl:when test="not(/bedework/eventscalendar/year/month/week/day/event)">
+ <tr>
+ <td class="noEventsCell">
+ No events to display.
+ </td>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[event]">
+ <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''">
+ <tr>
+ <td colspan="5" class="dateRow">
+ <xsl:variable name="date" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$date}">
+ <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/>
+ </a>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:for-each select="event">
+ <xsl:variable name="id" select="id"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <tr>
+ <xsl:variable name="dateRangeStyle">
+ <xsl:choose>
+ <xsl:when test="start/shortdate = parent::day/shortdate">
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when>
+ <xsl:when test="start/hour24 < 6">dateRangeEarlyMorning</xsl:when>
+ <xsl:when test="start/hour24 < 12">dateRangeMorning</xsl:when>
+ <xsl:when test="start/hour24 < 18">dateRangeAfternoon</xsl:when>
+ <xsl:otherwise>dateRangeEvening</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>dateRangeCrossDay</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true' and
+ start/shortdate = end/shortdate">
+ <td class="{$dateRangeStyle} center" colspan="3">
+ all day
+ </td>
+ </xsl:when>
+ <xsl:when test="start/shortdate = end/shortdate and
+ start/time = end/time">
+ <td class="{$dateRangeStyle} center" colspan="3">
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:value-of select="start/time"/>
+ </a>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td class="{$dateRangeStyle} right">
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:choose>
+ <xsl:when test="start/allday = 'true' and
+ parent::day/shortdate = start/shortdate">
+ today
+ </xsl:when>
+ <xsl:when test="parent::day/shortdate != start/shortdate">
+ <span class="littleArrow">«</span> 
+ <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="start/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </td>
+ <td class="{$dateRangeStyle} center">
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">-</a>
+ </td>
+ <td class="{$dateRangeStyle} left">
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:choose>
+ <xsl:when test="end/allday = 'true' and
+ parent::day/shortdate = end/shortdate">
+ today
+ </xsl:when>
+ <xsl:when test="parent::day/shortdate != end/shortdate">
+ <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/>
+  <span class="littleArrow">»</span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="end/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="descriptionClass">
+ <xsl:choose>
+ <xsl:when test="status='CANCELLED'">description bwStatusCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">description bwStatusTentative</xsl:when>
+ <xsl:otherwise>description</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <td class="{$descriptionClass}">
+ <xsl:if test="status='CANCELLED'"><strong>CANCELLED: </strong></xsl:if>
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <strong>
+ <xsl:value-of select="summary"/>:
+ </strong>
+ <xsl:value-of select="description"/> 
+ <em>
+ <xsl:value-of select="location/address"/>
+ <xsl:if test="location/subaddress != ''">
+ , <xsl:value-of select="location/subaddress"/>
+ </xsl:if>. 
+ <xsl:if test="cost!=''">
+ <xsl:value-of select="cost"/>. 
+ </xsl:if>
+ <xsl:if test="sponsor/name!='none'">
+ Contact: <xsl:value-of select="sponsor/name"/>
+ </xsl:if>
+ </em>
+ </a>
+ <xsl:if test="link != ''">
+ <xsl:variable name="link" select="link"/>
+ <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}">
+ <xsl:value-of select="summary"/>
+ <xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td class="icons">
+ <variable name="confId" select="/bedework/confirmationid"/>
+ <a href="{$privateCal}/addEventRef.do?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" title="Add event to MyCalendar" target="myCalendar">
+ <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="Add event to MyCalendar"/>
+ </a>
+ <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/>
+ <a href="{$export}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}&nocache=no&skinName=ical&contentType=text/calendar&contentName={$eventIcalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
+ <img src="{$resourcesRoot}/images/std-ical_icon_small.gif" width="12" height="16" border="0" alt="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars"/>
+ </a>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </xsl:template>
+
+ <!--==== WEEK CALENDAR VIEW ====-->
+ <xsl:template name="weekView">
+ <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:for-each select="/bedework/daynames/val">
+ <th class="dayHeading"><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <tr>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week/day">
+ <xsl:variable name="dayPos" select="position()"/>
+ <xsl:if test="filler='false'">
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}" class="dayLink">
+ <xsl:value-of select="value"/>
+ </a>
+ <ul>
+ <xsl:apply-templates select="event" mode="calendarLayout">
+ <xsl:with-param name="dayPos" select="$dayPos"/>
+ </xsl:apply-templates>
+ </ul>
+ </td>
+ </xsl:if>
+ </xsl:for-each>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!--==== MONTH CALENDAR VIEW ====-->
+ <xsl:template name="monthView">
+ <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:for-each select="/bedework/daynames/val">
+ <th class="dayHeading"><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <xsl:for-each select="/bedework/eventscalendar/year/month/week">
+ <tr>
+ <xsl:for-each select="day">
+ <xsl:variable name="dayPos" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="filler='true'">
+ <td class="filler"> </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}" class="dayLink">
+ <xsl:value-of select="value"/>
+ </a>
+ <ul>
+ <xsl:apply-templates select="event" mode="calendarLayout">
+ <xsl:with-param name="dayPos" select="$dayPos"/>
+ </xsl:apply-templates>
+ </ul>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="event" mode="calendarLayout">
+ <xsl:param name="dayPos"/>
+ <xsl:variable name="subscriptionId" select="subscription/id"/>
+ <xsl:variable name="calPath" select="calendar/encodedPath"/>
+ <xsl:variable name="guid" select="guid"/>
+ <xsl:variable name="recurrenceId" select="recurrenceId"/>
+ <xsl:variable name="eventClass">
+ <xsl:choose>
+ <!-- Special styles for the month grid -->
+ <xsl:when test="status='CANCELLED'">eventCancelled</xsl:when>
+ <xsl:when test="status='TENTATIVE'">eventTentative</xsl:when>
+ <xsl:when test="calendar/name='Holidays'">holiday</xsl:when>
+ <!-- Alternating colors for all standard events -->
+ <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when>
+ <xsl:otherwise>eventLinkB</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <li>
+ <a href="{$eventView}?subid={$subscriptionId}&calPath={$calPath}&guid={$guid}&recurrenceId={$recurrenceId}" class="{$eventClass}">
+ <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if>
+ <xsl:value-of select="summary"/>
+ <xsl:variable name="eventTipClass">
+ <xsl:choose>
+ <xsl:when test="$dayPos > 5">eventTipReverse</xsl:when>
+ <xsl:otherwise>eventTip</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <span class="{$eventTipClass}">
+ <xsl:if test="status='CANCELLED'"><span class="eventTipStatusCancelled">CANCELLED</span></xsl:if>
+ <xsl:if test="status='TENTATIVE'"><span class="eventTipStatusTentative">TENTATIVE</span></xsl:if>
+ <strong><xsl:value-of select="summary"/></strong><br/>
+ Time:
+ <xsl:choose>
+ <xsl:when test="start/allday = 'false'">
+ <xsl:value-of select="start/time"/>
+ <xsl:if test="start/time != end/time">
+ - <xsl:value-of select="end/time"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ all day
+ </xsl:otherwise>
+ </xsl:choose><br/>
+ <xsl:if test="location/address">
+ Location: <xsl:value-of select="location/address"/><br/>
+ </xsl:if>
+ Calendar: <xsl:value-of select="calendar/name"/>
+ </span>
+ </a>
+ </li>
+ </xsl:template>
+
+ <!--==== YEAR VIEW ====-->
+ <xsl:template name="yearView">
+ <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() <= 3]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() > 3) and (position() <= 6)]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() > 6) and (position() <= 9)]"/>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() > 9]"/>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <!-- year view month tables -->
+ <xsl:template match="month">
+ <td>
+ <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td colspan="8" class="monthName">
+ <xsl:variable name="firstDayOfMonth" select="week/day/date"/>
+ <a href="{$setViewPeriod}?viewType=monthView&date={$firstDayOfMonth}">
+ <xsl:value-of select="longname"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <th> </th>
+ <xsl:for-each select="/bedework/shortdaynames/val">
+ <th><xsl:value-of select="."/></th>
+ </xsl:for-each>
+ </tr>
+ <xsl:for-each select="week">
+ <tr>
+ <td class="weekCell">
+ <xsl:variable name="firstDayOfWeek" select="day/date"/>
+ <a href="{$setViewPeriod}?viewType=weekView&date={$firstDayOfWeek}">
+ <xsl:value-of select="value"/>
+ </a>
+ </td>
+ <xsl:for-each select="day">
+ <xsl:choose>
+ <xsl:when test="filler='true'">
+ <td class="filler"> </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:variable name="dayDate" select="date"/>
+ <a href="{$setViewPeriod}?viewType=dayView&date={$dayDate}">
+ <xsl:value-of select="value"/>
+ </a>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </td>
+ </xsl:template>
+
+ <!--==== CALENDARS PAGE ====-->
+ <xsl:template match="calendars">
+ <xsl:variable name="topLevelCalCount" select="count(calendar/calendar)"/>
+ <table id="calPageTable" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <th colspan="2">
+ All Calendars
+ </th>
+ </tr>
+ <tr>
+ <td colspan="2" class="infoCell">
+ Select a calendar from the list below to see only that calendar's events.
+ </td>
+ </tr>
+ <tr>
+ <td class="leftCell">
+ <ul class="calendarTree">
+ <xsl:apply-templates select="calendar/calendar[position() <= ceiling($topLevelCalCount div 2)]" mode="calTree"/>
+ </ul>
+ </td>
+ <td>
+ <ul class="calendarTree">
+ <xsl:apply-templates select="calendar/calendar[position() > ceiling($topLevelCalCount div 2)]" mode="calTree"/>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="calendar" mode="calTree">
+ <xsl:variable name="itemClass">
+ <xsl:choose>
+ <xsl:when test="calendarCollection='false'">folder</xsl:when>
+ <xsl:otherwise>calendar</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="url" select="path"/>
+ <li class="{$itemClass}">
+ <a href="{$setSelection}?calUrl={$url}"><xsl:value-of select="name"/></a>
+ <xsl:if test="calendar">
+ <ul>
+ <xsl:apply-templates select="calendar" mode="calTree"/>
+ </ul>
+ </xsl:if>
+ </li>
+ </xsl:template>
+
+ <!--+++++++++++++++ System Stats ++++++++++++++++++++-->
+ <xsl:template name="stats">
+ <div id="stats">
+ <h2>System Statistics</h2>
+
+ <p>
+ Stats collection:
+ </p>
+ <ul>
+ <li>
+ <a href="{$stats}&enable=yes">enable</a> |
+ <a href="{$stats}&disable=yes">disable</a>
+ </li>
+ <li><a href="{$stats}&fetch=yes">fetch statistics</a></li>
+ <li><a href="{$stats}&dump=yes">dump stats to log</a></li>
+ </ul>
+ <table id="statsTable" cellpadding="0">
+ <xsl:for-each select="/bedework/sysStats/*">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'header'">
+ <tr>
+ <th colspan="2">
+ <xsl:value-of select="."/>
+ </th>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <tr>
+ <td class="label">
+ <xsl:value-of select="label"/>
+ </td>
+ <td class="value">
+ <xsl:value-of select="value"/>
+ </td>
+ </tr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </table>
+ </div>
+ </xsl:template>
+
+ <!--==== UTILITY TEMPLATES ====-->
+
+ <!-- search and replace template taken from
+ http://www.biglist.com/lists/xsl-list/archives/200211/msg00337.html -->
+ <xsl:template name="replace">
+ <xsl:param name="string" select="''"/>
+ <xsl:param name="pattern" select="''"/>
+ <xsl:param name="replacement" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$pattern != '' and $string != '' and contains($string, $pattern)">
+ <xsl:value-of select="substring-before($string, $pattern)"/>
+ <xsl:copy-of select="$replacement"/>
+ <xsl:call-template name="replace">
+ <xsl:with-param name="string" select="substring-after($string, $pattern)"/>
+ <xsl:with-param name="pattern" select="$pattern"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--==== FOOTER ====-->
+
+ <xsl:template name="footer">
+ <div id="footer">
+ Demonstration calendar; place footer information here.
+ </div>
+ <div id="subFoot">
+ Based on the <a href="http://www.bedework.org/">Bedework Calendar</a> |
+ <a href="?noxslt=yes">show XML</a> |
+ <a href="?refreshXslt=yes">refresh XSLT</a>
+ </div>
+ </xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/vcal.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/vcal.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/vcal.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+ method="text"
+ indent="no"
+ media-type="text/x-vCalendar"
+ standalone="yes"
+/>
+
+<xsl:strip-space elements="*"/>
+<!-- ================= -->
+<!-- vCAL STYLESHEET -->
+<!-- ================= -->
+<xsl:template match="/"><xsl:value-of select="/bedework/vcalendar"/></xsl:template>
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.css
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.css (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.css 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,102 @@
+/* Font sizes are set in pixels because the screen resolution is 800x600
+ Two overscan modes were viewed when creating the styles: this sheet
+ accomodates a larger overscan mode. videocal.css is for a
+ smaller overscan mode.*/
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: Arial, Helvetica, sans-serif;
+ color: #eee;
+ background : #116 url(../../images/videocal/calBackground1.jpg) no-repeat;
+}
+h1 {
+ font-size: 38px; /* 38 was optimal */
+ color: #ee3;
+ background-color: transparent;
+ margin: 0;
+ padding-top: 0.5em;
+ padding-left: 60px;
+ padding-bottom: 0;
+ padding-right: 50px;
+}
+h2#calTitle {
+ width: 100%;
+ background-color: black;
+ color: #666;
+ margin: 0;
+ height: 28px;
+ padding: 20px 0 0 0; /* 20px top */
+ font-size: 20px;
+ text-align: center;
+}
+h2#dayTitle {
+ width: 100%;
+ background-color: #004;
+ color: #ccc;
+ margin: 0;
+ padding: 0.2em 0 0.2em 0;
+ font-size: 28px; /* 28 px */
+ text-align: center;
+}
+#time {
+ color: #eee;
+ background-color: transparent;
+ margin: 0;
+ padding-top: 0.5em;
+ padding-left: 90px;
+ padding-bottom: 0;
+ padding-right: 90px;
+ font-size: 28px;
+ font-weight: bold;
+}
+#location {
+ color: #e99;
+ background-color: transparent;
+ margin: 0;
+ padding: 0 90px 0 90px;
+ font-size: 24px;
+ font-weight: bold;
+}
+#description {
+ color: #aaa;
+ background-color: transparent;
+ margin: 0;
+ padding-top: 1em;
+ padding-left: 60px;
+ padding-bottom: 0;
+ padding-right: 55px;
+ font-size: 25px;
+ font-weight: bold;
+}
+#calPlug {
+ text-align: center;
+ vertical-align: middle;
+ font-weight: bold;
+}
+#calPlug h1 {
+ margin-top: 120px;
+ font-size: 52px;
+ color: #eee;
+ background-color : transparent;
+}
+#calPlug h2 {
+ font-size: 42px;
+ color: #ee3;
+ background-color : transparent;
+}
+#getBack {
+ text-align: center;
+ color: #eee;
+ background-color : transparent;
+}
+#getBack a {
+ color: #eee;
+ background-color : transparent;
+}
+#info {
+ width: 400px;
+ margin: 1em auto;
+ color: #eee;
+ background-color : transparent;
+}
\ No newline at end of file
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.xsl
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.xsl (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/videocal.xsl 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="html" indent="yes" media-type="text/html" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" standalone="yes"/>
+ <!-- ======================= -->
+ <!-- VIDEO FEED STYLESHEET -->
+ <!-- ======================= -->
+
+ <!-- Run your browser full screen at 800 x 600 and feed this to video.
+ There are better approaches to this, but it's an interesting example. -->
+
+
+ <!-- **********************************************************************
+ Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
+
+ Redistribution and use of this distribution in source and binary forms,
+ with or without modification, are permitted provided that:
+ The above copyright notice and this permission notice appear in all
+ copies and supporting documentation;
+
+ The name, identifiers, and trademarks of Rensselaer Polytechnic
+ Institute are not used in advertising or publicity without the
+ express prior written permission of Rensselaer Polytechnic Institute;
+
+ DISCLAIMER: The software is distributed" AS IS" without any express or
+ implied warranty, including but not limited to, any implied warranties
+ of merchantability or fitness for a particular purpose or any warrant)'
+ of non-infringement of any current or pending patent rights. The authors
+ of the software make no representations about the suitability of this
+ software for any particular purpose. The entire risk as to the quality
+ and performance of the software is with the user. Should the software
+ prove defective, the user assumes the cost of all necessary servicing,
+ repair or correction. In particular, neither Rensselaer Polytechnic
+ Institute, nor the authors of the software are liable for any indirect,
+ special, consequential, or incidental damages related to the software,
+ to the maximum extent the law permits. -->
+
+ <!-- DEFINE GLOBAL CONSTANTS -->
+ <xsl:variable name="appRoot" select="/bedework/approot"/>
+ <xsl:variable name="urlPrefix" select="/bedework/urlprefix"/>
+ <xsl:variable name="prevDate" select="/bedework/previousdate"/>
+ <xsl:variable name="nextDate" select="/bedework/nextdate"/>
+ <xsl:variable name="curDate" select="/bedework/currentdate/date"/>
+
+ <!-- Duration of each slide in seconds; set this to your preference -->
+ <xsl:variable name="slideDuration">10</xsl:variable>
+
+ <!-- Number of consecutive days to iterate over; set this to your preference -->
+ <xsl:variable name="dayCount">5</xsl:variable>
+
+ <!-- Skin name -->
+ <xsl:variable name="skinName">videocal</xsl:variable>
+
+ <!-- Position of the current day to be displayed -->
+ <xsl:variable name="day">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='day']">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='day']/value > $dayCount">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/appvar[key='day']/value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Position of the next day (add 1)-->
+ <xsl:variable name="nextDay" select="number($day)+1"/>
+
+ <!-- Event count for the current day -->
+ <xsl:variable name="eventCount" select="count(/bedework/eventscalendar/year/month/week/day[date=$curDate]/event)"/>
+
+ <!-- Position of the current event being displayed -->
+ <xsl:variable name="event">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='event']">
+ <xsl:choose>
+ <xsl:when test="/bedework/appvar[key='event']/value > $eventCount">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/bedework/appvar[key='event']/value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Position of the next event (add 1)-->
+ <xsl:variable name="nextEvent" select="number($event)+1"/>
+
+ <!-- MAIN TEMPLATE -->
+ <xsl:template match="/">
+ <html lang="en">
+ <head>
+ <title>Event Calendar Video Feed</title>
+ <link rel="stylesheet" href="{$appRoot}/default/default/videocal.css"/>
+ <meta name="robots" content="noindex,nofollow"/>
+ <script language="JavaScript">
+ function today() {
+ var now = new Date();
+ var today;
+ today = now.getFullYear().toString();
+ if (now.getMonth() < 9) {
+ today += "0";
+ }
+ today += (now.getMonth() + 1).toString();
+ today += now.getDate().toString();
+ return today;
+ }
+ </script>
+ <xsl:choose>
+ <xsl:when test="/bedework/periodname!='Day'">
+ <!-- we're starting up on the wrong view; go to today and begin with the first event;
+ the title slide will display during this switch. -->
+ <meta http-equiv="refresh" content="{$slideDuration};url={$urlPrefix}/setViewPeriod.do?viewType=todayView&setappvar=event(1)&setappvar=day(1)&skinNameSticky={$skinName}&setappvar=summaryMode(details)"/>
+ </xsl:when>
+ <xsl:when test="($nextDay > $dayCount) and ($nextEvent > $eventCount)">
+ <!-- passed the last day, and all events have been displayed,
+ so start over: go to today, set day=1 and *event=0* to allow
+ for the title slide "calPlug" -->
+ <meta http-equiv="refresh" content="{$slideDuration};url={$urlPrefix}/setViewPeriod.do?viewType=todayView&setappvar=event(0)&setappvar=day(1)&skinNameSticky={$skinName}&setappvar=summaryMode(details)"/>
+ </xsl:when>
+ <xsl:when test="$nextEvent > $eventCount">
+ <!-- passed the last event for the day; go to the next day and set event=1 -->
+ <meta http-equiv="refresh" content="{$slideDuration};url={$urlPrefix}/setViewPeriod.do?date={$nextDate}&viewType=dayView&setappvar=event(1)&setappvar=day({$nextDay})&skinNameSticky={$skinName}&setappvar=summaryMode(details)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- otherwise, go to the next event on the same day -->
+ <meta http-equiv="refresh" content="{$slideDuration};url={$urlPrefix}/setup.do?viewType=dayView&setappvar=event({$nextEvent})&setappvar=day({$day})&skinNameSticky={$skinName}&setappvar=summaryMode(details)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </head>
+ <body>
+ <xsl:choose>
+ <xsl:when test="($eventCount = 0) or ($event = 0) or (/bedework/periodname!='Day')">
+ <div id="calPlug">
+ <h1>
+ Bedework Calendar of Events
+ Video Feed
+ </h1>
+ <h2>http://www.bedework.org</h2>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2 id="calTitle">
+ BEDEWORK CALENDAR OF EVENTS
+ </h2>
+ <h2 id="dayTitle">
+ <xsl:value-of select="/bedework/firstday/longdate"/><!--
+ <br/>Events: <xsl:value-of select="$event"/> of <xsl:value-of select="$eventCount"/>
+ <br/>Days: <xsl:value-of select="$day"/> of <xsl:value-of select="$dayCount"/> -->
+ </h2>
+ <xsl:apply-templates select="/bedework/eventscalendar/year/month/week/day[date=$curDate]/event[position()=$event]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- remove the following two divs if used for video -->
+ <div id="getBack">
+ (<a href="setup.do?skinNameSticky=default">restore normal calendar</a>)
+ </div>
+ <div id="info">
+ This stylesheet will rotate through five days of events at ten
+ second intervals. It is intended as a video feed running full screen
+ at 800x600px. It's settings
+ can be set from the top of
+ the videocal.xsl stylesheet.
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!--==== SINGLE EVENT ====-->
+ <xsl:template match="event">
+ <h1>
+ <xsl:value-of select="summary"/>
+ </h1>
+ <xsl:if test="(start/allday = 'false')">
+ <div id="time">
+ <!-- this logic needs to be updated for new event model -->
+ <xsl:choose>
+ <xsl:when test="start/time=''">
+ <xsl:value-of select="start/shortdate"/>
+ </xsl:when>
+ <xsl:when test="start/date != /bedework/firstday">
+ <xsl:value-of select="start/shortdate"/>
+ <xsl:value-of select="start/time"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="start/time"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ -
+ <xsl:if test="end/longdate != start/longdate">
+ <xsl:value-of select="end/shortdate"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="end/time"/>
+ </div>
+ </xsl:if>
+ <xsl:if test="location/address!='Campus-wide'">
+ <div id="location">
+ <xsl:value-of select="location/address"/>
+ </div>
+ </xsl:if>
+ <div id="description">
+ <xsl:value-of select="description"/>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/default/xsltdir.properties
===================================================================
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/default/xsltdir.properties
===================================================================
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon-small.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon-small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/add2mycal-icon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/addref.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/addref.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedework.ico
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedework.ico
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo2.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/bedeworkLogo2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/calIcon-sm.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/calIcon-sm.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/catIcon.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/catIcon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-left.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-right.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue-right.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeBlue.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-left.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-right.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen-right.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeGreen.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-left.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-right.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed-right.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/curDateRangeRed.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeBedeworkLogo.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeBedeworkLogo.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeTitleBg.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/soecal/soeTitleBg.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/spacer.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/spacer.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-left.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-right.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-arrow-right.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-calview.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-details.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-listview.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-refresh.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-refresh.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-summary.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-on.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today-on.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-button-today.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon_small.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-ical_icon_small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-print-icon.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-print-icon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-on.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-day-on.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-on.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-month-on.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-space.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-space.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-on.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-week-on.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-off.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-off.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-on.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-tab-year-on.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-left.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-left.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-right.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-right.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-space.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title-space.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/std-title.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/tentativeLines.gif
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/tentativeLines.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/videocal/calBackground1.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/images/videocal/calBackground1.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/calendar3/deployment/webpublic/uportal2/resources/demoskins/xsltdir.properties
===================================================================
Added: trunk/calendar3/deployment/webpublic/uportal2/struts-portlet-config.xml
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/struts-portlet-config.xml (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/struts-portlet-config.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<config>
+ <render-context>
+ <attribute name="errors"/>
+ <attribute name="message"/>
+ </render-context>
+ <portlet-url-type>
+ <render path="/initialise"/>
+ <render path="/showMain"/>
+ <render path="/showMsgErr"/>
+ <render path="/showPage"/>
+ <render path="/showEventMore"/>
+ <render path="/showAddEvent"/>
+ <render path="/showEditEvent"/>
+ <render path="/event/showCalsForEvent"/>
+ <render path="/event/showAddEventRef"/>
+ <render path="/showExportData"/>
+ <render path="/initUpload"/>
+ <render path="/showManageLocations"/>
+ <render path="/showEditLocation"/>
+ <render path="/freeBusy/showFreeBusy"/>
+ <render path="/showPublicCals"/>
+ <render path="/showCals"/>
+ <render path="/calendar/showCalendar"/>
+ <render path="/calendar/showModForm"/>
+ <render path="/calendar/showUpdateList"/>
+ <render path="/calendar/showDeleteConfirm"/>
+ <render path="/calendar/showReferenced"/>
+ <render path="/calendar/showDescriptionList"/>
+ <render path="/subs/showSubs"/>
+ <render path="/subs/showModForm"/>
+ <render path="/subs/showAddByUriForm"/>
+ <render path="/prefs/showModForm"/>
+ <render path="/showEmailOptions"/>
+ <render path="/showAlarmOptions"/>
+ <render path="/showStats"/>
+
+ <action path="/setup"/>
+ <action path="/setSelection"/>
+ <action path="/setViewPeriod"/>
+ <action path="/eventView"/>
+ <action path="/initEvent"/>
+ <action path="/addEventUsingPage"/>
+ <action path="/addEvent"/>
+ <action path="/editEvent"/>
+ <action path="/event/setAccess"/>
+ <action path="/event/selectCalForEvent"/>
+ <action path="/addEventRef"/>
+ <action path="/event/addEventRefComplete"/>
+ <action path="/delEvent"/>
+ <action path="/export"/>
+ <action path="/upload"/>
+ <action path="/manageLocations"/>
+ <action path="/addLocation"/>
+ <action path="/editLoc"/>
+ <action path="/delLocation"/>
+ <action path="/freeBusy/getFreeBusy"/>
+ <action path="/freeBusy/setAccess"/>
+ <action path="/fetchPublicCalendars"/>
+ <action path="/fetchCalendars"/>
+ <action path="/calendar/fetchForDisplay"/>
+ <action path="/calendar/initAdd"/>
+ <action path="/calendar/fetchForUpdate"/>
+ <action path="/calendar/update"/>
+ <action path="/calendar/setAccess"/>
+ <action path="/calendar/delete"/>
+ <action path="/subs/fetch"/>
+ <action path="/subs/initAdd"/>
+ <action path="/subs/fetchForUpdate"/>
+ <action path="/subs/subscribe"/>
+ <action path="/subs/subscribeByUri"/>
+ <action path="/subs/unsubscribe"/>
+ <action path="/addView"/>
+ <action path="/removeView"/>
+ <action path="/prefs/fetchForUpdate"/>
+ <action path="/prefs/update"/>
+ <action path="/initMailEvent"/>
+ <action path="/mailEvent"/>
+ <action path="/initEventAlarm"/>
+ <action path="/setAlarm"/>
+ <action path="/stats"/>
+ </portlet-url-type>
+</config>
+
Added: trunk/calendar3/deployment/webpublic/uportal2/struts-portlet.tld
===================================================================
--- trunk/calendar3/deployment/webpublic/uportal2/struts-portlet.tld (rev 0)
+++ trunk/calendar3/deployment/webpublic/uportal2/struts-portlet.tld 2006-06-20 13:42:12 UTC (rev 609)
@@ -0,0 +1,813 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
+<!--
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+ $Id: struts-portlet.tld 188237 2005-01-21 16:28:13Z ate $
+-->
+<taglib>
+<tlibversion>1.2</tlibversion>
+<jspversion>1.1</jspversion>
+<shortname>html</shortname>
+<uri>http://portals.apache.org/bridges/struts/tags-portlet</uri>
+<tag>
+<name>form</name>
+<tagclass>org.apache.portals.bridges.struts.taglib.FormTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>action</name>
+<required>true</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>acceptCharset</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>enctype</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>focus</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>focusIndex</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>method</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onreset</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onsubmit</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>readonly</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>scriptLanguage</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>target</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>image</name>
+<tagclass>org.apache.portals.bridges.struts.taglib.ImageTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>align</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>border</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>pageKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>src</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>srcKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>img</name>
+<tagclass>org.apache.portals.bridges.struts.taglib.ImgTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>align</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>border</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>contextRelative</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>height</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>hspace</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>imageName</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>ismap</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>lowsrc</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>pageKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>action</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>module</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>src</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>srcKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>useLocalEncoding</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>usemap</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>vspace</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>width</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>link</name>
+<tagclass>org.apache.portals.bridges.struts.taglib.LinkTag</tagclass>
+<attribute>
+<name>actionURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>renderURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>resourceURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>action</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>module</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>linkName</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>target</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>useLocalEncoding</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>rewrite</name>
+<tagclass>ca.mun.portal.strutsbridge.taglib.CalRewriteTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>actionURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>renderURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>resourceURL</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>action</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>module</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>useLocalEncoding</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+</tag>
+</taglib>
Modified: trunk/calendar3/deployment/webpublic/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/webpublic/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/webpublic/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwpublic.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init">
<!-- and define some properties based on those -->
<property name="app.war.file"
@@ -58,8 +60,15 @@
<!-- Delete expanded version -->
<delete dir="${org.bedework.appserver.dir}/${propval.app.deploy.dir}/${propval.app.context.root}" />
+
+ <antcall target="deploy.uportal2" inheritRefs="true" />
</target>
+ <target name="deploy.uportal2" if="org.bedework.build.for.uportal2" >
+ <ant antfile="${org.bedework.deploy.type.dir}/${propval.app.portal.platform}/build.xml"
+ inheritrefs="true" target="deploy" />
+ </target>
+
<target name="build.configured" depends="init" >
<!-- ===============================================================
Libraries for this application
Modified: trunk/calendar3/deployment/webuser/webapp/build.xml
===================================================================
--- trunk/calendar3/deployment/webuser/webapp/build.xml 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/deployment/webuser/webapp/build.xml 2006-06-20 13:42:12 UTC (rev 609)
@@ -5,6 +5,8 @@
=================================================================== -->
<project name="bwpersonal.deploy" default="deploy" >
+ <import file="${org.bedework.deployment.base}/deployprops.xml" />
+
<target name="init" >
<!-- and define some properties based on those -->
<property name="app.war.file"
Modified: trunk/calendar3/docs/BedeworkDeploymentManual.odt
===================================================================
(Binary files differ)
Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java 2006-06-20 13:42:12 UTC (rev 609)
@@ -1311,9 +1311,16 @@
form.assignNewSession(true);
- CalEnv env = getEnv(request, form);
- String appRoot = env.getAppProperty("root");
+ String appRoot = form.retrieveConfig().getAppRoot();
+ /* If we're running as a portlet change the app root to point to a
+ * portlet specific directory.
+ */
+ String portalPlatform = form.retrieveConfig().getPortalPlatform();
+ if (isPortlet && (portalPlatform != null)) {
+ appRoot += "." + portalPlatform;
+ }
+
/** The actual session class used is possibly site dependent
*/
s = new BwSessionImpl(form.getCurrentUser(), appRoot, appName,
Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/ConfigBase.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/ConfigBase.java 2006-06-19 17:42:34 UTC (rev 608)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/ConfigBase.java 2006-06-20 13:42:12 UTC (rev 609)
@@ -95,6 +95,10 @@
private String logPrefix;
+ private String appRoot;
+
+ private String portalPlatform;
+
private String refreshAction;
private int refreshInterval;
@@ -234,9 +238,39 @@
return logPrefix;
}
+ /** Where the xslt and resources are based.
+ *
+ * @param val
+ */
+ public void setAppRoot(String val) {
+ appRoot = val;
+ }
+
/**
+ * @return String
+ */
+ public String getAppRoot() {
+ return appRoot;
+ }
+
+ /** Define the name of the portal platform.
+ *
* @param val
*/
+ public void setPortalPlatform(String val) {
+ portalPlatform = val;
+ }
+
+ /**
+ * @return String
+ */
+ public String getPortalPlatform() {
+ return portalPlatform;
+ }
+
+ /**
+ * @param val
+ */
public void setRefreshAction(String val) {
refreshAction = val;
}
More information about the Bedework-commit
mailing list