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>
