Author: sebawagner
Date: Mon Mar 12 20:50:49 2012
New Revision: 1299851

URL: http://svn.apache.org/viewvc?rev=1299851&view=rev
Log:
OPENMEETINGS-7 - Finetune month view, make weekview with fixed height and 
scrolling, show hourly divider

Added:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours.png
   (with props)
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours_index_only.png
   (with props)
Removed:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarWeek.lzx
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/functions.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/library.lzx

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/functions.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/functions.lzx?rev=1299851&r1=1299850&r2=1299851&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/functions.lzx 
(original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/functions.lzx 
Mon Mar 12 20:50:49 2012
@@ -373,17 +373,32 @@ function parseTimeStringFromXmlString(st
        return ""+tHour+":"+tMin;
 }
 
-function parseDateTimeFromXmlString(str) { 
-       //0123456789012345678901234567890
-       //2012-03-08T06:30:00.000+01:00
-       //2012-03-11T15:00:00.713Z
+/*
+ * parse date from string
+ * sample strings:
+ * 2012-03-05
+ */
+function parseDateOnlyFromXmlString(str) { 
        var tYear = str.substr(0,4);
        var tMonth = str.substr(5,2);
        var tDay = str.substr(8,2);
+       return new Date(tYear,tMonth,tDay);
+}
 
+
+/*
+ * parse date from string
+ * sample strings:
+ * 0123456789012345678901234567890
+ * 2012-03-08T06:30:00.000+01:00
+ * 2012-03-11T15:00:00.713Z
+ */
+function parseDateTimeFromXmlString(str) { 
+       var tYear = str.substr(0,4);
+       var tMonth = str.substr(5,2);
+       var tDay = str.substr(8,2);
        var tHour = str.substr(11,2);
        var tMin = str.substr(14,2);
-       
        return new Date(tYear,tMonth,tDay,tHour,tMin,0);
 }
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx?rev=1299851&r1=1299850&r2=1299851&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
 Mon Mar 12 20:50:49 2012
@@ -20,6 +20,8 @@
 -->
 <library>
 
+       <resource name="calendar_day_hours_index_bg_rsc" 
src="resources/day_hours_index_only.png" />
+       <resource name="calendar_day_bg_rsc" src="resources/day_hours.png" />
        <resource name="calendar_add_user_rsc" src="resources/user_add.png" />
        <resource name="calendar_add_user_external_rsc" 
src="resources/user_go.png" />
        <resource name="calendar_delete_button" src="resources/delete.png" />
@@ -28,7 +30,6 @@
        <include href="addExternalAttendee.lzx" />
        <include href="attendeeListItem.lzx" />
        <include href="lzCalendarGrid.lzx" />
-       <include href="lzCalendarWeek.lzx" />
        <include href="userContactsCalendar.lzx" />
        <include href="lzEditCalendarEvent.lzx" />
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx?rev=1299851&r1=1299850&r2=1299851&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
 Mon Mar 12 20:50:49 2012
@@ -24,6 +24,7 @@
                                        width="${ parent.width - 204 }" 
height="${ parent.height-20 }" >
                
                <attribute name="currentDate" value="null" />
+               <attribute name="currentWeek" value="0" type="number" />
                
                <attribute name="rowfactor" value="6" type="number" />
                <attribute name="columnfactor" value="6" type="number" />
@@ -47,17 +48,18 @@
                        this.reRenderLock = true;
                        this.setAttribute("viewType","day");
                        this.reRenderLock = false;
-                       weeks.days.setAttribute('datapath','days[4]');
-                       
weeks.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return[2]');
+                       
//rootCalenderNode.days.setAttribute('datapath','days[4]');
+                       
//rootCalenderNode.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return[2]');
                        this.setAttribute("rowfactor",1);
                        this.setAttribute("columnfactor",1);
                </method>
                
                <method name="showWeek" args="weekNo">
                        this.reRenderLock = true;
+                       this.currentWeek = 2;
                        this.setAttribute("viewType","week");
                        this.reRenderLock = false;
-                       
weeks.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return[2]');
+                       
//rootCalenderNode.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return[2]');
                        this.setAttribute("rowfactor",1);
                        this.setAttribute("columnfactor",7);
                </method>
@@ -66,124 +68,209 @@
                        this.reRenderLock = true;
                        this.setAttribute("viewType","month");
                        this.reRenderLock = false;
-                       
weeks.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return');
+                       
//rootCalenderNode.setAttribute('datapath','getAppointmentsByWeekCalendarResponse/return');
                        this.setAttribute("rowfactor",6);
                        this.setAttribute("columnfactor",7);
                </method>
                
+               <state name="month" applied="${ classroot.viewType == 'month' 
}">
                
-               <!-- The weeks -->
-               <view name="weeks" 
datapath="getAppointmentsByWeekCalendarResponse/return" 
-                       width="${ parent.width }" height="${ Math.round( 
parent.height/classroot.rowfactor ) }" >
-                       
-                       <!-- The days -->
-                       <view name="days" datapath="days" width="${ Math.round( 
parent.width/classroot.columnfactor ) }" clip="true"
-                                               height="${ parent.height }" 
bgcolor="0xDDDDDD">
-                       
-                               <attribute name="dayDate" value="null" />
-                               
-                               <attribute name="viewType" value="${ 
classroot.viewType }" type="string" />
-                       
-                               <handler name="ondata" args="d">
-                                       if(d is lz.DataNodeMixin){
-                                               var lzDataPointer = new 
lz.datapointer();
-                                               lzDataPointer.setPointer(d);
-                                               var xmlDate = 
lzDataPointer.xpathQuery('tDate/text()');
-                                               var splitDate = 
xmlDate.split("-");
-                                               this.dayDate = new 
Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
-                                               this.renderView();
-                                       }
-                               </handler>
-                               
-                               <method name="renderView">
-                                       if (this.viewType == "month") {
-                                               var tDay = 
this.dayDate.getDate();
-                                               var tMonth = 
this.dayDate.getMonth();
-                                               if 
(parent.parent.isCurrentMonth(tMonth)) {
-                                                       
this._content._title.setAttribute("fgcolor",0x000000);
-                                                       if (tDay == 1) {
-                                                               tDay = tDay + 
"." + canvas.monthnames[this.dayDate.getMonth()];
-                                                       }
-                                               } else {
-                                                       
this._content._title.setAttribute("fgcolor",0xBBBBBB);
-                                               }
-                                               
this._content._title.setAttribute("text",tDay);
-                                       } else if (this.viewType == "week") {
-                                               var tDay = 
canvas.dayShortNames[this.dayDate.getDay()] +" "+this.dayDate.getDate() + "." + 
(this.dayDate.getMonth()+1)+".";
-                                               var tMonth = 
this.dayDate.getMonth();
-                                               if 
(parent.parent.isCurrentMonth(tMonth)) {
-                                                       
this._content._title.setAttribute("fgcolor",0x000000);
-                                               } else {
-                                                       
this._content._title.setAttribute("fgcolor",0xBBBBBB);
-                                               }
-                                               
this._content._title.setAttribute("text",tDay);
-                                       }
-                               </method>
+                       <view width="${ parent.width }" height="${ 
parent.height }">
+                       
+                               <view 
datapath="getAppointmentsByWeekCalendarResponse/return" 
+                                               width="${ parent.width }" 
height="${ Math.round( parent.height/6 ) }" >
                                
