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/08/29 05:06:48 UTC

openmeetings git commit: [OPENMEETINGS-1638] video is displayed at the pod (incomplete)

Repository: openmeetings
Updated Branches:
  refs/heads/master b62b8abca -> 89d598435


[OPENMEETINGS-1638] video is displayed at the pod (incomplete)


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/89d59843
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/89d59843
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/89d59843

Branch: refs/heads/master
Commit: 89d5984355e1a802c015d1c4d54d78976830ad41
Parents: b62b8ab
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Aug 29 12:06:39 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Aug 29 12:06:39 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/db/entity/basic/Client.java    |  8 ++----
 .../org/apache/openmeetings/web/room/room.js    | 30 +++++++++++---------
 .../web/room/sidebar/RoomSidebar.html           |  2 +-
 .../web/room/sidebar/RoomSidebar.java           | 19 +++++++------
 .../sidebar/icon/activity/RoomActivityIcon.java |  2 +-
 .../web/room/wb/AbstractWbPanel.java            | 10 ++++++-
 .../web/room/wb/InterviewWbPanel.html           | 10 +++----
 .../web/room/wb/InterviewWbPanel.java           |  6 ++--
 .../openmeetings/web/room/wb/WbPanel.java       | 14 ++++-----
 .../openmeetings/web/room/wb/interviewwb.js     | 20 +++++++++----
 openmeetings-web/src/main/webapp/css/room.css   | 18 ++++++++----
 11 files changed, 81 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index b8856dc..98d9251 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -340,12 +340,8 @@ public class Client implements IClient {
 		return pod;
 	}
 
