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 2018/07/15 09:35:39 UTC

[openmeetings] branch master updated (af17672 -> 22cf758)

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git.


    from af17672  [OPENMEETINGS-1876] another try to fix the issue
     new a7f6537  [OPENMEETINGS-1142] new look of interview room
     new 77f7b856 [OPENMEETINGS-1142] additional work on drag-n-drop
     new ca50e34  [OPENMEETINGS-1142] ctyles are improved
     new 4dba099  [OPENMEETINGS-1142] aspect ratio is preserved
     new e99f1a5  [OPENMEETINGS-1142] code clean-up
     new eec89c5  [OPENMEETINGS-1142] client merge is improved, pod resize is improved
     new 22cf758  [OPENMEETINGS-1142] client merge is improved, pod resize is improved

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../openmeetings/db/entity/basic/Client.java       |  27 ++--
 openmeetings-web/pom.xml                           |   1 +
 .../web/app/Application.properties.xml             |   2 -
 .../web/app/Application_ar.properties.xml          |   2 -
 .../web/app/Application_bg.properties.xml          |   2 -
 .../web/app/Application_ca.properties.xml          |   2 -
 .../web/app/Application_cs.properties.xml          |   2 -
 .../web/app/Application_da.properties.xml          |   2 -
 .../web/app/Application_de.properties.xml          |   2 -
 .../web/app/Application_el.properties.xml          |   2 -
 .../web/app/Application_es.properties.xml          |   2 -
 .../web/app/Application_fa.properties.xml          |   2 -
 .../web/app/Application_fi.properties.xml          |   2 -
 .../web/app/Application_fr.properties.xml          |   2 -
 .../web/app/Application_gl.properties.xml          |   2 -
 .../web/app/Application_he.properties.xml          |   2 -
 .../web/app/Application_hu.properties.xml          |   2 -
 .../web/app/Application_id.properties.xml          |   2 -
 .../web/app/Application_it.properties.xml          |   2 -
 .../web/app/Application_ja.properties.xml          |   2 -
 .../web/app/Application_ko.properties.xml          |   2 -
 .../web/app/Application_nl.properties.xml          |   2 -
 .../web/app/Application_pl.properties.xml          |   2 -
 .../web/app/Application_pt.properties.xml          |   2 -
 .../web/app/Application_pt_BR.properties.xml       |   2 -
 .../web/app/Application_ru.properties.xml          |   2 -
 .../web/app/Application_sk.properties.xml          |   2 -
 .../web/app/Application_sv.properties.xml          |   2 -
 .../web/app/Application_th.properties.xml          |   2 -
 .../web/app/Application_tr.properties.xml          |   2 -
 .../web/app/Application_uk.properties.xml          |   2 -
 .../web/app/Application_zh_CN.properties.xml       |   2 -
 .../web/app/Application_zh_TW.properties.xml       |   2 -
 .../apache/openmeetings/web/app/ClientManager.java |   4 +-
 .../apache/openmeetings/web/common/MainPanel.html  |   8 --
 .../apache/openmeetings/web/common/MainPanel.java  |  14 +++
 .../apache/openmeetings/web/pages/MainPage.java    |  40 ++++--
 .../apache/openmeetings/web/room/RoomPanel.java    |   9 +-
 .../sidebar/icon/activity/RoomActivityIcon.java    |   3 +-
 .../apache/openmeetings/web/room/video-manager.js  |  10 +-
 .../org/apache/openmeetings/web/room/video-util.js |   2 +-
 .../java/org/apache/openmeetings/web/room/video.js | 125 +++++++++++++------
 .../openmeetings/web/room/wb/InterviewWbPanel.html |  25 +---
 .../openmeetings/web/room/wb/interview-area.js     | 137 ++++++++++++---------
 .../org/apache/openmeetings/web/room/wb/wb-area.js |   1 +
 openmeetings-web/src/main/webapp/css/room.css      | 114 ++++++++++++++---
 openmeetings-web/src/main/webapp/css/wb.css        |  26 ----
 pom.xml                                            |   4 +-
 48 files changed, 349 insertions(+), 263 deletions(-)


[openmeetings] 02/07: [OPENMEETINGS-1142] additional work on drag-n-drop

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 77f7b85677704e5e13d74acc90389e94fb3087b6
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Jun 27 16:31:54 2018 +0700

    [OPENMEETINGS-1142] additional work on drag-n-drop
---
 .../apache/openmeetings/web/room/video-manager.js  |  3 +-
 .../java/org/apache/openmeetings/web/room/video.js | 38 ++++-------------
 .../openmeetings/web/room/wb/interview-area.js     | 47 ++++++++++++++++++++--
 .../org/apache/openmeetings/web/room/wb/wb-area.js |  1 +
 pom.xml                                            |  4 +-
 5 files changed, 56 insertions(+), 37 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
