Author: solomax
Date: Thu Aug 25 03:07:48 2016
New Revision: 1757594

URL: http://svn.apache.org/viewvc?rev=1757594&view=rev
Log:
[OPENMEETINGS-1455] initial commit, room is displayed with access denied in 
flash

Added:
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.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/groups/GroupsPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    
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/menu/RoomMenuPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.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/groups/GroupsPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
    
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/menu/RoomMenuPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class ConfigsPanel extends AdminP
        private final WebMarkupContainer listContainer = new 
WebMarkupContainer("listContainer");
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omConfigPanelInit();");
+               return this;
        }
 
        public ConfigsPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -42,7 +42,6 @@ import org.apache.openmeetings.web.data.
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
@@ -209,9 +208,4 @@ public class ConnectionsPanel extends Ad
                        }
                });
        }
-
-       @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               super.onMenuPanelLoad(handler);
-       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -23,6 +23,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -45,11 +46,12 @@ import org.apache.wicket.markup.repeater
 public class GroupsPanel extends AdminPanel {
        private static final long serialVersionUID = 1L;
        private GroupForm form;
-       
+
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("groupsInit();");
+               return this;
        }
 
        public GroupsPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Thu Aug 25 03:07:48 2016
@@ -33,6 +33,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
@@ -79,9 +80,10 @@ public class LangPanel extends AdminPane
        Map.Entry<Long, Locale> language;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("labelsInit();");
+               return this;
        }
 
        public LangPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class LdapsPanel extends AdminPan
        private LdapForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omLdapPanelInit();");
+               return this;
        }
 
        public LdapsPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -24,6 +24,7 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class RoomsPanel extends AdminPan
        private RoomForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omRoomPanelInit();");
+               return this;
        }
 
        public RoomsPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.entity.server.Server;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class ServersPanel extends AdminP
        private ServerForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omServerPanelInit();");
+               return this;
        }
 
        public ServersPanel(String id) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
 Thu Aug 25 03:07:48 2016
@@ -26,6 +26,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -55,9 +56,10 @@ public class UsersPanel extends AdminPan
        };
 
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omUserPanelInit();");
+               return this;
        }
 
        private UserForm form;

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Thu Aug 25 03:07:48 2016
@@ -117,7 +117,7 @@ public class WebSession extends Abstract
                removeOnlineUser(getClientByKeys(getUserId(), get().getId()));
                super.invalidate();
                userId = null;
-               rights = new HashSet<User.Right>();
+               rights = 
Collections.unmodifiableSet(Collections.<Right>emptySet());
                SID = null;
                ISO8601FORMAT = null;
                sdf = null;
@@ -184,15 +184,18 @@ public class WebSession extends Abstract
                                }
                                i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, false);
                                if (i.isAllowEntry()) {
-                                       setUser(i.getInvitee(), true);
+                                       Set<Right> rights = new HashSet<>();
                                        //TODO markUsed
                                        if (i.getRoom() != null) {
+                                               rights.add(Right.Room);
                                                roomId = i.getRoom().getId();
                                        } else if (i.getAppointment() != null 
&& i.getAppointment().getRoom() != null) {
+                                               rights.add(Right.Room);
                                                roomId = 
i.getAppointment().getRoom().getId();
                                        } else if (i.getRecording() != null) {
                                                recordingId = 
i.getRecording().getId();
                                        }
+                                       setUser(i.getInvitee(), rights);
                                }
                        }
                } catch (Exception e) {
@@ -240,7 +243,7 @@ public class WebSession extends Abstract
                                                soapDao.update(soapLogin);
                                        }
                                        sessionDao.updateUser(SID, 
user.getId());
-                                       setUser(user, true);
+                                       setUser(user, null);
                                        roomId = soapLogin.getRoomId();
                                        recordingId = 
soapLogin.getRecordingId();
                                        return true;
@@ -250,7 +253,7 @@ public class WebSession extends Abstract
                return false;
        }
 
-       private void setUser(User u, boolean emptyRights) {
+       private void setUser(User u, Set<Right> rights) {
                String _sid = SID;
                Long _recordingId = recordingId;
                Long _roomId = roomId;
@@ -269,10 +272,10 @@ public class WebSession extends Abstract
                        i = _i;
                }
                userId = u.getId();
-               if (emptyRights) {
-                       rights = 
Collections.unmodifiableSet(Collections.<Right>emptySet());
+               if (rights == null || rights.isEmpty()) {
+                       this.rights = 
Collections.unmodifiableSet(u.getRights());
                } else {
-                       rights = Collections.unmodifiableSet(u.getRights());
+                       this.rights = Collections.unmodifiableSet(rights);
                }
                languageId = u.getLanguageId();
                externalType = u.getExternalType();
@@ -318,7 +321,7 @@ public class WebSession extends Abstract
                if (u == null) {
                        return false;
                }
-               setUser(u, false);
+               setUser(u, null);
                return true;
        }
        

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 Thu Aug 25 03:07:48 2016
@@ -21,7 +21,7 @@ package org.apache.openmeetings.web.comm
 import org.apache.openmeetings.db.util.FormatHelper;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.menu.MenuPanel;
-import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.pages.BasePage;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -39,23 +39,28 @@ public abstract class BasePanel extends
                setOutputMarkupId(true);
        }
 
