Repository: openmeetings Updated Branches: refs/heads/4.0.x a0e694dc5 -> e4847e6ad
[OPENMEETINGS-1810] A&A redesigned Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/e4847e6a Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/e4847e6a Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/e4847e6a Branch: refs/heads/4.0.x Commit: e4847e6adaf81dadd249caabba5faeef48202d08 Parents: a0e694d Author: Maxim Solodovnik <[email protected]> Authored: Sat Dec 30 22:00:01 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Sat Dec 30 22:00:01 2017 +0700 ---------------------------------------------------------------------- .../apache/openmeetings/web/room/RoomPanel.html | 1 - .../apache/openmeetings/web/room/RoomPanel.java | 33 +++++++--------- .../web/room/activities/activities.js | 40 +++++++++++++++----- .../apache/openmeetings/web/room/room-base.js | 21 ++++++---- .../web/room/sidebar/RoomSidebar.html | 1 + .../web/room/sidebar/RoomSidebar.java | 33 ++++++++++------ .../src/main/webapp/css/activities.css | 14 ++++--- openmeetings-web/src/main/webapp/css/tree.css | 2 - 8 files changed, 90 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html index ee0ea95..2b7a90a 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html @@ -27,7 +27,6 @@ <div class="wb-drop-area"></div> <div class="wb-area" wicket:id="whiteboard"></div> </div> - <div wicket:id="activities"></div> </div> <div wicket:id="event-details"></div> <div wicket:id="access-denied"></div> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java index 20d84f0..f25ae26 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java @@ -68,7 +68,6 @@ import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.WebSession; import org.apache.openmeetings.web.common.BasePanel; import org.apache.openmeetings.web.pages.BasePage; -import org.apache.openmeetings.web.room.activities.ActivitiesPanel; import org.apache.openmeetings.web.room.activities.Activity; import org.apache.openmeetings.web.room.menu.RoomMenuPanel; import org.apache.openmeetings.web.room.sidebar.RoomSidebar; @@ -189,7 +188,6 @@ public class RoomPanel extends BasePanel { private RoomMenuPanel menu; private RoomSidebar sidebar; - private ActivitiesPanel activities; private final AbstractWbPanel wb; private String sharingUser = null; private String recordingUser = null; @@ -283,7 +281,6 @@ public class RoomPanel extends BasePanel { } room.add(roomEnter); room.add(sidebar = new RoomSidebar("sidebar", this)); - room.add(activities = new ActivitiesPanel("activities", this)); add(roomClosed = new RedirectMessageDialog("room-closed", "1098", r.isClosed(), r.getRedirectURL())); if (r.isClosed()) { room.setVisible(false); @@ -532,49 +529,49 @@ public class RoomPanel extends BasePanel { case roomEnter: sidebar.update(handler); menu.update(handler); - activities.add(new Activity(m, Activity.Type.roomEnter), handler); + sidebar.addActivity(new Activity(m, Activity.Type.roomEnter), handler); break; case roomExit: sidebar.update(handler); - activities.add(new Activity(m, Activity.Type.roomExit), handler); + sidebar.addActivity(new Activity(m, Activity.Type.roomExit), handler); break; case roomClosed: handler.add(room.setVisible(false)); roomClosed.open(handler); break; case requestRightModerator: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightModerator), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightModerator), handler); break; case requestRightPresenter: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightPresenter), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightPresenter), handler); break; case requestRightWb: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightWb), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightWb), handler); break; case requestRightShare: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightShare), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightShare), handler); break; case requestRightRemote: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightRemote), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightRemote), handler); break; case requestRightA: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightA), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightA), handler); break; case requestRightAv: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightAv), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightAv), handler); break; case requestRightMute: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightMute), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightMute), handler); break; case requestRightExclusive: - activities.add(new Activity((TextRoomMessage)m, Activity.Type.reqRightExclusive), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.reqRightExclusive), handler); break; case activityRemove: - activities.remove(((TextRoomMessage)m).getText(), handler); + sidebar.removeActivity(((TextRoomMessage)m).getText(), handler); break; case haveQuestion: if (getClient().hasRight(Room.Right.moderator) || getUserId().equals(m.getUserId())) { - activities.add(new Activity((TextRoomMessage)m, Activity.Type.haveQuestion), handler); + sidebar.addActivity(new Activity((TextRoomMessage)m, Activity.Type.haveQuestion), handler); } break; case kick: @@ -842,10 +839,6 @@ public class RoomPanel extends BasePanel { return wb; } - public ActivitiesPanel getActivities() { - return activities; - } - public String getSharingUser() { return sharingUser; } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js index 0b49059..b5d66c8 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js @@ -1,7 +1,7 @@ /* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */ var Activities = function() { - const closedHeight = "20px", timeout = 10000; - let activities, aclean, area, openedHeight = "345px", inited = false; + const closedHeight = 20, closedHeightPx = closedHeight + 'px', timeout = 10000; + let activities, aclean, area, openedHeight = 345, openedHeightPx = openedHeight + 'px', inited = false; function _load() { const s = Settings.load(); @@ -26,14 +26,34 @@ var Activities = function() { if (isClosed()) { $('.control.block .ui-icon', activities).removeClass('ui-icon-caret-1-n').addClass('ui-icon-caret-1-s'); $('.control.block', activities).removeClass('ui-state-highlight'); - activities.animate({height: openedHeight}, 1000); + activities.animate( + { + height: openedHeightPx + , top: '-' + openedHeightPx + } + , 1000 + , function() { + activities.css({'top': ''}); + Room.setSize(); + } + ); activities.resizable('option', 'disabled', false); } } function _close() { if (!isClosed()) { $('.control.block .ui-icon', activities).removeClass('ui-icon-caret-1-s').addClass('ui-icon-caret-1-n'); - activities.animate({height: closedHeight}, 1000); + activities.animate( + { + height: closedHeight + , top: (openedHeight - closedHeight) + 'px' + } + , 1000 + , function() { + activities.css({'top': ''}); + Room.setSize(); + } + ); activities.resizable('option', 'disabled', true); } } @@ -77,14 +97,16 @@ var Activities = function() { } activities = $('#activities'); activities.resizable({ - handles: "n, e" + handles: 'n' , disabled: isClosed() - , alsoResize: "#activities .area" + , alsoResize: '#activities .area' , minHeight: 195 - , minWidth: 260 + , resize: function(event, ui) { + activities.css({'top': ''}); + } , stop: function(event, ui) { - activities.css({'top': '', 'right': ''}); - openedHeight = ui.size.height + "px"; + openedHeight = ui.size.height; + openedHeightPx = openedHeight + 'px'; } }); area = activities.find('.area'); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js index c856ee0..ba3526f 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js @@ -540,13 +540,14 @@ var VideoManager = (function() { })(); var Room = (function() { const self = {}, sbSide = Settings.isRtl ? 'right' : 'left'; - let options, menuHeight, chat, sb, dock; + let options, menuHeight, chat, sb, dock, activities; function _init(_options) { options = _options; window.WbArea = options.interview ? InterviewWbArea() : DrawWbArea(); const menu = $('.room.box .room.menu'); chat = $('#chatPanel'); + activities = $('#activities'); sb = $('.room.sidebar').css(sbSide, '0px'); dock = sb.find('.btn-dock').button({ icon: "ui-icon icon-undock" @@ -578,7 +579,9 @@ var Room = (function() { .button('refresh'); menuHeight = menu.length === 0 ? 0 : menu.height(); VideoManager.init(); - Activities.init(); + if (typeof(Activities) !== 'undefined') { + Activities.init(); + } } function _getSelfAudioClient() { const vw = $('#video' + Room.getOptions().uid); @@ -632,13 +635,17 @@ var Room = (function() { function _setSize() { const sbW = _sbWidth() , w = $(window).width() - sbW - 8 + , ah = !!activities && activities.is(':visible') ? activities.height() : 0 , h = $(window).height() - menuHeight - 3 + , hh = h - 5 , p = sb.find('.tabs') - , holder = $('.room.holder'); - sb.height(h); - const hh = h - 5; - p.height(hh); - $(".user.list", p).height(hh - $("ul", p).height() - $(".user.header", p).height() - 5); + , ulh = $("ul", p).height() + , holder = $('.room.holder') + , fl = $('.file.list', p); + sb.height(h - ah); + p.height(hh - ah); + $('.user.list', p).height(hh - ulh - ah - $('.user.header', p).height() - 5); + $('.trees', fl).height(hh - ulh - ah - $('.trash-toolbar', fl).height() - $('.sizes', fl).height() - 5); if (sbW > 255) { holder.addClass('big').removeClass('small'); } else { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html index 75de098..0d8f9d0 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html @@ -47,6 +47,7 @@ <div class="file list" wicket:id="tree"></div> </div> </div> + <div wicket:id="activities"></div> <div wicket:id="addFolder"></div> <form wicket:id="form"><div wicket:id="confirm-trash"></div></form> <div wicket:id="upload"></div> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java index f5e6b46..6eed1f9 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java @@ -29,7 +29,6 @@ import java.util.ArrayList; import org.apache.openmeetings.core.util.WebSocketHelper; import org.apache.openmeetings.db.entity.basic.Client; -import org.apache.openmeetings.db.entity.basic.Client.Activity; import org.apache.openmeetings.db.entity.basic.Client.Pod; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.Room.Right; @@ -43,6 +42,8 @@ import org.apache.openmeetings.web.common.NameDialog; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.RoomPanel.Action; import org.apache.openmeetings.web.room.VideoSettings; +import org.apache.openmeetings.web.room.activities.ActivitiesPanel; +import org.apache.openmeetings.web.room.activities.Activity; import org.apache.openmeetings.web.util.ExtendedClientProperties; import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -86,6 +87,7 @@ public class RoomSidebar extends Panel { private boolean avInited = false; private Client kickedClient; private VideoSettings settings = new VideoSettings("settings"); + private ActivitiesPanel activities; private final ListView<Client> users = new ListView<Client>("user", new ArrayList<Client>()) { private static final long serialVersionUID = 1L; @@ -127,7 +129,7 @@ public class RoomSidebar extends Panel { { JSONObject obj = uid.isEmpty() ? new JSONObject() : new JSONObject(uid); Client _c = getOnlineClient(obj.getString("uid")); - if (_c == null || !_c.hasActivity(Activity.broadcastA)) { + if (_c == null || !_c.hasActivity(Client.Activity.broadcastA)) { return; } if (cl.hasRight(Right.moderator) || cl.getUid().equals(_c.getUid())) { @@ -192,7 +194,7 @@ public class RoomSidebar extends Panel { if (Strings.isEmpty(uid)) { return; } - Activity a = Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString()); + Client.Activity a = Client.Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString()); StringValue podStr = getRequest().getRequestParameters().getParameterValue(PARAM_POD); Pod pod = podStr.isEmpty() ? Pod.none : Pod.valueOf(podStr.toString()); Client c = getOnlineClient(uid); @@ -215,7 +217,7 @@ public class RoomSidebar extends Panel { if (!avInited) { avInited = true; if (Room.Type.conference == room.getRoom().getType()) { - toggleActivity(c, Activity.broadcastAV, Pod.none); + toggleActivity(c, Client.Activity.broadcastAV, Pod.none); } } sendUpdatedClient(c); @@ -260,6 +262,7 @@ public class RoomSidebar extends Panel { add(form.add(confirmTrash), upload = new UploadDialog("upload", room, roomFiles)); updateShowFiles(null); add(new JQueryUIBehavior("#room-sidebar-tabs", "tabs")); + add(activities = new ActivitiesPanel("activities", room)); } @Override @@ -306,26 +309,26 @@ public class RoomSidebar extends Panel { upload.open(handler); } - public void toggleActivity(Client c, Activity a, Pod _pod) { + public void toggleActivity(Client c, Client.Activity a, Pod _pod) { if (c == null) { return; } if (!activityAllowed(c, a, room.getRoom()) && room.getClient().hasRight(Right.moderator)) { - if (a == Activity.broadcastA || a == Activity.broadcastAV) { + if (a == Client.Activity.broadcastA || a == Client.Activity.broadcastAV) { c.allow(Room.Right.audio); } - if (!room.getRoom().isAudioOnly() && (a == Activity.broadcastV || a == Activity.broadcastAV)) { + if (!room.getRoom().isAudioOnly() && (a == Client.Activity.broadcastV || a == Client.Activity.broadcastAV)) { c.allow(Room.Right.video); } } if (activityAllowed(c, a, room.getRoom())) { - if (a == Activity.broadcastA && !c.isMicEnabled()) { + if (a == Client.Activity.broadcastA && !c.isMicEnabled()) { return; } - if (a == Activity.broadcastV && !c.isCamEnabled()) { + if (a == Client.Activity.broadcastV && !c.isCamEnabled()) { return; } - if (a == Activity.broadcastAV && !c.isMicEnabled() && !c.isCamEnabled()) { + if (a == Client.Activity.broadcastAV && !c.isMicEnabled() && !c.isCamEnabled()) { return; } Pod pod = c.getPod(); @@ -340,7 +343,7 @@ public class RoomSidebar extends Panel { } } - public static boolean activityAllowed(Client c, Activity a, Room room) { + public static boolean activityAllowed(Client c, Client.Activity a, Room room) { boolean r = false; switch (a) { case broadcastA: @@ -361,4 +364,12 @@ public class RoomSidebar extends Panel { public void setFilesActive(IPartialPageRequestHandler handler) { handler.appendJavaScript("$('#room-sidebar-tabs').tabs('option', 'active', 1);"); } + + public void addActivity(Activity a, IPartialPageRequestHandler handler) { + activities.add(a, handler); + } + + public void removeActivity(String uid, IPartialPageRequestHandler handler) { + activities.remove(uid, handler); + } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/webapp/css/activities.css ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/webapp/css/activities.css b/openmeetings-web/src/main/webapp/css/activities.css index dafbb24..ff9ecac 100644 --- a/openmeetings-web/src/main/webapp/css/activities.css +++ b/openmeetings-web/src/main/webapp/css/activities.css @@ -17,12 +17,14 @@ * under the License. */ #activities { - position: fixed; - z-index: 2000; - bottom: 0px; - left: 10px; - width: 600px; height: 20px; + overflow: hidden; +} +#activities .ui-resizable-handle { + width: 100%; +} +#activities .ui-widget-header { + white-space: nowrap; } #activities .control.block .ui-icon { text-align: center; @@ -30,6 +32,8 @@ #activities .control.block .label { display: inline-block; padding-left: 20px; + text-overflow: ellipsis; + white-space: nowrap; } #activities .ctrl { padding-left: 20px; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/e4847e6a/openmeetings-web/src/main/webapp/css/tree.css ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/webapp/css/tree.css b/openmeetings-web/src/main/webapp/css/tree.css index 37e9a5b..beb2b1b 100644 --- a/openmeetings-web/src/main/webapp/css/tree.css +++ b/openmeetings-web/src/main/webapp/css/tree.css @@ -25,8 +25,6 @@ display: inline-block; } .file.tree .trees { - min-height: 400px; - max-height: 600px; overflow-x: hidden; overflow-y: auto; }
