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/28 12:19:28 UTC

openmeetings git commit: [OPENMEETINGS-1638] base layout + choose user dialog

Repository: openmeetings
Updated Branches:
  refs/heads/master af2650002 -> 86b3ccca8


[OPENMEETINGS-1638] base layout + choose user dialog


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

Branch: refs/heads/master
Commit: 86b3ccca8c244f5fef155e65432ec1a58e2ba77a
Parents: af26500
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Mon Aug 28 19:19:19 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Mon Aug 28 19:19:19 2017 +0700

----------------------------------------------------------------------
 .../web/room/sidebar/RoomClientPanel.html       |  2 +-
 .../web/room/wb/AbstractWbPanel.java            | 27 +++++++++++
 .../web/room/wb/InterviewWbPanel.html           | 17 +++++++
 .../openmeetings/web/room/wb/WbPanel.java       | 51 ++++++++------------
 .../openmeetings/web/room/wb/interviewwb.js     | 34 ++++++++++++-
 openmeetings-web/src/main/webapp/css/room.css   | 24 +++++++++
 6 files changed, 122 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
index 4df4dcd..c1d2d3b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
@@ -24,7 +24,7 @@
 	<span wicket:id="refresh"></span>
 	<div wicket:id="name" class="user name"></div>
 	<span class="ui-icon align-right typing-activity big"></span>
-	<span class="ui-icon align-right clickable audio-activity" wicket:message="title:372"></span>
+	<span class="ui-icon clickable audio-activity" wicket:message="title:372"></span>
 	<div wicket:id="actions" class="user actions">
 		<span wicket:id="icons"></span>
 		<span wicket:id="kick"></span>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/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 77a463b..ce4b7a3 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
@@ -20,20 +20,47 @@ package org.apache.openmeetings.web.room.wb;
 
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.html.panel.Panel;
 
 public abstract class AbstractWbPanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	protected final RoomPanel rp;
+	protected boolean inited = false;
+	private final AbstractDefaultAjaxBehavior wbLoad = new AbstractDefaultAjaxBehavior() {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void respond(AjaxRequestTarget target) {
+			StringBuilder sb = new StringBuilder("WbArea.init();");
+			internalWbLoad(sb);
+			target.appendJavaScript(sb);
+			inited = true;
+		}
+	};
 
 	public AbstractWbPanel(String id, RoomPanel rp) {
 		super(id);
 		this.rp = rp;
+		setOutputMarkupId(true);
+		add(wbLoad);
 	}
 
 	public abstract AbstractWbPanel update(IPartialPageRequestHandler handler);
 
+	void internalWbLoad(StringBuilder sb) {
+	}
+
 	public void sendFileToWb(final FileItem fi, boolean clean) {
 	}
+
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+		response.render(OnDomReadyHeaderItem.forScript(wbLoad.getCallbackScript()));
+	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/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 e16b265..7351eb8 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
@@ -20,5 +20,22 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <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>
+		</div>
+		<div class="pod-container">
+			<div class="pod">
+				<a 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>
+		<input type="hidden" class="pod-name"/>
+	</div>
 </wicket:panel>
 </html>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/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 862aceb..0c6d346 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