index 126feb4..e4b071f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
@@ -167,8 +167,9 @@ var VideoManager = (function() {
 		if (v.dialog('instance') !== undefined) {
 			v.dialog('destroy');
 		}
-		v.parent('.pod').remove();
+		v.parents('.pod').remove();
 		v.remove();
+		WbArea.updateAreaClass();
 	}
 	function _play(c) {
 		if (!inited) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
index 499f15f..034aac8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
@@ -15,15 +15,18 @@ var Video = (function() {
 		_resizeDlgArea(_w, h);
 		return h;
 	}
+	function _vidResize(_w, _h) {
+		try {
+			swf[0].vidResize(Math.floor(_w), Math.floor(_h));
+		} catch (err) {}
+	}
 	function _resizeDlgArea(_w, _h) {
 		v.dialog('option', 'width', _w).dialog('option', 'height', _h);
 		const h = _h - _getExtra();
 		_resize(_w, h);
 		if (Room.getOptions().interview) {
 			v.dialog('widget').css(VideoUtil.getPos());
-			try {
-				swf[0].vidResize(Math.floor(_w), Math.floor(h));
-			} catch (err) {}
+			_vidResize(_w, h);
 		}
 	}
 	function _resizePod() {
@@ -89,35 +92,10 @@ var Video = (function() {
 		let contSel;
 		if (opts.interview) {
 			const area = $('.pod-area');
-			let count = area.find('.video.user-video').length;
-			const empt = area.find('.empty');
-			if (count == 0) {
-				empt.length == 0 && area.append($('<div class="empty"></div>'));
-			} else {
-				empt.remove();
-			}
-			//FIXME TODO add 'pod-big' logic
 			const contId = UUID.generate();
 			contSel = '#' + contId;
 			area.append($('<div class="pod"></div>').attr('id', contId));
-			count++; //FIXME TODO conditional 'pod-big' logic
-			if (count < 3) {
-				area.attr('class', 'pod-area max2');
-			} else if (count < 4) {
-				area.attr('class', 'pod-area max3');
-			} else if (count < 6) {
-				area.attr('class', 'pod-area max5');
-			} else if (count < 10) {
-				area.attr('class', 'pod-area max9');
-			} else if (count < 14) {
-				area.attr('class', 'pod-area max13');
-			} else if (count < 18) {
-				area.attr('class', 'pod-area max17');
-			} else if (count < 26) {
-				area.attr('class', 'pod-area max25');
-			} else if (count < 34) {
-				area.attr('class', 'pod-area max33');
-			}
+			WbArea.updateAreaClass();
 		} else {
 			contSel = '.room.box';
 		}
@@ -142,7 +120,7 @@ var Video = (function() {
 				const w = ui.size.width - 2
 					, h = ui.size.height - t.height() - 4 - (f.is(':visible') ? f.height() : 0);
 				_resize(w, h);
-				swf[0].vidResize(w, h);
+				vidResize(w, h);
 			});
 			if (VideoUtil.isSharing(c)) {
 				v.on('dialogclose', function() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index b2029bc..9d5458d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -22,10 +22,19 @@ var InterviewWbArea = function() {
 			accept: '.pod'
 			, activeClass: 'ui-hightlight'
 			, drop: function(event, ui) {
-				const vid = ui.draggable.find('.ui-dialog-content');
-				vid.dialog('option', 'appendTo', $(this));
-				ui.draggable.remove();
-				_resizePod($(this));
+				const big = $(this)
+					, vid = ui.draggable.find('.ui-dialog-content')
+					, cvid = big.find('.ui-dialog-content');
+				if (cvid.length === 0) {
+					vid.dialog('option', 'appendTo', big);
+					ui.draggable.remove();
+					_resizePod(big);
+				} else {
+					cvid.dialog('option', 'appendTo', ui.draggable);
+					vid.dialog('option', 'appendTo', big);
+					_resizePod();
+				}
+				_updateAreaClass();
 			}
 		});
 		pArea.sortable({
@@ -35,6 +44,7 @@ var InterviewWbArea = function() {
 				console.log('changed');
 			}
 		});
+		_updateAreaClass();
 		_inited = true;
 	}
 	function _setRole(_role) {
@@ -64,6 +74,34 @@ var InterviewWbArea = function() {
 			.attr('title', rec.data(started ? 'title-stop' : 'title-start'))
 			.button('option', {icon: started ? 'ui-icon-stop' : 'ui-icon-play'});
 	}
+	function _updateAreaClass() {
+		const count = pArea.find('.pod:not(.ui-helper,.ui-sortable-placeholder)').length
+			, empt = pArea.find('.empty');
+		if (count < 2) {
+			empt.length == 0 && pArea.append($('<div class="empty"></div>'));
+		} else {
+			empt.remove();
+		}
+		let cls = 'pod-area ';
+		if (count < 2) {
+			cls +='max2';
+		} else if (count < 3) {
+			cls +='max3';
+		} else if (count < 5) {
+			cls +='max5';
+		} else if (count < 9) {
+			cls +='max9';
+		} else if (count < 13) {
+			cls +='max13';
+		} else if (count < 17) {
+			cls +='max17';
+		} else if (count < 25) {
+			cls +='max25';
+		} else if (count < 33) {
+			cls +='max33';
+		}
+		pArea.attr('class', cls);
+	}
 
 	self.init = _init;
 	self.destroy = function() {
@@ -75,5 +113,6 @@ var InterviewWbArea = function() {
 	self.setRecStarted = _setRecStarted;
 	self.addDeleteHandler = function() {};
 	self.removeDeleteHandler = function() {};
+	self.updateAreaClass = _updateAreaClass;
 	return self;
 };
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
index dff9e3a..3c34203 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
@@ -338,5 +338,6 @@ var DrawWbArea = function() {
 	self.removeDeleteHandler = function() {
 		$(window).off('keyup', _deleteHandler);
 	};
+	self.updateAreaClass = function() {};
 	return self;
 };
diff --git a/pom.xml b/pom.xml
index 1f6203a..35d9a99 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
 		<db>derby</db>
 		<jdk.version>1.8</jdk.version>
 		<!-- plugin versions -->
-		<maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
+		<maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
 		<maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
 		<maven-site-plugin.version>3.7.1</maven-site-plugin.version>
 		<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
@@ -932,7 +932,7 @@
 					<artifactId>maven-javadoc-plugin</artifactId>
 					<version>${maven-javadoc-plugin.version}</version>
 					<configuration>
-						<additionalparam>-Xdoclint:none</additionalparam>
+						<additionalparam>-Xdoclint:none -html5</additionalparam>
 						<source>${jdk.version}</source>
 						<javadocVersion>${jdk.version}</javadocVersion>
 					</configuration>


[openmeetings] 03/07: [OPENMEETINGS-1142] ctyles are improved

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit ca50e34b710abe262160dda05bc2456e4198dc5c
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Jun 27 18:08:07 2018 +0700

    [OPENMEETINGS-1142] ctyles are improved
---
 .../openmeetings/web/room/wb/InterviewWbPanel.html |  2 +-
 openmeetings-web/src/main/webapp/css/room.css      | 38 +++++++++++++++++++++-
 openmeetings-web/src/main/webapp/css/wb.css        | 26 ---------------
 3 files changed, 38 insertions(+), 28 deletions(-)

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 0f8cc83..8194818 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
@@ -23,7 +23,7 @@
 	<div class="pod-area" style="width: 1000px;height: 600px;">
 		<div class="pod-big"></div>
 	</div>
-	<div style="border-radius: 20px; position: absolute; right: 30px; bottom: 30px;" class="rec-btn" wicket:message="data-title-start:913,data-title-stop:914">
+	<div class="rec-btn" wicket:message="data-title-start:913,data-title-stop:914">
 		&nbsp;
 	</div>
 </wicket:panel>
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index 44919fc..3ea79c1 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -532,11 +532,47 @@
 .pod-area .pod-big.ui-hightlight {
 	box-shadow: 3px 3px 4px blue;
 }
-
 .width250 {
 	min-width: 250px;
 	max-width: 250px;
 }
+.room.box.interview #quick-vote {
+	z-index: 100;
+	right: 10px;
+}
+.room.box.interview .room.wb.area .wb-area .rec-btn {
+	z-index: 100;
+	border-radius: 20px;
+	position: absolute;
+	right: 200px;
+	bottom: 30px;
+}
+#quick-vote {
+	position: absolute;
+	right: 40px;
+	bottom: 40px;
+	padding: 5px;
+	background-color: aquamarine;
+}
+#quick-vote .control {
+	display: inline-block;
+	width: 40px;
+	height: 40px;
+	background-repeat: no-repeat;
+	background-size: 35px;
+	position: relative;
+}
+#quick-vote .control.pro {
+	background-image: url(images/add.png);
+}
+#quick-vote .control.con {
+	background-image: url(images/cancel.png);
+}
+#quick-vote .control .badge {
+	position: absolute;
+	right: 0;
+	bottom: 0;
+}
 @media screen and (max-width: 1280px) {
 	.room.sidebar {
 		width: 155px;
diff --git a/openmeetings-web/src/main/webapp/css/wb.css b/openmeetings-web/src/main/webapp/css/wb.css
index fff1226..2f80575 100644
--- a/openmeetings-web/src/main/webapp/css/wb.css
+++ b/openmeetings-web/src/main/webapp/css/wb.css
@@ -291,29 +291,3 @@
 .wb-area .wb-zoom button.up {
 	background-image: url(images/page_up.png);
 }
-#quick-vote {
-	position: absolute;
-	right: 40px;
-	bottom: 40px;
-	padding: 5px;
-	background-color: aquamarine;
-}
-#quick-vote .control {
-	display: inline-block;
-	width: 40px;
-	height: 40px;
-	background-repeat: no-repeat;
-	background-size: 35px;
-	position: relative;
-}
-#quick-vote .control.pro {
-	background-image: url(images/add.png);
-}
-#quick-vote .control.con {
-	background-image: url(images/cancel.png);
-}
-#quick-vote .control .badge {
-	position: absolute;
-	right: 0;
-	bottom: 0;
-}


[openmeetings] 06/07: [OPENMEETINGS-1142] client merge is improved, pod resize is improved

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit eec89c5f9f2c2877fd943c205fc3c84b89ac6321
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jun 28 16:23:56 2018 +0700

    [OPENMEETINGS-1142] client merge is improved, pod resize is improved
