Author: solomax
Date: Wed Feb 11 07:26:41 2015
New Revision: 1658892

URL: http://svn.apache.org/r1658892
Log:
[OPENMEETINGS-1175] private messages are send from the room as expected

Modified:
    
openmeetings/branches/3.0.x/WebContent/src/base/hibernate/hibRtmpConnection.lzx
    
openmeetings/branches/3.0.x/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
    
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java

Modified: 
openmeetings/branches/3.0.x/WebContent/src/base/hibernate/hibRtmpConnection.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/WebContent/src/base/hibernate/hibRtmpConnection.lzx?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/WebContent/src/base/hibernate/hibRtmpConnection.lzx 
(original)
+++ 
openmeetings/branches/3.0.x/WebContent/src/base/hibernate/hibRtmpConnection.lzx 
Wed Feb 11 07:26:41 2015
@@ -558,6 +558,7 @@
                     
                     if (canvas.landingZone == "dashboard") {
                         canvas.destroyExitButton = false;
+                                   parent.setUsernameAndSession.doCall();
                         parent.getRoomTypes.doCall();
                     } else if (canvas.roomRecordingId > 0) {
                        if (canvas.thishib.loaderVar != null) {
@@ -569,6 +570,7 @@
                         loadContent(obj,null,null);
                     } else if (canvas.wicketroomid > 0) {
                        canvas.initroomid = canvas.wicketroomid;
+                        parent.getRoomTypes.doCall();
                         parent.getRoomById.doCall();
                     } else {
                        if (canvas.thishib.loaderVar != null) {
@@ -631,8 +633,7 @@
                         if (canvas.thishib.loaderVar != null) {
                             canvas.thishib.loaderVar.setProgress();
                         }
-                        if($debug) Debug.write("getRoomTypes");
-                        parent.getRoomTypes.doCall();
+                                   parent.setUsernameAndSession.doCall();
                     } else {
                                                parent.initlanguageLoaded = 
true;
                                                if($debug) 
Debug.write("getGeneralOptions");
@@ -640,6 +641,8 @@
                                                if($debug) 
Debug.write("getTimeZones");
                                                parent.getTimeZones.doCall(); 
// this is very long call let it be async
                     }
+                    if($debug) Debug.write("getRoomTypes");
+                    parent.getRoomTypes.doCall();
                 }
             ]]>
         </handler>  
@@ -861,13 +864,12 @@
         <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>
         <handler name="ondata" args="value">
             //The onResult-Handler will be called be the rtmpconnection
-            //Debug.write("getRoomTypes ",value);
+            if ($debug) Debug.write("getRoomTypes ", value);
             canvas.roomTypesInitValues = value;
             canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "getRoomTypes", 
[value]);
                        if (canvas.thishib.loaderVar != null) {
                canvas.thishib.loaderVar.setProgress();
             }
-            parent.setUsernameAndSession.doCall();
         </handler>  
     </netRemoteCallHib>      
     

Modified: 
openmeetings/branches/3.0.x/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
 (original)
+++ 
openmeetings/branches/3.0.x/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
 Wed Feb 11 07:26:41 2015
@@ -52,12 +52,11 @@
                ]]>
        </handler>
        
-       <netRemoteCallHib name="getUserById" funcname="userservice.getUserById" 
-        remotecontext="$once{ canvas.thishib }" > 
+       <netRemoteCallHib name="getUserById" funcname="userservice.getUserById" 
remotecontext="$once{ canvas.thishib }" > 
         <netparam><method name="getValue"> return canvas.sessionId; 
</method></netparam>
         <netparam><method name="getValue">return 
parent.parent.user_id;</method></netparam>
         <handler name="ondata" args="value">