-	public void setPod(Integer i) {
-		if (i != null && i.intValue() > 0) {
-			this.pod = i.intValue() == 1 ? Pod.left : Pod.right;
-		} else {
-			this.pod = Pod.none;
-		}
+	public void setPod(Pod pod) {
+		this.pod = pod;
 	}
 
 	public boolean isCamEnabled() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index 37bfe91..d8bc471 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -53,11 +53,9 @@ var VideoUtil = (function() {
 			, bottom: winoff.top + win.height()};
 	}
 	function _getPos(list, w, h) {
-		/* TODO
-		if (isInterview) {
-			return [0, 0];
+		if (VideoManager.getOptions().interview) {
+			return {left: 0, top: 0};
 		}
-		*/
 		var wba = $(WBA_SEL);
 		var woffset = wba.offset();
 		const offsetX = 40, offsetY = 10
@@ -133,7 +131,7 @@ var VideoUtil = (function() {
 	return self;
 })();
 var Video = (function() {
-	var self = {}, c, box, v, vc, t, f, swf, size, vol;
+	var self = {}, c, v, vc, t, f, swf, size, vol;
 
 	function _getName() {
 		return c.user.firstName + ' ' + c.user.lastName;
@@ -182,9 +180,8 @@ var Video = (function() {
 			swf[0].setVolume(val);
 		}
 	}
-	function _init(_box, _uid, _c, _pos) {
+	function _init(_uid, _c, _pos) {
 		c = _c;
-		box = _box;
 		pos = _pos;
 		size = {width: c.width, height: c.height};
 		var _id = VideoUtil.getVid(c.uid)
@@ -192,7 +189,10 @@ var Video = (function() {
 			, _w = c.self ? Math.max(300, c.width) : c.width
 			, _h = c.self ? Math.max(200, c.height) : c.height
 			, opts = VideoManager.getOptions();
-		box.append($('#user-video').clone().attr('id', _id).attr('title', name).data(self));
+		{ //scope
+			let cont = opts.interview ? $('.pod.pod-' + c.pod) : $('.room.box');
+			cont.append($('#user-video').clone().attr('id', _id).attr('title', name).data(self));
+		}
 		v = $('#' + _id);
 		v.dialog({
 			classes: {
@@ -203,6 +203,9 @@ var Video = (function() {
 			, minWidth: 40
 			, minHeight: 50
 			, autoOpen: true
+			, appendTo: opts.interview ? '.pod.pod-' + c.pod : '.room.box'
+			, draggable: !opts.interview
+			, resizable: !opts.interview
 			, modal: false
 			, resizeStop: function(event, ui) {
 				var w = ui.size.width - 2
@@ -322,13 +325,12 @@ var Video = (function() {
 	return self;
 });
 var VideoManager = (function() {
-	var self = {}, box, options, share;
+	var self = {}, options, share;
 
 	function _init(_options) {
 		options = _options;
 		VideoSettings.init(self.getOptions());
-		box = $('.room.box');
-		share = box.find('.icon.shared.ui-button');
+		share = $('.room.box').find('.icon.shared.ui-button');
 	}
 	function _update(c, uids) {
 		if (options === undefined) {
@@ -344,7 +346,7 @@ var VideoManager = (function() {
 				, av = VideoUtil.hasAudio(c) || VideoUtil.hasVideo(c)
 				, v = $('#' + _id);
 			if (av && v.length != 1 && !!c.self) {
-				Video().init(box, options.uid, c, VideoUtil.getPos(VideoUtil.getRects(VID_SEL), c.width, c.height + 25));
+				Video().init(options.uid, c, VideoUtil.getPos(VideoUtil.getRects(VID_SEL), c.width, c.height + 25));
 			} else if (av && v.length == 1) {
 				v.data().update(c);
 			} else if (!av && v.length == 1) {
@@ -370,13 +372,13 @@ var VideoManager = (function() {
 			share.tooltip().off('click').click(function() {
 				var v = $('#' + VideoUtil.getVid(c.uid))
 				if (v.length != 1) {
-					Video().init(box, options.uid, c, $(WBA_SEL).offset());
+					Video().init(options.uid, c, $(WBA_SEL).offset());
 				} else {
 					v.dialog('open');
 				}
 			});
 		} else if ('sharing' !== c.type) {
-			Video().init(box, options.uid, c, VideoUtil.getPos(VideoUtil.getRects(VID_SEL), c.width, c.height + 25));
+			Video().init(options.uid, c, VideoUtil.getPos(VideoUtil.getRects(VID_SEL), c.width, c.height + 25));
 		}
 	}
 	function _close(uid) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/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 e92ae35..e44afe7 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
@@ -26,7 +26,7 @@
 	<wicket:fragment wicket:id="user-panel">
 		<div wicket:id="icons" class="user header"></div>
 		<div class="user list clear">
-			<div wicket:id="user" class="user ui-corner-all ui-widget-content">
+			<div wicket:id="user" class="user entry ui-corner-all ui-widget-content">
 				<div wicket:id="user"></div>
 			</div>
 		</div>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/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 27e5edd..44f80f5 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
@@ -201,8 +201,10 @@ public class RoomSidebar extends Panel {
 					return;
 				}
 				Activity a = 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);
-				toggleActivity(c, a);
+				toggleActivity(c, a, pod);
 			} catch (Exception e) {
 				log.error("Unexpected exception while toggle 'activity'", e);
 			}
@@ -221,7 +223,7 @@ public class RoomSidebar extends Panel {
 				if (!avInited) {
 					avInited = true;
 					if (Room.Type.conference == room.getRoom().getType()) {
-						toggleActivity(c, Activity.broadcastAV);
+						toggleActivity(c, Activity.broadcastAV, Pod.none);
 					}
 				}
 				sendUpdatedClient(c);
@@ -264,7 +266,7 @@ public class RoomSidebar extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return true;
+				return Room.Type.interview != room.getRoom().getType();
 			}
 
 			@Override
@@ -362,9 +364,10 @@ public class RoomSidebar extends Panel {
 	}
 
 	private void updateShowFiles(IPartialPageRequestHandler handler) {
-		showFiles = Room.Type.interview != room.getRoom().getType()
-				&& !room.getRoom().isHidden(RoomElement.Files)
-				&& room.getClient().hasRight(Right.presenter);
+		if (Room.Type.interview == room.getRoom().getType()) {
+			return;
+		}
+		showFiles = !room.getRoom().isHidden(RoomElement.Files) && room.getClient().hasRight(Right.presenter);
 		roomFiles.setReadOnly(!showFiles, handler);
 	}
 
@@ -392,7 +395,7 @@ public class RoomSidebar extends Panel {
 		upload.open(handler);
 	}
 
-	public void toggleActivity(Client c, Activity a) {
+	public void toggleActivity(Client c, Activity a, Pod _pod) {
 		if (c == null) {
 			return;
 		}
@@ -415,7 +418,7 @@ public class RoomSidebar extends Panel {
 				return;
 			}
 			Pod pod = c.getPod();
-			c.setPod(getRequest().getRequestParameters().getParameterValue(PARAM_POD).toOptionalInteger());
+			c.setPod(_pod);
 			if (pod != null && pod != Pod.none && pod != c.getPod()) {
 				//pod has changed, no need to toggle
 				c.set(a);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
index 3d75520..d6c13d8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
@@ -41,7 +41,7 @@ public abstract class RoomActivityIcon extends ClientIcon {
 
 	@Override
 	protected String getScript() {
-		return String.format("%s('%s', '%s', '%s');", FUNC_TOGGLE_ACTIVITY, activity.name(), uid, pod.ordinal());
+		return String.format("%s('%s', '%s', '%s');", FUNC_TOGGLE_ACTIVITY, activity.name(), uid, pod.name());
 	}
 
 	protected boolean visible() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
index ce4b7a3..c25eaa4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
@@ -29,6 +29,7 @@ import org.apache.wicket.markup.html.panel.Panel;
 
 public abstract class AbstractWbPanel extends Panel {
 	private static final long serialVersionUID = 1L;
+	protected static final String ROLE_NONE = "none";
 	protected final RoomPanel rp;
 	protected boolean inited = false;
 	private final AbstractDefaultAjaxBehavior wbLoad = new AbstractDefaultAjaxBehavior() {
@@ -50,7 +51,14 @@ public abstract class AbstractWbPanel extends Panel {
 		add(wbLoad);
 	}
 
-	public abstract AbstractWbPanel update(IPartialPageRequestHandler handler);
+	public AbstractWbPanel update(IPartialPageRequestHandler handler) {
+		if (handler != null) {
+			handler.appendJavaScript(String.format("setRoomSizes();WbArea.setRole('%s');", getRole()));
+		}
+		return this;
+	}
+
+	protected abstract String getRole();
 
 	void internalWbLoad(StringBuilder sb) {
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.html
index 7351eb8..2493835 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.html
@@ -22,19 +22,19 @@
 <wicket:panel>
 	<div class="pod-row">
 		<div class="pod-container">
-			<div class="pod">
-				<a href="#" onclick="return false;" data-pod="left"><wicket:message key="910"/></a>
+			<div class="pod pod-left">
+				<a class="middle choose-btn" href="#" onclick="return false;" data-pod="left"><wicket:message key="910"/></a>
 			</div>
 		</div>
 		<div class="pod-container">
-			<div class="pod">
-				<a href="#" onclick="return false;" data-pod="right"><wicket:message key="910"/></a>
+			<div class="pod pod-right">
+				<a class="middle choose-btn" href="#" onclick="return false;" data-pod="right"><wicket:message key="910"/></a>
 			</div>
 		</div>
 	</div>
 	<div id="interview-choose-video" wicket:message="title:910,data-btn-ok:54, data-btn-cancel:55" style="display: none">
 		<div><wicket:message key="911"/></div>
-		<select class="users"></select>
+		<select class="width250 users"></select>
 		<input type="hidden" class="pod-name"/>
 	</div>
 </wicket:panel>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
index 9975891..cf6cd5c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
@@ -19,8 +19,8 @@
 package org.apache.openmeetings.web.room.wb;
 
 import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 
@@ -33,8 +33,8 @@ public class InterviewWbPanel extends AbstractWbPanel {
 	}
 
 	@Override
-	public InterviewWbPanel update(IPartialPageRequestHandler handler) {
-		return this;
+	protected String getRole() {
+		return rp.getClient().hasRight(Right.moderator) ? Right.moderator.name() : ROLE_NONE;
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index 0c6d346..41eb7e4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -79,7 +79,6 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
 import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
@@ -424,17 +423,14 @@ public class WbPanel extends AbstractWbPanel {
 	}
 
 	@Override
-	public WbPanel update(IPartialPageRequestHandler handler) {
-		String role = "none";
+	protected String getRole() {
+		String role = ROLE_NONE;
 		if (rp.getClient().hasRight(Right.presenter)) {
-			role = "presenter";
+			role = Right.presenter.name();
 		} else if (rp.getClient().hasRight(Right.whiteBoard)) {
-			role = "whiteBoard";
+			role = Right.whiteBoard.name();
 		}
-		if (handler != null) {
-			handler.appendJavaScript(String.format("setRoomSizes();WbArea.setRole('%s');", role));
-		}
-		return this;
+		return role;
 	}
 
 	private JSONObject addFileUrl(String ruid, JSONObject _file) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interviewwb.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interviewwb.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interviewwb.js
index 1d9a883..5cee2df 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interviewwb.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interviewwb.js
@@ -16,18 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+const NONE = 'none';
 var WbArea = (function() {
-	var container, area, self = {}, choose, _inited = false;
+	var container, area, role = NONE, self = {}, choose, btns, _inited = false;
 
 	self.init = function() {
 		container = $(".room.wb.area");
 		area = container.find(".wb-area");
-		$('.pod-row .pod-container .pod a')
-			.button()
+		btns = $('.pod-row .pod-container .pod a.choose-btn');
+		btns.button()
 			.click(function() {
 				choose.dialog('open');
 				let sel = choose.find('.users').html('');
-				let users = $('.user.list .user');
+				let users = $('.user.list .user.entry');
 				for (let i = 0; i < users.length; ++i) {
 					let u = $(users[i]);
 					sel.append($('<option></option>').text(u.attr('title')).val(u.attr('id').substr(4)));
@@ -42,7 +43,7 @@ var WbArea = (function() {
 				{
 					text: choose.data('btn-ok')
 					, click: function() {
-						//okHandler();
+						toggleActivity('broadcastAV', choose.find('.users').val(), choose.find('.pod-name').val());
 						$(this).dialog('close');
 					}
 				}
@@ -56,6 +57,15 @@ var WbArea = (function() {
 		});
 		_inited = true;
 	};
+	self.setRole = function(_role) {
+		if (!_inited) return;
+		role = _role;
+		if (role !== NONE) {
+			btns.show();
+		} else {
+			btns.hide();
+		}
+	}
 	self.destroy = function() {
 	};
 	self.resize = function(posX, w, h) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/89d59843/openmeetings-web/src/main/webapp/css/room.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index f8e6536..bb4a9cc 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -403,19 +403,27 @@
 }
 .pod-row {
 	text-align: center;
-	padding-top: 30px;
+	padding-top: 40px;
 }
 .pod-row .pod-container, .pod-row .pod-container .pod {
 	display: inline-block;
 	width: 320px;
 }
+.pod-row .pod-container {
+	padding-right:10px;
+}
 .pod-row .pod-container .pod {
-	min-height: 260px;
+	height: 290px;
 	border: 1px solid #CCCCCC;
+	position: relative;
+}
+.pod-row .pod-container .pod a.middle {
+	margin-top: 30%;
+	margin-bottom: 30%;
 }
-.pod-row .pod-container .pod a {
-	margin-top:30%;
-	margin-bottom:30%;
+.width250 {
+	min-width: 250px;
+	max-width: 250px;
 }
 @media screen and (max-width: 1280px) {
 	.room.sidebar.left {