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 2013/09/12 03:21:28 UTC

svn commit: r1522099 [1/4] - in /openmeetings/trunk/singlewebapp: ./ docs/ src/main/java/org/apache/openmeetings/axis/services/ src/main/java/org/apache/openmeetings/backup/ src/main/java/org/apache/openmeetings/data/calendar/beans/ src/main/java/org/a...

Author: solomax
Date: Thu Sep 12 01:21:26 2013
New Revision: 1522099

URL: http://svn.apache.org/r1522099
Log:
[OPENMEETINGS-777] basic implementation, initial commit (not fully working, need more testing)

Added:
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitation.java
      - copied, changed from r1520866, openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
Removed:
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/beans/
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
Modified:
    openmeetings/trunk/singlewebapp/build.xml
    openmeetings/trunk/singlewebapp/docs/CalendarService.html
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/BaseWebService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/JabberWebService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/RoomWebService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentCategoryDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentReminderTypDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/MeetingMemberDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/InvitationDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/conference/dao/RoomDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AbstractUserDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/AdminUserDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/dao/UserDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/calendar/MeetingMember.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/persistence/beans/user/User.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/InvitationService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/UserService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/BackupImport.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/TimezoneUtil.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/mail/MailHandler.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/MeetingMemberDialog.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/postgres_persistence.xml
    openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/openmeetings-applicationContext.xml
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java

Modified: openmeetings/trunk/singlewebapp/build.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/build.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/build.xml (original)
+++ openmeetings/trunk/singlewebapp/build.xml Thu Sep 12 01:21:26 2013
@@ -299,6 +299,23 @@
 				<attribute name="Product-Version" value="${project.version}-${project.status}" />
 			</manifest>
 		</jar>
+
+		<!-- Build WebServices -->
+		<property name="om_aar_name" value="${project.distname}-${jar.suffix}.aar"/>
+		<property name="om_aar_folder" value="${dist.webapps.dir}/WEB-INF/services"/>
+		<jar destfile="${om_aar_folder}/${om_aar_name}">
+			<fileset dir="${main.out.dir}">
+				<include name="META-INF/*" />
+			</fileset>
+		</jar>
+		<echo file="${om_aar_folder}/services.list" append="false">${om_aar_name}${line.separator}version.aar${line.separator}</echo>
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-WebService-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="**/apache/openmeetings/axis/**" />
+				<include name="META-INF/LICENSE" />
+				<include name="META-INF/NOTICE" />
+			</fileset>
+		</jar>
 	</target>
 
 	<target name="jar.only" depends="buildJavaDocs, enhance.only, jar.web.only">
@@ -318,23 +335,6 @@
 				<attribute name="Product-Version" value="${project.version}-${project.status}" />
 			</manifest>
 		</jar>
-
-		<!-- Build WebServices -->
-		<property name="om_aar_name" value="${project.distname}-${jar.suffix}.aar"/>
-		<property name="om_aar_folder" value="${dist.webapps.dir}/WEB-INF/services"/>
-		<jar destfile="${om_aar_folder}/${om_aar_name}">
-			<fileset dir="${main.out.dir}">
-				<include name="META-INF/*" />
-			</fileset>
-		</jar>
-		<echo file="${om_aar_folder}/services.list" append="false">${om_aar_name}${line.separator}version.aar${line.separator}</echo>
-		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-WebService-${jar.suffix}.jar">
-			<fileset dir="${main.out.dir}">
-				<include name="**/apache/openmeetings/axis/**" />
-				<include name="META-INF/LICENSE" />
-				<include name="META-INF/NOTICE" />
-			</fileset>
-		</jar>
 	</target>
 
 	<target name="dist.screen.share" description="Make Screen Share Archive" depends="jar.screen.share, signWebStartJars" />

Modified: openmeetings/trunk/singlewebapp/docs/CalendarService.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/docs/CalendarService.html?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/docs/CalendarService.html (original)
+++ openmeetings/trunk/singlewebapp/docs/CalendarService.html Thu Sep 12 01:21:26 2013
@@ -67,6 +67,10 @@ limitations under the License.
                 <div class="navigation_comment"><i >Search a calendar event for the current SID</i></div>
                 </div>
                                                <div>
+                <a href="#getAppointment"><b>getAppointment</b></a><br/>
+                <div class="navigation_comment"><i ></i></div>
+                </div>
+                                               <div>
                 <a href="#saveAppointment"><b>saveAppointment</b></a><br/>
                 <div class="navigation_comment"><i >Save an appointment</i></div>
                 </div>
@@ -99,13 +103,6 @@ limitations under the License.
                 <a href="#getAppointmentReminderTypList"><b>getAppointmentReminderTypList</b></a><br/>
                 <div class="navigation_comment"><i >Get all reminder types for calendar events</i></div>
                 </div>
-                                               <div>
-                <a href="#getAppointmentsByWeekCalendar"><b>getAppointmentsByWeekCalendar</b></a><br/>
-                <div class="navigation_comment"><i >Get the appointments (calendar events) for the given requestUserId <br/>
- The TimeZone can be either given by the Id of the timezone in the table
- "om_timezone" with the param timeZoneIdA <br/>
- Or with the java name of the TimeZone in the param javaTimeZoneName</i></div>
-                </div>
                            </div>
 	   
 	    <h3>Methods Details in CalendarService</h3>
@@ -387,6 +384,68 @@ limitations under the License.
     	   				    		      <div class="method">
 		        <div class="method_header">
 		        <div style="margin-left:10px">