-               <![CDATA[
+               <![CDATA[
             if($debug) Debug.write("[admin]userValueForm/getUserById: 
",value.lastname);
             parent.userObject = value;
             var tString = value.firstname + ' ' + value.lastname  + ' ' 
@@ -66,7 +65,7 @@
             parent._to.sendUpdateText = false;
             parent._to.setAttribute("text",tString);
             parent._to.sendUpdateText = true;
-            ]]>
+        ]]>
         </handler>
     </netRemoteCallHib>
        
@@ -105,6 +104,7 @@
                        
                        if ($debug) Debug.write("receipents :: 
",this.receipents);
                        if ($debug) Debug.write("receipents :: 
",this._richText.getText());
+                       if ($debug) Debug.write("composeMail, parentId :: 
",this.parentMessageId);
                
                        this.composeMail.doCall();
                ]]>
@@ -119,9 +119,9 @@
                
                <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>
                    <netparam><method name="getValue">return 
parent.parent.receipents</method></netparam>
-            <netparam><method name="getValue">return 
this.parent.parent._subject.getText();</method></netparam>
+            <netparam><method name="getValue">return 
parent.parent._subject.getText();</method></netparam>
             <netparam><method name="getValue">return 
parent.parent._richText.getText();</method></netparam>
-            <netparam><method name="getValue">return 
this.parent.parent._bookRoom.getValue();</method></netparam>
+            <netparam><method name="getValue">return 
parent.parent._bookRoom.getValue();</method></netparam>
             <netparam><method name="getValue">return 
parseDateToStringTimeSeconds(parent.parent._valid_from.getDate());</method></netparam>
             <netparam><method name="getValue">return 
parent.parent._timeFrom.getText();</method></netparam>
             <netparam><method name="getValue">return 
parseDateToStringTimeSeconds(parent.parent._valid_to.getDate());</method></netparam>
@@ -372,17 +372,16 @@
        </view>
        
        <labelText labelid="194" width="200" y="$once{ parent.height-100 }" 
resize="false" x="4"/>  
-        <resetCombobox name="_roomtype" width="164" y="$once{ 
parent.height-100 }" 
-                                  x="120" editable="false" fontsize="11">
-               <handler name="oninit" >
-                   <![CDATA[
-                           for (var 
i=0;i<canvas.roomTypesInitValues.length;i++){
-                               
this.addItem(canvas.roomTypesInitValues[i].label.value,canvas.roomTypesInitValues[i].roomtypes_id);
-                           }
-                           this.selectItemAt(0);
-                   ]]>
-               </handler> 
-        </resetCombobox> 
+    <resetCombobox name="_roomtype" width="164" y="$once{ parent.height-100 }" 
x="120" editable="false" fontsize="11">
+        <handler name="oninit" >
+        <![CDATA[
+            for (var i=0;i<canvas.roomTypesInitValues.length;i++){
+                
this.addItem(canvas.roomTypesInitValues[i].label.value,canvas.roomTypesInitValues[i].roomtypes_id);
+            }
+            this.selectItemAt(0);
+        ]]>
+        </handler> 
+    </resetCombobox> 
         
        <labelText labelid="1219" width="200" y="$once{ parent.height-76 }" 
resize="false" x="4"/>  
        <dateField x="120" y="$once{ parent.height-76 }" name="_valid_from" 

Modified: 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
 Wed Feb 11 07:26:41 2015
@@ -21,6 +21,7 @@ package org.apache.openmeetings.db.entit
 import java.io.Serializable;
 import java.util.Date;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -84,13 +85,13 @@ public class PrivateMessage implements S
        @Element(data = true, required = false)
        private User from;
 
-       @ManyToOne(fetch = FetchType.EAGER)
+       @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
        @JoinColumn(name = "to_id")
        @ForeignKey(enabled = true)
        @Element(data = true, required = false)
        private User to;
 
-       @ManyToOne(fetch = FetchType.EAGER)
+       @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
        @JoinColumn(name = "owner_id")
        @ForeignKey(enabled = true)
        @Element(data = true, required = false)

Modified: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/UserService.java
 Wed Feb 11 07:26:41 2015
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.remote;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
@@ -37,6 +40,7 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.ServerDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.IUserService;
 import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
@@ -56,7 +60,7 @@ import org.apache.openmeetings.mail.Mail
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.util.AuthLevelUtil;
 import org.apache.openmeetings.util.CalendarPatterns;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.web.mail.template.AbstractTemplatePanel;
 import org.apache.openmeetings.web.util.ContactsHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
@@ -70,9 +74,7 @@ import org.springframework.beans.factory
  * 
  */
 public class UserService implements IUserService {
-
-       private static final Logger log = Red5LoggerFactory.getLogger(
-                       UserService.class, OpenmeetingsVariables.webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(UserService.class, webAppRootKey);
 
        @Autowired
        private ISessionManager sessionManager;
@@ -87,6 +89,8 @@ public class UserService implements IUse
        @Autowired
        private ConfigurationDao configurationDao;
        @Autowired
+       private IUserManager userManager;
+       @Autowired
        private UserDao userDao;
        @Autowired
        private SalutationDao salutationmanagement;
@@ -360,22 +364,32 @@ public class UserService implements IUse
                        // users only
                        if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) {
                                User from = userDao.get(users_id);
-                               TimeZone timezone = 
timezoneUtil.getTimeZone(from);
-
-                               Date start = createCalendarDate(timezone, 
validFromDate, validFromTime);
-                               Date end = createCalendarDate(timezone, 
validToDate, validToTime);
-
-                               log.info("validFromDate: " + 
CalendarPatterns.getDateWithTimeByMiliSeconds(start));
-                               log.info("validToDate: " + 
CalendarPatterns.getDateWithTimeByMiliSeconds(end));
 
                                Appointment a = new Appointment();
-                               a.setTitle(subject);
-                               a.setDescription(message);
-                               a.setStart(start);
-                               a.setEnd(end);
-                               a.setCategory(appointmentCategoryDao.get(1L));
-                               a.setOwner(from);
+                               if (a.getMeetingMembers() == null) {
+                                       a.setMeetingMembers(new 
ArrayList<MeetingMember>());
+                               }
+                               for (String email : recipients) {
+                                       MeetingMember mm = new MeetingMember();
+                                       mm.setAppointment(a);
+                                       mm.setUser(userDao.getContact(email, 
users_id));
+                                       a.getMeetingMembers().add(mm);
+                               }
                                if (bookedRoom) {
+                                       TimeZone timezone = 
timezoneUtil.getTimeZone(from);
+                                       Date start = 
createCalendarDate(timezone, validFromDate, validFromTime);
+                                       Date end = createCalendarDate(timezone, 
validToDate, validToTime);
+
+                                       log.info("validFromDate: " + 
CalendarPatterns.getDateWithTimeByMiliSeconds(start));
+                                       log.info("validToDate: " + 
CalendarPatterns.getDateWithTimeByMiliSeconds(end));
+
+                                       a.setTitle(subject);
+                                       a.setDescription(message);
+                                       a.setStart(start);
+                                       a.setEnd(end);
+                                       
a.setCategory(appointmentCategoryDao.get(1L));
+                                       a.setOwner(from);
+                                       
                                        a.setRoom(new Room());
                                        a.getRoom().setAppointment(true);
                                        a.getRoom().setName(subject);
@@ -383,38 +397,32 @@ public class UserService implements IUse
                                        
a.getRoom().setNumberOfPartizipants(100L);
                                        a.getRoom().setAllowUserQuestions(true);
                                        a.getRoom().setAllowFontStyles(true);
+
+                                       a = appointmentDao.update(a, users_id);
                                }
-                               for (String email : recipients) {
-                                       MeetingMember mm = new MeetingMember();
-                                       mm.setAppointment(a);
-                                       mm.setUser(userDao.getContact(email, 
users_id));
-                                       a.getMeetingMembers().add(mm);
-                               }
-                               a = appointmentDao.update(a, users_id);
                                for (MeetingMember mm : a.getMeetingMembers()) {
                                        User to = mm.getUser();
                                        Room room = a.getRoom();
                                        
-                                       //TODO should be reviewed
-                                       if 
(!to.getUser_id().equals(from.getUser_id())) {
-                                               // One message to the Send
-                                               
privateMessagesDao.addPrivateMessage(subject,
-                                                               message, 
parentMessageId, from, to, from,
-                                                               bookedRoom, 
room, false, 0L);
-
-                                               // One message to the Inbox
-                                               
privateMessagesDao.addPrivateMessage(subject,
-                                                               message, 
parentMessageId, from, to, to,
-                                                               bookedRoom, 
room, false, 0L);
-                                       }
-
                                        // We do not send an email to the one 
that has created the
                                        // private message
-                                       if (to != null && 
to.getUser_id().equals(from.getUser_id())) {
+                                       if (to != null && 
from.getUser_id().equals(to.getUser_id())) {
                                                continue;
                                        }
 
+                                       //TODO should be reviewed
+                                       // One message to the Send
+                                       
privateMessagesDao.addPrivateMessage(subject,
+                                                       message, 
parentMessageId, from, to, from,
+                                                       bookedRoom, room, 
false, 0L);
+
+                                       // One message to the Inbox
+                                       
privateMessagesDao.addPrivateMessage(subject,
+                                                       message, 
parentMessageId, from, to, to,
+                                                       bookedRoom, room, 
false, 0L);
+
                                        if (to.getAdresses() != null) {
+                                               
AbstractTemplatePanel.ensureApplication(from.getLanguage_id());
                                                String aLinkHTML =      
"<br/><br/>" + "<a href='" + ContactsHelper.getLink() + "'>"
                                                                        +  
fieldLanguagesValuesDao.get(1302, from.getLanguage_id()) + "</a><br/>";
                                                

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
 Wed Feb 11 07:26:41 2015
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.core.remote;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -49,7 +51,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.UserContact;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
 import org.slf4j.Logger;
@@ -63,8 +64,7 @@ import org.springframework.beans.factory
  */
 public class UserService implements IUserService {
 
-       private static final Logger log = Red5LoggerFactory.getLogger(
-                       UserService.class, OpenmeetingsVariables.webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(UserService.class, webAppRootKey);
 
        @Autowired
        private ISessionManager sessionManager;

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java?rev=1658892&r1=1658891&r2=1658892&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
 Wed Feb 11 07:26:41 2015
@@ -20,6 +20,7 @@ package org.apache.openmeetings.db.entit
 
 import java.util.Date;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -83,13 +84,13 @@ public class PrivateMessage implements I
        @Element(data = true, required = false)
        private User from;
 
-       @ManyToOne(fetch = FetchType.EAGER)
+       @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
        @JoinColumn(name = "to_id")
        @ForeignKey(enabled = true)
        @Element(data = true, required = false)
        private User to;
 
-       @ManyToOne(fetch = FetchType.EAGER)
+       @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
        @JoinColumn(name = "owner_id")
        @ForeignKey(enabled = true)
        @Element(data = true, required = false)


Reply via email to