You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/02/11 08:26:41 UTC

svn commit: r1658892 - in /openmeetings: branches/3.0.x/WebContent/src/base/hibernate/ branches/3.0.x/WebContent/src/modules/settings/privatemessages/ branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/user/ branches/3.0.x/src/main/java/org/a...

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)