Author: solomax
Date: Wed Sep 16 13:35:42 2015
New Revision: 1703407
URL: http://svn.apache.org/r1703407
Log:
[OPENMEETINGS-1249] messages with room are now works as expected
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java
openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
(original)
+++
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
Wed Sep 16 13:35:42 2015
@@ -117,58 +117,51 @@ public class AppointmentDao {
return em.createNamedQuery("getAppointments",
Appointment.class).getResultList();
}
- public Long addAppointmentObj(Appointment ap) {
- try {
- ap.setInserted(new Date());
- em.persist(ap);
-
- return ap.getId();
- } catch (Exception ex2) {
- log.error("[addAppointmentObj]: ", ex2);
- }
- return null;
- }
-
public Appointment update(Appointment a, Long userId) {
+ return update(a, userId, true);
+ }
+
+ public Appointment update(Appointment a, Long userId, boolean
sendmails) {
Room r = a.getRoom();
if (r.getRooms_id() == null) {
r.setName(a.getTitle());
r.setNumberOfPartizipants(cfgDao.getConfValue("calendar.conference.rooms.default.size",
Long.class, "50"));
}
roomDao.update(r, userId);
- Set<Long> mmIds = a.getId() == null ? new HashSet<Long>()
- :
meetingMemberDao.getMeetingMemberIdsByAppointment(a.getId());
- // update meeting members
- //TODO update email need to be sent on meeting members list
update
- Appointment a0 = a.getId() == null ? null : get(a.getId());
- boolean sendMail = a0 == null ||
!a0.getTitle().equals(a.getTitle()) ||
- !(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());
- List<MeetingMember> mmList = a.getMeetingMembers();
- if (mmList != null){
- for (MeetingMember mm : mmList) {
- if (mm.getId() == null ||
!mmIds.contains(mm.getId())) {
- invitationManager.processInvitation(a,
mm, MessageType.Create);
- } else {
- mmIds.remove(mm.getId());
- invitationManager.processInvitation(a,
mm, MessageType.Update, sendMail);
+ if (sendmails) {
+ Set<Long> mmIds = a.getId() == null ? new
HashSet<Long>()
+ :
meetingMemberDao.getMeetingMemberIdsByAppointment(a.getId());
+ // update meeting members
+ Appointment a0 = a.getId() == null ? null :
get(a.getId());
+ boolean sendMail = a0 == null ||
!a0.getTitle().equals(a.getTitle()) ||
+ !(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());
+ List<MeetingMember> mmList = a.getMeetingMembers();
+ if (mmList != null){
+ for (MeetingMember mm : mmList) {
+ if (mm.getId() == null ||
!mmIds.contains(mm.getId())) {
+
invitationManager.processInvitation(a, mm, MessageType.Create);
+ } else {
+ mmIds.remove(mm.getId());
+
invitationManager.processInvitation(a, mm, MessageType.Update, sendMail);
+ }
}
}
- }
- for (long id : mmIds) {
- invitationManager.processInvitation(a,
meetingMemberDao.get(id), MessageType.Cancel);
- }
- //notify owner
- MeetingMember owner = new MeetingMember();
- owner.setUser(a.getOwner());
- if (a.getId() == null) {
- invitationManager.processInvitation(a, owner,
MessageType.Create);
- } else if (a.isDeleted()) {
- invitationManager.processInvitation(a, owner,
MessageType.Cancel);
- } else if (sendMail) {
- invitationManager.processInvitation(a, owner,
MessageType.Update, sendMail);
+ for (long id : mmIds) {
+ invitationManager.processInvitation(a,
meetingMemberDao.get(id), MessageType.Cancel);
+ }
+ //notify owner
+ MeetingMember owner = new MeetingMember();
+ owner.setUser(a.getOwner());
+ if (a.getId() == null) {
+ invitationManager.processInvitation(a, owner,
MessageType.Create);
+ } else if (a.isDeleted()) {
+ invitationManager.processInvitation(a, owner,
MessageType.Cancel);
+ } else if (sendMail) {
+ invitationManager.processInvitation(a, owner,
MessageType.Update, sendMail);
+ }
}
if (a.getId() == null) {
a.setInserted(new Date());
@@ -180,18 +173,6 @@ public class AppointmentDao {
return a;
}
- //
----------------------------------------------------------------------------------------------------------------------------
-
- public Long updateAppointment(Appointment appointment) {
- if (appointment.getId() != null) {
- appointment = em.merge(appointment);
- return appointment.getId();
- } else {
- log.error("[updateAppointment] " + "Error: No
AppointmentId given");
- }
- return null;
- }
-
public List<Appointment> getAppointmentsByRoomId(Long roomId) {
try {
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
(original)
+++
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
Wed Sep 16 13:35:42 2015
@@ -167,10 +167,9 @@ public class PrivateMessagesDao implemen
return query.executeUpdate();
}
- public List<PrivateMessage> getPrivateMessagesByRoom(Long roomId) {
- TypedQuery<PrivateMessage> query =
em.createNamedQuery("getPrivateMessagesByRoom", PrivateMessage.class);
- query.setParameter("roomId", roomId);
- return query.getResultList();
+ public List<PrivateMessage> getByRoom(Long roomId) {
+ return em.createNamedQuery("getPrivateMessagesByRoom",
PrivateMessage.class)
+ .setParameter("roomId", roomId).getResultList();
}
public List<PrivateMessage> get(String search, int start, int count,
String order) {
Modified:
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
(original)
+++
openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java
Wed Sep 16 13:35:42 2015
@@ -420,8 +420,8 @@ public class BackupImport {
if (a.getRoom() != null &&
a.getRoom().getRooms_id() == null) {
a.setRoom(null);
}
- Long newAppId =
appointmentDao.addAppointmentObj(a);
- appointmentsMap.put(appId, newAppId);
+ a = appointmentDao.update(a, null, false);
+ appointmentsMap.put(appId, a.getId());
}
}
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
Wed Sep 16 13:35:42 2015
@@ -201,7 +201,7 @@ public class AppointmentLogic {
}
// Update Appointment to not send invitation twice
a.setReminderEmailSend(true);
- appointmentDao.updateAppointment(a);
+ appointmentDao.update(a, null, false);
List<MeetingMember> members = a.getMeetingMembers();
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MainService.java
Wed Sep 16 13:35:42 2015
@@ -168,44 +168,46 @@ public class MainService implements IPen
log.debug("[loginWicket] user and roomid are not empty:
" + userId + ", " + wicketroomid);
boolean allowed = false;
Room r = roomDao.get(wicketroomid);
- if (r.getAppointment() != null && r.getAppointment()) {
- Appointment a =
appointmentDao.getAppointmentByRoom(wicketroomid);
- if (a != null && !a.isDeleted()) {
- allowed =
a.getOwner().getUser_id().equals(userId);
- log.debug("[loginWicket] appointed
room, isOwner ? " + allowed);
- if (!allowed) {
- for (MeetingMember mm :
a.getMeetingMembers()) {
- if
(mm.getUser().getUser_id().equals(userId)) {
- allowed = true;
- break;
+ if (r != null) {
+ if (r.getAppointment() != null &&
r.getAppointment()) {
+ Appointment a =
appointmentDao.getAppointmentByRoom(wicketroomid);
+ if (a != null && !a.isDeleted()) {
+ allowed =
a.getOwner().getUser_id().equals(userId);
+ log.debug("[loginWicket]
appointed room, isOwner ? " + allowed);
+ if (!allowed) {
+ for (MeetingMember mm :
a.getMeetingMembers()) {
+ if
(mm.getUser().getUser_id().equals(userId)) {
+ allowed
= true;
+ break;
+ }
}
}
+ /*
+ TODO need to be reviewed
+ Calendar c =
WebSession.getCalendar();
+ if
(c.getTime().after(a.getStart()) && c.getTime().before(a.getEnd())) {
+ allowed = true;
+ } else {
+ SimpleDateFormat sdf =
new SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
+ deniedMessage =
Application.getString(1271) + String.format(" %s - %s",
sdf.format(a.getStart()), sdf.format(a.getEnd()));
+ }
+ */
}
- /*
- TODO need to be reviewed
- Calendar c = WebSession.getCalendar();
- if (c.getTime().after(a.getStart()) &&
c.getTime().before(a.getEnd())) {
- allowed = true;
- } else {
- SimpleDateFormat sdf = new
SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
- deniedMessage =
Application.getString(1271) + String.format(" %s - %s",
sdf.format(a.getStart()), sdf.format(a.getEnd()));
- }
- */
- }
- } else {
- allowed = r.getIspublic() || (r.getOwnerId() !=
null && r.getOwnerId().equals(userId));
- log.debug("[loginWicket] public ? " +
r.getIspublic() + ", ownedId ? " + r.getOwnerId() + " " + allowed);
- if (!allowed) {
- for (RoomOrganisation ro :
r.getRoomOrganisations()) {
- for (Organisation_Users ou :
u.getOrganisation_users()) {
- if
(ro.getOrganisation().getOrganisation_id().equals(ou.getOrganisation().getOrganisation_id()))
{
- allowed = true;
+ } else {
+ allowed = r.getIspublic() ||
(r.getOwnerId() != null && r.getOwnerId().equals(userId));
+ log.debug("[loginWicket] public ? " +
r.getIspublic() + ", ownedId ? " + r.getOwnerId() + " " + allowed);
+ if (!allowed) {
+ for (RoomOrganisation ro :
r.getRoomOrganisations()) {
+ for (Organisation_Users
ou : u.getOrganisation_users()) {
+ if
(ro.getOrganisation().getOrganisation_id().equals(ou.getOrganisation().getOrganisation_id()))
{
+ allowed
= true;
+ break;
+ }
+ }
+ if (allowed) {
break;
}
}
- if (allowed) {
- break;
- }
}
}
}
Modified:
openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
(original)
+++
openmeetings/branches/3.0.x/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
Wed Sep 16 13:35:42 2015
@@ -144,8 +144,8 @@ public abstract class AbstractJUnitDefau
ap.setOwner(userDao.get(1L));
ap.setConnectedEvent(false);
- Long id = appointmentDao.addAppointmentObj(ap);
- assertNotNull("Cann't add appointment", id);
+ ap = appointmentDao.update(ap, null, false);
+ assertNotNull("Cann't add appointment", ap.getId());
return ap;
}
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
Wed Sep 16 13:35:42 2015
@@ -32,9 +32,12 @@ import java.util.List;
import org.apache.openmeetings.data.conference.InvitationManager;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
import org.apache.openmeetings.db.entity.room.Invitation;
import org.apache.openmeetings.db.entity.room.Invitation.Valid;
import org.apache.openmeetings.db.entity.room.Room;
@@ -180,10 +183,29 @@ public class MessageDialog extends Abstr
r.setName(p.getSubject());
r.setComment("");
r.setNumberOfPartizipants(100L);
- r.setAppointment(false);
+ r.setAppointment(true);
r.setAllowUserQuestions(true);
r.setAllowFontStyles(true);
r = getBean(RoomDao.class).update(r, getUserId());
+ Appointment a = new Appointment();
+ a.setTitle(p.getSubject());
+ a.setDescription(p.getMessage());
+ a.setRoom(r);
+
a.setStart(CalendarHelper.getDate(start.getModelObject()));
+ a.setEnd(CalendarHelper.getDate(end.getModelObject()));
+ List<MeetingMember> attendees = new ArrayList<>();
+ for (User to : modelTo.getObject()) {
+ MeetingMember mm = new MeetingMember();
+ mm.setUser(to);
+ mm.setDeleted(false);
+ mm.setInserted(a.getInserted());
+ mm.setUpdated(a.getUpdated());
+ mm.setAppointment(a);
+ attendees.add(mm);
+ }
+ a.setOwner(getBean(UserDao.class).get(getUserId()));
+ a.setMeetingMembers(attendees);
+ getBean(AppointmentDao.class).update(a, getUserId(), false);
p.setRoom(r);
} else {
p.setRoom(null);
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
Wed Sep 16 13:35:42 2015
@@ -81,6 +81,21 @@
</tr>
</table>
<div style="background-color:
white;min-height: 300px;" wicket:id="body"></div>
+ <div wicket:id="roomContainer">
+ <table style="width: 100%">
+ <tr>
+ <td>
+ <button
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
wicket:id="enter">
+
<span class="ui-button-text"><wicket:message key="1282"/></span>
+
</button>
+ </td>
+ <td>
+ <div
style="display: inline=block; width: 300px;"><wicket:message key="570"
/></div><span wicket:id="start"></span><br/>
+ <div
style="display: inline=block; width: 300px;"><wicket:message key="571"
/></div><span wicket:id="end"></span>
+ </td>
+ </tr>
+ </table>
+ </div>
</div>
</td>
<td class="side right" wicket:id="contacts">
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
Wed Sep 16 13:35:42 2015
@@ -32,9 +32,12 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.PrivateMessage;
import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
import org.apache.openmeetings.db.entity.user.User;
@@ -47,6 +50,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.data.DataViewContainer;
import org.apache.openmeetings.web.data.OmOrderByBorder;
import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.user.rooms.RoomEnterBehavior;
import org.apache.openmeetings.web.util.ContactsHelper;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
@@ -72,13 +76,13 @@ import org.apache.wicket.model.CompoundP
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
-
import com.googlecode.wicket.jquery.core.JQueryBehavior;
import com.googlecode.wicket.jquery.core.Options;
import
com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
+
public class MessagesContactsPanel extends UserPanel {
private static final long serialVersionUID = 1L;
private final static long MOVE_CHOOSE = -1;
@@ -98,6 +102,7 @@ public class MessagesContactsPanel exten
private final WebMarkupContainer sent = new WebMarkupContainer("sent");
private final WebMarkupContainer trash = new
WebMarkupContainer("trash");
private final WebMarkupContainer selectedMessage = new
WebMarkupContainer("selectedMessage");
+ private final WebMarkupContainer roomContainer = new
WebMarkupContainer("roomContainer");
private final WebMarkupContainer buttons = new
WebMarkupContainer("buttons");
private final WebMarkupContainer contacts = new
WebMarkupContainer("contacts");
private final MessageDialog newMessage;
@@ -176,6 +181,17 @@ public class MessagesContactsPanel exten
selectedMessage.addOrReplace(new Label("to", msg == null ? "" :
getEmail(msg.getTo())));
selectedMessage.addOrReplace(new Label("subj", msg == null ? ""
: msg.getSubject()));
selectedMessage.addOrReplace(new Label("body", msg == null ? ""
: msg.getMessage()).setEscapeModelStrings(false));
+ if (msg != null) {
+ Room r = msg.getRoom();
+ if (r != null) {
+ //TODO add time check
+ Appointment a =
getBean(AppointmentDao.class).getAppointmentByRoom(r.getRooms_id());
+ roomContainer.addOrReplace(new Label("start", a
== null ? "" : getDateFormat().format(a.getStart())));
+ roomContainer.addOrReplace(new Label("end", a
== null ? "" : getDateFormat().format(a.getEnd())));
+ roomContainer.addOrReplace(new
Button("enter").add(new RoomEnterBehavior(r.getRooms_id())));
+ }
+ roomContainer.setVisible(r != null);
+ }
if (target != null) {
target.add(selectedMessage);
updateControls(target);
@@ -518,7 +534,7 @@ public class MessagesContactsPanel exten
selectMessage(-1, null);
add(container.add(dv).setOutputMarkupId(true));
//TODO add valid autoupdate add(new
AjaxSelfUpdatingTimerBehavior(seconds(15)));
- add(selectedMessage.setOutputMarkupId(true));
+
add(selectedMessage.add(roomContainer.setVisible(false)).setOutputMarkupId(true));
IDataProvider<UserContact> dp = new
IDataProvider<UserContact>() {
private static final long serialVersionUID = 1L;
Modified:
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
Wed Sep 16 13:35:42 2015
@@ -230,7 +230,7 @@ public class ConferenceService {
return null;
try {
- Appointment ment =
appointmentDao.getAppointmentByRoom(roomId);
+ Appointment ment = appointmentDao.getByRoom(roomId);
return ment;
} catch (Exception e) {
@@ -253,7 +253,7 @@ public class ConferenceService {
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- List<Appointment> points =
appointmentDao.getTodaysAppointmentsbyRangeAndMember(userId);
+ List<Appointment> points =
appointmentDao.getForToday(userId);
List<Room> result = new ArrayList<Room>();
if (points != null) {
@@ -289,7 +289,7 @@ public class ConferenceService {
Long userId = sessiondataDao.checkSession(SID);
if
(AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- List<Appointment> appointments =
appointmentDao.getTodaysAppointmentsbyRangeAndMember(userId);
+ List<Appointment> appointments =
appointmentDao.getForToday(userId);
List<Room> result = new ArrayList<Room>();
if (appointments != null) {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
Wed Sep 16 13:35:42 2015
@@ -1242,7 +1242,7 @@ public class ScopeApplicationAdapter ext
} else {
// If this is an Appointment then the Moderator
will be set to the Invitor
- Appointment ment =
appointmentDao.getAppointmentByRoom(roomId);
+ Appointment ment =
appointmentDao.getByRoom(roomId);
Long userIdInRoomClient =
currentClient.getUserId();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
Wed Sep 16 13:35:42 2015
@@ -38,8 +38,8 @@ import org.apache.openmeetings.db.dao.ro
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.db.entity.calendar.MeetingMember;
import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.util.TimezoneUtil;
@@ -84,8 +84,8 @@ public class AppointmentDao {
return appoint;
}
- public Appointment getAppointmentByIdBackup(Long appointmentId) {
- TypedQuery<Appointment> query =
em.createNamedQuery("getAppointmentByIdAny",
Appointment.class).setParameter("id", appointmentId);
+ public Appointment getAny(Long id) {
+ TypedQuery<Appointment> query =
em.createNamedQuery("getAppointmentByIdAny",
Appointment.class).setParameter("id", id);
Appointment appoint = null;
try {
@@ -100,58 +100,51 @@ public class AppointmentDao {
return em.createNamedQuery("getAppointments",
Appointment.class).getResultList();
}
- public Long addAppointmentObj(Appointment ap) {
- try {
- ap.setInserted(new Date());
- em.persist(ap);
-
- return ap.getId();
- } catch (Exception ex2) {
- log.error("[addAppointmentObj]: ", ex2);
- }
- return null;
- }
-
public Appointment update(Appointment a, Long userId) {
+ return update(a, userId, true);
+ }
+
+ public Appointment update(Appointment a, Long userId, boolean
sendmails) {
Room r = a.getRoom();
if (r.getId() == null) {
r.setName(a.getTitle());
r.setNumberOfPartizipants(cfgDao.getConfValue("calendar.conference.rooms.default.size",
Long.class, "50"));
}
roomDao.update(r, userId);
- Set<Long> mmIds = a.getId() == null ? new HashSet<Long>()
- :
meetingMemberDao.getMeetingMemberIdsByAppointment(a.getId());
- // update meeting members
- //TODO update email need to be sent on meeting members list
update
- Appointment a0 = a.getId() == null ? null : get(a.getId());
- boolean sendMail = a0 == null ||
!a0.getTitle().equals(a.getTitle()) ||
- !(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());
- List<MeetingMember> mmList = a.getMeetingMembers();
- if (mmList != null){
- for (MeetingMember mm : mmList) {
- if (mm.getId() == null ||
!mmIds.contains(mm.getId())) {
- invitationManager.processInvitation(a,
mm, MessageType.Create);
- } else {
- mmIds.remove(mm.getId());
- invitationManager.processInvitation(a,
mm, MessageType.Update, sendMail);
+ if (sendmails) {
+ Set<Long> mmIds = a.getId() == null ? new
HashSet<Long>()
+ :
meetingMemberDao.getMeetingMemberIdsByAppointment(a.getId());
+ // update meeting members
+ Appointment a0 = a.getId() == null ? null :
get(a.getId());
+ boolean sendMail = a0 == null ||
!a0.getTitle().equals(a.getTitle()) ||
+ !(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());
+ List<MeetingMember> mmList = a.getMeetingMembers();
+ if (mmList != null){
+ for (MeetingMember mm : mmList) {
+ if (mm.getId() == null ||
!mmIds.contains(mm.getId())) {
+
invitationManager.processInvitation(a, mm, MessageType.Create);
+ } else {
+ mmIds.remove(mm.getId());
+
invitationManager.processInvitation(a, mm, MessageType.Update, sendMail);
+ }
}
}
- }
- for (long id : mmIds) {
- invitationManager.processInvitation(a,
meetingMemberDao.get(id), MessageType.Cancel);
- }
- //notify owner
- MeetingMember owner = new MeetingMember();
- owner.setUser(a.getOwner());
- if (a.getId() == null) {
- invitationManager.processInvitation(a, owner,
MessageType.Create);
- } else if (a.isDeleted()) {
- invitationManager.processInvitation(a, owner,
MessageType.Cancel);
- } else if (sendMail) {
- invitationManager.processInvitation(a, owner,
MessageType.Update, sendMail);
+ for (long id : mmIds) {
+ invitationManager.processInvitation(a,
meetingMemberDao.get(id), MessageType.Cancel);
+ }
+ //notify owner
+ MeetingMember owner = new MeetingMember();
+ owner.setUser(a.getOwner());
+ if (a.getId() == null) {
+ invitationManager.processInvitation(a, owner,
MessageType.Create);
+ } else if (a.isDeleted()) {
+ invitationManager.processInvitation(a, owner,
MessageType.Cancel);
+ } else if (sendMail) {
+ invitationManager.processInvitation(a, owner,
MessageType.Update, sendMail);
+ }
}
if (a.getId() == null) {
a.setInserted(new Date());
@@ -163,18 +156,6 @@ public class AppointmentDao {
return a;
}
- //
----------------------------------------------------------------------------------------------------------------------------
-
- public Long updateAppointment(Appointment appointment) {
- if (appointment.getId() != null) {
- appointment = em.merge(appointment);
- return appointment.getId();
- } else {
- log.error("[updateAppointment] " + "Error: No
AppointmentId given");
- }
- return null;
- }
-
//
----------------------------------------------------------------------------------------------------------
public void delete(Appointment a, Long userId) {
@@ -187,7 +168,7 @@ public class AppointmentDao {
update(a, userId);
}
- public List<Appointment> getAppointmentsByRange(Long userId, Date
start, Date end) {
+ public List<Appointment> getInRange(Long userId, Date start, Date end) {
log.debug("Start " + start + " End " + end);
TypedQuery<Appointment> query =
em.createNamedQuery("appointmentsInRange", Appointment.class);
@@ -208,7 +189,7 @@ public class AppointmentDao {
return listAppoints;
}
- public List<Appointment> getAppointmentsInRange(Calendar start,
Calendar end) {
+ public List<Appointment> getInRange(Calendar start, Calendar end) {
TypedQuery<Appointment> q =
em.createNamedQuery("appointmentsInRangeRemind", Appointment.class);
q.setParameter("none", Reminder.none);
q.setParameter("start", start.getTime());
@@ -216,27 +197,8 @@ public class AppointmentDao {
return q.getResultList();
}
- public List<Appointment> getAppointmentsByCat(Long categoryId) {
- try {
-
- String hql = "select a from Appointments a "
- + "WHERE a.deleted false "
- + "AND a.appointmentCategory.categoryId
= :categoryId";
-
- TypedQuery<Appointment> query = em.createQuery(hql,
- Appointment.class);
- query.setParameter("categoryId", categoryId);
-
- List<Appointment> listAppoints = query.getResultList();
- return listAppoints;
- } catch (Exception ex2) {
- log.error("[getAppointements]: ", ex2);
- }
- return null;
- }
-
// next appointment to select date
- public Appointment getNextAppointment(Long userId, Date start) {
+ public Appointment getNext(Long userId, Date start) {
List<Appointment> list =
em.createNamedQuery("getNextAppointment", Appointment.class)
.setParameter("start",
start).setParameter("userId", userId).getResultList();
return list == null || list.isEmpty() ? null : list.get(0);
@@ -252,7 +214,7 @@ public class AppointmentDao {
* @param userId
* @return
*/
- public List<Appointment> getTodaysAppointmentsbyRangeAndMember(Long
userId) {
+ public List<Appointment> getForToday(Long userId) {
log.debug("getAppoitmentbyRangeAndMember : UserID - " + userId);
TimeZone timeZone =
timezoneUtil.getTimeZone(userDao.get(userId));
@@ -280,23 +242,21 @@ public class AppointmentDao {
//
---------------------------------------------------------------------------------------------
- public Appointment getAppointmentByOwnerRoom(Long userId, Long roomId) {
+ public Appointment getByRoom(Long userId, Long roomId) {
try {
- TypedQuery<Appointment> query =
em.createNamedQuery("getAppointmentByOwnerRoomId", Appointment.class);
-
- query.setParameter("userId", userId);
- query.setParameter("roomId", roomId);
-
- List<Appointment> list = query.getResultList();
+ List<Appointment> list =
em.createNamedQuery("getAppointmentByOwnerRoomId", Appointment.class)
+ .setParameter("userId", userId)
+ .setParameter("roomId", roomId)
+ .getResultList();
return list.size() > 0 ? list.get(0) : null;
} catch (Exception e) {
- log.error("[getAppointmentByRoomId]", e);
+ log.error("[getByRoom]", e);
return null;
}
}
- public Appointment getAppointmentByRoom(Long roomId) {
+ public Appointment getByRoom(Long roomId) {
List<Appointment> list =
em.createNamedQuery("getAppointmentByRoomId", Appointment.class)
.setParameter("roomId", roomId)
.getResultList();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
Wed Sep 16 13:35:42 2015
@@ -167,10 +167,9 @@ public class PrivateMessageDao implement
return query.executeUpdate();
}
- public List<PrivateMessage> getPrivateMessagesByRoom(Long roomId) {
- TypedQuery<PrivateMessage> query =
em.createNamedQuery("getPrivateMessagesByRoom", PrivateMessage.class);
- query.setParameter("roomId", roomId);
- return query.getResultList();
+ public List<PrivateMessage> getByRoom(Long roomId) {
+ return em.createNamedQuery("getPrivateMessagesByRoom",
PrivateMessage.class)
+ .setParameter("roomId", roomId).getResultList();
}
public List<PrivateMessage> get(String search, int start, int count,
String order) {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
Wed Sep 16 13:35:42 2015
@@ -42,7 +42,7 @@ public class AppointmentConverter extend
long oldId = getLong(node);
long newId = idMap.containsKey(oldId) ? idMap.get(oldId) :
oldId;
- Appointment a = appointmentDao.getAppointmentByIdBackup(newId);
+ Appointment a = appointmentDao.getAny(newId);
return a == null ? new Appointment() : a;
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
Wed Sep 16 13:35:42 2015
@@ -406,8 +406,8 @@ public class BackupImport {
if (a.getRoom() != null && a.getRoom().getId()
== null) {
a.setRoom(null);
}
- Long newAppId =
appointmentDao.addAppointmentObj(a);
- appointmentsMap.put(appId, newAppId);
+ a = appointmentDao.update(a, null, false);
+ appointmentsMap.put(appId, a.getId());
}
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
Wed Sep 16 13:35:42 2015
@@ -142,7 +142,7 @@ public class AppointmentLogic {
end.setTimeInMillis(end.getTimeInMillis() +
milliseconds);
}
- for (Appointment a :
appointmentDao.getAppointmentsInRange(start, end)) {
+ for (Appointment a : appointmentDao.getInRange(start, end)) {
// Prevent email from being send twice, even if the
cycle takes
// very long to send each
if (a.isReminderEmailSend()) {
@@ -158,7 +158,7 @@ public class AppointmentLogic {
}
// Update Appointment to not send invitation twice
a.setReminderEmailSend(true);
- appointmentDao.updateAppointment(a);
+ appointmentDao.update(a, null, false);
List<MeetingMember> members = a.getMeetingMembers();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Wed Sep 16 13:35:42 2015
@@ -240,7 +240,7 @@ public class RoomPanel extends BasePanel
boolean allowed = false;
String deniedMessage = null;
if (r.isAppointment()) {
- Appointment a =
getBean(AppointmentDao.class).getAppointmentByRoom(roomId);
+ Appointment a =
getBean(AppointmentDao.class).getByRoom(roomId);
if (a != null && !a.isDeleted()) {
allowed =
a.getOwner().getId().equals(getUserId());
log.debug("appointed room, isOwner ? " +
allowed);
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
Wed Sep 16 13:35:42 2015
@@ -42,7 +42,7 @@ public class AppointmentModel extends Ca
@Override
protected List<? extends CalendarEvent> load() {
List<CalendarEvent> list = new ArrayList<CalendarEvent>();
- for (Appointment a :
Application.getBean(AppointmentDao.class).getAppointmentsByRange(getUserId(),
CalendarHelper.getDate(getStart()), CalendarHelper.getDate(getEnd()))) {
+ for (Appointment a :
Application.getBean(AppointmentDao.class).getInRange(getUserId(),
CalendarHelper.getDate(getStart()), CalendarHelper.getDate(getEnd()))) {
list.add(new OmCalendarEvent(a));
}
return list;
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
Wed Sep 16 13:35:42 2015
@@ -33,10 +33,13 @@ import java.util.List;
import org.apache.openmeetings.core.mail.MailHandler;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.room.IInvitationManager;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.PrivateMessageDao;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
import org.apache.openmeetings.db.entity.room.Invitation;
import org.apache.openmeetings.db.entity.room.Invitation.Valid;
import org.apache.openmeetings.db.entity.room.Room;
@@ -180,10 +183,29 @@ public class MessageDialog extends Abstr
r.setName(p.getSubject());
r.setComment("");
r.setNumberOfPartizipants(100L);
- r.setAppointment(false);
+ r.setAppointment(true);
r.setAllowUserQuestions(true);
r.setAllowFontStyles(true);
r = getBean(RoomDao.class).update(r, getUserId());
+ Appointment a = new Appointment();
+ a.setTitle(p.getSubject());
+ a.setDescription(p.getMessage());
+ a.setRoom(r);
+
a.setStart(CalendarHelper.getDate(start.getModelObject()));
+ a.setEnd(CalendarHelper.getDate(end.getModelObject()));
+ List<MeetingMember> attendees = new ArrayList<>();
+ for (User to : modelTo.getObject()) {
+ MeetingMember mm = new MeetingMember();
+ mm.setUser(to);
+ mm.setDeleted(false);
+ mm.setInserted(a.getInserted());
+ mm.setUpdated(a.getUpdated());
+ mm.setAppointment(a);
+ attendees.add(mm);
+ }
+ a.setOwner(getBean(UserDao.class).get(getUserId()));
+ a.setMeetingMembers(attendees);
+ getBean(AppointmentDao.class).update(a, getUserId(), false);
p.setRoom(r);
} else {
p.setRoom(null);
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
Wed Sep 16 13:35:42 2015
@@ -81,6 +81,21 @@
</tr>
</table>
<div style="background-color:
white;min-height: 300px;" wicket:id="body"></div>
+ <div wicket:id="roomContainer">
+ <table style="width: 100%">
+ <tr>
+ <td>
+ <button
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
wicket:id="enter">
+
<span class="ui-button-text"><wicket:message key="1282"/></span>
+
</button>
+ </td>
+ <td>
+ <div
style="display: inline=block; width: 300px;"><wicket:message key="570"
/></div><span wicket:id="start"></span><br/>
+ <div
style="display: inline=block; width: 300px;"><wicket:message key="571"
/></div><span wicket:id="end"></span>
+ </td>
+ </tr>
+ </table>
+ </div>
</div>
</td>
<td class="side right" wicket:id="contacts">
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
Wed Sep 16 13:35:42 2015
@@ -32,9 +32,12 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.user.PrivateMessageDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
import org.apache.openmeetings.db.dao.user.UserContactDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.PrivateMessage;
import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
import org.apache.openmeetings.db.entity.user.User;
@@ -47,6 +50,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.data.DataViewContainer;
import org.apache.openmeetings.web.data.OmOrderByBorder;
import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.user.rooms.RoomEnterBehavior;
import org.apache.openmeetings.web.util.ContactsHelper;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
@@ -74,13 +78,13 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;
-import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
-
import com.googlecode.wicket.jquery.core.JQueryBehavior;
import com.googlecode.wicket.jquery.core.Options;
import
com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
+
public class MessagesContactsPanel extends UserPanel {
private static final long serialVersionUID = 1L;
private final static long MOVE_CHOOSE = -1;
@@ -100,6 +104,7 @@ public class MessagesContactsPanel exten
private final WebMarkupContainer sent = new WebMarkupContainer("sent");
private final WebMarkupContainer trash = new
WebMarkupContainer("trash");
private final WebMarkupContainer selectedMessage = new
WebMarkupContainer("selectedMessage");
+ private final WebMarkupContainer roomContainer = new
WebMarkupContainer("roomContainer");
private final WebMarkupContainer buttons = new
WebMarkupContainer("buttons");
private final WebMarkupContainer contacts = new
WebMarkupContainer("contacts");
private final MessageDialog newMessage;
@@ -178,6 +183,17 @@ public class MessagesContactsPanel exten
selectedMessage.addOrReplace(new Label("to", msg == null ? "" :
getEmail(msg.getTo())));
selectedMessage.addOrReplace(new Label("subj", msg == null ? ""
: msg.getSubject()));
selectedMessage.addOrReplace(new Label("body", msg == null ? ""
: msg.getMessage()).setEscapeModelStrings(false));
+ if (msg != null) {
+ Room r = msg.getRoom();
+ if (r != null) {
+ //TODO add time check
+ Appointment a =
getBean(AppointmentDao.class).getByRoom(r.getId());
+ roomContainer.addOrReplace(new Label("start", a
== null ? "" : getDateFormat().format(a.getStart())));
+ roomContainer.addOrReplace(new Label("end", a
== null ? "" : getDateFormat().format(a.getEnd())));
+ roomContainer.addOrReplace(new
Button("enter").add(new RoomEnterBehavior(r.getId())));
+ }
+ roomContainer.setVisible(r != null);
+ }
if (target != null) {
target.add(selectedMessage);
updateControls(target);
@@ -520,7 +536,7 @@ public class MessagesContactsPanel exten
selectMessage(-1, null);
add(container.add(dv).setOutputMarkupId(true));
//TODO add valid autoupdate add(new
AjaxSelfUpdatingTimerBehavior(seconds(15)));
- add(selectedMessage.setOutputMarkupId(true));
+
add(selectedMessage.add(roomContainer.setVisible(false)).setOutputMarkupId(true));
IDataProvider<UserContact> dp = new
IDataProvider<UserContact>() {
private static final long serialVersionUID = 1L;
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
Wed Sep 16 13:35:42 2015
@@ -132,8 +132,8 @@ public abstract class AbstractJUnitDefau
ap.setOwner(userDao.get(1L));
ap.setConnectedEvent(false);
- Long id = appointmentDao.addAppointmentObj(ap);
- assertNotNull("Cann't add appointment", id);
+ ap = appointmentDao.update(ap, null, false);
+ assertNotNull("Cann't add appointment", ap.getId());
return ap;
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
Wed Sep 16 13:35:42 2015
@@ -53,7 +53,7 @@ public class TestDatabaseStructureAppoin
Date date = format.parse( "2008-17-08" );
Date date2 = format.parse( "2008-18-08" );
- List<Appointment> listAppoints =
appointmentDao.getAppointmentsByRange(1L, date, date2);
+ List<Appointment> listAppoints =
appointmentDao.getInRange(1L, date, date2);
//List<Appointment> listAppoints =
AppointmentDaoImpl.getInstance().searchAppointmentsByName("%");
//AppointmentDaoImpl.getInstance().getNextAppointmentById(1L);
//AppointmentDaoImpl.getInstance().addAppointment("mezo",1L, "Pforzheim",
"zweiter", Calendar.getInstance().getTime() ,
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
Wed Sep 16 13:35:42 2015
@@ -85,7 +85,7 @@ public class TestDatabaseStructureGetApp
a3 = appointmentDao.update(a3, userId);
int a1found = 0, a2found = 0, a3found = 0;
- for (Appointment a :
appointmentDao.getAppointmentsByRange(userId, rangeStart.getTime(),
rangeEnd.getTime())) {
+ for (Appointment a : appointmentDao.getInRange(userId,
rangeStart.getTime(), rangeEnd.getTime())) {
int mmCount = a.getMeetingMembers() == null ? 0 :
a.getMeetingMembers().size();
if (a.getId().equals(a1.getId())) {
assertEquals("Inapropriate MeetingMembers
count", 0, mmCount);
Modified:
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1703407&r1=1703406&r2=1703407&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
Wed Sep 16 13:35:42 2015
@@ -95,7 +95,7 @@ public class CalendarWebService {
try {
Long userId = sessionDao.checkSession(sid);
if
(AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- return
AppointmentDTO.list(appointmentDao.getAppointmentsByRange(userId,
start.getTime(), end.getTime()));
+ return
AppointmentDTO.list(appointmentDao.getInRange(userId, start.getTime(),
end.getTime()));
} else {
throw new ServiceException("Insufficient
permissins"); //TODO code -26
}
@@ -133,7 +133,7 @@ public class CalendarWebService {
try {
Long authUserId = sessionDao.checkSession(sid);
if
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- return
AppointmentDTO.list(appointmentDao.getAppointmentsByRange(userid,
start.getTime(), end.getTime()));
+ return
AppointmentDTO.list(appointmentDao.getInRange(userid, start.getTime(),
end.getTime()));
} else {
throw new ServiceException("Insufficient
permissins"); //TODO code -26
}
@@ -158,7 +158,7 @@ public class CalendarWebService {
try {
Long userId = sessionDao.checkSession(sid);
if
(AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- return new
AppointmentDTO(appointmentDao.getNextAppointment(userId, new Date()));
+ return new
AppointmentDTO(appointmentDao.getNext(userId, new Date()));
} else {
throw new ServiceException("Insufficient
permissins"); //TODO code -26
}
@@ -186,7 +186,7 @@ public class CalendarWebService {
try {
Long authUserId = sessionDao.checkSession(sid);
if
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- return new
AppointmentDTO(appointmentDao.getNextAppointment(userid, new Date()));
+ return new
AppointmentDTO(appointmentDao.getNext(userid, new Date()));
} else {
throw new ServiceException("Insufficient
permissins"); //TODO code -26
}
@@ -212,7 +212,7 @@ public class CalendarWebService {
try {
Long userId = sessionDao.checkSession(sid);
if
(AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- Appointment app =
appointmentDao.getAppointmentByOwnerRoom(userId, roomid);
+ Appointment app =
appointmentDao.getByRoom(userId, roomid);
if (app != null) {
return new AppointmentDTO(app);
}
@@ -636,7 +636,7 @@ public class CalendarWebService {
Long userId = sessionDao.checkSession(SID);
if
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
- Appointment a =
appointmentDao.getAppointmentByRoom(roomId);
+ Appointment a =
appointmentDao.getByRoom(roomId);
if (email == null || a == null) {
return -1L;