-       public MainPage getMainPage() {
-               return (MainPage)super.getPage();
+       public BasePage getBasePage() {
+               return (BasePage)getPage();
        }
-       
+
+       public MainPanel getMainPanel() {
+               return findParent(MainPanel.class);
+       }
+
        protected boolean isRtl() { //TODO unify, remove copy/paste
                return 
FormatHelper.isRtlLanguage(WebSession.get().getLocale().toLanguageTag());
        }
-       
+
        /**
         * Overwrite this method to execute Java code after Panel is loaded by 
the
         * {@link MenuPanel}
         * 
         * @param target
         */
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               handler.add(getMainPage().getHeader().setVisible(true), 
getMainPage().getMenu().setVisible(true)
-                               , getMainPage().getTopLinks().setVisible(true));
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
+               handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getMenu().setVisible(true)
+                               , 
getMainPanel().getTopLinks().setVisible(true));
+               return this;
        }
 
        /**

Added: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html?rev=1757594&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
 (added)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
 Thu Aug 25 03:07:48 2016
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org";>
+<wicket:head>
+       <script type="text/javascript">
+               function showBusyIndicator() {
+                       $('#busy_indicator').show();
+               }
+               function hideBusyIndicator() {
+                       $('#busy_indicator').hide();
+               }
+       </script>
+</wicket:head>
+<wicket:panel>
+       <script type="text/javascript">
+               $(function() {
+                       Wicket.Event.subscribe('/ajax/call/failure', 
hideBusyIndicator);
+                       Wicket.Event.subscribe('/ajax/call/before', 
showBusyIndicator);
+                       Wicket.Event.subscribe('/ajax/call/success', 
hideBusyIndicator);
+                       Wicket.Event.subscribe('/ajax/call/complete', 
hideBusyIndicator);
+               });
+       </script>
+       <div wicket:id="topControls">
+               <div wicket:id="topLinks"><span 
+                       id="contactsAndMessages"><a 
wicket:id="messages"><wicket:message key="1188"/></a></span><span 
+                       id="profile"><a wicket:id="profile"><wicket:message 
key="5"/></a></span><span 
+                       id="logout"><a wicket:id="logout" 
href="#"><wicket:message key="310"/></a></span><span 
+                       id="reportBug"><a target="_blank" 
href="https://issues.apache.org/jira/browse/OPENMEETINGS";><wicket:message 
key="284"/></a></span><span><a 
+                       wicket:id="about"><wicket:message 
key="1549"/></a></span>
+               </div>
+               <div id="busy_indicator" 
class="ui-widget-header"><span><wicket:message key="1554"/></span></div>
+               <div wicket:id="menu"></div>
+       </div>
+       <div wicket:id="dev" id="devMenu"/>
+       <div wicket:id="contents"><div wicket:id="child"></div></div>
+       <div wicket:id="chatPanel"></div>
+       <div wicket:id="aboutDialog"></div>
+       <div wicket:id="userInfoDialog"></div>
+       <div wicket:id="newMessageDialog"></div>
+</wicket:panel>
+</html>

Added: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1757594&view=auto
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 (added)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 Thu Aug 25 03:07:48 2016
@@ -0,0 +1,285 @@
+/*
+ * 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.common;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.addOnlineUser;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.getClientByKeys;
+import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
+import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
+import static org.apache.openmeetings.web.util.OmUrlFragment.getPanel;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.NavigationDao;
+import org.apache.openmeetings.db.entity.basic.Naviglobal;
+import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+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.menu.MainMenuItem;
+import org.apache.openmeetings.web.common.menu.MenuItem;
+import org.apache.openmeetings.web.common.menu.MenuPanel;
+import org.apache.openmeetings.web.user.AboutDialog;
+import org.apache.openmeetings.web.user.ChatPanel;
+import org.apache.openmeetings.web.user.MessageDialog;
+import org.apache.openmeetings.web.user.UserInfoDialog;
+import org.apache.openmeetings.web.util.ContactsHelper;
+import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
+import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
+import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.wicketstuff.urlfragment.UrlFragment;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
+
+public class MainPanel extends Panel {
+       private static final long serialVersionUID = 1L;
+       private static final Logger log = 
Red5LoggerFactory.getLogger(MainPanel.class, webAppRootKey);
+       public final static String PARAM_USER_ID = "userId";
+       private Client client;
+       private final MenuPanel menu;
+       private final WebMarkupContainer topControls = new 
WebMarkupContainer("topControls");
+       private final WebMarkupContainer topLinks = new 
WebMarkupContainer("topLinks");
+       private final MarkupContainer contents;
+       private final ChatPanel chat;
+       private final MessageDialog newMessage;
+       private final UserInfoDialog userInfo;
+
+       public MainPanel(String id) {
+               this(id, new WebMarkupContainer(CHILD_ID));
+       }
+
+       public MainPanel(String id, WebMarkupContainer panel) {
+               super(id);
+               client = new Client();
+               
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
+               menu = new MenuPanel("menu", getMainMenu());
+               contents = new WebMarkupContainer("contents");
+               
add(contents.add(panel).setOutputMarkupId(true).setMarkupId("contents"));
+               topControls.add(menu.setVisible(false), 
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
+               topLinks.add(new AjaxLink<Void>("messages") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void onClick(AjaxRequestTarget target) {
+                               updateContents(PROFILE_MESSAGES, target);
+                       }
+               });
+               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               getSession().invalidate();
+                               
setResponsePage(Application.get().getSignInPageClass());
+                       }
+               });
+               topLinks.add(new AjaxLink<Void>("profile") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void onClick(AjaxRequestTarget target) {
+                               updateContents(PROFILE_EDIT, target);
+                       }
+               });
+               final AboutDialog about = new AboutDialog("aboutDialog");
+               topLinks.add(new AjaxLink<Void>("about") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void onClick(AjaxRequestTarget target) {
+                               about.open(target);
+                       }
+               });
+               if 
(getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
+                       add(new DebugBar("dev").setOutputMarkupId(true));
+               } else {
+                       add(new EmptyPanel("dev").setVisible(false));
+               }
+               add(about, chat = new ChatPanel("chatPanel"));
+               add(newMessage = new MessageDialog("newMessageDialog", new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
+                               BasePanel bp = getCurrentPanel();
+                               if (send.equals(button) && bp != null) {
+                                       bp.onNewMessageClose(handler);
+                               }
+                       }
+               });
+               add(userInfo = new UserInfoDialog("userInfoDialog", 
newMessage));
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               userInfo.open(target, getParam(getComponent(), 
PARAM_USER_ID).toLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("showUserInfo",
 this, explicit(PARAM_USER_ID)), "showUserInfo")));
+                       }
+               });
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               
ContactsHelper.addUserToContactList(getParam(getComponent(), 
PARAM_USER_ID).toLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("addContact",
 this, explicit(PARAM_USER_ID)), "addContact")));
+                       }
+               });
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               newMessage.reset(true).open(target, 
getParam(getComponent(), PARAM_USER_ID).toOptionalLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("privateMessage",
 this, explicit(PARAM_USER_ID)), "privateMessage")));
+                       }
+               });
+               add(new WebSocketBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onConnect(ConnectedMessage message) {
+                               super.onConnect(message);
+                               addOnlineUser(new 
Client(message.getSessionId(), message.getKey(), getUserId()));
+                               
log.debug(String.format("WebSocketBehavior::onConnect [session: %s, key: %s]", 
message.getSessionId(), message.getKey()));
+                       }
+                       
+                       @Override
+                       protected void onClose(ClosedMessage message) {
+                               Client client = getClientByKeys(getUserId(), 
WebSession.get().getId());
+                               removeOnlineUser(client);
+                               super.onClose(message);
+                               log.debug("WebSocketBehavior::onClose");
+                       }
+               });
+       }
+
+       private List<IMenuItem> getMainMenu() {
+               List<IMenuItem> menu = new ArrayList<>();
+               for (Naviglobal gl : 
getBean(NavigationDao.class).getMainMenu(AuthLevelUtil.hasAdminLevel(WebSession.getRights())))
 {
+                       List<IMenuItem> l = new ArrayList<>();
+                       for (Navimain nm : gl.getMainnavi()) {
+                               l.add(new MainMenuItem(nm) {
+                                       private static final long 
serialVersionUID = 1L;
+
+                                       @Override
+                                       public void onClick(AjaxRequestTarget 
target) {
+                                               onClick(MainPanel.this, target);
+                                       }
+                               }); 
+                       }
+                       menu.add(new 
MenuItem(Application.getString(gl.getLabelId()), l));
+               }
+               return menu;
+       }
+
+       public void updateContents(OmUrlFragment f, IPartialPageRequestHandler 
handler) {
+               updateContents(f, handler, true);
+       }
+
+       private BasePanel getCurrentPanel() {
+               Component prev = contents.get(CHILD_ID);
+               if (prev != null && prev instanceof BasePanel) {
+                       return (BasePanel)prev;
+               }
+               return null;
+       }
+
+       public void updateContents(OmUrlFragment f, IPartialPageRequestHandler 
handler, boolean updateFragment) {
+               BasePanel panel = getPanel(f.getArea(), f.getType());
+               if (panel != null) {
+                       BasePanel prev = getCurrentPanel();
+                       if (prev != null) {
+                               prev.cleanup(handler);
+                       }
+                       handler.add(contents.replace(panel));
+                       if (updateFragment) {
+                               UrlFragment uf = new UrlFragment(handler);
+                               uf.set(f.getArea().name(), f.getType());
+                       }
+                       panel.onMenuPanelLoad(handler);
+               }
+       }
+
+       public MenuPanel getMenu() {
+               return menu;
+       }
+
+       public WebMarkupContainer getTopLinks() {
+               return topLinks;
+       }
+
+       public WebMarkupContainer getTopControls() {
+               return topControls;
+       }
+
+       public ChatPanel getChat() {
+               return chat;
+       }
+
+       public Client getClient() {
+               return client;
+       }
+}

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MainMenuItem.java
 Thu Aug 25 03:07:48 2016
@@ -20,7 +20,7 @@ package org.apache.openmeetings.web.comm
 
 import org.apache.openmeetings.db.entity.basic.Navimain;
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.OmUrlFragment.MenuActions;
 import org.apache.openmeetings.web.util.OmUrlFragment.MenuParams;
@@ -37,7 +37,7 @@ public class MainMenuItem extends MenuIt
                params = m.getParams() != null ? 
MenuParams.valueOf(m.getParams()) : MenuParams.publicTabButton;
        }
        
-       public void onClick(MainPage page, AjaxRequestTarget target) {
-               page.updateContents(new OmUrlFragment(action, params), target);
+       public void onClick(MainPanel main, AjaxRequestTarget target) {
+               main.updateContents(new OmUrlFragment(action, params), target);
        }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/AccessDeniedPage.java
 Thu Aug 25 03:07:48 2016
@@ -46,7 +46,7 @@ public class AccessDeniedPage extends Ba
 
                                        @Override
                                        public boolean isVisible() {
-                                               return 
!WebSession.get().isSignedIn();
+                                               return 
WebSession.get().isSignedIn();
                                        }
 
                                        @Override

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 Thu Aug 25 03:07:48 2016
@@ -27,7 +27,7 @@
                </div>
                <div wicket:id="i-pass"></div>
        </div>
-       <div wicket:id="panel-swf" style="width: 100%; height: 100%;"></div>
+       <div wicket:id="panel-main" style="width: 100%; height: 100%;"></div>
        <div wicket:id="access-denied"></div>
 </wicket:extend>
 </html>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Thu Aug 25 03:07:48 2016
@@ -32,6 +32,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.IUpdatable;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.openmeetings.web.user.record.VideoInfo;
 import org.apache.openmeetings.web.user.record.VideoPlayer;
@@ -52,13 +53,14 @@ import com.googlecode.wicket.jquery.ui.w
 public class HashPage extends BaseInitedPage implements IUpdatable {
        private static final long serialVersionUID = 1L;
        public static final String SECURE_HASH = "secureHash";
+       public static final String PANEL_MAIN = "panel-main";
        public static final String INVITATION_HASH = "invitationHash";
        private static final String HASH = "hash";
        private final WebMarkupContainer recContainer = new 
WebMarkupContainer("panel-recording");
        private final VideoInfo vi = new VideoInfo("info", null);
        private final VideoPlayer vp = new VideoPlayer("player", null);
        private String errorKey = "invalid.hash";
-       private boolean error = true;;
+       private boolean error = true;
 
        public HashPage(PageParameters p) {
                StringValue secure = p.get(SECURE_HASH);
@@ -71,7 +73,7 @@ public class HashPage extends BaseInited
                ws.checkHashes(secure, invitation);
 
                recContainer.setVisible(false);
-               add(new EmptyPanel("panel-swf").setVisible(false));
+               add(new EmptyPanel(PANEL_MAIN).setVisible(false));
                if (!invitation.isEmpty()) {
                        Invitation i = ws.getInvitation();
                        if (i == null) {
@@ -91,13 +93,12 @@ public class HashPage extends BaseInited
                                }
                                Room r = i.getRoom();
                                if (r != null) {
-                                       replace(new SwfPanel("panel-swf", new 
PageParameters(p).add(WICKET_ROOM_ID, r.getId())));
+                                       createRoom(p, r.getId());
                                }
-                               error = false;
                        }
                } else if (!secure.isEmpty()) {
-                       Long recId = getRecordingId();
-                       if (recId == null && ws.getRoomId() == null) {
+                       Long recId = getRecordingId(), roomId = ws.getRoomId();
+                       if (recId == null && roomId == null) {
                                errorKey = "1599";
                        } else if (recId != null) {
                                recContainer.setVisible(true);
@@ -106,14 +107,12 @@ public class HashPage extends BaseInited
                                vp.update(null, rec);
                                error = false;
                        } else {
-                               replace(new SwfPanel("panel-swf", new 
PageParameters(p).add(WICKET_ROOM_ID, ws.getRoomId())));
-                               error = false;
+                               createRoom(p, roomId);
                        }
                }
                StringValue swf = p.get(SWF);
                if (!swf.isEmpty() && (SWF_TYPE_NETWORK.equals(swf.toString()) 
|| SWF_TYPE_SETTINGS.equals(swf.toString()))) {
-                       replace(new SwfPanel("panel-swf", p));
-                       error = false;
+                       createRoom(p, null);
                }
                add(recContainer
                        
.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true)
@@ -121,10 +120,22 @@ public class HashPage extends BaseInited
                                , new InvitationPasswordDialog("i-pass", 
this)));
        }
 
+       private void createRoom(PageParameters p, Long roomId) {
+               error = false;
+               PageParameters pp = new PageParameters(p);
+               if (roomId != null) {
+                       pp.add(WICKET_ROOM_ID, roomId);
+               }
+               SwfPanel rp = new SwfPanel(PANEL_MAIN, pp);
+               replace(new MainPanel(PANEL_MAIN, rp));
+               rp.onMenuPanelLoad(null);
+       }
+
        @Override
        protected void onInitialize() {
                super.onInitialize();
-               add(new MessageDialog("access-denied", 
getString("invalid.hash"), getString(errorKey), DialogButtons.OK, 
DialogIcon.ERROR) {
+               add(new MessageDialog("access-denied", 
getString("invalid.hash"), getString(errorKey), DialogButtons.OK,
+                               DialogIcon.ERROR) {
                        private static final long serialVersionUID = 1L;
 
                        @Override

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 Thu Aug 25 03:07:48 2016
@@ -30,31 +30,7 @@
        </script>
 </wicket:head>
 <wicket:extend>
-       <script type="text/javascript">
-               $(function() {
-                       Wicket.Event.subscribe('/ajax/call/failure', 
hideBusyIndicator);
-                       Wicket.Event.subscribe('/ajax/call/before', 
showBusyIndicator);
-                       Wicket.Event.subscribe('/ajax/call/success', 
hideBusyIndicator);
-                       Wicket.Event.subscribe('/ajax/call/complete', 
hideBusyIndicator);
-               });
-       </script>
-       <div wicket:id="topControls" id="topControls">
-               <div wicket:id="topLinks"><span 
-                       id="contactsAndMessages"><a 
wicket:id="messages"><wicket:message key="1188"/></a></span><span 
-                       id="profile"><a wicket:id="profile"><wicket:message 
key="5"/></a></span><span 
-                       id="logout"><a wicket:id="logout" 
href="#"><wicket:message key="310"/></a></span><span 
-                       id="reportBug"><a target="_blank" 
href="https://issues.apache.org/jira/browse/OPENMEETINGS";><wicket:message 
key="284"/></a></span><span><a 
-                       wicket:id="about"><wicket:message 
key="1549"/></a></span>
-               </div>
-               <div id="busy_indicator" 
class="ui-widget-header"><span><wicket:message key="1554"/></span></div>
-               <div wicket:id="menu"></div>
-       </div>
-       <div wicket:id="dev" id="devMenu"/>
-       <div wicket:id="contents"><div wicket:id="child"></div></div>
-       <div wicket:id="chatPanel"></div>
-       <div wicket:id="aboutDialog"></div>
-       <div wicket:id="userInfoDialog"></div>
-       <div wicket:id="newMessageDialog"></div>
-       <div wicket:id="inviteUserDialog"></div>
+       <div wicket:id="main"/>
+       <div wicket:id="invite-to-room"></div>
 </wicket:extend>
 </html>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 Thu Aug 25 03:07:48 2016
@@ -18,212 +18,48 @@
  */
 package org.apache.openmeetings.web.pages;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import static org.apache.openmeetings.web.app.Application.addOnlineUser;
