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/06/26 17:21:41 UTC

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

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

solomax pushed a commit to branch OPENMEETINGS-1142-new-look
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

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

    [OPENMEETINGS-1142] new look of interview room
---
 openmeetings-flash/src/main/flex/main.mxml         |  24 ++-
 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  |  11 --
 .../apache/openmeetings/web/common/MainPanel.java  |  14 ++
 .../apache/openmeetings/web/pages/MainPage.java    |  40 +++--
 .../apache/openmeetings/web/room/RoomPanel.java    |   9 +-
 .../org/apache/openmeetings/web/room/SwfPanel.java |   2 +-
 .../openmeetings/web/room/VideoSettings.java       |   2 +-
 .../sidebar/icon/activity/RoomActivityIcon.java    |   3 +-
 .../apache/openmeetings/web/room/video-manager.js  |  12 +-
 .../org/apache/openmeetings/web/room/video-util.js |   2 +-
 .../java/org/apache/openmeetings/web/room/video.js | 162 +++++++++++++++------
 .../openmeetings/web/room/wb/InterviewWbPanel.html |  25 +---
 .../openmeetings/web/room/wb/interview-area.js     |  98 ++++++-------
 openmeetings-web/src/main/webapp/css/room.css      |  78 ++++++++--
 46 files changed, 297 insertions(+), 248 deletions(-)

diff --git a/openmeetings-flash/src/main/flex/main.mxml b/openmeetings-flash/src/main/flex/main.mxml
index bae609e..863f2be 100644
--- a/openmeetings-flash/src/main/flex/main.mxml
+++ b/openmeetings-flash/src/main/flex/main.mxml
@@ -41,8 +41,6 @@
 
 		import org.apache.openmeetings.OmVideo;
 
-		private static const INTERVIEW_WIDTH:int = 320;
-		private static const INTERVIEW_HEIGHT:int = 260;
 		private var audioOnly:Boolean = false;
 		private var FPS:int;
 		private var bandwidth:int = 0;
@@ -136,6 +134,7 @@
 			userId = params.userId;
 			cuid = params.cuid;
 			type = params.type;