---
 .../openmeetings/db/entity/basic/Client.java       | 31 +++++++++++++---------
 .../apache/openmeetings/web/room/RoomPanel.java    |  4 +--
 .../openmeetings/web/room/wb/interview-area.js     |  8 +++---
 3 files changed, 25 insertions(+), 18 deletions(-)

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 4da9b6c..1b95d75 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
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.mina.util.ConcurrentHashSet;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -64,9 +65,9 @@ public class Client implements IClient, IWsClient {
 	private final String uid;
 	private final String sid;
 	private String remoteAddress;
-	private final Set<Right> rights = new HashSet<>();
-	private final Set<Activity> activities = new HashSet<>();
-	private final Set<String> streams = new HashSet<>();
+	private final Set<Right> rights = new ConcurrentHashSet<>();
+	private final Set<Activity> activities = new ConcurrentHashSet<>();
+	private final Set<String> streams = new ConcurrentHashSet<>();
 	private final Date connectedSince;
 	private Pod pod;
 	private int cam = -1;
@@ -441,15 +442,21 @@ public class Client implements IClient, IWsClient {
 	public void merge(Client c) {
 		user = c.user;
 		room = c.room;
-		Set<Right> rr = new HashSet<>(c.rights);
-		rights.clear();
-		rights.addAll(rr);
-		Set<Activity> aa = new HashSet<>(c.activities);
-		activities.clear();
-		activities.addAll(aa);
-		Set<String> ss = new HashSet<>(c.streams);
-		streams.clear();
-		streams.addAll(ss);
+		synchronized (rights) {
+			Set<Right> rr = new HashSet<>(c.rights);
+			rights.clear();
+			rights.addAll(rr);
+		}
+		synchronized (activities) {
+			Set<Activity> aa = new HashSet<>(c.activities);
+			activities.clear();
+			activities.addAll(aa);
+		}
+		synchronized (streams) {
+			Set<String> ss = new HashSet<>(c.streams);
+			streams.clear();
+			streams.addAll(ss);
+		}
 		pod = c.pod;
 		cam = c.cam;
 		mic = c.mic;
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 bf41dc0..a4791b0 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
@@ -643,9 +643,9 @@ public class RoomPanel extends BasePanel {
 						break;
 					}
 				}
-				handler.appendJavaScript(String.format("WbArea.setRecStarted(false);WbArea.setRecEnabled(%s);", hasStreams));
+				handler.appendJavaScript(String.format("if (typeof(WbArea) === 'object') {WbArea.setRecStarted(false);WbArea.setRecEnabled(%s);}", hasStreams));
 			} else {
-				handler.appendJavaScript("WbArea.setRecStarted(true);");
+				handler.appendJavaScript("if (typeof(WbArea) === 'object') {WbArea.setRecStarted(true);}");
 			}
 		}
 	}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index 9d5458d..b37c7a8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -28,13 +28,13 @@ var InterviewWbArea = function() {
 				if (cvid.length === 0) {
 					vid.dialog('option', 'appendTo', big);
 					ui.draggable.remove();
-					_resizePod(big);
 				} else {
 					cvid.dialog('option', 'appendTo', ui.draggable);
 					vid.dialog('option', 'appendTo', big);
-					_resizePod();
 				}
+				pArea.find('.ui-sortable-placeholder.pod').hide();
 				_updateAreaClass();
+				_resizePod();
 			}
 		});
 		pArea.sortable({
@@ -51,8 +51,8 @@ var InterviewWbArea = function() {
 		if (!_inited) return;
 		role = _role;
 	}
-	function _resizePod(el) {
-		(el || pArea).find('.ui-dialog-content').each(function() {
+	function _resizePod() {
+		pArea.find('.ui-dialog-content').each(function() {
 			$(this).data().resizePod();
 		});
 	}


[openmeetings] 04/07: [OPENMEETINGS-1142] aspect ratio is preserved

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 4dba099b2460220e1960c1d40eb2de752cec27ba
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Jun 27 23:53:20 2018 +0700

    [OPENMEETINGS-1142] aspect ratio is preserved
---
 .../src/main/java/org/apache/openmeetings/db/entity/basic/Client.java | 2 +-
 .../src/main/java/org/apache/openmeetings/web/app/ClientManager.java  | 4 +++-
 .../src/main/java/org/apache/openmeetings/web/room/RoomPanel.java     | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

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 8f1cfbf..4da9b6c 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
@@ -154,7 +154,7 @@ public class Client implements IClient, IWsClient {
 		if (Right.superModerator == right) {
 			return rights.contains(right);
 		}
-		return rights.contains(Right.superModerator) || rights.contains(Right.moderator) ? true : rights.contains(right);
+		return rights.contains(Right.superModerator) || rights.contains(Right.moderator) || rights.contains(right);
 	}
 
 	public Client allow(Right... _rights) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 45e9ad7..f8b2f5b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -96,8 +96,10 @@ public class ClientManager implements IClientManager {
 
 	@Override
 	public Client update(Client c) {
-		onlineClients.get(c.getUid()).merge(c);
 		map().put(c.getUid(), c);
+		synchronized (onlineClients) {
+			onlineClients.get(c.getUid()).merge(c);
+		}
 		return c;
 	}
 
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 2aeb150..bf41dc0 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
@@ -666,7 +666,7 @@ public class RoomPanel extends BasePanel {
 				if (!rr.isEmpty()) {
 					c.allow(rr);
 					cm.update(c);
-					log.info("Setting rights for client:: {}", rr);
+					log.info("Setting rights for client:: {} -> {}", rr, cm.get(c.getUid()).hasRight(Right.moderator));
 				}
 			}
 		}


[openmeetings] 07/07: [OPENMEETINGS-1142] client merge is improved, pod resize is improved

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 22cf75803f52ad98f6154999c23cb1548bc3827f
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jun 28 17:34:19 2018 +0700

    [OPENMEETINGS-1142] client merge is improved, pod resize is improved
---
 .../main/java/org/apache/openmeetings/db/entity/basic/Client.java   | 6 +++---
 .../main/java/org/apache/openmeetings/web/room/wb/interview-area.js | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

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 1b95d75..3c789f5 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
@@ -442,18 +442,18 @@ public class Client implements IClient, IWsClient {
 	public void merge(Client c) {
 		user = c.user;
 		room = c.room;
+		Set<Right> rr = new HashSet<>(c.rights);
 		synchronized (rights) {
-			Set<Right> rr = new HashSet<>(c.rights);
 			rights.clear();
 			rights.addAll(rr);
 		}
+		Set<Activity> aa = new HashSet<>(c.activities);
 		synchronized (activities) {
-			Set<Activity> aa = new HashSet<>(c.activities);
 			activities.clear();
 			activities.addAll(aa);
 		}
+		Set<String> ss = new HashSet<>(c.streams);
 		synchronized (streams) {
-			Set<String> ss = new HashSet<>(c.streams);
 			streams.clear();
 			streams.addAll(ss);
 		}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index b37c7a8..73bbf4d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -34,7 +34,6 @@ var InterviewWbArea = function() {
 				}
 				pArea.find('.ui-sortable-placeholder.pod').hide();
 				_updateAreaClass();
-				_resizePod();
 			}
 		});
 		pArea.sortable({
@@ -101,6 +100,7 @@ var InterviewWbArea = function() {
 			cls +='max33';
 		}
 		pArea.attr('class', cls);
+		_resizePod();
 	}
 
 	self.init = _init;


[openmeetings] 01/07: [OPENMEETINGS-1142] new look of interview room

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit a7f653783457b9cff47fbda7e055b6ed65ebbf53
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Jun 27 00:21:20 2018 +0700

    [OPENMEETINGS-1142] new look of interview room
---
 openmeetings-web/pom.xml                           |   1 +
 .../web/app/Application.properties.xml             |   2 -
 .../web/app/Application_ar.properties.xml          |   2 -
 .../web/app/Application_bg.properties.xml          |   2 -
 .../web/app/Application_ca.properties.xml          |   2 -
 .../web/app/Application_cs.properties.xml          |   2 -
 .../web/app/Application_da.properties.xml          |   2 -
 .../web/app/Application_de.properties.xml          |   2 -
 .../web/app/Application_el.properties.xml          |   2 -
 .../web/app/Application_es.properties.xml          |   2 -
 .../web/app/Application_fa.properties.xml          |   2 -
 .../web/app/Application_fi.properties.xml          |   2 -
 .../web/app/Application_fr.properties.xml          |   2 -
 .../web/app/Application_gl.properties.xml          |   2 -
 .../web/app/Application_he.properties.xml          |   2 -
 .../web/app/Application_hu.properties.xml          |   2 -
 .../web/app/Application_id.properties.xml          |   2 -
 .../web/app/Application_it.properties.xml          |   2 -
 .../web/app/Application_ja.properties.xml          |   2 -
 .../web/app/Application_ko.properties.xml          |   2 -
 .../web/app/Application_nl.properties.xml          |   2 -
 .../web/app/Application_pl.properties.xml          |   2 -
 .../web/app/Application_pt.properties.xml          |   2 -
 .../web/app/Application_pt_BR.properties.xml       |   2 -
 .../web/app/Application_ru.properties.xml          |   2 -
 .../web/app/Application_sk.properties.xml          |   2 -
 .../web/app/Application_sv.properties.xml          |   2 -
 .../web/app/Application_th.properties.xml          |   2 -
 .../web/app/Application_tr.properties.xml          |   2 -
 .../web/app/Application_uk.properties.xml          |   2 -
 .../web/app/Application_zh_CN.properties.xml       |   2 -
 .../web/app/Application_zh_TW.properties.xml       |   2 -
 .../apache/openmeetings/web/common/MainPanel.html  |   8 --
 .../apache/openmeetings/web/common/MainPanel.java  |  14 ++
 .../apache/openmeetings/web/pages/MainPage.java    |  40 ++++--
 .../apache/openmeetings/web/room/RoomPanel.java    |   9 +-
 .../sidebar/icon/activity/RoomActivityIcon.java    |   3 +-
 .../apache/openmeetings/web/room/video-manager.js  |   9 +-
 .../org/apache/openmeetings/web/room/video-util.js |   2 +-
 .../java/org/apache/openmeetings/web/room/video.js | 147 +++++++++++++++------
 .../openmeetings/web/room/wb/InterviewWbPanel.html |  25 +---
 .../openmeetings/web/room/wb/interview-area.js     |  98 ++++++--------
 openmeetings-web/src/main/webapp/css/room.css      |  78 +++++++++--
 43 files changed, 272 insertions(+), 224 deletions(-)

diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index f616e02..9da72b4 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -133,6 +133,7 @@
 							<jsSourceDir>../java/org/apache/openmeetings/web/room/wb</jsSourceDir>
 							<jsSourceFiles>
 								<jsSourceFile>wb-all.js</jsSourceFile>
+								<jsSourceFile>uuid.js</jsSourceFile>
 								<jsSourceFile>interview-area.js</jsSourceFile>
 							</jsSourceFiles>
 							<jsFinalFile>interviewwb.js</jsFinalFile>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index b31b896..b1055fa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the recording]]></entry>
 	<entry key="888"><![CDATA[The recording is not yet ready for watching]]></entry>
-	<entry key="910"><![CDATA[Choose the user for this video]]></entry>
-	<entry key="911"><![CDATA[Available users for this pod]]></entry>
 	<entry key="913"><![CDATA[Start recording]]></entry>
 	<entry key="914"><![CDATA[Stop recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index b8a0618..65969f3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index bf4d246..983bb71 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index c32c77d..a39c81d4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Permissos]]></entry>
 	<entry key="887"><![CDATA[Hi ha hagut errors mentre es processava gravació.]]></entry>
 	<entry key="888"><![CDATA[La gravació encara no aquesta llista. Intenti'l de nou en un parell de minuts.]]></entry>
-	<entry key="910"><![CDATA[Seleccioneu l'usuari d'aquest vídeo]]></entry>
-	<entry key="911"><![CDATA[Usuaris disponibles per aquesta POD]]></entry>
 	<entry key="913"><![CDATA[Començar la gravació]]></entry>
 	<entry key="914"><![CDATA[Aturar la gravació]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index 9d65357..623d7d5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index a6e5be6..198b934 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rettigheder]]></entry>
 	<entry key="887"><![CDATA[Der har været fejl under processionen af optagelsen.]]></entry>
 	<entry key="888"><![CDATA[Optagelsen er ikke klar til at blive set. Prøv venligst igen om et par minutter.]]></entry>
-	<entry key="910"><![CDATA[Vælg bruger for denne video]]></entry>
-	<entry key="911"><![CDATA[Bruge tilgængelige for denne Pod]]></entry>
 	<entry key="913"><![CDATA[Start optagelse]]></entry>
 	<entry key="914"><![CDATA[Stop optagelse]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index eab0f61..0e22382 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rechte]]></entry>
 	<entry key="887"><![CDATA[Es gab Fehler beim Verarbeiten der Aufzeichnung.]]></entry>
 	<entry key="888"><![CDATA[Die Aufzeichnung ist noch nicht zur Wiedergabe bereit. Versuchen Sie es in einigen Minuten erneut.]]></entry>
-	<entry key="910"><![CDATA[Nutzer für dieses Video auswählen]]></entry>
-	<entry key="911"><![CDATA[Verfügbare Nutzer für dieses Pod]]></entry>
 	<entry key="913"><![CDATA[Aufzeichnung starten]]></entry>
 	<entry key="914"><![CDATA[Aufzeichnung stoppen]]></entry>
 	<entry key="923"><![CDATA[Größe Homeverzeichnis]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index bf3eee2..d2261e6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index 882341d..eb01da6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Permisos]]></entry>
 	<entry key="887"><![CDATA[Ha habido errores mientras se procesaba la grabación.]]></entry>
 	<entry key="888"><![CDATA[La grabación aún no esta lista. Inténtelo de nuevo en un par de minutos.]]></entry>
-	<entry key="910"><![CDATA[Seleccione el usuario para este vídeo]]></entry>
-	<entry key="911"><![CDATA[Usuarios disponsibles para esta transmisión Pod]]></entry>
 	<entry key="913"><![CDATA[Iniciar Grabación]]></entry>
 	<entry key="914"><![CDATA[Parar Grabación]]></entry>
 	<entry key="923"><![CDATA[Tamaño del dispositivo personal]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index 739f28d..a3e8e2a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[حقوق]]></entry>
 	<entry key="887"><![CDATA[وجود مشکلات در حین اجرای ضبط]]></entry>
 	<entry key="888"><![CDATA[ضبط هنوز آماده برای مشاهده نیست.لطفا دو دقیقه دیگر دوباره تلاش کنید.]]></entry>
-	<entry key="910"><![CDATA[انتخاب کاربر برای این ویدیو]]></entry>
-	<entry key="911"><![CDATA[کاربران موجود برای این پاد]]></entry>
 	<entry key="913"><![CDATA[شروع ضبط]]></entry>
 	<entry key="914"><![CDATA[توقف ضبط]]></entry>
 	<entry key="923"><![CDATA[اندازه درایو خانگی]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index bdb6857..1f892ad 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index 076018b..84fe29a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Droits]]></entry>
 	<entry key="887"><![CDATA[Il y a eu des erreurs durant le traitement de l'enregistrement.]]></entry>
 	<entry key="888"><![CDATA[L'enregistrement n'est pas encore prêt à être visionné. Veuillez réessayer dans quelques minutes.]]></entry>
-	<entry key="910"><![CDATA[Choisissez l'utilisateur pour cette vidéo]]></entry>
-	<entry key="911"><![CDATA[Utilisateurs disponibles pour ce conteneur]]></entry>
 	<entry key="913"><![CDATA[Démarrer l'enregistr.]]></entry>
 	<entry key="914"><![CDATA[Arrêter l'enregistr.]]></entry>
 	<entry key="923"><![CDATA[Taille du disque local]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index 46305ae..6e22364 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Permisos]]></entry>
 	<entry key="887"><![CDATA[Houbo algún erro mentres de procesaba a gravación.]]></entry>
 	<entry key="888"><![CDATA[La grabación no está aínda preparada para ver. Tenteo de novo dentro dun par de minutos.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index b31b896..b1055fa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the recording]]></entry>
 	<entry key="888"><![CDATA[The recording is not yet ready for watching]]></entry>
-	<entry key="910"><![CDATA[Choose the user for this video]]></entry>
-	<entry key="911"><![CDATA[Available users for this pod]]></entry>
 	<entry key="913"><![CDATA[Start recording]]></entry>
 	<entry key="914"><![CDATA[Stop recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index e0e6437..2d0db96 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rendben]]></entry>
 	<entry key="887"><![CDATA[Hiba történt a felvétel készítése közben.]]></entry>
 	<entry key="888"><![CDATA[A felvétel még nem nézhewtő vissza. Kérjük próbálja ismét pár perc múlva.]]></entry>
-	<entry key="910"><![CDATA[Felhasználó kiválasztotta ezt a videót]]></entry>
-	<entry key="911"><![CDATA[Ezen a felületen elérhető felhasználók]]></entry>
 	<entry key="913"><![CDATA[Felvétel indítása]]></entry>
 	<entry key="914"><![CDATA[Felvétel megállítása]]></entry>
 	<entry key="923"><![CDATA[Privát meghajtó mérete]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
index ded7675..d39c8f7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index 467b687..bb73611 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Permessi]]></entry>
 	<entry key="887"><![CDATA[Ci sono stati errori nell'elaborazione della Registrazione.]]></entry>
 	<entry key="888"><![CDATA[La registrazione non è pronta per la visione.]]></entry>
-	<entry key="910"><![CDATA[Scegli gli utenti per questo Video]]></entry>
-	<entry key="911"><![CDATA[Utenti disponibili per questo riquadro]]></entry>
 	<entry key="913"><![CDATA[Avvia Registrazione]]></entry>
 	<entry key="914"><![CDATA[Ferma Registrazione]]></entry>
 	<entry key="923"><![CDATA[Dimensione spazio Utente]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index 87385a5..b4b6ba8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[権限]]></entry>
 	<entry key="887"><![CDATA[録画の処理中にエラーが発生しました。]]></entry>
 	<entry key="888"><![CDATA[録画視聴の準備がまだ整っていません。数分後に再実行してください。]]></entry>
-	<entry key="910"><![CDATA[ビデオ表示するユーザーを選択]]></entry>
-	<entry key="911"><![CDATA[ポッド利用ユーザー数]]></entry>
 	<entry key="913"><![CDATA[録画・録音を開始]]></entry>
 	<entry key="914"><![CDATA[録画・録音を停止]]></entry>
 	<entry key="923"><![CDATA[ホーム・ドライブ使用量]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index a0feceb..a6ade4d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index 146c318..196834b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 2569904..7609904 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index f7b151c..ef917b5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index b9e42ac..4f9c1c1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Direitos]]></entry>
 	<entry key="887"><![CDATA[Os erros aconteceram no processo de gravação.]]></entry>
 	<entry key="888"><![CDATA[A visualização da gravação ainda não está pronta. Por favor tente novamente em alguns minutos.]]></entry>
-	<entry key="910"><![CDATA[Escolha o usuário para este vídeo]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Iniciar gravação]]></entry>
 	<entry key="914"><![CDATA[Parar gravação]]></entry>
 	<entry key="923"><![CDATA[Tamanho da unidade]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index 994e44f..d3a5744 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Права]]></entry>
 	<entry key="887"><![CDATA[При обработке записи возникли ошибки.]]></entry>
 	<entry key="888"><![CDATA[Запись ещё не готова. Попробуйте снова через пару минут.]]></entry>
-	<entry key="910"><![CDATA[Выберите пользователя для этого видео]]></entry>
-	<entry key="911"><![CDATA[Доступные пользователи для этого Pod]]></entry>
 	<entry key="913"><![CDATA[Начать запись]]></entry>
 	<entry key="914"><![CDATA[Остановить запись]]></entry>
 	<entry key="923"><![CDATA[Размер домашнего накопителя]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index a828297..fe5dc1c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Práva]]></entry>
 	<entry key="887"><![CDATA[Nastala chyba počas nahrávania]]></entry>
 	<entry key="888"><![CDATA[Nahrávka nie je ešte hotová na prezeranie]]></entry>
-	<entry key="910"><![CDATA[Vybrať používateľa pre toto video]]></entry>
-	<entry key="911"><![CDATA[Používatelia k dispozícií]]></entry>
 	<entry key="913"><![CDATA[Začať nahrávanie]]></entry>
 	<entry key="914"><![CDATA[Ukončiť nahrávanie]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index d1b7f37..283e477 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 310a99c..40d999a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index e36d002..849e6ee 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index 78363a8..5ea461c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Права]]></entry>
 	<entry key="887"><![CDATA[При обробці записи виникли помилки.]]></entry>
 	<entry key="888"><![CDATA[Запис ще не готова. Спробуйте знову через пару хвилин.]]></entry>
-	<entry key="910"><![CDATA[Виберіть користувача для цього відео]]></entry>
-	<entry key="911"><![CDATA[Доступні користувачі для цього Pod]]></entry>
 	<entry key="913"><![CDATA[Почати запис]]></entry>
 	<entry key="914"><![CDATA[Зупинити запис]]></entry>
 	<entry key="923"><![CDATA[Розмір домашнього накопичувача]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index 360cd97..3667880 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[权利]]></entry>
 	<entry key="887"><![CDATA[在处理记录时出错]]></entry>
 	<entry key="888"><![CDATA[记录未准备好,请过几分钟再试]]></entry>
-	<entry key="910"><![CDATA[会议人员邀请]]></entry>
-	<entry key="911"><![CDATA[会议可邀请的人员]]></entry>
 	<entry key="913"><![CDATA[开始录制]]></entry>
 	<entry key="914"><![CDATA[结束录制]]></entry>
 	<entry key="923"><![CDATA[私有记录文件大小]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 319827a..006d15a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -352,8 +352,6 @@ see http://openmeetings.apache.org/LanguageEditor.html for Details
 	<entry key="881"><![CDATA[Rights]]></entry>
 	<entry key="887"><![CDATA[The have been errors while processing the Recording.]]></entry>
 	<entry key="888"><![CDATA[The Recording is not yet ready for watching. Please retry in a couple of minutes again.]]></entry>
-	<entry key="910"><![CDATA[Choose the User for this Video]]></entry>
-	<entry key="911"><![CDATA[Available Users for this Pod]]></entry>
 	<entry key="913"><![CDATA[Start Recording]]></entry>
 	<entry key="914"><![CDATA[Stop Recording]]></entry>
 	<entry key="923"><![CDATA[Home drive size]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
index 1b12cce..7f0a0af 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.html
@@ -29,14 +29,6 @@
 	</script>
 </wicket:head>
 <wicket:panel>
-	<script type="text/javascript">
-		$(function() {
-			Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_FAILURE, hideBusyIndicator);
-			Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_BEFORE, showBusyIndicator);
-			Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_SUCCESS, hideBusyIndicator);
-			Wicket.Event.subscribe(Wicket.Event.Topic.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
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index dbcde27..30d2770 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -69,6 +69,7 @@ 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.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
@@ -125,6 +126,18 @@ public class MainPanel extends Panel {
 			private static final long serialVersionUID = 1L;
 
 			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				super.renderHead(component, response);
+				StringBuilder handlers = new StringBuilder()
+						.append("Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_FAILURE, hideBusyIndicator);")
+						.append("Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_BEFORE, showBusyIndicator);")
+						.append("Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_SUCCESS, hideBusyIndicator);")
+						.append("Wicket.Event.subscribe(Wicket.Event.Topic.AJAX_CALL_COMPLETE, hideBusyIndicator);")
+						.append("Wicket.Event.subscribe(Wicket.Event.Topic.WebSocket.Opened, function() { Wicket.WebSocket.send('socketConnected'); });");
+				response.render(OnDomReadyHeaderItem.forScript(handlers));
+			}
+
+			@Override
 			protected void onConnect(ConnectedMessage msg) {
 				ExtendedClientProperties cp = WebSession.get().getExtendedProperties();
 				final Client client = new Client(getSession().getId(), msg.getKey().hashCode(), getUserId(), userDao);
@@ -372,6 +385,7 @@ public class MainPanel extends Panel {
 
 	public void updateContents(OmUrlFragment f, IPartialPageRequestHandler handler, boolean updateFragment) {
 		BasePanel npanel = getPanel(f.getArea(), f.getType());
+		log.debug("updateContents:: npanels IS null ? {}, client IS null ? {}", npanel == null, getClient() == null);
 		if (npanel != null) {
 			if (getClient() != null) {
 				updateContents(npanel, handler);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
index 92db807..cbeb4cd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
@@ -18,10 +18,12 @@
  */
 package org.apache.openmeetings.web.pages;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.openmeetings.web.util.OmUrlFragment;
-import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
@@ -32,21 +34,26 @@ import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
 import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.util.time.Duration;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
 @AuthorizeInstantiation({"Admin", "Dashboard", "Room"})
 public class MainPage extends BaseInitedPage {
 	private static final long serialVersionUID = 1L;
+	private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, getWebAppRootKey());
 	private static final String MAIN_PANEL_ID = "main";
 	private final WebMarkupContainer mainContainer = new WebMarkupContainer("main-container");
-	private final AbstractAjaxTimerBehavior areaBehavior = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
+	private final AbstractDefaultAjaxBehavior areaBehavior = new AbstractDefaultAjaxBehavior() {
 		private static final long serialVersionUID = 1L;
 
 		@Override
-		protected void onTimer(AjaxRequestTarget target) {
-			OmUrlFragment area = WebSession.get().getArea();
-			main.updateContents(area == null ? OmUrlFragment.get() : area, target);
-			stop(target);
+		protected void respond(AjaxRequestTarget target) {
+			loaded = true;
+			log.debug("MainPage::areaBehavior");
+			if (uf == null) {
+				uf = WebSession.get().getArea();
+			}
+			main.updateContents(uf == null ? OmUrlFragment.get() : uf, target);
 			WebSession.get().setArea(null);
 		}
 	};
@@ -56,18 +63,22 @@ public class MainPage extends BaseInitedPage {
 
 		@Override
 		protected void respond(AjaxRequestTarget target) {
+			log.debug("MainPage::delayedLoad");
+			mainContainer.replace(main);
 			target.add(
-				mainContainer.replace(main)
-				.add(areaBehavior, new Behavior() {
+				mainContainer.add(areaBehavior, new Behavior() {
 					private static final long serialVersionUID = 1L;
 
 					@Override
-					public void renderHead(org.apache.wicket.Component component, IHeaderResponse response) {
+					public void renderHead(Component component, IHeaderResponse response) {
 						internalRenderHead(response);
+						response.render(OnDomReadyHeaderItem.forScript(areaBehavior.getCallbackScript()));
 					}
 				}));
 		}
 	};
+	private OmUrlFragment uf = null;
+	private boolean loaded = false;
 
 	public MainPage() {
 		super();
@@ -87,9 +98,12 @@ public class MainPage extends BaseInitedPage {
 
 	@Override
 	protected void onParameterArrival(IRequestParameters params, AjaxRequestTarget target) {
-		OmUrlFragment uf = getUrlFragment(params);
-		if (uf != null) {
-			areaBehavior.stop(target);
+		log.debug("MainPage::onParameterArrival");
+		OmUrlFragment _f = getUrlFragment(params);;
+		if (_f != null) {
+			uf = _f;
+		}
+		if (loaded && uf != null) {
 			main.updateContents(uf, target, false);
 		}
 	}
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 a0464ad..2aeb150 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
@@ -120,6 +120,7 @@ public class RoomPanel extends BasePanel {
 
 		@Override
 		protected void respond(AjaxRequestTarget target) {
+			log.debug("RoomPanel::roomEnter");
 			WebSession ws = WebSession.get();
 			ExtendedClientProperties cp = ws.getExtendedProperties();
 			confLogDao.add(
@@ -151,6 +152,7 @@ public class RoomPanel extends BasePanel {
 			}
 			if (Room.Type.presentation != r.getType()) {
 				List<Client> mods = cm.listByRoom(r.getId(), c -> c.hasRight(Room.Right.moderator));
+				log.debug("RoomPanel::roomEnter, mods IS EMPTY ? {}, is MOD ? {}", mods.isEmpty(), _c.hasRight(Room.Right.moderator));
 				if (mods.isEmpty()) {
 					waitApplyModeration.open(target);
 				}
@@ -170,7 +172,7 @@ public class RoomPanel extends BasePanel {
 				}
 			}
 			if (interview && recordingUser == null && hasStreams && _c.hasRight(Right.moderator)) {
-				sb.append("WbArea.setRecStartEnabled(true);");
+				sb.append("WbArea.setRecEnabled(true);");
 			}
 			if (!Strings.isEmpty(sb)) {
 				target.appendJavaScript(sb);
@@ -641,9 +643,9 @@ public class RoomPanel extends BasePanel {
 						break;
 					}
 				}
-				handler.appendJavaScript(String.format("WbArea.setRecStopEnabled(false);WbArea.setRecStartEnabled(%s);", hasStreams));
+				handler.appendJavaScript(String.format("WbArea.setRecStarted(false);WbArea.setRecEnabled(%s);", hasStreams));
 			} else {
-				handler.appendJavaScript("WbArea.setRecStartEnabled(false);WbArea.setRecStopEnabled(true);");
+				handler.appendJavaScript("WbArea.setRecStarted(true);");
 			}
 		}
 	}
@@ -664,6 +666,7 @@ public class RoomPanel extends BasePanel {
 				if (!rr.isEmpty()) {
 					c.allow(rr);
 					cm.update(c);
+					log.info("Setting rights for client:: {}", rr);
 				}
 			}
 		}
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 c5815e1..ba851ad 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
@@ -44,8 +44,7 @@ public abstract class RoomActivityIcon extends ClientIcon {
 
 	protected boolean visible() {
 		Room r = getRoom();
-		return Room.Type.interview != r.getType()
-				&& activityAllowed(getClient(), activity, r);
+		return activityAllowed(getClient(), activity, r);
 	}
 
 	@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
index a0e56c0..126feb4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
@@ -115,7 +115,7 @@ var VideoManager = (function() {
 		}
 	}
 	function _init() {
-		Wicket.Event.subscribe("/websocket/message", _onWsMessage);
+		Wicket.Event.subscribe('/websocket/message', _onWsMessage);
 		VideoSettings.init(Room.getOptions());
 		share = $('.room.box').find('.icon.shared.ui-button');
 		inited = true;
@@ -167,6 +167,7 @@ var VideoManager = (function() {
 		if (v.dialog('instance') !== undefined) {
 			v.dialog('destroy');
 		}
+		v.parent('.pod').remove();
 		v.remove();
 	}
 	function _play(c) {
@@ -217,10 +218,10 @@ var VideoManager = (function() {
 		const u = $('#user' + uid + ' .audio-activity.ui-icon')
 			, v = _find(uid).parent();
 		if (active) {
-			u.addClass("speaking");
+			u.addClass('speaking');
 			v.addClass('user-speaks')
 		} else {
-			u.removeClass("speaking");
+			u.removeClass('speaking');
 			v.removeClass('user-speaks')
 		}
 	}
@@ -281,7 +282,7 @@ var VideoManager = (function() {
 		OmUtil.sendMessage(_m, {type: 'kurento'});
 	}
 	self.destroy = function() {
-		Wicket.Event.unsubscribe("/websocket/message", _onWsMessage);
+		Wicket.Event.unsubscribe('/websocket/message', _onWsMessage);
 	}
 	return self;
 })();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-util.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-util.js
index b36d94f..679d7c4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-util.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-util.js
@@ -5,7 +5,7 @@ const VID_SEL = '.video.user-video';
 var VideoUtil = (function() {
 	const self = {};
 	function _getVid(uid) {
-		return "video" + uid;
+		return 'video' + uid;
 	}
 	function _isSharing(c) {
 		return 'sharing' === c.type && c.screenActivities.includes('sharing');
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
index a012e25..499f15f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
@@ -7,20 +7,36 @@ var Video = (function() {
 	function _getName() {
 		return c.user.firstName + ' ' + c.user.lastName;
 	}
-	function _resizeDlg(_ww, _hh) {
-		const interview = Room.getOptions().interview;
-		const _w = interview ? 320 : _ww, _h = interview ? 260 : _hh;
-		const h = _h + t.height() + 2 + (f.is(":visible") ? f.height() : 0);
-		v.dialog("option", "width", _w).dialog("option", "height", h);
-		_resize(_w, _h);
+	function _getExtra() {
+		return t.height() + 2 + (f.is(':visible') ? f.height() : 0);
+	}
+	function _resizeDlg(_w, _h) {
+		const h = _h + _getExtra();
+		_resizeDlgArea(_w, h);
 		return h;
 	}
+	function _resizeDlgArea(_w, _h) {
+		v.dialog('option', 'width', _w).dialog('option', 'height', _h);
+		const h = _h - _getExtra();
+		_resize(_w, h);
+		if (Room.getOptions().interview) {
+			v.dialog('widget').css(VideoUtil.getPos());
+			try {
+				swf[0].vidResize(Math.floor(_w), Math.floor(h));
+			} catch (err) {}
+		}
+	}
+	function _resizePod() {
+		const p = v.parents('.pod,.pod-big')
+			, pw = p.width(), ph = p.height();
+		_resizeDlgArea(pw, ph);
+	}
 	function _resize(w, h) {
 		vc.width(w).height(h);
 		video.width(w).height(h);
 	}
 	function _handleMicStatus(state) {
-		if (!f.is(":visible")) {
+		if (!f.is(':visible')) {
 			return;
 		}
 		if (state) {
@@ -58,17 +74,91 @@ var Video = (function() {
 			return;
 		}
 		if (mute) {
-			const val = slider.slider("option", "value");
+			const val = slider.slider('option', 'value');
 			if (val > 0) {
 				lastVolume = val;
 			}
-			slider.slider("option", "value", 0);
+			slider.slider('option', 'value', 0);
 			_handleVolume(0);
 		} else {
-			slider.slider("option", "value", lastVolume);
+			slider.slider('option', 'value', lastVolume);
 			_handleVolume(lastVolume);
 		}
 	}
+	function _initContainer(_id, name, opts) {
+		let contSel;
+		if (opts.interview) {
+			const area = $('.pod-area');
+			let count = area.find('.video.user-video').length;
+			const empt = area.find('.empty');
+			if (count == 0) {
+				empt.length == 0 && area.append($('<div class="empty"></div>'));
+			} else {
+				empt.remove();
+			}
+			//FIXME TODO add 'pod-big' logic
+			const contId = UUID.generate();
+			contSel = '#' + contId;
+			area.append($('<div class="pod"></div>').attr('id', contId));
+			count++; //FIXME TODO conditional 'pod-big' logic
+			if (count < 3) {
+				area.attr('class', 'pod-area max2');
+			} else if (count < 4) {
+				area.attr('class', 'pod-area max3');
+			} else if (count < 6) {
+				area.attr('class', 'pod-area max5');
+			} else if (count < 10) {
+				area.attr('class', 'pod-area max9');
+			} else if (count < 14) {
+				area.attr('class', 'pod-area max13');
+			} else if (count < 18) {
+				area.attr('class', 'pod-area max17');
+			} else if (count < 26) {
+				area.attr('class', 'pod-area max25');
+			} else if (count < 34) {
+				area.attr('class', 'pod-area max33');
+			}
+		} else {
+			contSel = '.room.box';
+		}
+		$(contSel).append(OmUtil.tmpl('#user-video', _id).attr('title', name)
+				.attr('data-client-uid', c.type + c.cuid).data(self));
+		return contSel;
+	}
+	function _initDialog(v, opts) {
+		if (opts.interview) {
+			v.dialog('option', 'draggable', false);
+			v.dialog('option', 'resizable', false);
+			v.dialogExtend({
+				closable: false
+				, collapsable: false
+				, dblclick: false
+			});
+			$('.pod-area').sortable('refresh');
+		} else {
+			v.dialog('option', 'draggable', true);
+			v.dialog('option', 'resizable', true);
+			v.on('dialogresizestop', function(event, ui) {
+				const w = ui.size.width - 2
+					, h = ui.size.height - t.height() - 4 - (f.is(':visible') ? f.height() : 0);
+				_resize(w, h);
+				swf[0].vidResize(w, h);
+			});
+			if (VideoUtil.isSharing(c)) {
+				v.on('dialogclose', function() {
+					VideoManager.close(c.uid, true);
+				});
+			}
+			v.dialogExtend({
+				icons: {
+					'collapse': 'ui-icon-minus'
+				}
+				, closable: VideoUtil.isSharing(c)
+				, collapsable: true
+				, dblclick: 'collapse'
+			});
+		}
+	}
 	function _init(_c, _pos) {
 		c = _c;
 		size = {width: c.width, height: c.height};
@@ -77,11 +167,7 @@ var Video = (function() {
 			, _w = c.width
 			, _h = c.height
 			, opts = Room.getOptions();
-		{ //scope
-			const cont = opts.interview ? $('.pod.pod-' + c.pod) : $('.room.box');
-			cont.append(OmUtil.tmpl('#user-video', _id).attr('title', name)
-					.attr('data-client-uid', c.type + c.cuid).data(self));
-		}
+		const contSel = _initContainer(_id, name, opts);
 		v = $('#' + _id);
 		v.dialog({
 			classes: {
@@ -92,26 +178,10 @@ 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) {
-				const w = ui.size.width - 2
-					, h = ui.size.height - t.height() - 4 - (f.is(":visible") ? f.height() : 0);
-				_resize(w, h);
-			}
-			, close: function() {
-				VideoManager.close(c.uid, true);
-			}
-		}).dialogExtend({
-			icons: {
-				'collapse': 'ui-icon-minus'
-			}
-			, closable: VideoUtil.isSharing(c)
-			, collapsable: true
-			, dblclick: "collapse"
+			, appendTo: contSel
 		});
+		_initDialog(v, opts);
 		t = v.parent().find('.ui-dialog-titlebar').attr('title', name);
 		f = v.find('.footer');
 		if (!VideoUtil.isSharing(c)) {
@@ -120,9 +190,6 @@ var Video = (function() {
 				.append($('#video-refresh-btn').children().clone());
 			const volume = v.parent().find('.dropdown-menu.video.volume');
 			slider = v.parent().find('.slider');
-			if (opts.interview) {
-				v.parent().find('.ui-dialog-titlebar-collapse').hide();
-			}
 			vol = v.parent().find('.ui-dialog-titlebar-volume')
 				.on('mouseenter', function(e) {
 					e.stopImmediatePropagation();
@@ -159,7 +226,7 @@ var Video = (function() {
 				, max: 100
 				, value: lastVolume
 				, create: function() {
-					handle.text($(this).slider("value"));
+					handle.text($(this).slider('value'));
 				}
 				, slide: function(event, ui) {
 					_handleVolume(ui.value);
@@ -210,7 +277,7 @@ var Video = (function() {
 		swf = initSwf(vc, 'main.swf', _id + '-swf', o);
 		swf.attr('width', _w).attr('height', _h);
 		*/
-		v.dialog("widget").css(_pos);
+		v.dialog('widget').css(_pos);
 	}
 	function _update(_c) {
 		const opts = Room.getOptions();
@@ -271,7 +338,7 @@ var Video = (function() {
 	self.update = _update;
 	self.refresh = _refresh;
 	self.mute = _mute;
-	self.isMuted = function() { return 0 === slider.slider("option", "value"); };
+	self.isMuted = function() { return 0 === slider.slider('option', 'value'); };
 	self.init = _init;
 	self.client = function() { return c; };
 	self.setRights = _setRights;
@@ -298,6 +365,6 @@ var Video = (function() {
 			, sdpOffer: offerSdp
 		});
 	}
-
+	self.resizePod = _resizePod;
 	return self;
 });
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 5e4ff81..0f8cc83 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,28 +20,11 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>
-	<div class="pod-row">
-		<div class="pod-container">
-			<div class="pod pod-left">
-				<a class="middle choose-btn" href="#" onclick="return false;" data-pod="left"><wicket:message key="910"/></a>
-			</div>
-			<div style="padding-top: 20px;">
-				<a class="rec-btn start" href="#" onclick="return false;"><wicket:message key="913"/></a>
-			</div>
-		</div>
-		<div class="pod-container">
-			<div class="pod pod-right">
-				<a class="middle choose-btn" href="#" onclick="return false;" data-pod="right"><wicket:message key="910"/></a>
-			</div>
-			<div style="padding-top: 20px;">
-				<a class="rec-btn stop" href="#" onclick="return false;"><wicket:message key="914"/></a>
-			</div>
-		</div>
+	<div class="pod-area" style="width: 1000px;height: 600px;">
+		<div class="pod-big"></div>
 	</div>
-	<div id="interview-choose-video" wicket:message="title:910,data-btn-ok:54,data-btn-cancel:lbl.cancel" style="display: none">
-		<div><wicket:message key="911"/></div>
-		<select class="width250 users"></select>
-		<input type="hidden" class="pod-name"/>
+	<div style="border-radius: 20px; position: absolute; right: 30px; bottom: 30px;" class="rec-btn" wicket:message="data-title-start:913,data-title-stop:914">
+		&nbsp;
 	</div>
 </wicket:panel>
 </html>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index b7f7881..b2029bc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -1,82 +1,68 @@
 /* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */
 var InterviewWbArea = function() {
 	const self = {};
-	let container, area, role = NONE, choose, btns
-		, _inited = false, recStart, recStop;
+	let container, area, pArea, role = NONE, choose
+		, _inited = false, rec;
 
 	function _init() {
 		Wicket.Event.subscribe("/websocket/message", wbWsHandler);
 		container = $(".room.wb.area");
 		area = container.find(".wb-area");
-		btns = $('.pod-row .pod-container .pod a.choose-btn');
-		btns.button()
-			.click(function() {
-				choose.dialog('open');
-				const sel = choose.find('.users').html('')
-					, users = $('.user.list .user.entry');
-				for (let i = 0; i < users.length; ++i) {
-					const 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'));
-				return false;
-			});
-		recStart = $('.pod-row .pod-container a.rec-btn.start').button({
+		pArea = area.find(".pod-area");
+		rec = area.find('.rec-btn');
+		rec.attr('title', rec.data('title-start'));
+		rec.button({
 			disabled: true
-			, icon: "ui-icon-play"
+			, showLabel: false
+			, icon: 'ui-icon-play'
 		}).click(function() {
-			wbAction('startRecording', '');
-			return false;
+			wbAction($(this).data('mode') === 'rec' ? 'startRecording' : 'stopRecording', '');
 		});
-		recStop = $('.pod-row .pod-container a.rec-btn.stop').button({
-			disabled: true
-			, icon: "ui-icon-stop"
-		}).click(function() {
-			wbAction('stopRecording', '');
-			return false;
+		pArea.find('.pod-big').droppable({
+			accept: '.pod'
+			, activeClass: 'ui-hightlight'
+			, drop: function(event, ui) {
+				const vid = ui.draggable.find('.ui-dialog-content');
+				vid.dialog('option', 'appendTo', $(this));
+				ui.draggable.remove();
+				_resizePod($(this));
+			}
 		});
-		choose = $('#interview-choose-video');
-		choose.dialog({
-			modal: true
-			, autoOpen: false
-			, buttons: [
-				{
-					text: choose.data('btn-ok')
-					, click: function() {
-						toggleActivity('broadcastAV', choose.find('.users').val(), choose.find('.pod-name').val());
-						$(this).dialog('close');
-					}
-				}
-				, {
-					text: choose.data('btn-cancel')
-					, click: function() {
-						$(this).dialog('close');
-					}
-				}
-			]
+		pArea.sortable({
+			items: '.pod'
+			, handle: '.ui-dialog-titlebar'
+			, change: function(event, ui) {
+				console.log('changed');
+			}
 		});
 		_inited = true;
 	}
 	function _setRole(_role) {
 		if (!_inited) return;
 		role = _role;
-		if (role !== NONE) {
-			btns.show();
-		} else {
-			btns.hide();
-		}
+	}
+	function _resizePod(el) {
+		(el || pArea).find('.ui-dialog-content').each(function() {
+			$(this).data().resizePod();
+		});
 	}
 	function _resize(sbW, chW, w, h) {
 		if (!container || !_inited) return;
 		const hh = h - 5;
-		container.width(w).height(h).css('left', (Settings.isRtl ? chW : sbW) + "px");
+		container.width(w).height(h).css('left', (Settings.isRtl ? chW : sbW) + 'px');
 		area.width(w).height(hh);
+		pArea.width(w).height(hh);
+		_resizePod();
 	}
-	function _setRecStartEnabled(en) {
-		recStart.button("option", "disabled", !en);
+	function _setRecEnabled(en) {
+		if (!_inited) return;
+		rec.data('mode', 'rec').button('option', {disabled: !en, icon: 'ui-icon-play'});
 	}
-	function _setRecStopEnabled(en) {
-		recStop.button("option", "disabled", !en);
+	function _setRecStarted(started) {
+		if (!_inited) return;
+		rec.data('mode', started ? 'stop' : 'rec')
+			.attr('title', rec.data(started ? 'title-stop' : 'title-start'))
+			.button('option', {icon: started ? 'ui-icon-stop' : 'ui-icon-play'});
 	}
 
 	self.init = _init;
@@ -85,8 +71,8 @@ var InterviewWbArea = function() {
 	};
 	self.setRole = _setRole;
 	self.resize = _resize;
-	self.setRecStartEnabled = _setRecStartEnabled;
-	self.setRecStopEnabled = _setRecStopEnabled;
+	self.setRecEnabled = _setRecEnabled;
+	self.setRecStarted = _setRecStarted;
 	self.addDeleteHandler = function() {};
 	self.removeDeleteHandler = function() {};
 	return self;
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index b272177..44919fc 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -463,26 +463,76 @@
 	min-height: 30px;
 	overflow: hidden;
 }
-.pod-row {
-	text-align: center;
-	padding-top: 40px;
+.pod-area {
+	display: inline-grid;
 }
-.pod-row .pod-container, .pod-row .pod-container .pod {
-	display: inline-block;
-	width: 320px;
+.pod-area.max2, .pod-area.max3 {
+	grid-template-columns: repeat(3, 1fr);
+	grid-template-rows: repeat(2, 1fr);
+}
+.pod-area.max2 {
+	grid-template-areas:
+		"e a a"
+		"b a a";
+}
+.pod-area.max3 {
+	grid-template-areas:
+		"b1 a a"
+		"b2 a a";
+}
+.pod-area.max5, .pod-area.max9, .pod-area.max13 {
+	grid-template-columns: repeat(4, 1fr);
+	grid-template-areas:
+		"b1 a a b2"
+		"b3 a a b4";
+}
+.pod-area.max5 {
+	grid-template-rows: repeat(2, 1fr);
+}
+.pod-area.max9 {
+	grid-template-rows: repeat(3, 1fr);
+}
+.pod-area.max13 {
+	grid-template-rows: repeat(4, 1fr);
+}
+.pod-area.max17, .pod-area.max25, .pod-area.max33 {
+	grid-template-columns: repeat(8, 1fr);
+	grid-template-areas: "b01 b02 a a a a b03 b04"
+		"b05 b06 a a a a b07 b08"
+		"b09 b10 a a a a b11 b12"
+		"b13 b14 a a a a b15 b16";
 }
-.pod-row .pod-container {
-	padding-right:10px;
+.pod-area.max17 {
+	grid-template-rows: repeat(4, 1fr);
 }
-.pod-row .pod-container .pod {
-	height: 290px;
-	border: 1px solid #CCCCCC;
+.pod-area.max25 {
+	grid-template-rows: repeat(5, 1fr);
+}
+.pod-area.max33 {
+	grid-template-rows: repeat(6, 1fr);
+}
+.pod-area .pod-big, .pod-area .pod {
 	position: relative;
+	padding: 2px;
+	margin: 2px;
+	overflow: hidden;
+}
+.pod-area .empty {
+	grid-area: e;
 }
-.pod-row .pod-container .pod a.middle {
-	margin-top: 30%;
-	margin-bottom: 30%;
+.pod-area .pod-big {
+	grid-area: a;
 }
+.pod-area .pod {
+}
+.pod-area .pod.ui-sortable-placeholder {
+	background-color: whitesmoke;
+	visibility: visible !important;
+}
+.pod-area .pod-big.ui-hightlight {
+	box-shadow: 3px 3px 4px blue;
+}
+
 .width250 {
 	min-width: 250px;
 	max-width: 250px;


[openmeetings] 05/07: [OPENMEETINGS-1142] code clean-up

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit e99f1a57721c8d8f04b8df583bc78cc39ffe1bd2
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jun 28 10:57:25 2018 +0700

    [OPENMEETINGS-1142] code clean-up