+    			<a name="getAppointment" ><b>getAppointment</b></a>
+    			</div>
+    			</div>
+    			
+    			Method: <i>getAppointment (
+    			    			    			       			   String appointmentName
+    			       			    			       			     , 
+    			       			   String appointmentLocation
+    			       			    			       			     , 
+    			       			   String appointmentDescription
+    			       			    			       			     , 
+    			       			   Calendar appointmentstart
+    			       			    			       			     , 
+    			       			   Calendar appointmentend
+    			       			    			       			     , 
+    			       			   Boolean isDaily
+    			       			    			       			     , 
+    			       			   Boolean isWeekly
+    			       			    			       			     , 
+    			       			   Boolean isMonthly
+    			       			    			       			     , 
+    			       			   Boolean isYearly
+    			       			    			       			     , 
+    			       			   Long categoryId
+    			       			    			       			     , 
+    			       			   Long remind
+    			       			    			       			     , 
+    			       			   String mmClient
+    			       			    			       			     , 
+    			       			   Long roomType
+    			       			    			       			     , 
+    			       			   String baseUrl
+    			       			    			       			     , 
+    			       			   Long languageId
+    			       			    			       			     , 
+    			       			   Boolean isPasswordProtected
+    			       			    			       			     , 
+    			       			   String password
+    			       			    			       			     , 
+    			       			   long roomId
+    			       			    			       			     , 
+    			       			   Long users_id
+    			       			    			)
+    			</i><br/>
+    			<p>
+    			  
+    			</p>
+    			<p>
+                  Return Type: org.apache.openmeetings.persistence.beans.calendar.Appointment
+                </p>
+    			<p>Params:</p>
+    			    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>
+    				<br/><br/>
+    			    			
+    			    				<i>No Params</i>
+    			    			<br/>
+    			REST Sample Call/URL:<br/>
+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointment?appointmentName=VALUE&appointmentLocation=VALUE&appointmentDescription=VALUE&appointmentstart=VALUE&appointmentend=VALUE&isDaily=VALUE&isWeekly=VALUE&isMonthly=VALUE&isYearly=VALUE&categoryId=VALUE&remind=VALUE&mmClient=VALUE&roomType=VALUE&baseUrl=VALUE&languageId=VALUE&isPasswordProtected=VALUE&password=VALUE&roomId=VALUE&users_id=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointment?appointmentName=VALUE&amp;appointmentLocation=VALUE&amp;appointmentDescription=VALUE&amp;appointme
 ntstart=VALUE&amp;appointmentend=VALUE&amp;isDaily=VALUE&amp;isWeekly=VALUE&amp;isMonthly=VALUE&amp;isYearly=VALUE&amp;categoryId=VALUE&amp;remind=VALUE&amp;mmClient=VALUE&amp;roomType=VALUE&amp;baseUrl=VALUE&amp;languageId=VALUE&amp;isPasswordProtected=VALUE&amp;password=VALUE&amp;roomId=VALUE&amp;users_id=VALUE</a>
+    		  </div>
+    	   				    		      <div class="method">
+		        <div class="method_header">
+		        <div style="margin-left:10px">
     			<a name="saveAppointment" ><b>saveAppointment</b></a>
     			</div>
     			</div>
@@ -1140,106 +1199,6 @@ limitations under the License.
     			REST Sample Call/URL:<br/>
     			    			    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentReminderTypList?SID=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentReminderTypList?SID=VALUE</a>
     		  </div>
-    	   				    		      <div class="method">
-		        <div class="method_header">
-		        <div style="margin-left:10px">
-    			<a name="getAppointmentsByWeekCalendar" ><b>getAppointmentsByWeekCalendar</b></a>
-    			</div>
-    			</div>
-    			
-    			Method: <i>getAppointmentsByWeekCalendar (
-    			    			    			       			   String SID
-    			       			    			       			     , 
-    			       			   int firstDayInWeek
-    			       			    			       			     , 
-    			       			   Date startDate
-    			       			    			       			     , 
-    			       			   Long requestUserId
-    			       			    			       			     , 
-    			       			   Long omTimeZoneId
-    			       			    			       			     , 
-    			       			   String javaTimeZoneName
-    			       			    			)
-    			</i><br/>
-    			<p>
-    			  Get the appointments (calendar events) for the given requestUserId <br/>
- The TimeZone can be either given by the Id of the timezone in the table
- "om_timezone" with the param timeZoneIdA <br/>
- Or with the java name of the TimeZone in the param javaTimeZoneName
-    			</p>
-    			<p>
-                  Return Type: java.util.List
-                </p>
-    			<p>Params:</p>
-    			    			
-    				    			<table rules="all" border="1">
-	    			   <thead>
-	    			   <tr>
-	    			     <th width="200" align="left">Type</th>
-	    			     <th width="200" align="left">Fieldname</th>
-	    			     <th width="400" align="left">Description</th>
-	    			   </tr>
-	    			   </thead>
-	    			   <tbody>
-	    			   	    			   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">SID</td>
-	                     <td valign="top">a valid user id</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		int
-	                     		                     </td>
-	                     <td valign="top">firstDayInWeek</td>
-	                     <td valign="top">the first dayin week, 0=Sunday, 1=Monday, ...</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		Date
-	                     		                     </td>
-	                     <td valign="top">startDate</td>
-	                     <td valign="top">the date it should start with</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		Long
-	                     		                     </td>
-	                     <td valign="top">requestUserId</td>
-	                     <td valign="top">the user id the calendar events are requested, if it is not
-            the user id of the SID then the SID's user needs to have the
-            right to watch those events</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		Long
-	                     		                     </td>
-	                     <td valign="top">omTimeZoneId</td>
-	                     <td valign="top">the id of the timezone (alternativly use javaTimeZoneName)</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">javaTimeZoneName</td>
-	                     <td valign="top">the name of the java time zone, see <a
-            href="http://en.wikipedia.org/wiki/Time_zone#Java"
-            target="_blank"
-            >http://en.wikipedia.org/wiki/Time_zone#Java</a></td>
-	                   </tr>
-	                   
-	                   	                   	                   </tbody>
-	    			</table>
-    			    			<br/>
-    			REST Sample Call/URL:<br/>
-    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentsByWeekCalendar?SID=VALUE&firstDayInWeek=VALUE&startDate=VALUE&requestUserId=VALUE&omTimeZoneId=VALUE&javaTimeZoneName=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentsByWeekCalendar?SID=VALUE&amp;firstDayInWeek=VALUE&amp;startDate=VALUE&amp;requestUserId=VALUE&amp;omTimeZoneId=VALUE&amp;javaTimeZoneName=VALUE</a>
-    		  </div>
     	   			
 	
 	</body>

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/BaseWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/BaseWebService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/BaseWebService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/BaseWebService.java Thu Sep 12 01:21:26 2013
@@ -32,8 +32,7 @@ public abstract class BaseWebService {
 	private ServletContext getServletContext() throws AxisFault {
 		try {
 			MessageContext mc = MessageContext.getCurrentMessageContext();
-			return (ServletContext) mc
-					.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT);
+			return (ServletContext) mc.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT);
 		} catch (Exception err) {
 			throw new AxisFault("Servlet context is not available yet, retry in couple of seconds");
 		}

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebService.java Thu Sep 12 01:21:26 2013
@@ -18,37 +18,34 @@
  */
 package org.apache.openmeetings.axis.services;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
+
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
 
 import org.apache.axis2.AxisFault;