-import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.Application.getClientByKeys;
-import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
-import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
-import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
-import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
-import static org.apache.openmeetings.web.util.OmUrlFragment.getPanel;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
+import static org.apache.openmeetings.web.common.MainPanel.PARAM_USER_ID;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.openmeetings.db.dao.basic.NavigationDao;
-import org.apache.openmeetings.db.entity.basic.Naviglobal;
-import org.apache.openmeetings.db.entity.basic.Navimain;
-import org.apache.openmeetings.db.entity.user.PrivateMessage;
-import org.apache.openmeetings.db.util.AuthLevelUtil;
-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.BasePanel;
-import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
-import org.apache.openmeetings.web.common.menu.MainMenuItem;
-import org.apache.openmeetings.web.common.menu.MenuItem;
-import org.apache.openmeetings.web.common.menu.MenuPanel;
-import org.apache.openmeetings.web.user.AboutDialog;
-import org.apache.openmeetings.web.user.ChatPanel;
+import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.openmeetings.web.user.InviteUserToRoomDialog;
-import org.apache.openmeetings.web.user.MessageDialog;
-import org.apache.openmeetings.web.user.UserInfoDialog;
-import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.devutils.debugbar.DebugBar;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.EmptyPanel;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
-import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
-import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.util.time.Duration;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.wicketstuff.urlfragment.UrlFragment;
-
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
 
 @AuthorizeInstantiation({"Admin", "Dashboard", "Room"})
 public class MainPage extends BaseInitedPage {
        private static final long serialVersionUID = 1L;
-       private static final Logger log = 
Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
-       private final static String PARAM_USER_ID = "userId";
-       private Client client;
-       private final MenuPanel menu;
-       private final WebMarkupContainer topControls = new 
WebMarkupContainer("topControls");
-       private final WebMarkupContainer topLinks = new 
WebMarkupContainer("topLinks");
-       private final MarkupContainer contents;
        private final AbstractAjaxTimerBehavior areaBehavior;
-       private final Component dev;
-       private final ChatPanel chat;
-       private final MessageDialog newMessage;
-       private final UserInfoDialog userInfo;
+       private final MainPanel main = new MainPanel("main");
        private final InviteUserToRoomDialog inviteUser;
-       
+
        public MainPage() {
                super();
-               client = new Client();
                getHeader().setVisible(false);
-               
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
-               menu = new MenuPanel("menu", getMainMenu());
-               contents = new WebMarkupContainer("contents");
-               add(contents.add(new 
WebMarkupContainer(CHILD_ID)).setOutputMarkupId(true).setMarkupId("contents"));
-               topControls.add(menu.setVisible(false), 
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
-               topLinks.add(new AjaxLink<Void>("messages") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(AjaxRequestTarget target) {
-                               updateContents(PROFILE_MESSAGES, target);
-                       }
-               });
-               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               getSession().invalidate();
-                               
setResponsePage(Application.get().getSignInPageClass());
-                       }
-               });
-               topLinks.add(new AjaxLink<Void>("profile") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(AjaxRequestTarget target) {
-                               updateContents(PROFILE_EDIT, target);
-                       }
-               });
-               final AboutDialog about = new AboutDialog("aboutDialog");
-               topLinks.add(new AjaxLink<Void>("about") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(AjaxRequestTarget target) {
-                               about.open(target);
-                       }
-               });
-               add(about);
-               if 
(getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
-                       add(dev = new DebugBar("dev"));
-                       dev.setOutputMarkupId(true);
-               } else {
-                       dev = null;
-                       add(new EmptyPanel("dev").setVisible(false));
-               }               
-               
-               add(chat = new ChatPanel("chatPanel"));
-               add(newMessage = new MessageDialog("newMessageDialog", new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                               BasePanel bp = getCurrentPanel();
-                               if (send.equals(button) && bp != null) {
-                                       bp.onNewMessageClose(handler);
-                               }
-                       }
-               });
-               add(userInfo = new UserInfoDialog("userInfoDialog", 
newMessage));
-               add(inviteUser = new 
InviteUserToRoomDialog("inviteUserDialog"));
-               add(new AbstractDefaultAjaxBehavior() {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void respond(AjaxRequestTarget target) {
-                               userInfo.open(target, getParam(getComponent(), 
PARAM_USER_ID).toLong());
-                       }
-                       
-                       @Override
-                       public void renderHead(Component component, 
IHeaderResponse response) {
-                               super.renderHead(component, response);
-                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("showUserInfo",
 this, explicit(PARAM_USER_ID)), "showUserInfo")));
