You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/12/30 15:00:15 UTC

openmeetings git commit: [OPENMEETINGS-1810] A&A redesigned

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 <so...@gmail.com>
Authored: Sat Dec 30 22:00:01 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
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;
 }