Author: vdegtyarev
Date: Mon Mar 31 10:33:58 2014
New Revision: 1583287

URL: http://svn.apache.org/r1583287
Log:
OPENMEETINGS-913 is fixed. Booking works as expected via private message.

Added:
    openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/LinkHelper.java
Modified:
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.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.java

Modified: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java?rev=1583287&r1=1583286&r2=1583287&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
 Mon Mar 31 10:33:58 2014
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.data.conference;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import static 
org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.Calendar;
@@ -43,6 +42,7 @@ import org.apache.openmeetings.db.util.T
 import org.apache.openmeetings.mail.MailHandler;
 import org.apache.openmeetings.mail.SMSHandler;
 import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.LinkHelper;
 import org.apache.openmeetings.util.crypt.MD5;
 import org.apache.openmeetings.util.crypt.ManageCryptStyle;
 import org.apache.openmeetings.util.mail.IcalHandler;
@@ -345,16 +345,7 @@ public class InvitationManager implement
        }
        
        public void sendInvitionLink(Invitation i, MessageType type, String 
subject, String message, boolean ical) throws Exception {
-               String invitation_link = i.getBaseUrl();
-               if (i.getInvitee().getType() == Type.contact) {
-                       invitation_link += "?invitationHash=" + i.getHash();
-
-            if (i.getInvitee().getLanguage_id() > 0) {
-                invitation_link += "&language=" + 
i.getInvitee().getLanguage_id().toString();
-            }
-               } else {
-                       invitation_link = 
getRoomUrlFragment(i.getRoom().getRooms_id()).getLink(i.getBaseUrl());
-               }
+               String invitation_link = LinkHelper.getInvitationLink(i);
                User owner = i.getInvitedBy();
                
                String invitorName = owner.getFirstname() + " " + 
owner.getLastname();

Added: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/LinkHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/LinkHelper.java?rev=1583287&view=auto
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/LinkHelper.java
 (added)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/util/LinkHelper.java
 Mon Mar 31 10:33:58 2014
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import static 
org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
+
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.user.User.Type;
+
+public class LinkHelper {
+       
+       public static String getInvitationLink(Invitation i) {
+               String link = i.getBaseUrl();
+               if (link == null) {
+                       return null;
+               }
+               if (i.getInvitee().getType() == Type.contact) {
+                       link += "?invitationHash=" + i.getHash();
+
+            if (i.getInvitee().getLanguage_id() > 0) {
+                link += "&language=" + 
i.getInvitee().getLanguage_id().toString();
+            }
+               } else {
+                       link = 
getRoomUrlFragment(i.getRoom().getRooms_id()).getLink(i.getBaseUrl());
+               }
+               return link;
+       }
+
+}

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=1583287&r1=1583286&r2=1583287&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
 Mon Mar 31 10:33:58 2014
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.user
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
 import static 
org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.RoomTypeDropDown.getRoomTypes;
 
@@ -30,13 +31,18 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.openmeetings.data.conference.InvitationManager;
 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.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.util.LinkHelper;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.RoomTypeDropDown;
@@ -171,17 +177,19 @@ public class MessageDialog extends Abstr
                        r.setName(p.getSubject());
                        r.setComment("");
                        r.setNumberOfPartizipants(100L);
-                       r.setAppointment(true);
+                       r.setAppointment(false);
                        r.setAllowUserQuestions(true);
                        r.setAllowFontStyles(true);
-                       getBean(RoomDao.class).update(r, getUserId());
+                       r = getBean(RoomDao.class).update(r, getUserId());
+                       p.setRoom(r);
                } else {
                        p.setRoom(null);
                }
                PrivateMessagesDao msgDao = getBean(PrivateMessagesDao.class);
                for (User to : modelTo.getObject()) {
+                       UserDao userDao = getBean(UserDao.class); 
                        if (to.getUser_id() == null) {
-                               getBean(UserDao.class).update(to, getUserId());
+                               userDao.update(to, getUserId());
                        }
                        //to send
                        p = new PrivateMessage(p);
@@ -194,12 +202,31 @@ public class MessageDialog extends Abstr
                        p.setFolderId(INBOX_FOLDER_ID);
                        msgDao.update(p, getUserId());
                        if (to.getAdresses() != null) {
-                               String aLinkHTML =      isPrivate ? 
"<br/><br/>" + "<a href='" + ContactsHelper.getLink() + "'>"
+                               String aLinkHTML =      (isPrivate && 
to.getType() == Type.user) ? "<br/><br/>" + "<a href='" + 
ContactsHelper.getLink() + "'>"
                                                        + 
WebSession.getString(1302) + "</a><br/>" : "";
+                               String invitation_link = "";
+                               if (p.isBookedRoom()) {
+                                       Invitation i = 
getBean(InvitationManager.class).getInvitation(to, p.getRoom(),
+                                                       false, null, 
Valid.Period
+                                                       , 
userDao.get(getUserId()), getBaseUrl(), 
userDao.get(getUserId()).getLanguage_id(),
+                                                       modelStart.getObject(), 
modelEnd.getObject(), null);
+                                       
+                                       invitation_link = 
LinkHelper.getInvitationLink(i);
+
+                                       if (invitation_link == null) {
+                                               invitation_link = "";
+                                       } else {
+                                               invitation_link = "<br/>" //
+                                                               + 
WebSession.getString(503)
+                                                               + "<br/><a 
href='" + invitation_link
+                                                               + "'>"
+                                                               + 
WebSession.getString(504) + "</a><br/>";
+                                       }
+                               }
                                
                                
getBean(MailHandler.class).send(to.getAdresses().getEmail(),
                                                WebSession.getString(1301) + 
p.getSubject(),
-                                               (p.getMessage() == null ? "" : 
p.getMessage().replaceAll("\\<.*?>", "")) + aLinkHTML);
+                                               (p.getMessage() == null ? "" : 
p.getMessage().replaceAll("\\<.*?>", "")) + aLinkHTML + invitation_link);
                        }
                }
        }

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=1583287&r1=1583286&r2=1583287&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
 Mon Mar 31 10:33:58 2014
@@ -275,7 +275,7 @@ public class MessagesContactsPanel exten
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
-                               newMessage.reset(false).open(target);
+                               newMessage.reset(true).open(target);
                        }
                }).add(new JQueryBehavior(".email.new", "button")));
                folders.add(inbox.add(new AjaxEventBehavior("click") {


Reply via email to