-                       }
-               });
-               add(new AbstractDefaultAjaxBehavior() {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void respond(AjaxRequestTarget target) {
-                               
ContactsHelper.addUserToContactList(getParam(getComponent(), 
PARAM_USER_ID).toLong());
-                       }
-                       
-                       @Override
-                       public void renderHead(Component component, 
IHeaderResponse response) {
-                               super.renderHead(component, response);
-                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("addContact",
 this, explicit(PARAM_USER_ID)), "addContact")));
-                       }
-               });
-               add(new AbstractDefaultAjaxBehavior() {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void respond(AjaxRequestTarget target) {
-                               newMessage.reset(true).open(target, 
getParam(getComponent(), PARAM_USER_ID).toOptionalLong());
-                       }
-                       
-                       @Override
-                       public void renderHead(Component component, 
IHeaderResponse response) {
-                               super.renderHead(component, response);
-                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("privateMessage",
 this, explicit(PARAM_USER_ID)), "privateMessage")));
-                       }
-               });
-               add(new WebSocketBehavior() {
+               add(main, inviteUser = new 
InviteUserToRoomDialog("invite-to-room"));
+               //load preselected content
+               add(areaBehavior = new 
AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onConnect(ConnectedMessage message) {
-                               super.onConnect(message);
-                               addOnlineUser(new 
Client(message.getSessionId(), message.getKey(), getUserId()));
-                               
log.debug(String.format("WebSocketBehavior::onConnect [session: %s, key: %s]", 
message.getSessionId(), message.getKey()));
-                       }
-                       
-                       @Override
-                       protected void onClose(ClosedMessage message) {
-                               Client client = getClientByKeys(getUserId(), 
WebSession.get().getId());
-                               removeOnlineUser(client);
-                               super.onClose(message);
-                               log.debug("WebSocketBehavior::onClose");
+                       protected void onTimer(AjaxRequestTarget target) {
+                               OmUrlFragment area = WebSession.get().getArea();
+                               main.updateContents(area == null ? 
OmUrlFragment.get() : area, target);
+                               stop(target);
+                               WebSession.get().setArea(null);
                        }
                });
                add(new AbstractDefaultAjaxBehavior() {
@@ -240,104 +76,23 @@ public class MainPage extends BaseInited
                                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("inviteUser",
 this, explicit(PARAM_USER_ID)), "inviteUser")));
                        }
                });