-                               <view name="_content" width="${ parent.width -1 
}" bgcolor="0xFFFFFF"
-                                                               height="${ 
parent.height -1 }">
-                                                               
-                                                               
-                                       <text name="_title" />
+                                       <!-- The months -->
+                       
+                                       <!-- The days -->
+                                       <view name="days" datapath="days" 
width="${ Math.round( parent.width/7 ) }" clip="true"
+                                                               height="${ 
parent.height }" bgcolor="0xDDDDDD" >
                                        
-                                       <state name="month" applied="${ 
classroot.viewType == 'month' }">
+                                               <attribute name="dayDate" 
value="null" />
+                                               
+                                               <attribute name="viewType" 
value="${ classroot.viewType }" type="string" />
                                        
-                                               <view width="$once{ 
parent.width }" y="18">
-                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="$once{ parent.width }">
-                                                               <text 
name="_time" datapath="start" >
-                                                                       
<handler name="ondata" args="d">
-                                                                               
this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
-                                                                       
</handler>
-                                                               </text>
-                                                               <text 
name="_title" x="36" datapath="title" text="$path{ 'text()' }" />
-                                                       </view>
-                                                       <simplelayout axis="y" 
spacing="1" />
-                                               </view>
-                                       
-                                       </state>
-                                       
-                                       <state name="week" applied="${ 
classroot.viewType == 'week' }">
+                                               <handler name="ondata" args="d">
+                                                       if(d is 
lz.DataNodeMixin){
+                                                               var 
lzDataPointer = new lz.datapointer();
+                                                               
lzDataPointer.setPointer(d);
+                                                               var xmlDate = 
lzDataPointer.xpathQuery('tDate/text()');
+                                                               var splitDate = 
xmlDate.split("-");
+                                                               this.dayDate = 
new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
+                                                               
this.renderView();
+                                                       }
+                                               </handler>
                                                
