Revision: 2572
Author: seba.wagner
Date: Mon Nov 2 08:47:28 2009
Log: Fix Calendar add/remove of member to a Meeting
http://code.google.com/p/openmeetings/source/detail?r=2572
Added:
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/addAttendee.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/images/cancel.png
Modified:
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/infopanel.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/library.lzx
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/resources.lzx
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
=======================================
--- /dev/null
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/addAttendee.lzx
Mon Nov 2 08:47:28 2009
@@ -0,0 +1,311 @@
+<library>
+
+<class name="addAttendee" extends="labelExplorerBox" labelid="574"
+ closable="true" width="500" x="$once{ parent.width/2-this.width/2 + 10
}"
+ y="110" height="310" >
+ <!-- resizeable="false" -->
+ <attribute name="refObj" value="null"/>
+
+ <handler name="oninit">
+ this.getAllUserBySearchRange.doCall();
+ </handler>
+
+ <!--
+ Get all users by range and parse result List into View
+ -->
+ <netRemoteCallHib name="getAllUserBySearchRange"
funcname="userservice.getAllUserBySearchRange"
+ remotecontext="$once{ canvas.thishib }" >
+
+ <attribute name="numberOfMessage" value="0" type="number" />
+ <attribute name="numberOfStart" value="0" type="number" />
+ <attribute name="numberOfRecords" value="20" type="number" />
+
+ <netparam><method name="getValue">return
canvas.sessionId;</method></netparam>
+ <netparam><method name="getValue">return
parent.parent._search._criteria.getText();</method></netparam>
+ <netparam><method name="getValue">return
parent.numberOfStart;</method></netparam>
+ <netparam><method name="getValue">return 20;</method></netparam>
+ <netparam><method
name="getValue">return "datumSend";</method></netparam>
+ <netparam><method name="getValue">return true;</method></netparam>
+
+ <handler name="ondata" args="valueList">
+ <![CDATA[
+ var result = valueList.result;
+ if ($debug) Debug.write("valueList: ", valueList);
+ if ($debug) Debug.write("result: ", result);
+
+ this.numberOfMessage = valueList.records;
+ this.numberOfRecords = this.numberOfStart +
valueList.result.length;
+
+ if (valueList.result == null || valueList.result.length == 0){
+ if ($debug) Debug.write("if valueList: ", valueList);
+ new lz.userNotFound(parent,{
+ x:parent.width/2-this.width/2,
+ y:parent.height-this.height-100});
+
+ // new lz.alert(parent);
+
+ } else {
+ if (parent["_list"]){
+ parent._list.destroy();
+ }
+ new lz.searchResultsAttendees(parent,{name:'_list', y:70,
width:700, refObj:this});
+ //new userSearchHead(parent._list._inner);
+ for (var i=0;i<result.length;i++) {
+ if ($debug) Debug.write("UserList",result[i]);
+ var id = result[i].user_id;
+ var vorname = result[i].firstname;
+ var nachname = result[i].lastname;
+ var email = result[i].adresses.email;
+ if ($debug)
Debug.write("email",result[i].adresses.email);
+
+ //var userObj = this.result[i];
+ if ($debug) Debug.write("id",id);
+ //if ($debug) Debug.write("Vorname: ",vorname);
+ //if ($debug) Debug.write("Nachname",nachname);
+ //if ($debug) Debug.write("messageId ", messageId);
+ //if ($debug) Debug.write("datumRead posteingang",
datumRead);
+ //if ($debug) Debug.write("messageObj:", messageObj);
+
+ new lz.attendeItem(parent._list._innerList._inner,
{
+ refObj:parent,
+ userId: id,
+ vorname:vorname,
+ nachname:nachname,
+ email:email
+ });
+
+ }}
+ ]]>
+ </handler>
+ </netRemoteCallHib>
+
+ <view name="_search" layout="axis:x;spacing:2" y="30" x="20">
+ <edittext name="_criteria" width="150" >
+
+ </edittext>
+
+ <simpleLabelButton labelid="628" >
+ <handler name="onclick">
+ //parent.parent.getUserContactsBySearchByList.doCall();
+ parent.parent.getAllUserBySearchRange.doCall();
+ </handler>
+ </simpleLabelButton >
+
+ <simpleLabelButton labelid="629" >
+ <handler name="onclick">
+ <![CDATA[
+
//parent.parent.getUserContactsBySearchByList.doCall();
+
//parent.parent.getAllUserBySearchRange.doCall();
+ new
lz.addExternalAttendee(parent.parent.parent, {
+ refObj:parent.parent,
+
x:parent.parent.x+parent.parent.width/2,
+ y:parent.parent.y+40
+ });
+ ]]>
+ </handler>
+ </simpleLabelButton >
+
+ </view>
+
+ <simpleLabelButton labelid="697" x="$once{ parent.width - 125 }"
+ y="$once{ parent.height - 28 }" width="120">
+ <view resource="button_cancel_rsc" x="2" y="2" />
+ <handler name="onclick">
+ //parent.parent.parent.delTermin.doCall();
+ parent.close();
+ </handler>
+ </simpleLabelButton>
+
+
+
+</class>
+
+<class name="attendeItem" extends="view" bgcolor="silver">
+
+ <simplelayout axis="x" spacing="5" />
+ <attribute name="userId" value="0" type="number" />
+ <attribute name="vorname" value="" type="string" />
+ <attribute name="nachname" value="" type="string" />
+ <attribute name="email" value="null"/>
+
+ <attribute name="refObj" value="null"/>
+
+ <handler name="onclick">
+ this.refObj.refObj.addListItem(
+ this.userId,
+ this.vorname,
+ this.nachname,
+ this.email,0);
+ //if ($debug) Debug.write("_innerlist: ",
parent.refObj.terminObjRef._liste._innerlist);
+ //parent.refObj.terminObjRef._liste;
+ //new selectKategoryStatus(canvas,{_contactId:parent.userId});
+ //if ($debug) Debug.write("userId search: ",parent.userId);
+ this.refObj.close();
+ </handler>
+
+ <view resource="list_add_rsc" />
+
+ <text text="$once{parent.userId }" width="20"/>
+ <text name="_item3" text="$once{ parent.vorname}" width="60" />
+ <text name="_item4" text="$once{ parent.nachname }" width="60" />
+ <text name="_item7" text="$once{ parent.email}" width="350"/>
+
+ </class>
+
+ <class name="addExternalAttendee" extends="labelExplorerBox"
width="216"
height="190"
+ closable="true" labelid="629" >
+
+ <attribute name="refObj" value="null"/>
+
+ <view name="_mainView" x="10" y="24" layout="axis:y;spacing:2">
+
+
+ <labelText labelid="630" width="100"/>
+
+ <edittext name="vorname" width="${parent._buttons.width
-10}"></edittext>
+
+ <labelText labelid="631" width="100"/>
+ <edittext name="nachname"
width="${parent._buttons.width
-10}"></edittext>
+
+ <labelText labelid="632" width="100"/>
+ <edittext width="${parent._buttons.width - 10}"
name="email"></edittext>
+
+ <view name="_buttons" layout="axis:x;spacing:2"
width="210">
+ <simpleLabelButton labelid="333"
width="$once{parent._cancel.width}">
+ <handler name="onclick">
+
parent.parent.parent.refObj.refObj.addListItem(
+ 0,
+
parent.parent.vorname["text"],
+
parent.parent.nachname["text"],
+
parent.parent.email["text"],
+ 0
+ );
+ //if ($debug)
Debug.write("_innerlist: ",
parent.parent.parent.refObj.terminObjRef._liste._innerlist);
+ parent.parent.vorname="";
+ parent.parent.nachname="";
+ parent.parent.email="";
+ parent.parent.parent.close();
+
parent.parent.parent.refObj.close();
+ //if ($debug)
Debug.write("userId
search: ",parent.parent.parent.userId);
+ </handler>
+ </simpleLabelButton>
+
+ <simpleLabelButton labelid="25" name="_cancel"
width="100">
+ <handler name="onclick">
+ parent.parent.parent.close();
+ </handler>
+ </simpleLabelButton>
+ </view>
+
+ </view>
+
+ </class>
+
+<class name="attendeeSearchHead" extends="view" bgcolor="$once{
canvas.basebgcolorizer }" width="${parent.width}">
+ <!-- <simplelayout axis="x" spacing="10"/> -->
+ <text fontsize="10" x="15">ID</text>
+ <labelText labelid="135" fontsize="10" x="40"
width="60"/>
+ <labelText labelid="136" fontsize="10" x="100"
width="90"/>
+ <labelText labelid="137" fontsize="10" x="190"
width="50"/>
+</class>
+
+
+<class name="attendeeContentHead" extends="view" bgcolor="$once{
canvas.basebgcolorizer }" width="${parent.parent.parent.width}" >
+ <!--<simplelayout axis="x" spacing="130"/> -->
+ <text name="_datum" x="${this.x + 20}" fontsize="11">Datum</text>
+ <!-- <text x="${this.x + 120}" fontsize="11">Absender</text> -->
+ <text name="_betreff" x="${this.x + 120}" fontsize="11">Betreff</text>
+ <view name="nxpr" layout="axis:x;spacing:2" x="${parent.width -
this.width -5}">
+ <text x="10" name="count" text=""></text>
+ <view name="previos" resource="leftarrow_rsc">
+ <handler name="onclick">
+ parent.parent.parent.loadPre();
+ </handler>
+
+ <handler name="onmouseover">
+ this.animate('xoffset', +2, 200)
+ //if ($debug) Debug.write("this: ", this);
+ </handler>
+ <handler name="onmouseout">
+ this.animate('xoffset', 0, 200) //this.setX(this.x-5)
+ </handler>
+ </view>
+
+ <view name="next" resource="rightarrow_rsc">
+ <handler name="onmouseover">
+ this.animate('xoffset', -2, 200)
//this.setX(this.x+5)
+ ///if ($debug) Debug.write("this: ", this);
+ </handler>
+ <handler name="onmouseout">
+ this.animate('xoffset', 0, 200)
//this.setX(this.x-5)
+ </handler>
+
+ <handler name="onclick">
+ parent.parent.parent.loadNext();
+ </handler>
+ </view>
+ </view>
+</class>
+
+
+<class name="searchResultsAttendees" extends="view" height="70" x="2" >
+ <attribute name="refObj" value="null" />
+
+ <attendeeSearchHead name="_userSearchHead" x="10"
width="${parent._innerList.width}">
+ <attendeeContentHead name="_ordnerInhaltHead" width="120"
x="${parent.width - this.width}">
+ <handler name="oninit">
+ <![CDATA[
+ this._datum.setAttribute('text', "");
+ this._betreff.setAttribute('text', "")
+
+ this.nxpr.count.setAttribute('text',
parent.parent.refObj.numberOfStart+
+ "" +" - " + "" +
parent.parent.refObj.numberOfRecords+ " "+getLabelTag(254)+" " +
parent.parent.refObj.numberOfMessage);
+
+ if ($debug) Debug.write("refObj: ",
parent.parent.refObj);
+ if ($debug)
Debug.write("ordnerinhlatHead++: ", this);
+
+ if (
parent.parent.refObj.numberOfRecords < 21) {
+
this.nxpr.previos.setAttribute('clickable', false);
+ }
+
+ if (parent.parent.refObj.numberOfRecords
+ >=
parent.parent.refObj.numberOfMessage) {
+
this.nxpr.next.setAttribute('clickable', false);
+ }
+
+ if (this.nxpr.previos.clickable ==
false) {
+
this.nxpr.previos.setAttribute('opacity', 0.5)
+ }
+
+ if (this.nxpr.next.clickable == false)
{
+
this.nxpr.next.setAttribute('opacity', 0.5)
+ }
+ ]]>
+ </handler>
+ </attendeeContentHead>
+
+ <method name="loadNext">
+ <![CDATA[
+ parent.refObj.numberOfStart =
parent.refObj.numberOfStart + 20;
+ parent.refObj.doCall();
+ ]]>
+ </method>
+
+ <method name="loadPre">
+ <![CDATA[
+ parent.refObj.numberOfStart =
parent.refObj.numberOfStart - 20;
+ parent.refObj.doCall();
+ ]]>
+ </method>
+
+ </attendeeSearchHead>
+
+ <!--x="${(parent.width - this.width)/2}"-->
+ <view x="10" name="_innerList" height="180" width="${this._inner.width
+
15}" y="20" clip="true" >
+ <view name="_inner" layout="axis:y;spacing:2" width="460"
bgcolor="$once{ canvas.baseMacomBackground }"/>
+ <vscrollbar/>
+ <!-- <hscrollbar/>-->
+ </view>
+</class>
+
+</library>
=======================================
--- /dev/null
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/images/cancel.png
Mon Nov 2 08:47:28 2009
Binary file, no diff available.
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
Mon Nov 2 05:18:26 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/cal-data.lzx
Mon Nov 2 08:47:28 2009
@@ -122,6 +122,16 @@
<uid value=""/>
</event>
</dataset>
+
+ <dataset name="blankMeetingMember">
+ <attendee>
+ <userId value=""/>
+ <firstname value=""/>
+ <lastname value=""/>
+ <memberId value=""/>
+ <email value=""/>
+ </attendee>
+ </dataset>
<!-- Assigned to the panel when deleting an event -->
<dataset name="noEvent">
@@ -141,6 +151,7 @@
<datapointer id="alleventsDP" xpath="eventdata:/"/>
<datapointer id="currenteventDP" />
<datapointer id="blankeventDP" xpath="blankEvent:/"/>
+ <datapointer id="blankMeetingMemberDP" xpath="blankMeetingMember:/"/>
<datapointer id="tempDP" xpath="eventdata:/"/>
<!-- This node provides some useful methods for manipulating the
@@ -228,7 +239,7 @@
if ($debug) Debug.write("Add the event ");
// Add the event
- //currenteventDP.setNodeAttribute( "selected" , 'false' );
+ currenteventDP.setNodeAttribute( "selected" , 'false' );
//if ($debug) Debug.write("Add the event 2 ",currenteventDP);
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/infopanel.lzx
Mon Nov 2 05:18:26 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/infopanel.lzx
Mon Nov 2 08:47:28 2009
@@ -205,8 +205,7 @@
datapath="start[1]"
onclick="canvas.eventDataMgr.changetime('start',+1);"/>
- <text x="$immediately{92-11}" y="0" width="20" >
- to</text>
+ <text x="$immediately{92-11}" y="0" width="20"
>to</text>
<textbox name="etime" x="100" y="1" width="45"
bgcolor="0xEEF0EB" bordercolor="0x333333"
@@ -261,24 +260,113 @@
width="175" height="280" datapath="comment/@value"
visible="true"/>
</infoTab>
- <infoTab name="location" label="Location" pixellock="true">
- <inputtextbox name="txt" x="10" y="10" multiline="true"
pixellock="true"
- width="175" height="280" datapath="location/@value"
visible="true"/>
- </infoTab>
<infoTab name="attendees" label="Attendees" pixellock="true">
- <simplelayout axis="y" />
-
- <view datapath="attendees/attendee/">
- <view>
- <simplelayout axis="x" />
- <text resize="true" datapath="firstname/@value"
/>
- <text resize="true" datapath="lastname/@value"
/>
- <text text="(" />
- <text resize="true" datapath="email/@value" />
- <text text=")" />
- </view>
+ <calButton label="Add Attendee" x="2" y="2">
+ <handler name="onclick">
+ new lz.addAttendee(canvas,{refObj:parent});
+ </handler>
+ </calButton>
+
+ <method name="addListItem"
args="userId,firstName,lastName,email,memberId">
+ <![CDATA[
+
+ new lz.attendeeListItem(this.list,{
+ userId:userId,
+
firstName:firstName,
+
lastName:lastName,
+ email:email,
+
memberId:memberId
+ })
+ ]]>
+ </method>
+ <!--
+
+ <method name="addListItem"
args="userId,firstName,lastName,email">
+ <![CDATA[
+
+ // Set the blank event pointer to the top of
the member
+
blankMeetingMemberDP.setXPath('blankMeetingMember:/attendee[1]');
+
+ blankMeetingMemberDP.setXPath('email');
+
blankMeetingMemberDP.setNodeAttribute('value',email);
+
+ blankMeetingMemberDP.setXPath('../memberId');
+
blankMeetingMemberDP.setNodeAttribute('value',''+0);
+
+ blankMeetingMemberDP.setXPath('../firstname');
+
blankMeetingMemberDP.setNodeAttribute('value',firstName);
+
+ blankMeetingMemberDP.setXPath('../lastname');
+
blankMeetingMemberDP.setNodeAttribute('value',lastName);
+
+ blankMeetingMemberDP.setXPath('../userId');
+
blankMeetingMemberDP.setNodeAttribute('value',''+userId);
+
+ blankMeetingMemberDP.setXPath('../');
+
+ //if ($debug)
Debug.write("blankMeetingMemberDP ",blankMeetingMemberDP);
+
+ //if ($debug) Debug.write(this.list.datapath);
+
this.list.datapath.addNodeFromPointer(blankMeetingMemberDP);
+ this.list.datapath.updateData();
+ ]]>
+ </method>
+ -->
+
+ <view name="list" y="22" datapath="attendees/"
+ height="${ parent.height-22 }">
+
+ <handler name="ondata" args="data">
+ <![CDATA[
+ //if ($debug) Debug.warn("attendees -1
ondata ",data);
+
+ for (var eg in this.subviews){
+ this.subviews[eg].destroy();
+ }
+
+ for (var
i=0;i<data.childNodes.length;i++){
+
+ var email =
data.childNodes[i].childNodes[0].attributes.value;
+ var userId =
data.childNodes[i].childNodes[1].attributes.value;
+ var memberId =
data.childNodes[i].childNodes[2].attributes.value;
+ var firstName =
data.childNodes[i].childNodes[3].attributes.value;
+ var lastName =
data.childNodes[i].childNodes[4].attributes.value;
+
+
parent.addListItem(userId,firstName,lastName,email,memberId);
+
+ }
+ ]]>
+ </handler>
+
+ <simplelayout axis="y" />
+
+ <!--
+ <view datapath="attendee/">
+
+ <view name="member">
+ <simplelayout axis="x" />
+ <text resize="true"
datapath="firstname/@value" />
+ <text resize="true"
datapath="lastname/@value" />
+ <text text="(" />
+ <text resize="true"
datapath="email/@value" />
+ <text text=")" />
+ </view>
+ <view x="150" resource="delete_button">
+ <handler name="onclick">
+ //if ($debug)
Debug.write(parent);
+ //if ($debug)
Debug.write(parent.datapath);
+ parent.datapath.deleteNode();
+ //parent.datapath.updateData();
+
parent.parent.datapath.updateData();
+ </handler>
+ </view>
+ </view>
+ -->
+
</view>
+
+ <vscrollbar />
<!--
<inputtextbox name="txt" x="10" y="10" multiline="true"
pixellock="true"
width="175" height="280" datapath="attendees/@value"
visible="true"/>
@@ -386,9 +474,30 @@
</method>
</class>
+
+
+<class name="attendeeListItem" extends="view" >
+
+ <attribute name="userId" value="0" type="number"/>
+ <attribute name="firstName" value="" type="string"/>
+ <attribute name="memberId" value="0" type="number"/>
+ <attribute name="lastName" value="" type="string"/>
+ <attribute name="email" value="" type="string"/>
+
+ <view name="member">
+ <text resize="true" text="$once{ parent.parent.firstName + ','
+
parent.parent.lastName }" />
+ <text resize="true" y="20" text="$once{ '(' +
parent.parent.email + ')'
}" />
+ </view>
+
+ <view x="166" resource="delete_button" bgcolor="0xFFFFFF">
+ <handler name="onclick">
+ parent.destroy();
+ </handler>
+ </view>
+
+ <view height="1" width="200" y="40"
+ bgcolor="$once{ canvas.basebgcolorizer }" />
+
+</class>
+
</library>
-<!-- * X_LZ_COPYRIGHT_BEGIN
***************************************************
-* Copyright 2001-2008 Laszlo Systems, Inc. All Rights
Reserved. *
-* Use is subject to license
terms. *
-* X_LZ_COPYRIGHT_END
****************************************************** -->
-<!-- @LZX_VERSION@
-->
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/library.lzx
Sat Oct 31 05:30:06 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/library.lzx
Mon Nov 2 08:47:28 2009
@@ -16,5 +16,6 @@
<include href="eventselector.lzx"/>
<include href="lzCalendar.lzx" />
+ <include href="addAttendee.lzx" />
</library>
=======================================
---
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/resources.lzx
Sat Oct 31 02:43:46 2009
+++
/trunk/singlewebapp/WebContent/openmeetings/modules/lzcalendar/resources.lzx
Mon Nov 2 08:47:28 2009
@@ -26,7 +26,11 @@
<frame src="images/infopanel/x_bright.png"/>
<frame src="images/infopanel/x_press.png"/>
</resource>
-
+
+ <resource name="delete_button">
+ <frame src="images/cancel.png"/>
+ </resource>
+
<!-- CAL-BUTTON RESOURCES -->
<!-- RESOURCES for all styles of button -->
<resource name="button_middle" >
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Mon Nov 2 05:18:26 2009
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Mon Nov 2 08:47:28 2009
@@ -138,6 +138,9 @@
Element email =
attendee.addElement("email");
email.addAttribute("value", meetingMember.getEmail());
+ Element userId =
attendee.addElement("userId");
+
userId.addAttribute("value", ""+meetingMember.getUserid());
+
Element memberId =
attendee.addElement("memberId");
memberId.addAttribute("value", ""+meetingMember.getMeetingMemberId());
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---