-               //load preselected content
-               add(areaBehavior = new 
AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onTimer(AjaxRequestTarget target) {
-                               OmUrlFragment area = WebSession.get().getArea();
-                               updateContents(area == null ? 
OmUrlFragment.get() : area, target);
-                               stop(target);
-                               WebSession.get().setArea(null);
-                       }
-               });
        }
-       
-       private List<IMenuItem> getMainMenu() {
-               List<IMenuItem> menu = new ArrayList<>();
-               for (Naviglobal gl : 
getBean(NavigationDao.class).getMainMenu(AuthLevelUtil.hasAdminLevel(WebSession.getRights())))
 {
-                       List<IMenuItem> l = new ArrayList<>();
-                       for (Navimain nm : gl.getMainnavi()) {
-                               l.add(new MainMenuItem(nm) {
-                                       private static final long 
serialVersionUID = 1L;
 
-                                       @Override
-                                       public void onClick(AjaxRequestTarget 
target) {
-                                               onClick(MainPage.this, target);
-                                       }
-                               }); 
-                       }
-                       menu.add(new 
MenuItem(Application.getString(gl.getLabelId()), l));
-               }
-               return menu;
-       }
-       
        public void updateContents(OmUrlFragment f, IPartialPageRequestHandler 
handler) {
-               updateContents(f, handler, true);
+               main.updateContents(f, handler);
        }