-                                               <view width="$once{ 
parent.width }" y="18">
-                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="$once{ parent.width }" 
height="60">
-                                                               <handler 
name="ondata" args="d">
-                                                                       
<![CDATA[
-                                                                               
if (classroot.reRenderLock) {
-                                                                               
        return;
-                                                                               
}
-                                                                               
var dataPointer = new lz.datapointer();
-                                                                               
dataPointer.setPointer(d);
-                                                                               
var startDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('start/text()'));
-                                                                               
var endDate = parseDateTimeFromXmlString(dataPointer.xpathQuery('end/text()'));
-                                                                               
-                                                                               
if ($debug) Debug.write("COMPARE -- ",startDate,endDate);
-                                                                               
-                                                                               
var heightInMinutes = parent.parent.height/1440;
-                                                                               
var startMin = (startDate.getHours() * 60 ) + startDate.getMinutes();
-                                                                               
var endMin = (endDate.getHours() * 60 ) + endDate.getMinutes();
-                                                                               
-                                                                               
this.setAttribute("y",Math.round(heightInMinutes*startMin));
-                                                                               
this.setAttribute("height",Math.round((endMin - startMin)*heightInMinutes));
+                                               <method name="renderView">
+                                                       var tDay = 
this.dayDate.getDate();
+                                                       var tMonth = 
this.dayDate.getMonth();
+                                                       if 
(parent.parent.parent.isCurrentMonth(tMonth)) {
+                                                               
this._content._title.setAttribute("fgcolor",0x000000);
+                                                               if (tDay == 1) {
+                                                                       tDay = 
tDay + "." + canvas.monthnames[this.dayDate.getMonth()];
+                                                               }
+                                                       } else {
+                                                               
this._content._title.setAttribute("fgcolor",0xBBBBBB);
+                                                       }
+                                                       
this._content._title.setAttribute("text",tDay);
+                                               </method>
+                                               
+                                               <view name="_content" width="${ 
parent.width -1 }" bgcolor="0xFFFFFF"
+                                                                               
height="${ parent.height -1 }">
                                                                                
-                                                                               
if ($debug) Debug.write("y,height -- ",this.y,this.height);
-                                                                       ]]>
-                                                               </handler>
+                                                       <text name="_title" />
                                                        
-                                                               <text 
name="_title" x="36" datapath="title" text="$path{ 'text()' }" />
-                                                       </view>
-                                               </view>
+                                               
+                                                       <view width="$once{ 
parent.width }" y="18">
+                                                               <view 
datapath="appointments" bgcolor="0xA59CFC" width="$once{ parent.width }">
+                                                                       <text 
name="_time" datapath="start" >
+                                                                               
<handler name="ondata" args="d">
+                                                                               
        
this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
+                                                                               
</handler>
+                                                                       </text>
+                                                                       <text 
name="_title" x="36" datapath="title" text="$path{ 'text()' }" />
+                                                               </view>
+                                                               <simplelayout 
axis="y" spacing="1" />
+                                                       </view>
+                                                       
+                                               </view>
                                        
-                                       </state>
+                                       </view>
                                        
+                               <simplelayout axis="x" spacing="0" />
                                </view>
+                               
+                               <simplelayout axis="y" spacing="0" />
                        
                        </view>
+               
+               </state>
                        
-                       <simplelayout axis="x" spacing="0" />
-               </view>
+               <state name="week" applied="${ classroot.viewType == 'week' }">
                