-import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.basic.AuthLevelUtil;
 import org.apache.openmeetings.data.basic.SessiondataDao;
-import org.apache.openmeetings.data.calendar.beans.AppointmentDTO;
-import org.apache.openmeetings.data.calendar.beans.Day;
-import org.apache.openmeetings.data.calendar.beans.Week;
 import org.apache.openmeetings.data.calendar.daos.AppointmentCategoryDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentReminderTypDao;
+import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
 import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
 import org.apache.openmeetings.data.conference.RoomManager;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
-import org.apache.openmeetings.data.user.dao.UserContactsDao;
+import org.apache.openmeetings.data.user.dao.AdminUserDao;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
 import org.apache.openmeetings.persistence.beans.calendar.AppointmentCategory;
 import org.apache.openmeetings.persistence.beans.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
 import org.apache.openmeetings.persistence.beans.room.Room;
-import org.apache.openmeetings.persistence.beans.room.RoomType;
 import org.apache.openmeetings.persistence.beans.user.User;
-import org.apache.openmeetings.persistence.beans.user.UserContact;
 import org.apache.openmeetings.utils.TimezoneUtil;
+import org.apache.openmeetings.web.app.WebSession;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,9 +58,7 @@ import org.springframework.beans.factory
  * 
  */
 public class CalendarWebService {
-
-	private static final Logger log = Red5LoggerFactory.getLogger(
-			CalendarWebService.class, OpenmeetingsVariables.webAppRootKey);
+	private static final Logger log = Red5LoggerFactory.getLogger(CalendarWebService.class, webAppRootKey);
 
 	@Autowired
 	private AppointmentDao appointmentDao;
@@ -74,19 +69,21 @@ public class CalendarWebService {
 	@Autowired
 	private UserManager userManager;
 	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
 	private RoomManager roomManager;
 	@Autowired
 	private RoomDao roomDao;
 	@Autowired
 	private AuthLevelUtil authLevelUtil;
 	@Autowired
-	private AppointmentCategoryDao appointmentCategoryDaoImpl;
+	private AppointmentCategoryDao appointmentCategoryDao;
 	@Autowired
-	private AppointmentReminderTypDao appointmentReminderTypDaoImpl;
+	private AppointmentReminderTypDao appointmentReminderTypDao;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
 	@Autowired
-	private UserContactsDao userContactsDaoImpl;
+	private MeetingMemberDao meetingMemberDao;
 
 	/**
 	 * Load appointments by a start / end range for the current SID
@@ -109,8 +106,7 @@ public class CalendarWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
-				return appointmentLogic.getAppointmentByRange(users_id,
-						starttime, endtime);
+				return appointmentDao.getAppointmentsByRange(users_id, starttime, endtime);
 			}
 		} catch (Exception err) {
 			log.error("[getAppointmentByRange]", err);
@@ -141,8 +137,7 @@ public class CalendarWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 			if (authLevelUtil.checkWebServiceLevel(user_level)) {
 
-				return appointmentLogic.getAppointmentByRange(userId,
-						starttime, endtime);
+				return appointmentDao.getAppointmentsByRange(userId, starttime, endtime);
 			}
 		} catch (Exception err) {
 			log.error("[getAppointmentByRangeForUserId]", err);
@@ -228,6 +223,63 @@ public class CalendarWebService {
 
 	}
 
+	private MeetingMember getMeetingMember(Long userId, Long langId, String str) {
+		String[] params = str.split(",");
+		
+		try {
+			return meetingMemberDao.get(Long.valueOf(params[0]));
+		} catch (Exception e) {
+			//no-op
+		}
+		MeetingMember mm = new MeetingMember();
+		try {
+			mm.setUser(userDao.get(Long.valueOf(params[4])));
+		} catch (Exception e) {
+			//no-op
+		}
+		if (mm.getUser() == null) {
+			mm.setUser(userDao.getContact(params[3], params[1], params[2], langId, params[5], userId));
+		}
+		
+		return mm;
+	}
+	
+	public Appointment getAppointment(String appointmentName,
+			String appointmentLocation, String appointmentDescription,
+			Calendar appointmentstart, Calendar appointmentend,
+			Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
+			Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
+			Long roomType, String baseUrl, Long languageId,
+			Boolean isPasswordProtected, String password, long roomId, Long users_id) {
+		Appointment a = new Appointment();
+		a.setTitle(appointmentName);
+		a.setLocation(appointmentLocation);
+		a.setDescription(appointmentDescription);
+		a.setStart(appointmentstart.getTime());
+		a.setEnd(appointmentend.getTime());
+		a.setIsDaily(isDaily);
+		a.setIsWeekly(isWeekly);
+		a.setIsMonthly(isMonthly);
+		a.setIsYearly(isYearly);
+		a.setCategory(appointmentCategoryDao.get(categoryId));
+		a.setRemind(appointmentReminderTypDao.get(remind));
+		WebSession.get().setBaseUrl(baseUrl); //TODO verify !!!!!
+		a.setRoom(new Room());
+		a.getRoom().setComment(appointmentDescription);
+		a.getRoom().setName(appointmentName);
+		a.getRoom().setRooms_id(roomId);
+		a.getRoom().setRoomtype(roomManager.getRoomTypesById(roomType));
+		a.setOwner(userDao.get(users_id));
+		a.setPasswordProtected(isPasswordProtected);
+		a.setPassword(password);
+		a.setMeetingMembers(new ArrayList<MeetingMember>());
+		for (String singleClient : mmClient) {
+			MeetingMember mm = getMeetingMember(users_id, languageId, singleClient);
+			mm.setAppointment(a);
+			a.getMeetingMembers().add(mm);
+		}
+		return a;
+	}
 	/**
 	 * Save an appointment
 	 * 
@@ -288,7 +340,7 @@ public class CalendarWebService {
 			Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
 			Long roomType, String baseUrl, Long languageId,
 			Boolean isPasswordProtected, String password, long roomId) {
-
+		//Seems to be create
 		log.debug("saveAppointMent SID:" + SID + ", baseUrl : " + baseUrl);
 
 		try {
@@ -298,29 +350,10 @@ public class CalendarWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 
 			if (authLevelUtil.checkUserLevel(user_level)) {
-
-				List<Map<String, String>> newList = new ArrayList<Map<String, String>>();
-
-				for (String singleClient : mmClient) {
-					String[] params = singleClient.split(",");
-					Map<String, String> map = new HashMap<String, String>();
-					map.put("meetingMemberId", params[0]);
-					map.put("firstname", params[1]);
-					map.put("lastname", params[2]);
-					map.put("email", params[3]);
-					map.put("userId", params[4]);
-					map.put("jNameTimeZone", params[5]);
-					newList.add(map);
-				}
-
-				Long id = appointmentLogic.saveAppointment(appointmentName,
-						users_id, appointmentLocation, appointmentDescription,
-						appointmentstart.getTime(), appointmentend.getTime(),
-						isDaily, isWeekly, isMonthly, isYearly, categoryId,
-						remind, newList, roomType, baseUrl, languageId,
-						isPasswordProtected, password, roomId);
-
-				return id;
+				Appointment a = getAppointment(appointmentName, appointmentLocation, appointmentDescription,
+						appointmentstart, appointmentend, isDaily, isWeekly, isMonthly, isYearly, categoryId, remind,
+						mmClient, roomType, baseUrl, languageId, isPasswordProtected, password, roomId, users_id);
+				return appointmentDao.update(a, baseUrl, users_id).getId();
 			} else {
 				log.error("saveAppointment : wrong user level");
 			}
@@ -358,11 +391,17 @@ public class CalendarWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
-				appointmentLogic.getAppointMentById(appointmentId);
-
-				return appointmentDao.updateAppointmentByTime(appointmentId,
-						appointmentstart, appointmentend, users_id, baseurl,
-						languageId);
+				Appointment a = appointmentDao.get(appointmentId);
+				if (!authLevelUtil.checkAdminLevel(user_level) && !a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
+				}
+				if (!a.getStart().equals(appointmentstart) || !a.getEnd().equals(appointmentend)) {
+					a.setStart(appointmentstart);
+					a.setEnd(appointmentend);
+					WebSession.get().setBaseUrl(baseurl); //TODO verify !!!!!
+					//FIXME this might change the owner!!!!!
+					return appointmentDao.update(a, baseurl, users_id).getId();
+				}					
 			}
 		} catch (Exception err) {
 			log.error("[updateAppointment]", err);
@@ -439,60 +478,44 @@ public class CalendarWebService {
 			Long users_id = sessiondataDao.checkSession(SID);
 			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (authLevelUtil.checkUserLevel(user_level)) {
+			if (authLevelUtil.checkWebServiceLevel(user_level) || authLevelUtil.checkAdminLevel(user_level)) {
+				// fine
+			} else if (authLevelUtil.checkUserLevel(user_level)) {
 				// check if the appointment belongs to the current user
-				Appointment appointment = appointmentLogic
-						.getAppointMentById(appointmentId);
-				if (!appointment.getOwner().getUser_id().equals(users_id)) {
-					throw new AxisFault(
-							"The Appointment cannot be updated by the given user");
+				Appointment a = appointmentDao.get(appointmentId);
+				if (!a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
 				}
-			} else if (authLevelUtil.checkUserLevel(user_level)) {
-				// fine
 			} else {
-				throw new AxisFault(
-						"Not allowed to preform that action, Authenticate the SID first");
+				throw new AxisFault("Not allowed to preform that action, Authenticate the SID first");
 			}
 
-			List<Map<String, String>> newList = new ArrayList<Map<String, String>>();
-
+			Appointment a = appointmentDao.get(appointmentId);
+			a.setTitle(appointmentName);
+			a.setLocation(appointmentLocation);
+			a.setDescription(appointmentDescription);
+			a.setStart(appointmentstart.getTime());
+			a.setEnd(appointmentend.getTime());
+			a.setIsDaily(isDaily);
+			a.setIsWeekly(isWeekly);
+			a.setIsMonthly(isMonthly);
+			a.setIsYearly(isYearly);
+			a.setCategory(appointmentCategoryDao.get(categoryId));
+			a.setRemind(appointmentReminderTypDao.get(remind));
+			WebSession.get().setBaseUrl(baseurl); //TODO verify !!!!!
+			a.getRoom().setComment(appointmentDescription);
+			a.getRoom().setName(appointmentName);
+			a.getRoom().setRoomtype(roomManager.getRoomTypesById(roomType));
+			a.setOwner(userDao.get(users_id));
+			a.setPasswordProtected(isPasswordProtected);
+			a.setPassword(password);
+			a.setMeetingMembers(new ArrayList<MeetingMember>());
 			for (String singleClient : mmClient) {
-				String[] params = singleClient.split(",");
-				Map<String, String> map = new HashMap<String, String>();
-				map.put("meetingMemberId", params[0]);
-				map.put("firstname", params[1]);
-				map.put("lastname", params[2]);
-				map.put("email", params[3]);
-				map.put("userId", params[4]);
-				map.put("jNameTimeZone", params[5]);
-				newList.add(map);
+				MeetingMember mm = getMeetingMember(users_id, languageId, singleClient);
+				mm.setAppointment(a);
+				a.getMeetingMembers().add(mm);
 			}
-
-			log.debug("updateAppointment");
-
-			RoomType rt = roomManager.getRoomTypesById(roomType);
-
-			Appointment app = appointmentLogic
-					.getAppointMentById(appointmentId);
-
-			Room room = app.getRoom();
-			if (room != null) {
-
-				room.setComment(appointmentDescription);
-				room.setName(appointmentName);
-				room.setRoomtype(rt);
-
-				roomDao.update(room, users_id);
-			}
-
-			return appointmentDao.updateAppointment(appointmentId,
-					appointmentName, appointmentDescription, appointmentstart
-							.getTime(), appointmentend.getTime(), isDaily,
-					isWeekly, isMonthly, isYearly, categoryId, remind, newList,
-					users_id, baseurl, languageId, isPasswordProtected,
-					password,
-					appointmentLocation);
-
+			return appointmentDao.update(a, baseurl, users_id).getId();
 		} catch (Exception err) {
 			log.error("[updateAppointment]", err);
 			throw new AxisFault(err.getMessage());
@@ -517,38 +540,28 @@ public class CalendarWebService {
 	 *            appointment are send
 	 * @return - id of appointment deleted
 	 */
-	public Long deleteAppointment(String SID, Long appointmentId,
-			Long language_id) throws AxisFault {
+	public Long deleteAppointment(String SID, Long appointmentId, Long language_id) throws AxisFault {
 		try {
-
 			Long users_id = sessiondataDao.checkSession(SID);
 			Long user_level = userManager.getUserLevelByID(users_id);
 
-			if (authLevelUtil.checkWebServiceLevel(user_level)) {
-
-				return appointmentLogic.deleteAppointment(appointmentId,
-						users_id, language_id);
-
+			Appointment a = appointmentDao.get(appointmentId);
+			if (authLevelUtil.checkWebServiceLevel(user_level) || authLevelUtil.checkAdminLevel(user_level)) {
+				// fine
 			} else if (authLevelUtil.checkUserLevel(user_level)) {
-
-				Appointment appointment = appointmentLogic
-						.getAppointMentById(appointmentId);
-
-				if (!appointment.getOwner().getUser_id().equals(users_id)) {
-					throw new AxisFault(
-							"The Appointment cannot be deleted by the given user");
+				// check if the appointment belongs to the current user
+				if (!a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
 				}
-
-				return appointmentLogic.deleteAppointment(appointmentId,
-						users_id, language_id);
-
+			} else {
+				throw new AxisFault("Not allowed to preform that action, Authenticate the SID first");
 			}
-
+			appointmentDao.delete(a, getBaseUrl(), users_id); //FIXME check this !!!!
+			return a.getId();
 		} catch (Exception err) {
 			log.error("[deleteAppointment]", err);
 			throw new AxisFault(err.getMessage());
 		}
-		return null;
 	}
 
 	/**
@@ -574,7 +587,7 @@ public class CalendarWebService {
 				appointment.setStart(appStored
 						.getStart());
 				appointment.setEnd(appStored
-						.end());
+						.getEnd());
 
 				return appointment;
 			}
@@ -602,7 +615,7 @@ public class CalendarWebService {
 
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
-				List<AppointmentCategory> res = appointmentCategoryDaoImpl
+				List<AppointmentCategory> res = appointmentCategoryDao
 						.getAppointmentCategoryList();
 
 				if (res == null || res.size() < 1)
@@ -642,7 +655,7 @@ public class CalendarWebService {
 
 				User user = userManager.getUserById(users_id);
 				long language_id = (user == null) ? 1 : user.getLanguage_id();
-				List<AppointmentReminderTyps> res = appointmentReminderTypDaoImpl
+				List<AppointmentReminderTyps> res = appointmentReminderTypDao
 						.getAppointmentReminderTypList(language_id);
 
 				if (res == null || res.size() < 1) {
@@ -661,168 +674,4 @@ public class CalendarWebService {
 		}
 		return null;
 	}
-
-	/**
-	 * Get the appointments (calendar events) for the given requestUserId <br/>
-	 * The TimeZone can be either given by the Id of the timezone in the table
-	 * "om_timezone" with the param timeZoneIdA <br/>
-	 * Or with the java name of the TimeZone in the param javaTimeZoneName
-	 * 
-	 * @param SID
-	 *            a valid user id
-	 * @param firstDayInWeek
-	 *            the first dayin week, 0=Sunday, 1=Monday, ...
-	 * @param startDate
-	 *            the date it should start with
-	 * @param requestUserId
-	 *            the user id the calendar events are requested, if it is not
-	 *            the user id of the SID then the SID's user needs to have the
-	 *            right to watch those events
-	 * @param omTimeZoneId
-	 *            the id of the timezone (alternativly use javaTimeZoneName)
-	 * @param javaTimeZoneName
-	 *            the name of the java time zone, see <a
-	 *            href="http://en.wikipedia.org/wiki/Time_zone#Java"
-	 *            target="_blank"
-	 *            >http://en.wikipedia.org/wiki/Time_zone#Java</a>
-	 *            
-	 * @return - appointments grouped by weeks
-	 * @throws AxisFault
-	 */
-	public List<Week> getAppointmentsByWeekCalendar(String SID,
-			int firstDayInWeek, Date startDate, Long requestUserId,
-			Long omTimeZoneId, String javaTimeZoneName) throws AxisFault {
-		try {
-
-			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-			if (authLevelUtil.checkUserLevel(user_level)) {
-				
-				if (!requestUserId.equals(users_id)) {
-					UserContact userContacts = userContactsDaoImpl
-							.getUserContactByShareCalendar(requestUserId, true,
-									users_id);
-					if (userContacts == null) {
-						throw new Exception(
-								"Your are not allowed to see this calendar");
-					}
-				}
-
-				TimeZone timezone = null;
-
-				if (javaTimeZoneName != null && !javaTimeZoneName.isEmpty()) {
-					timezone = TimeZone.getTimeZone(javaTimeZoneName);
-					if (timezone == null) {
-						throw new Exception("Invalid javaTimeZoneName given");
-					}
-				}
-
-				if (omTimeZoneId > 0) {
-					timezone = timezoneUtil.getTimezoneByOmTimeZoneId(omTimeZoneId);
-				}
-				
-				if (timezone == null) {
-					throw new Exception("No timeZone given");
-				}
-
-				// Calculate the first day of a calendar based on the first
-				// showing day of the week
-				List<Week> weeks = new ArrayList<Week>(6);
-				Calendar currentDate = Calendar.getInstance();
-				currentDate.setTime(startDate);
-				currentDate.set(Calendar.HOUR_OF_DAY, 12); // set to 12 to prevent timezone issues
-				currentDate.set(Calendar.DATE, 1);
-
-				int currentWeekDay = currentDate.get(Calendar.DAY_OF_WEEK);
-
-				Calendar startWeekDay = Calendar.getInstance();
-
-				log.debug("currentWeekDay -- " + currentWeekDay);
-				log.debug("firstDayInWeek -- " + firstDayInWeek);
-
-				if (currentWeekDay == firstDayInWeek) {
-
-					log.debug("ARE equal currentWeekDay -- ");
-
-					startWeekDay.setTime(currentDate.getTime());
-
-				} else {
-
-					startWeekDay
-							.setTimeInMillis((currentDate.getTimeInMillis() - ((currentWeekDay - 1) * 86400000)));
-
-					if (currentWeekDay > firstDayInWeek) {
-						startWeekDay.setTimeInMillis(startWeekDay
-								.getTimeInMillis()
-								+ (firstDayInWeek * 86400000));
-					} else {
-						startWeekDay.setTimeInMillis(startWeekDay
-								.getTimeInMillis()
-								- (firstDayInWeek * 86400000));
-					}
-
-				}
-
-				Calendar calStart = Calendar.getInstance(timezone);
-				calStart.setTime(startWeekDay.getTime());
-
-				Calendar calEnd = Calendar.getInstance(timezone);
-				// every month page in our calendar shows 42 days
-				calEnd.setTime(new Date(startWeekDay.getTime().getTime()
-						+ (42L * 86400000L)));
-
-				List<Appointment> appointments = appointmentDao
-						.getAppointmentsByRange(requestUserId,
-								calStart.getTime(), calEnd.getTime());
-
-				log.debug("startWeekDay 2" + startWeekDay.getTime());
-				log.debug("startWeekDay Number of appointments "
-						+ appointments.size());
-
-				long z = 0;
-
-				for (int k = 0; k < 6; k++) { // 6 weeks per monthly summary
-
-					Week week = new Week();
-
-					for (int i = 0; i < 7; i++) { // 7 days a week
-
-						Calendar tCal = Calendar.getInstance(timezone);
-						tCal.setTimeInMillis(startWeekDay.getTimeInMillis()
-								+ (z * 86400000L));
-						
-						Day day = new Day(tCal.getTime());
-						
-						for (Appointment appointment : appointments) {
-							if (appointment
-									.startCalendar(timezone).get(
-											Calendar.MONTH) == tCal
-									.get(Calendar.MONTH)
-									&& appointment.startCalendar(
-											timezone).get(Calendar.DATE) == tCal
-											.get(Calendar.DATE)) {
-								day.getAppointments().add(
-										new AppointmentDTO(appointment,
-												timezone));
-							}
-						}
-
-						week.getDays().add(day);
-						z++;
-					}
-
-					weeks.add(week);
-				}
-
-				return weeks;
-
-			}
-
-		} catch (Exception err) {
-			log.error("[getAppointmentReminderTypList]", err);
-			throw new AxisFault(err.getMessage());
-		}
-		return null;
-	}
-
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java Thu Sep 12 01:21:26 2013
@@ -23,7 +23,6 @@ import java.util.Date;
 import java.util.List;
 
 import org.apache.axis2.AxisFault;
-import org.apache.openmeetings.data.calendar.beans.Week;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
 import org.apache.openmeetings.persistence.beans.calendar.AppointmentCategory;
 import org.apache.openmeetings.persistence.beans.calendar.AppointmentReminderTyps;
@@ -114,13 +113,4 @@ public class CalendarWebServiceFacade ex
 			String SID) throws AxisFault {
 		return getBean(CalendarWebService.class).getAppointmentReminderTypList(SID);
 	}
-
-	public List<Week> getAppointmentsByWeekCalendar(String SID,
-			int firstDayInWeek, Date startDate, Long requestUserId,
-			Long omTimeZoneId, String javaTimeZoneName) throws AxisFault {
-		return getBean(CalendarWebService.class).getAppointmentsByWeekCalendar(SID,
-				firstDayInWeek, startDate, requestUserId, omTimeZoneId,
-				javaTimeZoneName);
-	}
-
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/JabberWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/JabberWebService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/JabberWebService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/JabberWebService.java Thu Sep 12 01:21:26 2013
@@ -25,9 +25,12 @@ import org.apache.openmeetings.data.basi
 import org.apache.openmeetings.data.basic.SessiondataDao;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.user.dao.AdminUserDao;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation.Valid;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.persistence.beans.room.RoomOrganisation;
 import org.apache.openmeetings.persistence.beans.user.User;
@@ -53,6 +56,8 @@ public class JabberWebService {
 	@Autowired
 	private UserManager userManager;
 	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
 	private ConferenceService conferenceService;
@@ -62,6 +67,8 @@ public class JabberWebService {
 	private ConfigurationDao configurationDao;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private RoomDao roomDao;
 
 	/**
 	 * Get List&lt;Rooms&gt; of all rooms available to the user.
@@ -129,13 +136,17 @@ public class JabberWebService {
 	public String getInvitationHash(String SID, String username, Long room_id) {
 		Long users_id = this.sessiondataDao.checkSession(SID);
 		Long user_level = this.userManager.getUserLevelByID(users_id);
-		Invitations invitation = this.invitationManager.addInvitationLink(
-				user_level, username, username, username, username, username,
-				room_id, "", Boolean.valueOf(false), null, Integer.valueOf(3),
-				null, null, users_id, "", Long.valueOf(1L),
-				Boolean.valueOf(false), null, null, null, username, 
-				timezoneUtil.getDefaultTimeZone());
-
-		return ((invitation == null) ? null : invitation.getHash());
+		
+		if (authLevelUtil.checkUserLevel(user_level)) {
+			User invitee = userDao.getContact(username, username, username, users_id);
+			Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+							false, "", Valid.OneTime
+							, userDao.get(users_id), "", 1L,
+							null, null, null);
+	
+			return ((invitation == null) ? null : invitation.getHash());
+		} else {
+			return "Need Admin Privileges to perfom the Action";
+		}
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/RoomWebService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/axis/services/RoomWebService.java Thu Sep 12 01:21:26 2013
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.axis.services;
 
 import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 
 import java.util.Calendar;
 import java.util.Date;
@@ -32,19 +33,26 @@ import org.apache.axis2.AxisFault;
 import org.apache.openmeetings.data.basic.AuthLevelUtil;
 import org.apache.openmeetings.data.basic.SessiondataDao;
 import org.apache.openmeetings.data.beans.basic.SearchResult;
+import org.apache.openmeetings.data.calendar.daos.AppointmentCategoryDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
-import org.apache.openmeetings.data.calendar.management.MeetingMemberLogic;
+import org.apache.openmeetings.data.calendar.daos.AppointmentReminderTypDao;
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
 import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.InvitationManager.MessageType;
 import org.apache.openmeetings.data.conference.RoomManager;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.flvrecord.FlvRecordingDao;
 import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.user.dao.AdminUserDao;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
+import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
 import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation.Valid;
 import org.apache.openmeetings.persistence.beans.room.Client;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.persistence.beans.room.RoomType;
+import org.apache.openmeetings.persistence.beans.user.User;
 import org.apache.openmeetings.remote.ConferenceService;
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.session.ISessionManager;
@@ -69,10 +77,18 @@ public class RoomWebService {
 	@Autowired
 	private AppointmentDao appointmentDao;
 	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDao;
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
 	private UserManager userManager;
 	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
 	private RoomManager roomManager;
 	@Autowired
 	private FlvRecordingDao flvRecordingDao;
@@ -87,8 +103,6 @@ public class RoomWebService {
 	@Autowired
 	private ISessionManager sessionManager;
 	@Autowired
-	private MeetingMemberLogic meetingMemberLogic;
-	@Autowired
 	private RoomDao roomDao;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
@@ -1374,7 +1388,7 @@ public class RoomWebService {
 						);
 			}
 		} catch (Exception err) {
-			log.error("[updateRoomWithModerationAndQuestions] ", err);
+			log.error("[updateRoomWithModerationQuestionsAudioTypeAndHideOptions] ", err);
 		}
 		return new Long(-1);
 	}
@@ -1470,7 +1484,7 @@ public class RoomWebService {
 						false, true, false);
 			}
 		} catch (Exception err) {
-			log.error("[addRoomWithModeration] ", err);
+			log.error("[addRoomWithModerationAndExternalType] ", err);
 		}
 		return new Long(-1);
 	}
@@ -1531,7 +1545,7 @@ public class RoomWebService {
 						isAudioOnly, true, false, "", false, true, false);
 			}
 		} catch (Exception err) {
-			log.error("[addRoomWithModeration] ", err);
+			log.error("[addRoomWithModerationExternalTypeAndAudioType] ", err);
 		}
 		return new Long(-1);
 	}
@@ -1600,7 +1614,7 @@ public class RoomWebService {
 				return -26L;
 			}
 		} catch (Exception err) {
-			log.error("[addRoomWithModeration] ", err);
+			log.error("[addRoomWithModerationAndRecordingFlags] ", err);
 		}
 		return new Long(-1);
 	}
@@ -1671,7 +1685,7 @@ public class RoomWebService {
 						allowRecording, hideTopBar);
 			}
 		} catch (Exception err) {
-			log.error("[addRoomWithModeration] ", err);
+			log.error("[addRoomWithModerationExternalTypeAndTopBarOption] ", err);
 		}
 		return new Long(-1);
 	}
@@ -1767,28 +1781,20 @@ public class RoomWebService {
 							+ CalendarPatterns
 									.getDateWithTimeByMiliSeconds(dTo));
 				}
-				Invitations invitation = invitationManager
-						.addInvitationLink(user_level, username, username,
-								username, username, username, room_id, "",
-								isPasswordProtected, invitationpass, valid,
-								dFrom, dTo, users_id, "", 1L, false, dFrom,
-								dTo, null, username, 
-								timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
+				User invitee = userDao.getContact(username, username, username, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), "", 1L,
+								dFrom, dTo, null);
 
 				if (invitation != null) {
-
 					return invitation.getHash();
-
 				} else {
-
 					return "Sys - Error";
-
 				}
-
 			} else {
 				return "Need Admin Privileges to perfom the Action";
 			}
-
 		} catch (Exception err) {
 			log.error("[sendInvitationHash] ", err);
 			throw new AxisFault(err.getMessage());
@@ -1907,24 +1913,21 @@ public class RoomWebService {
 									.getDateWithTimeByMiliSeconds(dTo));
 				}
 
-				Invitations invitation = invitationManager
-						.addInvitationLink(user_level, username, message,
-								baseurl, email, subject, room_id, "",
-								isPasswordProtected, invitationpass, valid,
-								dFrom, dTo, users_id, baseurl, language_id,
-								sendMail, dFrom, dTo, null, username, 
-								timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
+				User invitee = userDao.getContact(email, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), baseurl, language_id,
+								dFrom, dTo, null);
 
 				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
 
 					return invitation.getHash();
-
 				} else {
-
 					return "Sys - Error";
-
 				}
-
 			} else {
 				return "Need Admin Privileges to perfom the Action";
 			}
@@ -2009,28 +2012,24 @@ public class RoomWebService {
 				log.info("validToDate: "
 						+ CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
 
-				Invitations invitation = invitationManager
-						.addInvitationLink(user_level, username, message,
-								baseurl, email, subject, room_id, "",
-								isPasswordProtected, invitationpass, valid,
-								dFrom, dTo, users_id, baseurl, language_id,
-								sendMail, dFrom, dTo, null, username, 
-								timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
+				User invitee = userDao.getContact(email, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), baseurl, language_id,
+								dFrom, dTo, null);
 
 				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
 
 					return invitation.getHash();
-
 				} else {
-
 					return "Sys - Error";
-
 				}
-
 			} else {
 				return "Need Admin Privileges to perfom the Action";
 			}
-
 		} catch (Exception err) {
 			log.error("[sendInvitationHash] ", err);
 			throw new AxisFault(err.getMessage());
@@ -2233,27 +2232,17 @@ public class RoomWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 
 			if (authLevelUtil.checkWebServiceLevel(user_level)) {
+				int validFromHour = Integer.valueOf(validFromTime.substring(0, 2)).intValue();
+				int validFromMinute = Integer.valueOf(validFromTime.substring(3, 5)).intValue();
 
-				Date dFrom = null;
-				Date dTo = null;
-
-				Integer validFromHour = Integer.valueOf(
-						validFromTime.substring(0, 2)).intValue();
-				Integer validFromMinute = Integer.valueOf(
-						validFromTime.substring(3, 5)).intValue();
-
-				Integer validToHour = Integer.valueOf(
-						validToTime.substring(0, 2)).intValue();
-				Integer validToMinute = Integer.valueOf(
-						validToTime.substring(3, 5)).intValue();
+				int validToHour = Integer.valueOf(validToTime.substring(0, 2)).intValue();
+				int validToMinute = Integer.valueOf(validToTime.substring(3, 5)).intValue();
 
 				log.info("validFromHour: " + validFromHour);
 				log.info("validFromMinute: " + validFromMinute);
 
-				Date fromDate = CalendarPatterns
-						.parseDateBySeparator(validFromDate); // dd.MM.yyyy
-				Date toDate = CalendarPatterns
-						.parseDateBySeparator(validToDate); // dd.MM.yyyy
+				Date fromDate = CalendarPatterns.parseDateBySeparator(validFromDate); // dd.MM.yyyy
+				Date toDate = CalendarPatterns.parseDateBySeparator(validToDate); // dd.MM.yyyy
 
 				Calendar calFrom = Calendar.getInstance();
 				calFrom.setTime(fromDate);
@@ -2267,13 +2256,11 @@ public class RoomWebService {
 				calTo.set(calTo.get(Calendar.YEAR), calTo.get(Calendar.MONTH),
 						calTo.get(Calendar.DATE), validToHour, validToMinute, 0);
 
-				dFrom = calFrom.getTime();
-				dTo = calTo.getTime();
+				Date dFrom = calFrom.getTime();
+				Date dTo = calTo.getTime();
 
-				log.info("validFromDate: "
-						+ CalendarPatterns.getDateWithTimeByMiliSeconds(dFrom));
-				log.info("validToDate: "
-						+ CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
+				log.info("validFromDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dFrom));
+				log.info("validToDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
 
 				Long rooms_id = roomManager.addExternalRoom(name,
 						roomtypes_id, comment, numberOfPartizipants, ispublic,
@@ -2288,17 +2275,20 @@ public class RoomWebService {
 					return rooms_id;
 				}
 
-				appointmentDao.addAppointment("appointmentName", users_id,
-						"appointmentLocation", "appointmentDescription", dFrom,
-						dTo, // appointmentstart, appointmentend,
-						false, false, false, false, // isDaily, isWeekly,
-													// isMonthly, isYearly,
-						1L, // categoryId
-						reminderTypeId, // 1=none, 2=simple mail, 3=ICAL
-						roomDao.get(rooms_id), 1L, // language_id
-						isPasswordProtected, // isPasswordProtected
-						password, // password
-						false);
+				Appointment a = new Appointment();
+				a.setTitle("appointmentName");
+				a.setOwner(userDao.get(users_id));
+				a.setLocation("appointmentLocation");
+				a.setDescription("appointmentDescription");
+				a.setStart(dFrom);
+				a.setEnd(dTo);
+				a.setCategory(appointmentCategoryDao.get(1L));
+				a.setRemind(appointmentReminderTypDao.get(reminderTypeId));
+				a.setRoom(roomDao.get(rooms_id));
+				a.setPasswordProtected(isPasswordProtected);
+				a.setPassword(password);
+				a.setLanguageId(1L); //TODO check
+				appointmentDao.update(a, getBaseUrl(), users_id); //FIXME verify !!!
 
 				return rooms_id;
 
@@ -2341,35 +2331,7 @@ public class RoomWebService {
 	public Long addMeetingMemberRemindToRoom(String SID, Long room_id,
 			String firstname, String lastname, String email, String baseUrl,
 			Long language_id) throws AxisFault {
-		try {
-			Long users_id = sessiondataDao.checkSession(SID);
-			Long user_level = userManager.getUserLevelByID(users_id);
-
-			if (authLevelUtil.checkWebServiceLevel(user_level)) {
-
-				Appointment appointment = appointmentDao
-						.getAppointmentByRoom(room_id);
-
-				if (appointment == null) {
-					return -1L;
-				}
-				// Not In Remote List available - extern user
-				Long memberId = meetingMemberLogic.addMeetingMember(firstname,
-						lastname, "0", "0", appointment.getId(),
-						null, email, null, baseUrl, null, new Boolean(false),
-						language_id, false, "", null, "");
-
-				return memberId;
-
-			} else {
-				return -2L;
-			}
-		} catch (Exception err) {
-			log.error("[addRoomWithModeration] ", err);
-
-			throw new AxisFault(err.getMessage());
-		}
-
+		return addExternalMeetingMemberRemindToRoom(SID, room_id, firstname, lastname, email, baseUrl, language_id, null, null);
 	}
 
 	/**
@@ -2409,22 +2371,23 @@ public class RoomWebService {
 			Long user_level = userManager.getUserLevelByID(users_id);
 
 			if (authLevelUtil.checkWebServiceLevel(user_level)) {
+				Appointment a = appointmentLogic.getAppointmentByRoom(room_id);
 
-				Appointment appointment = appointmentDao
-						.getAppointmentByRoom(room_id);
-
-				if (appointment == null) {
+				if (email == null || a == null) {
 					return -1L;
 				}
+				for (MeetingMember mm : a.getMeetingMembers()) {
+					if (email.equals(mm.getUser().getAdresses().getEmail())) {
+						return mm.getId();
+					}
+				}
+				MeetingMember mm = new MeetingMember();
+				mm.setAppointment(a);
+				mm.setUser(userDao.getContact(email, firstname, lastname, language_id, jNameTimeZone, users_id));
+				a.getMeetingMembers().add(mm);
+				appointmentDao.update(a, baseUrl, users_id);
 
-				// Not In Remote List available - extern user
-				Long memberId = meetingMemberLogic.addMeetingMember(firstname,
-						lastname, "0", "0", appointment.getId(),
-						null, email, "", baseUrl, null, new Boolean(false),
-						language_id, false, "", null, invitorName);
-
-				return memberId;
-
+				return mm.getId(); //FIXME check to return ID
 			} else {
 				return -2L;
 			}
@@ -2433,7 +2396,6 @@ public class RoomWebService {
 
 			throw new AxisFault(err.getMessage());
 		}
-
 	}
 
 	/**

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java Thu Sep 12 01:21:26 2013
@@ -35,7 +35,7 @@ public class AppointmentCategoryConverte
 	}
 	
 	public AppointmentCategory read(InputNode node) throws Exception {
-		return appointmentCategoryDaoImpl.getAppointmentCategoryById(getlongValue(node));
+		return appointmentCategoryDaoImpl.get(getlongValue(node));
 	}
 
 	public void write(OutputNode node, AppointmentCategory value)

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java Thu Sep 12 01:21:26 2013
@@ -35,7 +35,7 @@ public class AppointmentReminderTypeConv
 	}
 	
 	public AppointmentReminderTyps read(InputNode node) throws Exception {
-		return appointmentReminderTypDaoImpl.getAppointmentReminderTypById(getlongValue(node));
+		return appointmentReminderTypDaoImpl.get(getlongValue(node));
 	}
 
 	public void write(OutputNode node, AppointmentReminderTyps value) throws Exception {

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentCategoryDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentCategoryDao.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentCategoryDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/calendar/daos/AppointmentCategoryDao.java Thu Sep 12 01:21:26 2013
@@ -44,7 +44,7 @@ public class AppointmentCategoryDao {
 	@Autowired
 	private UserDao usersDao;
 
-	public AppointmentCategory getAppointmentCategoryById(Long categoryId) {
+	public AppointmentCategory get(Long categoryId) {
 		try {
 			log.debug("getAppointmentCategoryById: " + categoryId);
 
@@ -73,7 +73,7 @@ public class AppointmentCategoryDao {
 		try {
 
 			AppointmentCategory ac = this
-					.getAppointmentCategoryById(categoryId);
+					.get(categoryId);
 
 			ac.setName(name);
 			ac.setUpdatetime(new Date());
@@ -118,7 +118,7 @@ public class AppointmentCategoryDao {
 		try {
 
 			AppointmentCategory ac = this
-					.getAppointmentCategoryById(categoryId);
+					.get(categoryId);
 
 			log.debug("ac: " + ac);