-       
-       private BasePanel getCurrentPanel() {
-               Component prev = contents.get(CHILD_ID);
-               if (prev != null && prev instanceof BasePanel) {
-                       return (BasePanel)prev;
-               }
-               return null;
-       }
-       
-       public void updateContents(OmUrlFragment f, IPartialPageRequestHandler 
handler, boolean updateFragment) {
-               BasePanel panel = getPanel(f.getArea(), f.getType());
-               if (panel != null) {
-                       BasePanel prev = getCurrentPanel();
-                       if (prev != null) {
-                               prev.cleanup(handler);
-                       }
-                       handler.add(contents.replace(panel));
-                       if (updateFragment) {
-                               UrlFragment uf = new UrlFragment(handler);
-                               uf.set(f.getArea().name(), f.getType());
-                       }
-                       panel.onMenuPanelLoad(handler);
-               }
-               /* FIXME commented until wicket 7.2.0 will be released
-                  TODO check if this call is necessary
-               if (dev != null){
-                       target.add(dev);
-               }
-               */
+
+       @Override
+       protected boolean isMainPage() {
+               return true;
        }
-       
+
        @Override
        protected void onParameterArrival(IRequestParameters params, 
AjaxRequestTarget target) {
                OmUrlFragment uf = getUrlFragment(params);
                if (uf != null) {
                        areaBehavior.stop(target);
-                       updateContents(uf, target, false);
+                       main.updateContents(uf, target, false);
                }
        }
-       
-       public MenuPanel getMenu() {
-               return menu;
-       }
-
-       public WebMarkupContainer getTopLinks() {
-               return topLinks;
-       }
-
-       public WebMarkupContainer getTopControls() {
-               return topControls;
-       }
-
-       public ChatPanel getChat() {
-               return chat;
-       }
-       
-       @Override
-       protected boolean isMainPage() {
-               return true;
-       }
-       
-       public Client getClient() {
-               return client;
-       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
 Thu Aug 25 03:07:48 2016
@@ -217,10 +217,15 @@ public class SwfPanel extends BasePanel
        }
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               handler.add(getMainPage().getHeader().setVisible(false), 
getMainPage().getMenu().setVisible(false)
-                               , 
getMainPage().getTopLinks().setVisible(false));
-               //handler.appendJavaScript("roomLoad();");
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
+               getBasePage().getHeader().setVisible(false);
+               getMainPanel().getMenu().setVisible(false);
+               getMainPanel().getTopLinks().setVisible(false);
+               if (handler != null) {
+                       handler.add(getBasePage().getHeader(), 
getMainPanel().getMenu(), getMainPanel().getTopLinks());
+                       //handler.appendJavaScript("roomLoad();");
+               }
+               return this;
        }
        
        private static ResourceReference newResourceReference() {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 Thu Aug 25 03:07:48 2016
@@ -70,25 +70,20 @@ public class CalendarPanel extends UserP
                }
        };
        private Calendar calendar;
