Author: solomax
Date: Sun Apr 17 11:27:20 2016
New Revision: 1739582

URL: http://svn.apache.org/viewvc?rev=1739582&view=rev
Log:
[OPENMEETINGS-896] additional checks and dialogs are added

Added:
    
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/
      - copied from r1739576, 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
    
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/
      - copied from r1739323, 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
Removed:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/
Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/interviewuserlist/interviewUserList.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/participants/participants.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/restricted/restrictedUserList.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/invitationQuickLoader.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
    openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml
    
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
    
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
    
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
    
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
    openmeetings/application/trunk/openmeetings-util/pom.xml
    
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
    
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 Sun Apr 17 11:27:20 2016
@@ -290,23 +290,6 @@ public class ConferenceService {
         * return all participants of a room
         * 
         * @param roomId
-        * @return - true if room is full, false otherwise
-        */
-       public boolean isRoomFull(Long roomId) {
-               try {
-                       Room room = roomDao.get(roomId);
-                       
-                       return room.getNumberOfPartizipants() <= 
sessionManager.getClientListByRoom(roomId).size();
-               } catch (Exception err) {
-                       log.error("[isRoomFull]", err);
-               }
-               return true;
-       }
-
-       /**
-        * return all participants of a room
-        * 
-        * @param roomId
         * @return - all participants of a room
         */
        public List<Client> getRoomClientsListByRoomId(Long roomId) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 Sun Apr 17 11:27:20 2016
@@ -1163,10 +1163,6 @@ public class ScopeApplicationAdapter ext
                        // Return Object
                        RoomStatus roomStatus = new RoomStatus();
                        // appointed meeting or moderated Room? => Check Max 
Users first
-                       if (clientListRoom.size() > 
room.getNumberOfPartizipants()) {
-                               roomStatus.setRoomFull(true);
-                               return roomStatus;
-                       }
 
                        // default logic for non regular rooms
                        if (!room.isAppointment()) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 Sun Apr 17 11:27:20 2016
@@ -242,7 +242,6 @@ public class RoomDao implements IDataPro
                        room.setComment("My Rooms of ownerId " + ownerId);
                        room.setNumberOfPartizipants(Room.Type.conference == 
type ? 25L : 150L);
                        room.setAllowUserQuestions(true);
-                       room.setAllowFontStyles(true);
                        room.setOwnerId(ownerId);
                        room.setAllowRecording(true);
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
 Sun Apr 17 11:27:20 2016
@@ -23,10 +23,8 @@ import java.util.List;
 import org.apache.openmeetings.db.entity.room.Client;
 
 public class RoomStatus {
-       
        List<Client> clientList;
        BrowserStatus browserStatus;
-       boolean roomFull = false;
        
        public RoomStatus() {}
        
@@ -42,11 +40,4 @@ public class RoomStatus {
        public void setBrowserStatus(BrowserStatus browserStatus) {
                this.browserStatus = browserStatus;
        }
-       public boolean getRoomFull() {
-               return roomFull;
-       }
-       public void setRoomFull(boolean roomFull) {
-               this.roomFull = roomFull;
-       }
-       
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 Sun Apr 17 11:27:20 2016
@@ -202,10 +202,6 @@ public class Room implements IDataProvid
        @Element(name = "isAudioOnly", data = true, required = false)
        private boolean audioOnly;
        
-       @Column(name = "allow_font_styles", nullable = false)
-       @Element(data = true, required = false)
-       private boolean allowFontStyles = false;
-
        @Column(name = "is_closed")
        @Element(data = true, required = false)
        private boolean closed;
@@ -450,14 +446,6 @@ public class Room implements IDataProvid
                this.audioOnly = audioOnly;
        }
 
-       public boolean getAllowFontStyles() {
-               return allowFontStyles;
-       }
-
-       public void setAllowFontStyles(boolean allowFontStyles) {
-               this.allowFontStyles = allowFontStyles;
-       }
-
        public boolean isClosed() {
                return closed;
        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 Sun Apr 17 11:27:20 2016
@@ -92,7 +92,6 @@
        <attribute name="modus" value="" type="string" />
        
        <attribute name="showKickMessage" value="false" type="boolean"/>
-       <attribute name="showFullMessage" value="false" type="boolean"/>
                 
        <attribute name="useRTMPT" value="false" type="boolean" />
        <attribute name="connected" value="false" type="boolean" />
@@ -213,22 +212,8 @@
        <handler name="onerror" >
        <![CDATA[
                canvas.remoteLogWrite("error status='" + this.status + "'; 
src='" + this.src + "'; lastCalled='" + this.lastCalled
-                       + "'; showKickMessage='" + this.showKickMessage + "'; 
showFullMessage='" + this.showFullMessage
-                       + "'; reconnectionAction='" + this.reconnectionAction + 
"'");
-               if (this.showFullMessage) {
-                       new lz.labelerrorPopup(canvas,
-                               {
-                                       errorlabelid: 99
-                                       , closeFunc: function() {
-                                          if (this.makeModal) {
-                                                  lz.ModeManager.releaseAll();
-                                          }
-                                          if ($debug) Debug.write("Error 
dialog is being closed, calling QUIT");
-                                       }
-                               });
-                       this.showFullMessage = false;
-                       return;
-               } else if (this.showKickMessage) {
+                       + "'; showKickMessage='" + this.showKickMessage + "'; 
reconnectionAction='" + this.reconnectionAction + "'");
+               if (this.showKickMessage) {
                        new lz.labelerrorPopup(canvas,{
                                errorlabelid:606
                                , closeFunc: function() {
@@ -1330,8 +1315,6 @@
                                canvas._drawarea.startStreaming(value);
                        } else if (value.message=='stopStreaming'){
                                canvas._drawarea.stopStreaming(value);
-                       } else if (value.message=='roomClosed'){
-                               canvas.roomClosed();
                        } else {
                                if ($debug) Debug.warn("Unknown Event 
-newMessageByRoomAndDomain- ",value);
                        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
 Sun Apr 17 11:27:20 2016
@@ -273,13 +273,6 @@
                }
        </method>
 
-       <method name="roomClosed">
-               <![CDATA[
-                       if ($debug) Debug.write("canvas.currentRoomObj 
",canvas.currentRoomObj);
-                       new 
lz.redirectBox(canvas,{redirectURL:canvas.currentRoomObj.redirectURL});
-               ]]>
-       </method>
-
        <method name="parseLanugageObject" args="obj">
        
                ////Debug.write('parseLanugageObject: ',obj);

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
 Sun Apr 17 11:27:20 2016
@@ -69,14 +69,6 @@
                var r = this.roomobj;
                r.currentusers = ''; //this might be huge list
                
-               if (this.roomobj.closed) {
-                       canvas.roomClosed();
-               }
-               
-               if (this.roomobj.waitForRecording) {
-                       new lz.labelerrorPopup(canvas, {labelid: 1316, 
errorlabelid: 1315});
-               }
-               
                canvas.currentBaseConferenceRoom = this;
                
                if ($debug) Debug.write("this.roomobj ",this.roomobj);

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/interviewuserlist/interviewUserList.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/interviewuserlist/interviewUserList.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/interviewuserlist/interviewUserList.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/interviewuserlist/interviewUserList.lzx
 Sun Apr 17 11:27:20 2016
@@ -122,11 +122,6 @@
             //if ($debug) Debug.write("setRoomValues1: ",value);
             //if ($debug) Debug.write("setRoomValues2: ",hib.currentroomid);
             
-            if (roomStatus.roomFull) {
-                canvas.thishib.showFullMessage = true;
-                canvas.thishib.disconnect();
-            }
-            
             if (roomStatus.browserStatus.browserInited) {
                 var tObj = new Object();
                 tObj[0] = "newBrowserURL";

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/participants/participants.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/participants/participants.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/participants/participants.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/participants/participants.lzx
 Sun Apr 17 11:27:20 2016
@@ -136,11 +136,6 @@
             if ($debug) Debug.write("+++++++++++++++++");
             if ($debug) Debug.write("+++++++++++++++++ setRoomValues1: 
",roomStatus);
             
-            if (roomStatus.roomFull) {
-                canvas.thishib.showFullMessage = true;
-                canvas.thishib.disconnect();
-            }
-            
             if (roomStatus.browserStatus.browserInited) {
                 var tObj = new Object();
                 tObj[0] = "newBrowserURL";

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/restricted/restrictedUserList.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/restricted/restrictedUserList.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/restricted/restrictedUserList.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/restricted/restrictedUserList.lzx
 Sun Apr 17 11:27:20 2016
@@ -138,11 +138,6 @@
             
             //if ($debug) Debug.write("+++++++++++++++++ getClientListScope : 
",value);
             
-            if (roomStatus.roomFull) {
-                canvas.thishib.showFullMessage = true;
-                canvas.thishib.disconnect();
-            }
-            
             if (roomStatus.browserStatus.browserInited) {
                 var tObj = new Object();
                 tObj[0] = "newBrowserURL";

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/invitationQuickLoader.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/invitationQuickLoader.lzx?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/invitationQuickLoader.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/invitationQuickLoader.lzx
 Sun Apr 17 11:27:20 2016
@@ -43,7 +43,6 @@
                        if ($debug) Debug.write("invitationQuickLoader:oninit 
userlang = [",userlang,"]; canvas.lang = [",canvas.language_id,"]");
                        this.setRoomValues();
                        if (canvas.language_id > 0) {
-                               this.isRoomFull.doCall();
                        } else {
                                this.pass_label.setAttribute('visible', false);
                                this._password.setAttribute('visible', false);
@@ -58,24 +57,6 @@
                        this.checkInvitationPass.doCall();
                </method>
                
-               <netRemoteCallHib name="isRoomFull" 
funcname="conferenceservice.isRoomFull" remotecontext="$once{ canvas.thishib }" 
activeErrorHandler="true" >         
-               <netparam name="roomId"><method name="getValue">return 
canvas.thishib.currentInvitation.room.id;</method></netparam>
-               <handler name="ondata" args="value">
-                       <![CDATA[
-                       //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) 
Debug.write(canvas.thishib.currentInvitation.room.id);
-                                       if ($debug) Debug.write("isRoomFull: 
",value);
-                                       
-                                       if (value) {
-                                               new 
lz.labelerrorPopup(canvas,{errorlabelid:618});
-                                               parent.close();
-                                       } else {
-                                               parent.login();
-                                       }
-               ]]>
-               </handler>   
-       </netRemoteCallHib> 
-               
                <netRemoteCallHib name="checkInvitationPass" 
funcname="invitationservice.checkInvitationPass" remotecontext="$once{ 
canvas.thishib }" activeErrorHandler="true" >
                        <netparam name="invitationHash"><method 
name="getValue">return canvas.invitationHash;</method></netparam>
                        <netparam name="pass"><method name="getValue">return 
parent.parent._password.getText();</method></netparam>
@@ -171,10 +152,5 @@
 
                <!-- label: loading --> 
                <labelText name="labelloading" y="30" x="10" fontstyle="bold" 
labelid="229" visibility="hidden" />
-               
-               <!-- label: enter -->
-               <simpleLabelButton name="connect" y="80" x="120" text="start" 
-                                                  visibility="hidden" 
labelid="228" width="170" height="20" 
-                                                  
onclick="parent.isRoomFull.doCall();" />
        </class>
 </library>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 Sun Apr 17 11:27:20 2016
@@ -358,7 +358,6 @@ public class ImportInitvalues {
                r.setIspublic(isPublic);
                r.setAllowUserQuestions(true);
                r.setAudioOnly(false);
-               r.setAllowFontStyles(true);
 
                r.setAppointment(false);
 

Modified: openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-util/pom.xml Sun Apr 
17 11:27:20 2016
@@ -72,6 +72,11 @@
                        <version>${wicket.version}</version>
                </dependency>
                <dependency>
+                       <groupId>org.apache.wicket</groupId>
+                       <artifactId>wicket-native-websocket-core</artifactId>
+                       <version>${wicket.version}</version>
+               </dependency>
+               <dependency>
                        <groupId>org.threeten</groupId>
                        <artifactId>threetenbp</artifactId>
                        <version>1.3.1</version>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java?rev=1739582&r1=1739576&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
 Sun Apr 17 11:27:20 2016
@@ -16,13 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.message;
+package org.apache.openmeetings.util.message;
 
 import java.io.Serializable;
 import java.util.Date;
 import java.util.UUID;
 
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage;
 
 public class RoomMessage implements IWebSocketPushMessage, Serializable {
@@ -30,6 +29,7 @@ public class RoomMessage implements IWeb
        public enum Type {
                roomEnter
                , roomExit
+               , roomClosed
                , pollCreated
                , rightUpdated
                , activityRemove
@@ -41,10 +41,6 @@ public class RoomMessage implements IWeb
        private final Long userId;
        private final Type type;
 
-       public RoomMessage(Long roomId, Type type) {
-               this(roomId, WebSession.getUserId(), type);
-       }
-       
        public RoomMessage(Long roomId, Long userId, Type type) {
                this.timestamp = new Date();
                this.roomId = roomId;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java?rev=1739582&r1=1739576&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
 Sun Apr 17 11:27:20 2016
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.message;
+package org.apache.openmeetings.util.message;
 
 public class TextRoomMessage extends RoomMessage {
        private static final long serialVersionUID = 1L;
        private final String text;
 
-       public TextRoomMessage(Long roomId, Type type, String text) {
-               super(roomId, type);
+       public TextRoomMessage(Long roomId, Long userId, Type type, String 
text) {
+               super(roomId, userId, type);
                this.text = text;
        }
        

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 Sun Apr 17 11:27:20 2016
@@ -156,7 +156,7 @@ public class ConnectionsPanel extends Ad
                                User u = 
getBean(UserService.class).getUserById(getSid(), c.getUserId());
                                item.add(new Label("login", u == null ? null : 
u.getLogin()));
                                item.add(new Label("since", 
c.getConnectedSince()));
-                               item.add(new Label("scope", "html5"));
+                               item.add(new Label("scope", c.getRoomId() == 
null ? "html5" : "" + c.getRoomId()));
                                item.add(new ConfirmableAjaxBorder("kick", 
getString("603"), getString("605")) {
                                        private static final long 
serialVersionUID = 1L;
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 Sun Apr 17 11:27:20 2016
@@ -161,11 +161,11 @@ public class RoomForm extends AdminBaseF
                add(demoTime);
                add(new CheckBox("allowUserQuestions"));
                add(new CheckBox("audioOnly"));
-               add(new CheckBox("allowFontStyles"));
                add(new CheckBox("closed"));
                add(new TextField<String>("redirectURL"));
                add(new CheckBox("waitForRecording"));
                add(new CheckBox("allowRecording"));
+               add(new CheckBox("chatModerated"));
 
                add(new CheckBox("hideTopBar"));
                add(new CheckBox("chatHidden"));
@@ -175,7 +175,6 @@ public class RoomForm extends AdminBaseF
                add(new CheckBox("hideScreenSharing"));
                add(new CheckBox("hideWhiteboard"));
                add(new CheckBox("showMicrophoneStatus"));
-               add(new CheckBox("chatModerated"));
                add(new CheckBox("chatOpened"));
                add(new CheckBox("filesOpened"));
                add(new CheckBox("autoVideoSelect"));   

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 Sun Apr 17 11:27:20 2016
@@ -96,16 +96,12 @@
                                                <fieldset 
class="ui-widget-content">
                                                        <legend 
class="ui-widget-header"><wicket:message key="881" /></legend>
                                                        <div 
class="formelement">
+                                                               <div 
class="info-text"><wicket:message key="880" /></div>
                                                                
<label><wicket:message key="879" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="allowUserQuestions" />
                                                        </div>
                                                        <div 
class="formelement">
-                                                               <wicket:message 
key="880" />
-                                                               <br/>
-                                                               
<label><wicket:message key="1076" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="audioOnly" />
-                                                       </div>
-                                                       <div 
class="formelement">
                                                                <div 
class="info-text"><wicket:message key="1077" /></div>
-                                                               
<label><wicket:message key="1531" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="allowFontStyles" />
+                                                               
<label><wicket:message key="1076" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="audioOnly" />
                                                        </div>
                                                        <div 
class="formelement">
                                                                <div 
class="info-text"><wicket:message key="1101" /></div>
@@ -122,6 +118,9 @@
                                                        <div 
class="formelement">
                                                                
<label><wicket:message key="1355" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="allowRecording" />
                                                        </div>
+                                                       <div 
class="formelement">
+                                                               
<label><wicket:message key="1513" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="chatModerated" />
+                                                       </div>
                                                </fieldset>
                                                
                                                <!-- Room Layout options -->
@@ -152,9 +151,6 @@
                                                                
<label><wicket:message key="1442" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="showMicrophoneStatus" />
                                                        </div>
                                                        <div 
class="formelement">
-                                                               
<label><wicket:message key="1513" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="chatModerated" />
-                                                       </div>
-                                                       <div 
class="formelement">
                                                                
<label><wicket:message key="1515" /></label><input type="checkbox" 
class="formcheckbox" wicket:id="chatOpened" />
                                                        </div>
                                                        <div 
class="formelement">

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
 Sun Apr 17 11:27:20 2016
@@ -33,32 +33,21 @@ public class KickMessageDialog extends A
 
        public KickMessageDialog(String id) {
                super(id, "");
-               add(new Label("message", Application.getString(606)));
        }
 
        @Override
        protected void onInitialize() {
                super.onInitialize();
-               add(new JQueryBehavior(JQueryWidget.getSelector(this), 
"dialog") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-            protected String $()  {
-                return this.$(Options.asString("open"));
-            }
-        });
+               add(new Label("message", getString("606")));
        };
        
        @Override
        public void onConfigure(JQueryBehavior behavior) {
                super.onConfigure(behavior);
+               behavior.setOption("autoOpen", true);
                behavior.setOption("closeOnEscape", false);
-        behavior.setOption("dialogClass", Options.asString("no-close"));
-        behavior.setOption("resizable", false);
-       }
-
-       public String getOnClickJavaScript() {
-               return "$('#" + getButtons().get(0).getMarkupId() 
+"').click(function(e){$('#" + getMarkupId() +"').close(); })";
+               behavior.setOption("dialogClass", Options.asString("no-close"));
+               behavior.setOption("resizable", false);
        }
 
        @Override

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
 Sun Apr 17 11:27:20 2016
@@ -58,7 +58,7 @@ public class ResetPasswordDialog extends
        public ResetPasswordDialog(String id, final User user) {
                super(id, Application.getString(325));
                this.user = user;
-               add(form = new Form<String>("form"){
+               add(form = new Form<String>("form") {
                        private static final long serialVersionUID = 1L;
                        private TextField<String> login;
                        private PasswordTextField confirmPassword;
@@ -76,14 +76,14 @@ public class ResetPasswordDialog extends
                                
confirmPassword.setLabel(Model.of(Application.getString(329)));
                                
confirmPassword.setRequired(true).add(minimumLength(getMinPasswdLength(cfgDao)));
 
-                               add(new AjaxButton("submit") { //FAKE button so 
"submit-on-enter" works as expected
+                               add(new AjaxButton("submit") { // FAKE button 
so "submit-on-enter" works as expected
                                        private static final long 
serialVersionUID = 1L;
 
                                        @Override
                                        protected void 
onSubmit(AjaxRequestTarget target, Form<?> form) {
                                                
ResetPasswordDialog.this.onSubmit(target);
                                        }
-                                       
+
                                        @Override
                                        protected void 
onError(AjaxRequestTarget target, Form<?> form) {
                                                
ResetPasswordDialog.this.onError(target);
@@ -99,18 +99,19 @@ public class ResetPasswordDialog extends
                                }
                                super.onValidate();
                        }
-                       
+
                });
-               confirmReset = new MessageDialog("confirmReset", 
Application.getString(325), Application.getString(332), DialogButtons.OK, 
DialogIcon.INFO){
+               confirmReset = new MessageDialog("confirmReset", 
Application.getString(325), Application.getString(332), 
+                               DialogButtons.OK, DialogIcon.INFO) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
                        public void onConfigure(JQueryBehavior behavior) {
                                super.onConfigure(behavior);
-                       behavior.setOption("dialogClass", 
Options.asString("no-close"));
+                               behavior.setOption("dialogClass", 
Options.asString("no-close"));
                                behavior.setOption("closeOnEscape", false);
                        }
-                       
+
                        @Override
                        public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
                                
setResponsePage(Application.get().getSignInPageClass());
@@ -118,11 +119,12 @@ public class ResetPasswordDialog extends
                };
                add(confirmReset);
        }
-       
+
        @Override
        public void onConfigure(JQueryBehavior behavior) {
                super.onConfigure(behavior);
-        behavior.setOption("dialogClass", Options.asString("no-close"));
+               behavior.setOption("autoOpen", true);
+               behavior.setOption("dialogClass", Options.asString("no-close"));
                behavior.setOption("closeOnEscape", false);
        }
 
@@ -130,7 +132,7 @@ public class ResetPasswordDialog extends
        protected List<DialogButton> getButtons() {
                return Arrays.asList(resetBtn);
        }
-       
+
        @Override
        public DialogButton getSubmitButton() {
                return resetBtn;
@@ -154,26 +156,13 @@ public class ResetPasswordDialog extends
                        error(e.getMessage());
                }
        }
-       
+
        @Override
        public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
-               if (resetBtn.equals(button)){
+               if (resetBtn.equals(button)) {
                        confirmReset.open(handler);
                } else {
                        setResponsePage(Application.get().getSignInPageClass());
                }
        }
-       
-       @Override
-       protected void onInitialize() {
-               super.onInitialize();
-               add(new JQueryBehavior(JQueryWidget.getSelector(this), 
"dialog") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected String $() {
-                               return this.$(Options.asString("open"));
-                       }
-               });
-       }
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
 Sun Apr 17 11:27:20 2016
@@ -62,7 +62,6 @@ import org.apache.wicket.ajax.AjaxReques
 import org.apache.wicket.ajax.json.JSONException;
 import org.apache.wicket.ajax.json.JSONObject;
 import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.flow.RedirectToUrlException;
@@ -150,7 +149,6 @@ public class SignInPage extends BaseInit
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
-               
response.render(OnDomReadyHeaderItem.forScript(m.getOnClickJavaScript()));
        }
        
        @Override

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java?rev=1739582&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
 Sun Apr 17 11:27:20 2016
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class ExpiredMessageDialog extends MessageDialog {
+       private static final long serialVersionUID = 1L;
+       private final RoomMenuPanel menu;
+
+       public ExpiredMessageDialog(String id, String message, RoomMenuPanel 
menu) {
+               super(id, Application.getString(204), message, 
DialogButtons.OK, DialogIcon.ERROR);
+               this.menu = menu;
+       }
+
+       @Override
+       public boolean isModal() {
+               return true;
+       }
+
+       @Override
+       public void onConfigure(JQueryBehavior behavior) {
+               super.onConfigure(behavior);
+               behavior.setOption("autoOpen", true);
+       }
+
+       @Override
+       public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
+               menu.exit(handler);
+       }
+}

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java?rev=1739582&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
 Sun Apr 17 11:27:20 2016
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.util.time.Duration;
+
+public abstract class OmRedirectTimerBehavior extends 
AbstractAjaxTimerBehavior {
+       private static final long serialVersionUID = 1L;
+       private final long clock;
+       private final int delay;
+       private final String labelId;
+
+       public OmRedirectTimerBehavior(int delay, String labelId) {
+               super(Duration.ONE_SECOND);
+               clock = System.currentTimeMillis();
+               this.delay = delay;
+               this.labelId = labelId;
+       }
+       
+       protected static String getTime(int remain) {
+               return 
Duration.seconds(remain).toString(WebSession.get().getLocale());
+       }
+       
+       public static String getText(String text, int remain) {
+               return String.format("%s: %s", text, getTime(remain));
+       }
+       
+       protected String getText(int remain) {
+               return getText(getComponent().getString(labelId), remain);
+       }
+       
+       private int remain(long now) {
+               return (int)(delay - (now - clock) / 1000);
+       }
+
+       @Override
+       protected void onBind() {
+               super.onBind();
+               getComponent().setDefaultModelObject(getText(delay));
+               getComponent().setOutputMarkupId(true);
+               onTimer(delay);
+       }
+
+       protected void onTimer(int remain) {
+       }
+       
+       @Override
+       protected void onTimer(AjaxRequestTarget target) {
+               int remain = remain(System.currentTimeMillis());
+               if (remain > -1) {
+                       getComponent().setDefaultModelObject(getText(remain));
+                       onTimer(remain);
+                       target.add(getComponent());
+               } else {
+                       stop(target);
+                       onFinish(target);
+               }
+       }
+       
+       protected abstract void onFinish(AjaxRequestTarget target);
+}

Added: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java?rev=1739582&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
 (added)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
 Sun Apr 17 11:27:20 2016
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import java.util.ArrayList;
+
+import org.apache.directory.api.util.Strings;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.request.flow.RedirectToUrlException;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class RedirectMessageDialog extends MessageDialog {
+       private static final long serialVersionUID = 1L;
+       private final String labelId;
+       private final String url;
+       private final int delay = 5;
+       private final boolean autoOpen;
+       private Component label; 
+       
+       public RedirectMessageDialog(String id, String labelId, boolean 
autoOpen, String url) {
+               super(id, Application.getString(204), "", new 
ArrayList<DialogButton>(), DialogIcon.ERROR);
+               this.labelId = labelId;
+               this.url = url;
+               this.autoOpen = autoOpen;
+       }
+       
+       @Override
+       protected void onInitialize() {
+               super.onInitialize();
+               if (autoOpen) {
+                       startTimer(null);
+               }
+       }
+
+       private void startTimer(IPartialPageRequestHandler handler) {
+               label.add(new OmRedirectTimerBehavior(delay, labelId) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onFinish(AjaxRequestTarget target) {
+                               if (Strings.isEmpty(url)) {
+                                       throw new 
RestartResponseException(Application.get().getHomePage());
+                               } else {
+                                       throw new RedirectToUrlException(url);
+                               }
+                       }
+               });
+               if (handler != null) {
+                       handler.add(label);
+               }
+       }
+       
+       @Override
+       protected void onOpen(IPartialPageRequestHandler handler) {
+               super.onOpen(handler);
+               startTimer(handler);
+       }
+       
+       @Override
+       public void onConfigure(JQueryBehavior behavior) {
+               super.onConfigure(behavior);
+               behavior.setOption("autoOpen", autoOpen);
+               behavior.setOption("closeOnEscape", false);
+               behavior.setOption("dialogClass", Options.asString("no-close"));
+               behavior.setOption("resizable", false);
+       }
+       
+       @Override
+       public boolean isModal() {
+               return true;
+       }
+       
+       @Override
+       public boolean isDefaultCloseEventEnabled() {
+               return false;
+       }
+       
+       @Override
+       public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
+       }
+       
+       @Override
+       protected Component newLabel(String id, IModel<String> model) {
+               label = super.newLabel(id, model);
+               return label;
+       }
+}

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 Sun Apr 17 11:27:20 2016
@@ -28,13 +28,15 @@
 </wicket:head>
 <wicket:panel>
        <div wicket:id="roomContainer" style="height: 100%">
-               <div class="room menu" wicket:id="roomMenu"></div>
+               <div class="room menu" wicket:id="menu"></div>
                <div class="room sidebar left" wicket:id="sidebar"></div>
                <div class="room wb area">
                        <div class="wb" wicket:id="whiteboard"></div>
                </div>
-               <div wicket:id="activitiesPanel"></div>
+               <div wicket:id="activities"></div>
        </div>
-       <div wicket:id="accessDenied"></div>
+       <div wicket:id="access-denied"></div>
+       <div wicket:id="room-closed"></div>
+       <div wicket:id="wait-for-recording"></div>
 </wicket:panel>
 </html>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Sun Apr 17 11:27:20 2016
@@ -38,14 +38,14 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
 import org.apache.openmeetings.web.room.activities.Activity;
 import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
 import org.apache.openmeetings.web.room.sidebar.RoomSidebar;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -79,6 +79,7 @@ import com.googlecode.wicket.jquery.ui.w
 public class RoomPanel extends BasePanel {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
+       private static final String ACCESS_DENIED_ID = "access-denied";
        private final Room r;
        private final WebMarkupContainer room = new 
WebMarkupContainer("roomContainer");
        private final AbstractDefaultAjaxBehavior aab = new 
AbstractDefaultAjaxBehavior() {
@@ -93,13 +94,14 @@ public class RoomPanel extends BasePanel
                                URL url = new URL(cfgDao.getBaseUrl());
                                String path = url.getPath();
                                path = path.substring(1, path.indexOf('/', 2) + 
1);
-                               broadcast(new RoomMessage(r.getId(), 
RoomMessage.Type.roomEnter));
+                               broadcast(new RoomMessage(r.getId(), 
getUserId(), RoomMessage.Type.roomEnter));
                                getMainPage().getChat().roomEnter(r, target);
                        } catch (MalformedURLException e) {
                                log.error("Error while constructing room 
parameters", e);
                        }
                }
        };
+       private RedirectMessageDialog roomClosed;
        private RoomMenuPanel menu;
        private RoomSidebar sidebar;
        private ActivitiesPanel activities;
@@ -113,64 +115,90 @@ public class RoomPanel extends BasePanel
        protected void onInitialize() {
                getClient().setRoomId(r.getId());
                super.onInitialize();
-               Component accessDenied = new 
WebMarkupContainer("accessDenied").setVisible(false);
-               boolean allowed = false;
-               String deniedMessage = null;
-               if (r.isAppointment()) {
-                       Appointment a = 
getBean(AppointmentDao.class).getByRoom(r.getId());
-                       if (a != null && !a.isDeleted()) {
-                               allowed = 
a.getOwner().getId().equals(getUserId());
-                               log.debug("appointed room, isOwner ? " + 
allowed);
+               Component accessDenied = new 
WebMarkupContainer(ACCESS_DENIED_ID).setVisible(false);
+               add(roomClosed = new RedirectMessageDialog("room-closed", 
"1098", r.isClosed(), r.getRedirectURL()));
+               if (r.isClosed()) {
+                       room.setVisible(false);
+               } else if (r.getNumberOfPartizipants() >= 
getRoomUsers(r.getId()).size()) {
+                       accessDenied = new 
ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
+                       room.setVisible(false);
+               } else {
+                       boolean allowed = false;
+                       String deniedMessage = null;
+                       if (r.isAppointment()) {
+                               Appointment a = 
getBean(AppointmentDao.class).getByRoom(r.getId());
+                               if (a != null && !a.isDeleted()) {
+                                       allowed = 
a.getOwner().getId().equals(getUserId());
+                                       log.debug("appointed room, isOwner ? " 
+ allowed);
+                                       if (!allowed) {
+                                               for (MeetingMember mm : 
a.getMeetingMembers()) {
+                                                       if 
(mm.getUser().getId() == getUserId()) {
+                                                               allowed = true;
+                                                               break;
+                                                       }
+                                               }
+                                       }
+                                       /*
+                                       TODO need to be reviewed
+                                       Calendar c = WebSession.getCalendar();
+                                       if (c.getTime().after(a.getStart()) && 
c.getTime().before(a.getEnd())) {
+                                               allowed = true;
+                                       } else {
+                                               SimpleDateFormat sdf = new 
SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
+                                               deniedMessage = 
getString("1271") + String.format(" %s - %s", sdf.format(a.getStart()), 
sdf.format(a.getEnd()));
+                                       }
+                                       */
+                               }
+                       } else {
+                               allowed = r.getIspublic() || (r.getOwnerId() != 
null && r.getOwnerId().equals(getUserId()));
+                               log.debug("public ? " + r.getIspublic() + ", 
ownedId ? " + r.getOwnerId() + " " + allowed);
                                if (!allowed) {
-                                       for (MeetingMember mm : 
a.getMeetingMembers()) {
-                                               if (mm.getUser().getId() == 
getUserId()) {
-                                                       allowed = true;
+                                       User u = 
getBean(UserDao.class).get(getUserId());
+                                       for (RoomGroup ro : r.getRoomGroups()) {
+                                               for (GroupUser ou : 
u.getGroupUsers()) {
+                                                       if 
(ro.getGroup().getId().equals(ou.getGroup().getId())) {
+                                                               allowed = true;
+                                                               break;
+                                                       }
+                                               }
+                                               if (allowed) {
                                                        break;
                                                }
                                        }
                                }
-                               /*
-                               TODO need to be reviewed
-                               Calendar c = WebSession.getCalendar();
-                               if (c.getTime().after(a.getStart()) && 
c.getTime().before(a.getEnd())) {
-                                       allowed = true;
-                               } else {
-                                       SimpleDateFormat sdf = new 
SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
-                                       deniedMessage = getString("1271") + 
String.format(" %s - %s", sdf.format(a.getStart()), sdf.format(a.getEnd()));
-                               }
-                               */
                        }
-               } else {
-                       allowed = r.getIspublic() || (r.getOwnerId() != null && 
r.getOwnerId().equals(getUserId()));
-                       log.debug("public ? " + r.getIspublic() + ", ownedId ? 
" + r.getOwnerId() + " " + allowed);
                        if (!allowed) {
-                               User u = 
getBean(UserDao.class).get(getUserId());
-                               for (RoomGroup ro : r.getRoomGroups()) {
-                                       for (GroupUser ou : u.getGroupUsers()) {
-                                               if 
(ro.getGroup().getId().equals(ou.getGroup().getId())) {
-                                                       allowed = true;
-                                                       break;
-                                               }
-                                       }
-                                       if (allowed) {
-                                               break;
-                                       }
+                               if (deniedMessage == null) {
+                                       deniedMessage = getString("1599");
                                }
+                               accessDenied = new 
ExpiredMessageDialog(ACCESS_DENIED_ID, deniedMessage, menu);
+                               room.setVisible(false);
                        }
                }
-               if (!allowed) {
-                       if (deniedMessage == null) {
-                               deniedMessage = getString("1599");
-                       }
-                       accessDenied = new ExpiredMessageDialog("accessDenied", 
deniedMessage);
-                       room.setVisible(false);
-               }
-               room.add((menu = new RoomMenuPanel("roomMenu", 
this)).setVisible(!r.getHideTopBar()));
+               room.add((menu = new RoomMenuPanel("menu", 
this)).setVisible(!r.getHideTopBar()));
                room.add(new SwfPanel("whiteboard", getClient()));
                room.add(aab);
                room.add(sidebar = new RoomSidebar("sidebar", this));
-               room.add((activities = new ActivitiesPanel("activitiesPanel", 
this)).setVisible(!r.isActivitiesHidden()));
+               room.add((activities = new ActivitiesPanel("activities", 
this)).setVisible(!r.isActivitiesHidden()));
                add(room, accessDenied);
+               if (r.getWaitForRecording()) {
+                       add(new MessageDialog("wait-for-recording", 
getString("1316"), getString("1315"), DialogButtons.OK, DialogIcon.INFO) 
{//DialogIcon.LIGHT
+                               private static final long serialVersionUID = 1L;
+       
+                               @Override
+                               public void onConfigure(JQueryBehavior 
behavior) {
+                                       super.onConfigure(behavior);
+                                       behavior.setOption("autoOpen", true);
+                                       behavior.setOption("resizable", false);
+                               }
+                               
+                               @Override
+                               public void onClose(IPartialPageRequestHandler 
handler, DialogButton button) {
+                               }
+                       });
+               } else {
+                       add(new 
WebMarkupContainer("wait-for-recording").setVisible(false));
+               }
        }
        
        @Override
@@ -199,6 +227,10 @@ public class RoomPanel extends BasePanel
                                                sidebar.updateUsers(handler);
                                                activities.add(new 
Activity(m.getUid(), m.getUserId(), Activity.Type.roomExit), handler);
                                                break;
+                                       case roomClosed:
+                                               
handler.add(room.setVisible(false));
+                                               roomClosed.open(handler);
+                                               break;
                                        case requestRightModerator:
                                                if (isModerator(getUserId(), 
r.getId())) {
                                                        TextRoomMessage tm = 
(TextRoomMessage)m;
@@ -316,32 +348,6 @@ public class RoomPanel extends BasePanel
                }
        }
 
-       class ExpiredMessageDialog extends MessageDialog {
-               private static final long serialVersionUID = 1L;
-               public boolean autoOpen = false;
-               
-               public ExpiredMessageDialog(String id, String message) {
-                       super(id, Application.getString(204), message, 
DialogButtons.OK, DialogIcon.ERROR);
-                       autoOpen = true;
-               }
-               
-               @Override
-               public boolean isModal() {
-                       return true;
-               }
-               
-               @Override
-               public void onConfigure(JQueryBehavior behavior) {
-                       super.onConfigure(behavior);
-                       behavior.setOption("autoOpen", autoOpen);
-               }
-               
-               @Override
-               public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                       menu.exit(handler);
-               }
-       }
-       
        public Room getRoom() {
                return r;
        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 Sun Apr 17 11:27:20 2016
@@ -35,12 +35,12 @@ import java.util.Map;
 
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -94,7 +94,7 @@ public class ActivitiesPanel extends Bas
                                                        break;
                                                case decline:
                                                        if 
(isModerator(getUserId(), roomId)) {
-                                                               broadcast(new 
TextRoomMessage(room.getRoom().getId(), RoomMessage.Type.activityRemove, uid));
+                                                               broadcast(new 
TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, uid));
                                                        }
                                                        break;
                                                case accept:
@@ -110,8 +110,8 @@ public class ActivitiesPanel extends Bas
                                                                                
}
                                                                                
if (client != null) {
                                                                                
        client.getRights().add(Right.moderator);
-                                                                               
        broadcast(new TextRoomMessage(room.getRoom().getId(), 
RoomMessage.Type.activityRemove, uid));
-                                                                               
        broadcast(new RoomMessage(room.getRoom().getId(), 
RoomMessage.Type.rightUpdated));
+                                                                               
        broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.activityRemove, uid));
+                                                                               
        broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.rightUpdated));
                                                                                
}
                                                                                
break;
                                                                        default:

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 Sun Apr 17 11:27:20 2016
@@ -34,19 +34,19 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.OmButton;
 import org.apache.openmeetings.web.common.menu.MenuPanel;
 import org.apache.openmeetings.web.common.menu.RoomMenuItem;
+import org.apache.openmeetings.web.room.OmRedirectTimerBehavior;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
 import org.apache.openmeetings.web.room.poll.CreatePollDialog;
 import org.apache.openmeetings.web.room.poll.PollResultsDialog;
 import org.apache.openmeetings.web.room.poll.VoteDialog;
-import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -55,7 +55,6 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.flow.RedirectToUrlException;
 import org.apache.wicket.util.string.Strings;
-import org.apache.wicket.util.time.Duration;
 
 import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
 
@@ -75,7 +74,7 @@ public class RoomMenuPanel extends Panel
                }
                @Override
                protected void onClick(AjaxRequestTarget target) {
-                       RoomPanel.broadcast(new 
TextRoomMessage(room.getRoom().getId(), RoomMessage.Type.requestRightModerator, 
room.getClient().getUid()));
+                       RoomPanel.broadcast(new 
TextRoomMessage(room.getRoom().getId(), getUserId(), 
RoomMessage.Type.requestRightModerator, room.getClient().getUid()));
                }
        };
        private final RoomPanel room;
@@ -155,18 +154,6 @@ public class RoomMenuPanel extends Panel
        }
        
        
-       private static String getDemoTime(int remain) {
-               return 
Duration.seconds(remain).toString(WebSession.get().getLocale());
-       }
-       
-       private String getDemoText(int remain) {
-               return String.format("%s: %s", getString("637"), 
getDemoTime(remain));
-       }
-       
-       private String getDemoTitle(int remain) {
-               return String.format("%s: %s", getString("639"), 
getDemoTime(remain));
-       }
-       
        @Override
        protected void onInitialize() {
                super.onInitialize();
@@ -175,31 +162,17 @@ public class RoomMenuPanel extends Panel
                Room r = room.getRoom();
                add(demo.setVisible(r.isDemoRoom() && r.getDemoTime() != null 
&& room.getRoom().getDemoTime().intValue() > 0));
                if (demo.isVisible()) {
-                       demo.setOutputMarkupId(true);
-                       
demo.setDefaultModelObject(getDemoText(r.getDemoTime().intValue()));
-                       demo.add(AttributeAppender.replace("title", 
getDemoTitle(r.getDemoTime().intValue())));
-                       demo.add(new 
AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
+                       demo.add(new 
OmRedirectTimerBehavior(room.getRoom().getDemoTime().intValue(), "637") {
                                private static final long serialVersionUID = 1L;
-                               private final long clock;
-                               {
-                                       clock = System.currentTimeMillis();
-                               }
 
-                               private int remain(long now) {
-                                       return 
(int)(room.getRoom().getDemoTime().longValue() - (now - clock) / 1000);
+                               @Override
+                               protected void onTimer(int remain) {
+                                       
getComponent().add(AttributeAppender.replace("title", getText("639", remain)));
                                }
-
+                               
                                @Override
-                               protected void onTimer(AjaxRequestTarget 
target) {
-                                       int remain = 
remain(System.currentTimeMillis());
-                                       if (remain > -1) {
-                                               
getComponent().setDefaultModelObject(getDemoText(remain));
-                                               
getComponent().add(AttributeAppender.replace("title", getDemoTitle(remain)));
-                                               target.add(getComponent());
-                                       } else {
-                                               stop(target);
-                                               exit(target);
-                                       }
+                               protected void onFinish(AjaxRequestTarget 
target) {
+                                       exit(target);
                                }
                        });
                }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
 Sun Apr 17 11:27:20 2016
@@ -193,7 +193,6 @@ public class MessageDialog extends Abstr
                        r.setNumberOfPartizipants(100L);
                        r.setAppointment(true);
                        r.setAllowUserQuestions(true);
-                       r.setAllowFontStyles(true);
                        r = getBean(RoomDao.class).update(r, getUserId());
                        Appointment a = new Appointment();
                        a.setTitle(m.getSubject());

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 Sun Apr 17 11:27:20 2016
@@ -22,9 +22,7 @@ import static org.apache.openmeetings.ut
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
@@ -40,7 +38,6 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.db.dao.room.IInvitationManager;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -57,7 +54,13 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.message.RoomMessage;
 import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
+import org.apache.wicket.protocol.ws.WebSocketSettings;
+import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
+import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -86,8 +89,6 @@ public class RoomWebService {
        @Autowired
        private IInvitationManager invitationManager;
        @Autowired
-       private ScopeApplicationAdapter scopeApplicationAdapter;
-       @Autowired
        private ISessionManager sessionManager;
        @Autowired
        private RoomDao roomDao;
@@ -317,10 +318,16 @@ public class RoomWebService {
 
                                roomDao.update(room, userId);
 
-                               Map<String, String> message = new 
HashMap<String, String>();
-                               message.put("message", "roomClosed");
-                               
scopeApplicationAdapter.sendMessageByRoomAndDomain(id, message);
-                               
+                               Application app = 
Application.get(OpenmeetingsVariables.wicketApplicationName);
+                               WebSocketSettings settings = 
WebSocketSettings.Holder.get(app);
+                               IWebSocketConnectionRegistry registry = 
settings.getConnectionRegistry();
+                               RoomMessage cm = new RoomMessage(room.getId(),  
userId,  RoomMessage.Type.roomClosed);
+                               for (IWebSocketConnection wc : 
registry.getConnections(app)) {
+                                       if (wc != null && wc.isOpen()) {
+                                               wc.sendMessage(cm);
+                                       }
+                               }
+
                                return new ServiceResult(1L, "Closed", 
Type.SUCCESS);
                        } else {
                                throw new ServiceException("Insufficient 
permissions"); //TODO code -26

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 Sun Apr 17 11:27:20 2016
@@ -290,23 +290,6 @@ public class ConferenceService {
         * return all participants of a room
         * 
         * @param roomId
-        * @return - true if room is full, false otherwise
-        */
-       public boolean isRoomFull(Long roomId) {
-               try {
-                       Room room = roomDao.get(roomId);
-                       
-                       return room.getNumberOfPartizipants() <= 
sessionManager.getClientListByRoom(roomId).size();
-               } catch (Exception err) {
-                       log.error("[isRoomFull]", err);
-               }
-               return true;
-       }
-
-       /**
-        * return all participants of a room
-        * 
-        * @param roomId
         * @return - all participants of a room
         */
        public List<Client> getRoomClientsListByRoomId(Long roomId) {

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 Sun Apr 17 11:27:20 2016
@@ -1163,10 +1163,6 @@ public class ScopeApplicationAdapter ext
                        // Return Object
                        RoomStatus roomStatus = new RoomStatus();
                        // appointed meeting or moderated Room? => Check Max 
Users first
-                       if (clientListRoom.size() > 
room.getNumberOfPartizipants()) {
-                               roomStatus.setRoomFull(true);
-                               return roomStatus;
-                       }
 
                        // default logic for non regular rooms
                        if (!room.isAppointment()) {

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 Sun Apr 17 11:27:20 2016
@@ -242,7 +242,6 @@ public class RoomDao implements IDataPro
                        room.setComment("My Rooms of ownerId " + ownerId);
                        room.setNumberOfPartizipants(Room.Type.conference == 
type ? 25L : 150L);
                        room.setAllowUserQuestions(true);
-                       room.setAllowFontStyles(true);
                        room.setOwnerId(ownerId);
                        room.setAllowRecording(true);
 

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
 Sun Apr 17 11:27:20 2016
@@ -23,10 +23,8 @@ import java.util.List;
 import org.apache.openmeetings.db.entity.room.Client;
 
 public class RoomStatus {
-       
        List<Client> clientList;
        BrowserStatus browserStatus;
-       boolean roomFull = false;
        
        public RoomStatus() {}
        
@@ -42,11 +40,4 @@ public class RoomStatus {
        public void setBrowserStatus(BrowserStatus browserStatus) {
                this.browserStatus = browserStatus;
        }
-       public boolean getRoomFull() {
-               return roomFull;
-       }
-       public void setRoomFull(boolean roomFull) {
-               this.roomFull = roomFull;
-       }
-       
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 Sun Apr 17 11:27:20 2016
@@ -202,10 +202,6 @@ public class Room implements IDataProvid
        @Element(name = "isAudioOnly", data = true, required = false)
        private boolean audioOnly;
        
-       @Column(name = "allow_font_styles", nullable = false)
-       @Element(data = true, required = false)
-       private boolean allowFontStyles = false;
-
        @Column(name = "is_closed")
        @Element(data = true, required = false)
        private boolean closed;
@@ -450,14 +446,6 @@ public class Room implements IDataProvid
                this.audioOnly = audioOnly;
        }
 
-       public boolean getAllowFontStyles() {
-               return allowFontStyles;
-       }
-
-       public void setAllowFontStyles(boolean allowFontStyles) {
-               this.allowFontStyles = allowFontStyles;
-       }
-
        public boolean isClosed() {
                return closed;
        }

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 Sun Apr 17 11:27:20 2016
@@ -358,7 +358,6 @@ public class ImportInitvalues {
                r.setIspublic(isPublic);
                r.setAllowUserQuestions(true);
                r.setAudioOnly(false);
-               r.setAllowFontStyles(true);
 
                r.setAppointment(false);
 

Modified: openmeetings/application/trunk/openmeetings-util/pom.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/pom.xml?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/pom.xml (original)
+++ openmeetings/application/trunk/openmeetings-util/pom.xml Sun Apr 17 
11:27:20 2016
@@ -72,6 +72,11 @@
                        <version>${wicket.version}</version>
                </dependency>
                <dependency>
+                       <groupId>org.apache.wicket</groupId>
+                       <artifactId>wicket-native-websocket-core</artifactId>
+                       <version>${wicket.version}</version>
+               </dependency>
+               <dependency>
                        <groupId>org.threeten</groupId>
                        <artifactId>threetenbp</artifactId>
                        <version>1.3.1</version>

Modified: 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java?rev=1739582&r1=1739323&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/RoomMessage.java
 Sun Apr 17 11:27:20 2016
@@ -16,13 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.message;
+package org.apache.openmeetings.util.message;
 
 import java.io.Serializable;
 import java.util.Date;
 import java.util.UUID;
 
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage;
 
 public class RoomMessage implements IWebSocketPushMessage, Serializable {
@@ -30,6 +29,7 @@ public class RoomMessage implements IWeb
        public enum Type {
                roomEnter
                , roomExit
+               , roomClosed
                , pollCreated
                , rightUpdated
                , activityRemove
@@ -41,10 +41,6 @@ public class RoomMessage implements IWeb
        private final Long userId;
        private final Type type;
 
-       public RoomMessage(Long roomId, Type type) {
-               this(roomId, WebSession.getUserId(), type);
-       }
-       
        public RoomMessage(Long roomId, Long userId, Type type) {
                this.timestamp = new Date();
                this.roomId = roomId;

Modified: 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java?rev=1739582&r1=1739323&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/message/TextRoomMessage.java
 Sun Apr 17 11:27:20 2016
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.message;
+package org.apache.openmeetings.util.message;
 
 public class TextRoomMessage extends RoomMessage {
        private static final long serialVersionUID = 1L;
        private final String text;
 
-       public TextRoomMessage(Long roomId, Type type, String text) {
-               super(roomId, type);
+       public TextRoomMessage(Long roomId, Long userId, Type type, String 
text) {
+               super(roomId, userId, type);
                this.text = text;
        }
        

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 Sun Apr 17 11:27:20 2016
@@ -156,7 +156,7 @@ public class ConnectionsPanel extends Ad
                                User u = 
getBean(UserService.class).getUserById(getSid(), c.getUserId());
                                item.add(new Label("login", u == null ? null : 
u.getLogin()));
                                item.add(new Label("since", 
c.getConnectedSince()));
-                               item.add(new Label("scope", "html5"));
+                               item.add(new Label("scope", c.getRoomId() == 
null ? "html5" : "" + c.getRoomId()));
                                item.add(new ConfirmableAjaxBorder("kick", 
getString("603"), getString("605")) {
                                        private static final long 
serialVersionUID = 1L;
 

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 Sun Apr 17 11:27:20 2016
@@ -161,11 +161,11 @@ public class RoomForm extends AdminBaseF
                add(demoTime);
                add(new CheckBox("allowUserQuestions"));
                add(new CheckBox("audioOnly"));
-               add(new CheckBox("allowFontStyles"));
                add(new CheckBox("closed"));
                add(new TextField<String>("redirectURL"));
                add(new CheckBox("waitForRecording"));
                add(new CheckBox("allowRecording"));
+               add(new CheckBox("chatModerated"));
 
                add(new CheckBox("hideTopBar"));
                add(new CheckBox("chatHidden"));
@@ -175,7 +175,6 @@ public class RoomForm extends AdminBaseF
                add(new CheckBox("hideScreenSharing"));
                add(new CheckBox("hideWhiteboard"));
                add(new CheckBox("showMicrophoneStatus"));
-               add(new CheckBox("chatModerated"));
                add(new CheckBox("chatOpened"));
                add(new CheckBox("filesOpened"));
                add(new CheckBox("autoVideoSelect"));   



Reply via email to