You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by vd...@apache.org on 2013/12/23 08:51:43 UTC
svn commit: r1553082 - in
/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db:
dao/calendar/AppointmentDao.java entity/calendar/Appointment.java
Author: vdegtyarev
Date: Mon Dec 23 07:51:42 2013
New Revision: 1553082
URL: http://svn.apache.org/r1553082
Log:
OPENMEETINGS-864 is fixed. Now event updates without error and events are not duplicated if invite more then one guest.
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
Modified: openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java?rev=1553082&r1=1553081&r2=1553082&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java Mon Dec 23 07:51:42 2013
@@ -161,8 +161,8 @@ public class AppointmentDao {
invitationManager.processInvitation(a, mm, MessageType.Create, baseUrl);
} else {
boolean sendMail = a0 == null || !a0.getTitle().equals(a.getTitle()) ||
- !a0.getDescription().equals(a.getDescription()) ||
- !a0.getLocation().equals(a.getLocation()) ||
+ !(a0.getDescription() != null ? a0.getDescription().equals(a.getDescription()) : true) ||
+ !(a0.getLocation() != null ? a0.getLocation().equals(a.getLocation()) : true) ||
!a0.getStart().equals(a.getStart()) ||
!a0.getEnd().equals(a.getEnd());
mmIds.remove(mm.getId());
Modified: openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java?rev=1553082&r1=1553081&r2=1553082&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java (original)
+++ openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java Mon Dec 23 07:51:42 2013
@@ -48,10 +48,10 @@ import org.simpleframework.xml.Root;
@Entity
@Table(name = "appointments")
@NamedQueries({
- @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ @NamedQuery(name="getAppointmentById", query="SELECT DISTINCT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ " WHERE a.deleted = false AND a.id = :id")
, @NamedQuery(name="appointmentsInRange",
- query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers "
+ query="SELECT DISTINCT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers "
+ "WHERE a.deleted = false "
+ " AND ( "
+ " (a.start BETWEEN :starttime AND :endtime) "
@@ -61,7 +61,7 @@ import org.simpleframework.xml.Root;
+ " AND a.owner.user_id = :userId"
)
, @NamedQuery(name="joinedAppointmentsInRange",
- query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
+ query="SELECT DISTINCT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
+ "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+ " AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.user_id = :userId)"
+ " AND mm.connectedEvent = false " //TODO review: isConnectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
@@ -72,7 +72,7 @@ import org.simpleframework.xml.Root;
+ " )"
)
, @NamedQuery(name="appointmentsInRangeRemind",
- query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
+ query="SELECT DISTINCT a FROM MeetingMember mm INNER JOIN mm.appointment a LEFT JOIN FETCH a.meetingMembers "
//only ReminderType simple mail is concerned!
+ "WHERE mm.deleted = false AND a.deleted = false AND a.reminderEmailSend = false"
+ " AND (a.remind.typId = 2 OR a.remind.typId = 3) "
@@ -82,7 +82,7 @@ import org.simpleframework.xml.Root;
+ " OR (a.start < :starttime AND a.end > :endtime) "
+ " )"
)
- , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ , @NamedQuery(name="getAppointmentByRoomId", query="SELECT DISTINCT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers"
+ " WHERE a.deleted = false AND a.room.rooms_id = :room_id")
//TODO this query returns duplicates if the user books an appointment with
//his own user as second meeting-member, swagner 19.02.2012