@@ -82,7 +82,6 @@ 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.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
@@ -110,7 +109,6 @@ public class WbPanel extends AbstractWbPanel {
 	private final static ResourceReference FABRIC_JS_REFERENCE = new JavaScriptResourceReference(WbPanel.class, "fabric.js");
 	private final Long roomId;
 	private long wb2save = -1;
-	private boolean inited = false;
 	private final Map<Long, Deque<UndoObject>> undoList = new HashMap<>();
 	private final AbstractDefaultAjaxBehavior wbAction = new AbstractDefaultAjaxBehavior() {
 		private static final long serialVersionUID = 1L;
@@ -368,38 +366,10 @@ public class WbPanel extends AbstractWbPanel {
 			return Application.getString("203");
 		}
 	};
-	private final AbstractDefaultAjaxBehavior wbLoad = new AbstractDefaultAjaxBehavior() {
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		protected void respond(AjaxRequestTarget target) {
-			StringBuilder sb = new StringBuilder("WbArea.init();");
-			Whiteboards wbs = WhiteboardCache.get(roomId);
-			for (Entry<Long, Whiteboard> entry : WhiteboardCache.list(roomId, rp.getClient().getUser().getLanguageId())) {
-				Whiteboard wb = entry.getValue();
-				sb.append(new StringBuilder("WbArea.create(").append(getAddWbJson(wb)).append(");"));
-				JSONArray arr = new JSONArray();
-				for (JSONObject o : wb.list()) {
-					arr.put(addFileUrl(wbs.getUid(), o));
-				}
-				sb.append("WbArea.load(").append(getObjWbJson(entry.getKey(), arr).toString(new NullStringer())).append(");");
-			}
-			JSONObject wbj = getWbJson(wbs.getActiveWb());
-			sb.append("WbArea.activateWb(").append(wbj).append(");");
-			Whiteboard wb = wbs.get(wbs.getActiveWb());
-			if (wb != null) {
-				sb.append("WbArea.setSlide(").append(wbj.put("slide", wb.getSlide())).append(");");
-			}
-			target.appendJavaScript(sb);
-			inited = true;
-		}
-	};
 
 	public WbPanel(String id, RoomPanel rp) {
 		super(id, rp);
 		this.roomId = rp.getRoom().getId();
-		setOutputMarkupId(true);
-		add(wbLoad);
 		if (rp.getRoom().isHidden(RoomElement.Whiteboard)) {
 			setVisible(false);
 		} else {
@@ -422,7 +392,26 @@ public class WbPanel extends AbstractWbPanel {
 		super.renderHead(response);
 		response.render(JavaScriptHeaderItem.forReference(FABRIC_JS_REFERENCE));
 		response.render(new PriorityHeaderItem(getNamedFunction(FUNC_ACTION, wbAction, explicit(PARAM_ACTION), explicit(PARAM_OBJ))));
-		response.render(OnDomReadyHeaderItem.forScript(wbLoad.getCallbackScript()));
+	}
+
+	@Override
+	void internalWbLoad(StringBuilder sb) {
+		Whiteboards wbs = WhiteboardCache.get(roomId);
+		for (Entry<Long, Whiteboard> entry : WhiteboardCache.list(roomId, rp.getClient().getUser().getLanguageId())) {
+			Whiteboard wb = entry.getValue();
+			sb.append(new StringBuilder("WbArea.create(").append(getAddWbJson(wb)).append(");"));
+			JSONArray arr = new JSONArray();
+			for (JSONObject o : wb.list()) {
+				arr.put(addFileUrl(wbs.getUid(), o));
+			}
+			sb.append("WbArea.load(").append(getObjWbJson(entry.getKey(), arr).toString(new NullStringer())).append(");");
+		}
+		JSONObject wbj = getWbJson(wbs.getActiveWb());
+		sb.append("WbArea.activateWb(").append(wbj).append(");");
+		Whiteboard wb = wbs.get(wbs.getActiveWb());
+		if (wb != null) {
+			sb.append("WbArea.setSlide(").append(wbj.put("slide", wb.getSlide())).append(");");
+		}
 	}
 
 	private static JSONObject getAddWbJson(Whiteboard wb) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/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 54a29f4..1d9a883 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
@@ -17,11 +17,43 @@
  * under the License.
  */
 var WbArea = (function() {
-	var container, area, self = {}, _inited = false;
+	var container, area, self = {}, choose, _inited = false;
 
 	self.init = function() {
 		container = $(".room.wb.area");
 		area = container.find(".wb-area");
+		$('.pod-row .pod-container .pod a')
+			.button()
+			.click(function() {
+				choose.dialog('open');
+				let sel = choose.find('.users').html('');
+				let users = $('.user.list .user');
+				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)));
+				}
+				choose.find('.pod-name').val($(this).data('pod'));
+			});
+		choose = $('#interview-choose-video');
+		choose.dialog({
+			modal: true
+			, autoOpen: false
+			, buttons: [
+				{
+					text: choose.data('btn-ok')
+					, click: function() {
+						//okHandler();
+						$(this).dialog('close');
+					}
+				}
+				, {
+					text: choose.data('btn-cancel')
+					, click: function() {
+						$(this).dialog('close');
+					}
+				}
+			]
+		});
 		_inited = true;
 	};
 	self.destroy = function() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/86b3ccca/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 d7a9cd0..f8e6536 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -125,12 +125,14 @@
 	background-size: 40px 40px;
 	background-repeat: no-repeat;
 	background-position: 2px 2px;
+	position: relative;
 }
 .room.sidebar.left .user.list .user.name {
 	line-height: 18px;
 	height: 18px;
 	padding: 0;
 	padding-left: 44px;
+	margin-right: 20px;
 	overflow: hidden;
 }
 .room.holder.small .room.sidebar.left .user.list .user.name {
@@ -142,6 +144,7 @@
 	padding: 0;
 	padding-left: 44px;
 	visibility: hidden;
+	padding-right: 20px;
 }
 .room.sidebar.left .user.list .user:hover .user.actions {
 	visibility: visible;
@@ -153,6 +156,11 @@
 .room.sidebar.left .user.list .user .ui-icon {
 	background-size: 16px;
 }
+.room.sidebar.left .user.list .user .ui-icon.audio-activity {
+	position: absolute;
+	bottom: 0px;
+	right: 3px;
+}
 .room.sidebar.left .user.list .user .ui-icon.big {
 	background-size: 32px;
 }
@@ -393,6 +401,22 @@
 	min-height: 30px;
 	overflow: hidden;
 }
+.pod-row {
+	text-align: center;
+	padding-top: 30px;
+}
+.pod-row .pod-container, .pod-row .pod-container .pod {
+	display: inline-block;
+	width: 320px;
+}
+.pod-row .pod-container .pod {
+	min-height: 260px;
+	border: 1px solid #CCCCCC;
+}
+.pod-row .pod-container .pod a {
+	margin-top:30%;
+	margin-bottom:30%;
+}
 @media screen and (max-width: 1280px) {
 	.room.sidebar.left {
 		width: 150px;