-       
-       @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               super.onMenuPanelLoad(handler);
-       }
 
        @Override
        public void cleanup(IPartialPageRequestHandler handler) {
                refreshTimer.stop(handler);
        }
-       
+
        private static AppointmentDao getDao() {
                return getBean(AppointmentDao.class);
        }
-       
+
        public void refresh(IPartialPageRequestHandler handler) {
                calendar.refresh(handler);
        }
-       
+
        Calendar getCalendar() {
                return calendar;
        }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
 Thu Aug 25 03:07:48 2016
@@ -66,6 +66,7 @@
        height: 30px;
        background-repeat: no-repeat;
        background-position: 5px 5px;
+       background-size: 22px;
        float: right;
        padding: 0;
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class ConfigsPanel extends AdminP
        private final WebMarkupContainer listContainer = new 
WebMarkupContainer("listContainer");
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omConfigPanelInit();");
+               return this;
        }
 
        public ConfigsPanel(String id) {

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=1757594&r1=1757593&r2=1757594&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
 Thu Aug 25 03:07:48 2016
@@ -42,7 +42,6 @@ import org.apache.openmeetings.web.data.
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
@@ -209,9 +208,4 @@ public class ConnectionsPanel extends Ad
                        }
                });
        }
-
-       @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               super.onMenuPanelLoad(handler);
-       }
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -23,6 +23,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -45,11 +46,12 @@ import org.apache.wicket.markup.repeater
 public class GroupsPanel extends AdminPanel {
        private static final long serialVersionUID = 1L;
        private GroupForm form;
-       
+
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("groupsInit();");
+               return this;
        }
 
        public GroupsPanel(String id) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Thu Aug 25 03:07:48 2016
@@ -33,6 +33,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
@@ -79,9 +80,10 @@ public class LangPanel extends AdminPane
        Map.Entry<Long, Locale> language;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("labelsInit();");