+			ExternalInterface.addCallback("vidResize", vidResize);
 			switch (params.mode) {
 				case 'settings': {
 					ExternalInterface.addCallback("getDevices", function ():Object {
@@ -198,7 +197,7 @@
 									_updateExclusive();
 									activityTimer.addEventListener(TimerEvent.TIMER, broadcastTimerListener);
 									refreshBroadcast(null);
-									ExternalInterface.call("VideoManager.securityMode", params.uid, false);
+									ExternalInterface.call("VideoManager.swfLoaded", params.uid);
 									ExternalInterface.addCallback("refresh", refreshBroadcast);
 									ExternalInterface.addCallback("update", function ():void {
 										video.getNc().call("check", new Responder(function (check:Object):void {
@@ -246,11 +245,11 @@
 					ExternalInterface.addCallback("refresh", refreshCallback);
 					ExternalInterface.addCallback("setRights", setRightsCallback);
 					ExternalInterface.addCallback("cleanup", cleanupCallback);
+					ExternalInterface.call("VideoManager.swfLoaded", params.uid);
 					copyPasteCtxMenu.clipboardMenu = true;
 				}
 					break;
 			}
-			ExternalInterface.addCallback("vidResize", vidResize);
 		}
 
 		private function _updateExclusive():void {
@@ -392,6 +391,7 @@
 		}
 
 		private function vidResize(_width:int, _height:int):void {
+			debug("vidResize", _width, _height);
 			_resize(_width, _height);
 			video.vidResize(_width, _height);
 		}
@@ -401,8 +401,8 @@
 			if (opts && !isNaN(opts.width)) {
 				selectedCam = opts.cam;
 				selectedMic = opts.mic;
-				var width:int = interview ? INTERVIEW_WIDTH : opts.width
-					, height:int = interview ? INTERVIEW_HEIGHT : opts.height;
+				var width:int = isNaN(video.width) ? opts.width : video.width
+					, height:int = isNaN(video.height) ? opts.height : video.height;
 				vidResize(width, height);
 			}
 			video.reset();
@@ -482,19 +482,18 @@
 		}
 
 		private function getCam():Camera {
-			debug("Entering getCam ...");
+			debug("Entering getCam ..." + video.width + ", " + params.width);
 			var _camera:Camera = null;
 			if (selectedCam > -1) {
 				_camera = Camera.getCamera("" + selectedCam);
 				if (_camera != null && !_camera.muted) {
 					//FIXME need to be unified
+					_camera.setMode(video.width, video.height, FPS);
 					if (interview) {
 						//we need a fixed frame rate for the videos to merge them later on
-						_camera.setMode(INTERVIEW_WIDTH, INTERVIEW_HEIGHT, 24);
 						debug("IS INTERVIEW ");
 						_camera.setQuality(0, 98);
 					} else {
-						_camera.setMode(video.width, video.height, FPS);
 						debug("IS NO INTERVIEW ");
 						_camera.setQuality(bandwidth, quality);
 					}
@@ -512,7 +511,7 @@
 				if (cam.muted) {
 					debug("Camera Muted");
 					if (params.mode != 'settings') {
-						ExternalInterface.call("VideoManager.securityMode", params.uid, true);
+						ExternalInterface.call("VideoManager.securityMode", params.uid);
 					}
 					video.attachCamera(cam);
 					cam.addEventListener(StatusEvent.STATUS, function (event:StatusEvent):void {
@@ -536,7 +535,7 @@
 				if (_mic != null) {
 					if (_mic.muted) {
 						debug("Mic Muted");
-						ExternalInterface.call("VideoManager.securityMode", params.uid, true);
+						ExternalInterface.call("VideoManager.securityMode", params.uid);
 						var nc:NetConnection = new NetConnection();
 						nc.connect(null);
 						var ns:NetStream = new NetStream(nc);
@@ -581,8 +580,7 @@
 		}
 
 		private function setResolution(w:int, h:int, attach:Boolean):void {
-			var width:int = interview ? INTERVIEW_WIDTH : w
-				, height:int = interview ? INTERVIEW_HEIGHT : h;
+			var width:int = w, height:int = h;
 			debug("onselect WxH :: " + width + "x" + height);
 			video.resize(width, height);
 			if (attach) {
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 55fdf97..6f8ee45 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -132,6 +132,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 3c72a2d..a5167a2 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 a0f8232..f6fe96f 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,17 +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);
-			Wicket.Event.subscribe(Wicket.Event.Topic.WebSocket.Opened, function() {
-				Wicket.WebSocket.send("socketConnected");
-			});
-		});
-	</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 dca6991..0c09496 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
@@ -72,6 +72,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;
@@ -134,6 +135,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) {
 				super.onConnect(msg);
 				ExtendedClientProperties cp = WebSession.get().getExtendedProperties();
@@ -402,6 +415,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 9859cfa..b9fa93a 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
@@ -121,6 +121,7 @@ public class RoomPanel extends BasePanel {
 
 		@Override
 		protected void respond(AjaxRequestTarget target) {
+			log.debug("RoomPanel::roomEnter");
 			WebSession ws = WebSession.get();
 			ExtendedClientProperties cp = ws.getExtendedProperties();
 			getBean(ConferenceLogDao.class).add(
@@ -152,6 +153,7 @@ public class RoomPanel extends BasePanel {
 			}
 			if (Room.Type.presentation != r.getType()) {
 				List<Client> mods = getBean(ClientManager.class).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);
 				}
@@ -172,7 +174,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);
@@ -632,9 +634,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);");
 			}
 		}
 	}
@@ -656,6 +658,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/SwfPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
index 5c7a353..b6aabc6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
@@ -128,7 +128,7 @@ public class SwfPanel extends BasePanel {
 						.put("path", path)
 						.put("width", "100%")
 						.put("height", "100%")
-						.put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct");
+						.put("wmode", "opaque");
 			} catch (Exception e) {
 				log.error("Error while constructing video settings parameters", e);
 			}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
index 69892d5..f59341e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
@@ -79,7 +79,7 @@ public class VideoSettings extends Panel {
 		JSONObject s = new JSONObject(gs.toString())
 				.put("sid", sid)
 				.put("debug", DEVELOPMENT == Application.get().getConfigurationType())
-				.put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct");
+				.put("wmode", "opaque");
 		try {
 			URL url = new URL(cp.getCodebase());
 			String path = url.getPath();
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 f161550..aa4d58d 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
@@ -24,7 +24,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;
@@ -72,6 +72,7 @@ var VideoManager = (function() {
 		if (v.dialog('instance') !== undefined) {
 			v.dialog('destroy');
 		}
+		v.parent('.pod').remove();
 		v.remove();
 	}
 	function _play(c) {
@@ -121,10 +122,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')
 		}
 	}
@@ -177,7 +178,8 @@ var VideoManager = (function() {
 	self.update = _update;
 	self.play = _play;
 	self.close = _close;
-	self.securityMode = function(uid, on) { $('#' + VideoUtil.getVid(uid)).data().securityMode(on); };
+	self.securityMode = function(uid) { $('#' + VideoUtil.getVid(uid)).data().securityMode(); };
+	self.swfLoaded = function(uid) { $('#' + VideoUtil.getVid(uid)).data().swfLoaded(); };
 	self.refresh = _refresh;
 	self.mute = _mute;
 	self.clickExclusive = _clickExclusive;
@@ -191,7 +193,7 @@ var VideoManager = (function() {
 		});
 	};
 	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 e7a7398..a3faa5e 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.indexOf('sharing') > -1;
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 9ce3d20..4eeeb5d 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,31 +7,51 @@ 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 _securityMode(on) {
+	function _resizeDlgArea(_w, _h) {
+		v.dialog('option', 'width', _w).dialog('option', 'height', _h);
+		const h = _h - _getExtra();
+		_resize(_w, h);
 		if (Room.getOptions().interview) {
-			return;
+			v.dialog('widget').css(VideoUtil.getPos());
+			try {
+				swf[0].vidResize(Math.floor(_w), Math.floor(h));
+			} catch (err) {}
 		}
-		if (on) {
-			v.dialog("option", "position", {my: "center", at: "center", of: VideoUtil.container()});
+	}
+	function _resizePod() {
+		const p = v.parents('.pod,.pod-big')
+			, pw = p.width(), ph = p.height();
+		_resizeDlgArea(pw, ph);
+	}
+	function _swfLoaded() {
+		if (Room.getOptions().interview) {
+			_resizePod();
 		} else {
 			const h = _resizeDlg(size.width, size.height);
-			v.dialog("widget").css(VideoUtil.getPos(VideoUtil.getRects(VID_SEL, VideoUtil.getVid(c.uid)), c.width, h));
+			v.dialog('widget').css(VideoUtil.getPos(VideoUtil.getRects(VID_SEL, VideoUtil.getVid(c.uid)), c.width, h));
+		}
+	}
+	function _securityMode() {
+		if (Room.getOptions().interview) {
+			swf[0].vidResize(swf.attr('width'), swf.attr('height'));
+			return;
 		}
+		v.dialog('option', 'position', {my: 'center', at: 'center', of: VideoUtil.container()});
 	}
 	function _resize(w, h) {
 		vc.width(w).height(h);
 		swf.attr('width', w).attr('height', h);
 	}
 	function _handleMicStatus(state) {
-		if (!f.is(":visible")) {
+		if (!f.is(':visible')) {
 			return;
 		}
 		if (state) {
@@ -67,17 +87,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};
@@ -86,11 +180,7 @@ var Video = (function() {
 			, _w = c.self ? Math.max(300, c.width) : c.width
 			, _h = c.self ? Math.max(200, c.height) : 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: {
@@ -101,27 +191,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);
-				swf[0].vidResize(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)) {
@@ -130,9 +203,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();
@@ -169,7 +239,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);
@@ -205,7 +275,7 @@ var Video = (function() {
 		delete o.keycode;
 		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();
@@ -258,11 +328,13 @@ 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.securityMode = _securityMode;
+	self.swfLoaded = _swfLoaded;
 	self.client = function() { return c; };
 	self.setRights = _setRights;
 	self.cleanup = _cleanup;
+	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 ad63f30..4b8bf38 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,89 +1,75 @@
 /* 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() {
 		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;
 	self.destroy = 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 edbdd9a..1811b69 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -458,26 +458,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;