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; } /**