Revision: 2570
Author: seba.wagner
Date: Mon Nov 2 04:34:03 2009
Log: Make Calendar load from database
http://code.google.com/p/openmeetings/source/detail?r=2570
Added:
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Modified:
/trunk/singlewebapp/WebContent/WEB-INF/web.xml
/trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/calendardata/vcal_2009-11-01.xml
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/day.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/event.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/eventselector.lzx
=======================================
--- /dev/null
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Mon Nov 2 04:34:03 2009
@@ -0,0 +1,170 @@
+package org.openmeetings.servlet.outputhandler;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.XMLWriter;
+import org.openmeetings.app.data.basic.Sessionmanagement;
+import org.openmeetings.app.data.calendar.management.AppointmentLogic;
+import org.openmeetings.app.data.user.Usermanagement;
+import org.openmeetings.app.hibernate.beans.calendar.Appointment;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class CalendarServlet extends HttpServlet {
+
+ private static final Logger log =
Red5LoggerFactory.getLogger(Calendar.class, "openmeetings");
+
+ @Override
+ protected void service(HttpServletRequest httpServletRequest,
+ HttpServletResponse httpServletResponse) throws
ServletException,
+ IOException {
+
+ try {
+
+ String sid = httpServletRequest.getParameter("sid");
+
+ if (sid == null) {
+ sid = "default";
+ }
+ log.debug("sid: " + sid);
+
+ Long users_id =
Sessionmanagement.getInstance().checkSession(sid);
+ Long user_level =
Usermanagement.getInstance().getUserLevelByID(users_id);
+
+ if (true || (user_level!=null && user_level > 0)) {
+
+ String yearStr =
httpServletRequest.getParameter("year");
+ String monthStr =
httpServletRequest.getParameter("month");
+ String userStr =
httpServletRequest.getParameter("user");
+
+ Calendar starttime =
GregorianCalendar.getInstance();
+
+ starttime.set(Calendar.DATE, 1);
+ starttime.set(Calendar.MONTH,
Integer.parseInt(monthStr)-1);
+ starttime.set(Calendar.MINUTE,0);
+ starttime.set(Calendar.SECOND, 0);
+ starttime.set(Calendar.YEAR,
Integer.parseInt(yearStr));
+
+ Calendar endtime =
GregorianCalendar.getInstance();
+
+ endtime.set(Calendar.DATE, 1);
+ endtime.set(Calendar.MONTH,
Integer.parseInt(monthStr));
+ endtime.set(Calendar.MINUTE,0);
+ endtime.set(Calendar.SECOND, 0);
+ endtime.set(Calendar.YEAR,
Integer.parseInt(yearStr));
+
+ System.out.println("starttime "+starttime);
+ System.out.println("endtime "+endtime);
+ System.out.println("getTimeInMillis s "+new
Date(starttime.getTimeInMillis()));
+ System.out.println("getTimeInMillis e "+new
Date(endtime.getTimeInMillis()));
+
+ List<Appointment> appointements =
AppointmentLogic.getInstance().getAppointmentByRange(Long.parseLong(userStr),
new Date(starttime.getTimeInMillis()), new Date(endtime.getTimeInMillis()));
+
+ System.out.println("Num of Appointements
"+appointements.size());
+
+ Document document =
DocumentHelper.createDocument();
+ document.setXMLEncoding("UTF-8");
+ document.addComment(
+
"###############################################\n" +
+ "OpenMeetings Calendar \n" +
+
"###############################################");
+
+ Element vcalendar =
document.addElement("vcalendar");
+
+ Element year =
vcalendar.addElement("year"+yearStr);
+ Element month =
year.addElement("month"+monthStr);
+
+ int previousDay = 0;
+ Element day = null;
+
+ for (Appointment appointment : appointements) {
+
+ int dayAsInt =
appointment.getAppointmentStarttime().getDate();
+
+ if (previousDay != dayAsInt){
+
+ day =
month.addElement("day"+dayAsInt);
+
+ previousDay = dayAsInt;
+
+ }
+
+ if
(appointment.getAppointmentStarttime().getMonth()+1 ==
Integer.parseInt(monthStr)) {
+
+ Element event =
day.addElement("event");
+
+ Element summary =
event.addElement("summary");
+
summary.addAttribute("value",appointment.getAppointmentName());
+
+ Element comment =
event.addElement("comment");
+ comment.addAttribute("value",
appointment.getAppointmentDescription());
+
+ Element start =
event.addElement("start");
+
+
start.addAttribute("year",
""+(appointment.getAppointmentStarttime().getYear()+1900));
+
start.addAttribute("month",
""+appointment.getAppointmentStarttime().getMonth()+1);
+
start.addAttribute("day", ""+appointment.getAppointmentStarttime().getDate());
+
start.addAttribute("hour", ""+appointment.getAppointmentStarttime().getHours());
+
start.addAttribute("minute",
""+appointment.getAppointmentStarttime().getMinutes());
+
+ Element end =
event.addElement("end");
+
end.addAttribute("year",
""+(appointment.getAppointmentEndtime().getYear()+1900));
+
end.addAttribute("month", ""+appointment.getAppointmentEndtime().getMonth()+1);
+
end.addAttribute("day", ""+appointment.getAppointmentEndtime().getDate());
+
end.addAttribute("hour", ""+appointment.getAppointmentEndtime().getHours());
+
end.addAttribute("minute", ""+appointment.getAppointmentEndtime().getMinutes());
+
+ Element category =
event.addElement("category");
+
category.addAttribute("value",""+appointment.getAppointmentCategory().getCategoryId());
+
+ Element uid =
event.addElement("uid");
+
uid.addAttribute("value",""+appointment.getAppointmentId());
+
+ }
+
+ }
+
+ String requestedFile = "users.xml";
+
+ httpServletResponse.reset();
+ httpServletResponse.resetBuffer();
+ OutputStream out =
httpServletResponse.getOutputStream();
+ httpServletResponse.setContentType("text/xml");
+
+ //
httpServletResponse.setHeader("Content-Length", ""+
+ // rf.length());
+
+ OutputFormat outformat =
OutputFormat.createPrettyPrint();
+ outformat.setEncoding("UTF-8");
+ XMLWriter writer = new XMLWriter(out,
outformat);
+ writer.write(document);
+ writer.flush();
+
+ out.flush();
+ out.close();
+
+ }
+
+ } catch (Exception er) {
+ System.out.println("Error downloading: " + er);
+ er.printStackTrace();
+ log.error("[Calendar :: service]",er);
+ }
+ }
+
+}
=======================================
--- /trunk/singlewebapp/WebContent/WEB-INF/web.xml Mon Oct 12 07:45:40 2009
+++ /trunk/singlewebapp/WebContent/WEB-INF/web.xml Mon Nov 2 04:34:03 2009
@@ -130,6 +130,10 @@
<servlet>
<servlet-name>ServerUDP</servlet-name>
<servlet-class>org.openmeetings.server.servlets.ServerOutputHandler</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>Calendar</servlet-name>
+
<servlet-class>org.openmeetings.servlet.outputhandler.CalendarServlet</servlet-class>
</servlet>
<servlet>
<description>MethodGateway</description>
@@ -218,6 +222,10 @@
<url-pattern>/serverUDP</url-pattern>
</servlet-mapping>
<servlet-mapping>
+ <servlet-name>Calendar</servlet-name>
+ <url-pattern>/Calendar</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
<servlet-name>MethodGateway</servlet-name>
<url-pattern>/MethodGateway</url-pattern>
</servlet-mapping>
=======================================
--- /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Wed Oct 28
12:50:41 2009
+++ /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Mon Nov 2
04:34:03 2009
@@ -16,7 +16,7 @@
<property
name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- for performance reasons changed to MyISAM from
org.hibernate.dialect.MySQLInnoDBDialect -->
<property
name="dialect">org.hibernate.dialect.MySQLMyISAMDialect</property>
- <property
name="connection.url">jdbc:mysql://localhost/openmeetings_act2win_8?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8</property>
+ <property
name="connection.url">jdbc:mysql://192.168.0.3/openmeetings_act2win_9?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8</property>
<property name="hibernate.connection.CharSet">utf8</property>
<property
name="hibernate.connection.characterEncoding">utf8</property>
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
Mon Nov 2 02:08:52 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
Mon Nov 2 04:34:03 2009
@@ -28,11 +28,26 @@
</handler>
<method name="loadData" args="mo, yr">
- if ($debug) Debug.write("loadData",mo, yr);
- if( !datatester.hasNode( mo , yr ) ){
- var r = "modules/lzcalendar/calendardata/vcal_" + yr + "-"
+ mo + "-01.xml";
- this.enqueueRequest( r );
- }
+ <![CDATA[
+ if ($debug) Debug.write("loadData",mo, yr);
+ if( !datatester.hasNode( mo , yr ) ){
+ //var r = "modules/lzcalendar/calendardata/vcal_" + yr
+ "-" + mo + "-01.xml";
+
+ var r
= 'http://'+canvas.rtmphostlocal+':'+canvas.red5httpport+canvas.httpRootKey
+
+ 'Calendar?' +
+ 'sid=' + canvas.sessionId +
+ '&year=' + yr +
+ '&month=' + mo +
+ '&user=' + canvas.user_id;
+
+ if ($debug) Debug.write("r ");
+ if ($debug) Debug.write(r);
+
+ //var r = "modules/lzcalendar/calendardata/vcal_" + yr
+ "-"
+ mo + "-01.xml";
+
+ this.enqueueRequest( r );
+ }
+ ]]>
</method>
<method name="doNextRequest" >
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/calendardata/vcal_2009-11-01.xml
Sat Oct 31 02:46:47 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/calendardata/vcal_2009-11-01.xml
Mon Nov 2 04:34:03 2009
@@ -1,19 +1,30 @@
+<!--
+###############################################
+OpenMeetings Calendar
+###############################################
+-->
<vcalendar>
-<!-- * X_LZ_COPYRIGHT_BEGIN
***************************************************
-* Copyright 2001-2009 Laszlo Systems, Inc. All Rights
Reserved. *
-* Use is subject to license
terms. *
-* X_LZ_COPYRIGHT_END
****************************************************** -->
- <year2009>
- <month11>
- <day14>
- <event>
- <summary value="Gym workout"/>
- <comment value="gym"/>
- <start year="2009" month="11" day="14" hour="16"
minute="30"/>
- <end year="2009" month="11" day="14" hour="17"
minute="30"/>
- <category/>
- <uid/>
- </event>
+ <year2009>
+ <month11>
+ <day2>
+ <event>
+ <summary value="My Appointement" />
+ <comment value="Description" />
+ <start year="2009" month="11" day="2"
hour="12" minute="14"/>
+ <end year="2009" month="11" day="2"
hour="15" minute="14"/>
+ <category value="1" />
+ <uid value="1" />
+ </event>
+ <event>
+ <summary>rteste</summary>
+ <comment>asdasd</comment>
+ <start year="2009" month="11" day="2"
hour="16" minute="38"/>
+ <end year="2009" month="11" day="2"
hour="17" minute="39"/>
+ <category>1</category>
+ <uid>2</uid>
+ </event>
+ </day2>
+ <day4>
<event>
<summary value="photo shoot"/>
<comment value="photo shoot"/>
@@ -21,92 +32,16 @@
<end year="2009" month="11" day="14" hour="10"
minute="12"/>
<category/>
<uid/>
- </event>
- </day14>
- <day2>
- <event>
- <summary value="Speech at the MOMA"/>
- <comment value="A test event"/>
- <start year="2009" month="11" day="2" hour="8"
minute="30"/>
- <end year="2009" month="11" day="2" hour="10"
minute="30"/>
- <category/>
- <uid/>
- </event>
- </day2>
- <day6>
- <event>
- <summary value="Ribbon Cutting Ceremony"/>
- <comment value="Another meeting"/>
- <start year="2009" month="11" day="6" hour="3"
minute="30"/>
- <end year="2009" month="11" day="6" hour="5"
minute="30"/>
- <category/>
- <uid/>
- </event>
- <event>
- <summary value="Governor's Luncheon"/>
- <comment value="Lunch with Arnold"/>
- <start year="2009" month="11" day="6" hour="12"
minute="12"/>
- <end year="2009" month="11" day="6" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- </day6>
- <day30>
- <event>
- <summary value="Pick-up Movie DVDs"/>
- <comment value="Pick-up movies"/>
- <start year="2009" month="11" day="30" hour="12"
minute="12"/>
- <end year="2009" month="11" day="30" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- <event>
- <summary value="Another example event"/>
- <comment value="Another example event"/>
- <start year="2009" month="11" day="30" hour="12"
minute="12"/>
- <end year="2009" month="11" day="30" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- </day30>
- <day12>
- <event>
- <summary value="Run Heartache Hill"/>
- <comment value="Good evening"/>
- <start year="2009" month="11" day="12" hour="12"
minute="12"/>
- <end year="2009" month="11" day="12" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- </day12>
- <day1>
- <event>
- <summary value="Swim English Channel"/>
- <comment value="Another example event"/>
- <start year="2009" month="11" day="1" hour="12"
minute="12"/>
- <end year="2009" month="11" day="1" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- </day1>
- <day18>
- <event>
- <summary value="Climb Mount Everest"/>
- <comment value="How we do it back home"/>
- <start year="2009" month="11" day="18" hour="3"
minute="30"/>
- <end year="2009" month="11" day="18" hour="5"
minute="30"/>
- <category/>
- <uid/>
- </event>
- <event>
- <summary value="Sail across Pacific"/>
- <comment value="Conference"/>
- <start year="2009" month="11" day="18" hour="12"
minute="12"/>
- <end year="2009" month="11" day="18" hour="13"
minute="12"/>
- <category/>
- <uid/>
- </event>
- </day18>
- </month11>
- </year2009>
+ </event>
+ <event>
+ <summary>asdqwe</summary>
+ <comment>des</comment>
+ <start year="2009" month="11" day="4"
hour="12" minute="39"/>
+ <end year="2009" month="11" day="4"
hour="15" minute="39"/>
+ <category>1</category>
+ <uid>3</uid>
+ </event>
+ </day4>
+ </month11>
+ </year2009>
</vcalendar>
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/day.lzx
Mon Nov 2 02:08:52 2009
+++ /trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/day.lzx
Mon Nov 2 04:34:03 2009
@@ -195,10 +195,10 @@
// If this is an opened day then use the time grid functions
if ( this.opened ){
- eventselector.updateEventTime( this );
+ parent.parent.eventselector.updateEventTime( this );
}
- if ( !eventselector['followview'].childOf( this ) ) {
+ if ( !parent.parent.eventselector['followview'].childOf( this
) ) {
// This must be a new calendar day
// Get the new day
newYear=this.startdate.getFullYear();
@@ -217,7 +217,7 @@
<method name="hilite" args="dohilite, dontupdate">
if (dohilite) {
- if ( !dontupdate ) eventselector.updateOver( this );
+ if ( !dontupdate ) parent.parent.eventselector.updateOver(
this );
details.bgrect.setAttribute('bgcolor', 0xD3D3D3);
} else {
details.bgrect.setAttribute('bgcolor',
this.unselectedColor);
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/event.lzx
Mon Nov 2 02:08:52 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/event.lzx
Mon Nov 2 04:34:03 2009
@@ -15,13 +15,11 @@
<attribute name="bkgndColor" type="color" value="0x5D84CB"/>
<method name="getEventColor" args="cat">
- if (cat==undefined || cat=="") return (0xC6CEDC); //default
- else var catColor = category_colors[cat];
-
- setAttribute('hiColor',gColorTable[catColor].bright);
- setAttribute('bkgndColor',gColorTable[catColor].bkgnd);
-
- return (gColorTable[catColor].dim);
+
+ setAttribute('hiColor',gColorTable[cat].bright);
+ setAttribute('bkgndColor',gColorTable[cat].bkgnd);
+
+ return (gColorTable[cat].dim);
</method>
<attribute name="pixelPerMin" type="number" value="22/60"/>
@@ -37,7 +35,7 @@
// which in turn selects the event selector bar
this.selected = sel;
if (this.selected){
- if ($debug) Debug.write("setSel
ITEM :: ",parent.parent.parent.parent.parent.parent.parent);
+ //if ($debug) Debug.write("setSel
ITEM :: ",parent.parent.parent.parent.parent.parent.parent);
parent.parent.parent.parent.parent.parent.parent.eventselector.setSelectedEvent(
this ,this.mouseIsDown );
}
</method>
@@ -146,12 +144,12 @@
this.mouseIsDown = true;
//The next line seems redundant. See: eventselector.lzx
//calgrid.daySelectionMgr.select(this.classroot);
- eventselector.selectData( this );
+
parent.parent.parent.parent.parent.parent.parent.eventselector.selectData(
this );
</handler>
<handler name="onmouseup">
this.mouseIsDown = false;
- eventselector.domouseup(null);
+
parent.parent.parent.parent.parent.parent.parent.eventselector.domouseup(null);
</handler>
</class>
@@ -162,13 +160,13 @@
<script>
// define colors for event types
var gColorTable = {
- green:{
+ 1:{
dim: 0xCBD1C5,
bright: 0xD4DAC8,
bkgnd: 0x587457,
trans: {ra:85, ga:100, ba:85}
},
- blue:{
+ 2:{
dim: 0xBBC6D1,
bright: 0xC6CEDC,
bkgnd: 0x4C5E7E,
@@ -177,13 +175,13 @@
bvl_hilite: 0xDFE4EB,
bvl_shdw: 0x606369
},
- purple:{
+ 3:{
dim: 0xC5C3D5,
bright: 0xCDC6DC,
bkgnd: 0x4C5E7E,
trans: {ra:85, ga:75, ba:100}
},
- grey:{
+ 4:{
dim: 0xC6CEDC,
bright: 0xDDDDDD,
bkgnd: 0x9F9F9F,
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/eventselector.lzx
Mon Nov 2 02:08:52 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/eventselector.lzx
Mon Nov 2 04:34:03 2009
@@ -61,7 +61,7 @@
width="${parent.width}" y="${parent.height-3}"/>
<ibutton name="button" x="-21" y="-1"
- onclick="infopanel.open()" />
+
onclick="parent.parent.parent.parent.cal_interior.infopanel.open()" />
</view>
<state name="followstate">
@@ -198,8 +198,7 @@
if (cat==undefined || cat=="")
var transColor = {ra:80, ga:80, ba:80};
else{
- var catColor = category_colors[cat];
- var trans = gColorTable[catColor].trans;
+ var trans = gColorTable[cat].trans;
var transColor = { ra: trans.ra, ga: trans.ga, ba:
trans.ba };
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en
-~----------~----~----~----~------~----~------~--~---