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:40 UTC

[openmeetings] branch OPENMEETINGS-1142-new-look created (now a5aef2b)

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

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


      at a5aef2b  [OPENMEETINGS-1142] new look of interview room

This branch includes the following new commits:

     new a5aef2b  [OPENMEETINGS-1142] new look of interview room

The 1 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.



[openmeetings] 01/01: [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 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;