Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Thu Aug 25 03:07:48 2016
@@ -19,24 +19,30 @@
 package org.apache.openmeetings.web.pages;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.WebSession.WICKET_ROOM_ID;
 import static org.apache.openmeetings.web.app.WebSession.getRecordingId;
 import static org.apache.openmeetings.web.room.SwfPanel.SWF;
 import static org.apache.openmeetings.web.room.SwfPanel.SWF_TYPE_NETWORK;
 import static org.apache.openmeetings.web.room.SwfPanel.SWF_TYPE_SETTINGS;
+import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 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.RoomPanel;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.openmeetings.web.user.record.VideoInfo;
 import org.apache.openmeetings.web.user.record.VideoPlayer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
 import org.apache.wicket.request.IRequestParameters;
@@ -52,13 +58,15 @@ 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;
+       private Long roomId;
 
        public HashPage(PageParameters p) {
                StringValue secure = p.get(SECURE_HASH);
@@ -71,7 +79,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 +99,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(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,25 +113,36 @@ 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(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));
+                       replace(new SwfPanel(PANEL_MAIN, p));
                        error = false;
                }
-               add(recContainer
-                       
.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true)
-                               , vp.setOutputMarkupPlaceholderTag(true)
-                               , new InvitationPasswordDialog("i-pass", 
this)));
+               
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true),
+                               vp.setOutputMarkupPlaceholderTag(true), new 
InvitationPasswordDialog("i-pass", this)));
+       }
+
+       private void createRoom(Long roomId) {
+               error = false;
+               getHeader().setVisible(false);
+               // need to re-fetch Room object to initialize all collections
+               Room room = getBean(RoomDao.class).get(roomId);
+               if (room != null) {
+                       this.roomId = roomId;
+                       RoomPanel rp = new RoomPanel(CHILD_ID, room);
+                       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
@@ -151,4 +169,13 @@ public class HashPage extends BaseInited
                target.add(vi.update(target, i.getRecording()).setVisible(true)
                                , vp.update(target, 
i.getRecording()).setVisible(true));
        }
+
+       @Override
+       public void renderHead(IHeaderResponse response) {
+               super.renderHead(response);
+               response.render(CssHeaderItem.forCSS(".invite.om-icon{display: 
none !important;}", "no-invite-to-room"));
+               if (roomId != null) {
+                       
response.render(OnDomReadyHeaderItem.forScript("roomLoad();"));
+               }
+       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 (original)
+++ 
openmeetings/application/trunk/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">
-               <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/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 Thu Aug 25 03:07:48 2016
@@ -18,228 +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.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.room.RoomPanel;
-import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
-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.AbortedMessage;
-import org.apache.wicket.protocol.ws.api.message.AbstractClientMessage;
-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(getSession().getId(), getUserId());
                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(client.setPageId(message.getKey()));
-                               log.debug("WebSocketBehavior::onConnect [uid: 
{}, session: {}, key: {}]", client.getUid(), message.getSessionId(), 
message.getKey());
-                       }
-                       
-                       @Override
-                       protected void onAbort(AbortedMessage message) {
-                               super.onAbort(message);
-                               closeHandler(message);
-                       }
-                       
-                       @Override
-                       protected void onClose(ClosedMessage message) {
-                               super.onClose(message);
-                               closeHandler(message);
-                       }
-                       
-                       private void closeHandler(AbstractClientMessage 
message) {
-                               if (MainPage.this.getCurrentPanel() instanceof 
RoomPanel) {
-                                       RoomPanel rp = 
(RoomPanel)MainPage.this.getCurrentPanel();
-                                       RoomMenuPanel.roomExit(rp);
-                               }
-                               removeOnlineUser(client);
-                               log.debug("WebSocketBehavior::closeHandler 
[uid: {}, session: {}, key: {}]", client.getUid(), message.getSessionId(), 
message.getKey());
+                       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() {
@@ -256,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);
-       }
-       
-       private BasePanel getCurrentPanel() {
-               Component prev = contents.get(CHILD_ID);
-               if (prev != null && prev instanceof BasePanel) {
-                       return (BasePanel)prev;
-               }
-               return null;
+               main.updateContents(f, handler);
        }
-       
-       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/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Aug 25 03:07:48 2016
@@ -126,7 +126,7 @@ public class RoomPanel extends BasePanel
                                                .toString()
                                                ));
                                broadcast(new RoomMessage(r.getId(), 
getUserId(), RoomMessage.Type.roomEnter));
-                               getMainPage().getChat().roomEnter(r, target);
+                               getMainPanel().getChat().roomEnter(r, target);
                        } catch (MalformedURLException e) {
                                log.error("Error while constructing room 
parameters", e);
                        }
@@ -409,25 +409,30 @@ public class RoomPanel extends BasePanel
                        }
                }
        }