-               <simplelayout axis="y" spacing="0" />
+                       <view width="${ parent.width }" height="${ 
parent.height }">
+                       
+                               <handler name="oninit">
+                                       
this.setAttribute("datapath","getAppointmentsByWeekCalendarResponse/return["+classroot.currentWeek+"]");
+                                       //this.updateData();
+                               </handler>
+                       
+                               <view x="41" width="${ parent.width-10 }" 
height="20" bgcolor="0xDDDDDD">
+                                       <view name="days" datapath="days" 
width="${ (parent.width-41)/7 }" clip="true"
+                                                                               
bgcolor="0xDDDDDD" height="19">
+                                                                               
+                                               <text name="_title" width="${ 
parent.width -1 }" fgcolor="0x666666"
+                                                                               
datapath="tDate" bgcolor="0xFFFFFF" height="19" >
+                                                       <handler name="ondata" 
args="d">
+                                                               var tDate = 
parseDateOnlyFromXmlString(d.childNodes[0].data);
+                                                               
this.setAttribute("text",canvas.dayShortNames[tDate.getDay()]+" 
"+tDate.getDate()+"."+tDate.getMonth());
+                                                       </handler>
+                                               </text>
+                                               
+                                       </view>
+                                       <simplelayout axis="x" spacing="0" />
+                               </view>
+                               
+                               <view y="20" width="${ parent.width }" 
height="${ parent.height-20 }">
+                       
+                                       <view width="${ parent.width }" 
height="${ parent.height }" clip="true" bgcolor="0xDDDDDD">
+                               
+                                               <view width="${ parent.width-10 
}" height="721" >
+                                               
+                                                       <view name="hours" 
width="40" height="720" >
+                                                                       
+                                                               <view 
name="dayBg2" resource="calendar_day_hours_index_bg_rsc" />
+                                                               
+                                                               <view>
+                                                                       
<handler name="oninit">
+                                                                               
<![CDATA[
+                                                                               
        for (var i=0;i<24;i++) {
+                                                                               
                if (i<10) {
+                                                                               
                        new lz.textHourHelper(this,{text:"0"+i+":00"});
+                                                                               
                } else {
+                                                                               
                        new lz.textHourHelper(this,{text:i+":00"});
+                                                                               
                }
+                                                                               
        }
+                                                                               
]]>
+                                                                       
</handler>
+                                                                       
<simplelayout axis="y" />
+                                                               </view>
+                                                                       
+                                                       </view>
+                                                       
+                                                       <view width="1" />
+                                                       
+                                                       <!-- The days -->
+                                                       <view name="days" 
datapath="days" width="${ (parent.width-41)/7 }" 
+                                                                               
height="720" bgcolor="0xDDDDDD" >
+                                                       
+                                                               <attribute 
name="dayDate" value="null" />
+                                                               
+                                                               <attribute 
name="viewType" value="${ classroot.viewType }" type="string" />
+                                                       
+                                                               <handler 
name="ondata" args="d">
+                                                                       if(d is 
lz.DataNodeMixin){
+                                                                               
var lzDataPointer = new lz.datapointer();
+                                                                               
lzDataPointer.setPointer(d);
+                                                                               
var xmlDate = lzDataPointer.xpathQuery('tDate/text()');
+                                                                               
var splitDate = xmlDate.split("-");
+                                                                               
this.dayDate = new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
+                                                                       }
+                                                               </handler>
+                                                               
+                                                               <view 
name="_content" width="${ parent.width -1 }" bgcolor="0xFFFFFF"
+                                                                               
                height="720">
+                                                                       
+                                                                       <view 
name="dayBg2" resource="calendar_day_bg_rsc" stretches="width" 
+                                                                               
width="$once{ parent.width }"  ></view>
+                                                                               
                
+                                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="$once{ parent.width }" 
height="60">
+                                                                               
<handler name="ondata" args="d">
+                                                                               
        <![CDATA[
+                                                                               
                if (classroot.reRenderLock) {
+                                                                               
                        return;
+                                                                               
                }
+                                                                               
                var dataPointer = new lz.datapointer();
+                                                                               
                dataPointer.setPointer(d);
+                                                                               
                var startDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('start/text()'));
+                                                                               
                var endDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('end/text()'));
+                                                                               
                
+                                                                               
                if ($debug) Debug.write("COMPARE -- ",startDate,endDate);
+                                                                               
                
+                                                                               
                var heightInMinutes = parent.height/1440;
+                                                                               
                var startMin = (startDate.getHours() * 60 ) + 
startDate.getMinutes();
+                                                                               
                var endMin = (endDate.getHours() * 60 ) + endDate.getMinutes();
+                                                                               
                
+                                                                               
                this.setAttribute("y",Math.round(heightInMinutes*startMin));
+                                                                               
                this.setAttribute("height",Math.round((endMin - 
startMin)*heightInMinutes));
+                                                                               
                
+                                                                               
                if ($debug) Debug.write("y,height -- ",this.y,this.height);
+                                                                               
        ]]>
+                                                                               
</handler>
+                                                                       
+                                                                               
<text name="_title" x="2" datapath="title" text="$path{ 'text()' }" />
+                                                                       </view>
+                                                               </view>
+                                                               
+                                                       </view>
+                                                       
+                                                       <simplelayout axis="x" 
spacing="0" />
+                                                       
+                                               </view>
+                                               
+                                               <om_vscrollbar />
+                                               
+                                       </view>
+                               
+                               </view>
+                               
+                       </view> 
+                       
+               </state>
                
        </class>
+       
+       <class name="textHourHelper" extends="text" height="30" 
+               width="40" fgcolor="0x666666" />
 
 </library>
\ No newline at end of file

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours.png
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours.png?rev=1299851&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours_index_only.png
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours_index_only.png?rev=1299851&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/resources/day_hours_index_only.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/library.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/library.lzx?rev=1299851&r1=1299850&r2=1299851&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/library.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/library.lzx
 Mon Mar 12 20:50:49 2012
@@ -19,12 +19,12 @@
   
 -->
 <library>
+
        <!-- 
        <include href="compontents/" />
 
        
        <include href="lzCalendar.lzx" />
-       
         -->
        <include href="old_lzCalendar.lzx" />
     <include href="resources.lzx"/>
@@ -42,6 +42,5 @@
        <include href="addExternalAttendee.lzx" />
        <include href="confirmCancelPopup.lzx" />
        
-       
 
 </library>


Reply via email to