+               return this;
        }
 
        public LangPanel(String id) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class LdapsPanel extends AdminPan
        private LdapForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omLdapPanelInit();");
+               return this;
        }
 
        public LdapsPanel(String id) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 Thu Aug 25 03:07:48 2016
@@ -24,6 +24,7 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class RoomsPanel extends AdminPan
        private RoomForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omRoomPanelInit();");
+               return this;
        }
 
        public RoomsPanel(String id) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
 Thu Aug 25 03:07:48 2016
@@ -22,6 +22,7 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.entity.server.Server;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -46,9 +47,10 @@ public class ServersPanel extends AdminP
        private ServerForm form;
        
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omServerPanelInit();");
+               return this;
        }
 
        public ServersPanel(String id) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
 Thu Aug 25 03:07:48 2016
@@ -26,6 +26,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -55,9 +56,10 @@ public class UsersPanel extends AdminPan
        };
 
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                super.onMenuPanelLoad(handler);
                handler.appendJavaScript("omUserPanelInit();");
+               return this;
        }
 
        private UserForm form;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Thu Aug 25 03:07:48 2016
@@ -117,7 +117,7 @@ public class WebSession extends Abstract
                removeOnlineUser(getClientByKeys(getUserId(), get().getId()));
                super.invalidate();
                userId = null;
-               rights = new HashSet<User.Right>();
+               rights = 
Collections.unmodifiableSet(Collections.<Right>emptySet());
                SID = null;
                ISO8601FORMAT = null;
                sdf = null;
@@ -184,15 +184,18 @@ public class WebSession extends Abstract
                                }
                                i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, false);
                                if (i.isAllowEntry()) {
-                                       setUser(i.getInvitee(), true);
+                                       Set<Right> rights = new HashSet<>();
                                        //TODO markUsed
                                        if (i.getRoom() != null) {
+                                               rights.add(Right.Room);
                                                roomId = i.getRoom().getId();
                                        } else if (i.getAppointment() != null 
&& i.getAppointment().getRoom() != null) {
+                                               rights.add(Right.Room);
                                                roomId = 
i.getAppointment().getRoom().getId();
                                        } else if (i.getRecording() != null) {
                                                recordingId = 
i.getRecording().getId();
                                        }
+                                       setUser(i.getInvitee(), rights);
                                }
                        }
                } catch (Exception e) {
@@ -240,7 +243,7 @@ public class WebSession extends Abstract
                                                soapDao.update(soapLogin);
                                        }
                                        sessionDao.updateUser(SID, 
user.getId());
-                                       setUser(user, true);
+                                       setUser(user, null);
                                        roomId = soapLogin.getRoomId();
                                        recordingId = 
soapLogin.getRecordingId();
                                        return true;
@@ -250,7 +253,7 @@ public class WebSession extends Abstract
                return false;
        }
 
-       private void setUser(User u, boolean emptyRights) {
+       private void setUser(User u, Set<Right> rights) {
                String _sid = SID;
                Long _recordingId = recordingId;
                Long _roomId = roomId;
@@ -269,10 +272,10 @@ public class WebSession extends Abstract
                        i = _i;
                }
                userId = u.getId();
-               if (emptyRights) {
-                       rights = 
Collections.unmodifiableSet(Collections.<Right>emptySet());
+               if (rights == null || rights.isEmpty()) {
+                       this.rights = 
Collections.unmodifiableSet(u.getRights());
                } else {
-                       rights = Collections.unmodifiableSet(u.getRights());
+                       this.rights = Collections.unmodifiableSet(rights);
                }
                languageId = u.getLanguageId();
                externalType = u.getExternalType();
@@ -318,7 +321,7 @@ public class WebSession extends Abstract
                if (u == null) {
                        return false;
                }
-               setUser(u, false);
+               setUser(u, null);
                return true;
        }
        

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 Thu Aug 25 03:07:48 2016
@@ -21,7 +21,7 @@ package org.apache.openmeetings.web.comm
 import org.apache.openmeetings.db.util.FormatHelper;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.menu.MenuPanel;
-import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.pages.BasePage;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -39,23 +39,28 @@ public abstract class BasePanel extends
                setOutputMarkupId(true);
        }
 
-       public MainPage getMainPage() {
-               return (MainPage)super.getPage();
+       public BasePage getBasePage() {
+               return (BasePage)getPage();
        }
-       
+
+       public MainPanel getMainPanel() {
+               return findParent(MainPanel.class);
+       }
+
        protected boolean isRtl() { //TODO unify, remove copy/paste
                return 
FormatHelper.isRtlLanguage(WebSession.get().getLocale().toLanguageTag());
        }
-       
+
        /**
         * Overwrite this method to execute Java code after Panel is loaded by 
the
         * {@link MenuPanel}
         * 
         * @param target
         */
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               handler.add(getMainPage().getHeader().setVisible(true), 
getMainPage().getMenu().setVisible(true)
-                               , getMainPage().getTopLinks().setVisible(true));
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
+               handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getMenu().setVisible(true)
+                               , 
getMainPanel().getTopLinks().setVisible(true));
+               return this;
        }
 
        /**


Reply via email to