-       
+
        @Override
-       public void onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               handler.add(getMainPage().getHeader().setVisible(false), 
getMainPage().getTopControls().setVisible(false));
+       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
+               getBasePage().getHeader().setVisible(false);
+               getMainPanel().getTopControls().setVisible(false);
                if (r.isHidden(RoomElement.Chat)) {
-                       getMainPage().getChat().toggle(handler, false);
+                       getMainPanel().getChat().toggle(handler, false);
+               }
+               if (handler != null) {
+                       handler.add(getBasePage().getHeader(), 
getMainPanel().getTopControls());
+                       handler.appendJavaScript("roomLoad();");
                }
-               handler.appendJavaScript("roomLoad();");
+               return this;
        }
-       
+
        @Override
        public void cleanup(IPartialPageRequestHandler handler) {
-               handler.add(getMainPage().getHeader().setVisible(true), 
getMainPage().getTopControls().setVisible(true));
+               handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getTopControls().setVisible(true));
                if (r.isHidden(RoomElement.Chat)) {
-                       getMainPage().getChat().toggle(handler, true);
+                       getMainPanel().getChat().toggle(handler, true);
                }
                
handler.appendJavaScript("$(window).off('resize.openmeetings');");
                RoomMenuPanel.roomExit(this);
-               getMainPage().getChat().roomExit(r, handler);
+               getMainPanel().getChat().roomExit(r, handler);
        }
 
        private static ResourceReference newResourceReference() {
@@ -502,7 +507,7 @@ public class RoomPanel extends BasePanel
        }
        
        public Client getClient() {
-               return getMainPage().getClient();
+               return getMainPanel().getClient();
        }
 
        public boolean screenShareAllowed() {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 Thu Aug 25 03:07:48 2016
@@ -321,7 +321,7 @@ public class RoomMenuPanel extends Panel
        public void exit(IPartialPageRequestHandler handler) {
                if (WebSession.getRights().contains(User.Right.Dashboard)) {
                        roomExit(room, false);
-                       room.getMainPage().updateContents(ROOMS_PUBLIC, 
handler);
+                       room.getMainPanel().updateContents(ROOMS_PUBLIC, 
handler);
                } else {
                        String url = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY,
 String.class, "");
                        if (Strings.isEmpty(url)) {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 Thu Aug 25 03:07:48 2016
@@ -205,19 +205,22 @@ public class ChatPanel extends BasePanel
                sb.append("});");
                target.appendJavaScript(sb);
        }
-       
+
        public void roomExit(Room r, IPartialPageRequestHandler handler) {
                if (r.isHidden(RoomElement.Chat)) {
                        return;
                }
                
handler.appendJavaScript(String.format("removeChatTab('%1$s%2$d');", 
ID_ROOM_PREFIX, r.getId()));
        }
-       
+
        public void toggle(IPartialPageRequestHandler handler, boolean visible) 
{
-               handler.add(setVisible(visible));
-               handler.appendJavaScript("reinit();");
+               setVisible(visible);
+               if (handler != null) {
+                       handler.add(this);
+                       handler.appendJavaScript("reinit();");
+               }
        }
-       
+
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 (original)
+++ 
openmeetings/application/trunk/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/trunk/openmeetings-web/src/main/webapp/css/room.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1757594&r1=1757593&r2=1757594&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css 
(original)
+++ 
openmeetings/application/trunk/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;
 }


Reply via email to