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&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8</property>
+               <property  
name="connection.url">jdbc:mysql://192.168.0.3/openmeetings_act2win_9?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;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
-~----------~----~----~----~------~----~------~--~---

Reply via email to