Author: solomax
Date: Mon Dec 26 10:08:10 2016
New Revision: 1776050

URL: http://svn.apache.org/viewvc?rev=1776050&view=rev
Log:
[OPENMEETINGS-1459] close handler and redirect URL are implemented

Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 Mon Dec 26 10:08:10 2016
@@ -19,28 +19,26 @@
   
 -->
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:head>
-       <script type="text/javascript">
-               Wicket.Event.subscribe("/websocket/closed", function(jqEvent, 
msg) {
-                       //FIXME add Error dialog should be displayed 
-               });
-       </script>
-</wicket:head>
 <wicket:panel>
-       <div wicket:id="roomContainer" style="height: 100%">
-               <div class="room menu" wicket:id="menu"></div>
-               <div class="room sidebar left" wicket:id="sidebar"></div>
-               <div wicket:id="wb-area" class="room wb area">
-                       <div class="wb-drop-area"></div>
-                       <div class="wb" wicket:id="whiteboard"></div>
+       <div class="room container">
+               <div wicket:id="roomContainer" style="height: 100%">
+                       <div class="room menu" wicket:id="menu"></div>
+                       <div class="room sidebar left" 
wicket:id="sidebar"></div>
+                       <div wicket:id="wb-area" class="room wb area">
+                               <div class="wb-drop-area"></div>
+                               <div class="wb" wicket:id="whiteboard"></div>
+                       </div>
+                       <div wicket:id="activities"></div>
                </div>
-               <div wicket:id="activities"></div>
+               <div wicket:id="event-details"></div>
+               <div wicket:id="access-denied"></div>
+               <div wicket:id="room-closed"></div>
+               <div wicket:id="wait-for-recording"></div>
+               <div wicket:id="nickname"></div>
+               <div wicket:id="client-kicked"></div>
+       </div>
+       <div id="disconnected-dlg" wicket:message="title:204, data-reload:753" 
style="display:none">
+               <wicket:message key="556"/>
        </div>
-       <div wicket:id="event-details"></div>
-       <div wicket:id="access-denied"></div>
-       <div wicket:id="room-closed"></div>
-       <div wicket:id="wait-for-recording"></div>
-       <div wicket:id="nickname"></div>
-       <div wicket:id="client-kicked"></div>
 </wicket:panel>
 </html>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Mon Dec 26 10:08:10 2016
@@ -31,6 +31,7 @@ import static org.apache.wicket.ajax.att
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Calendar;
+import java.util.UUID;
 
 import org.apache.directory.api.util.Strings;
 import org.apache.openmeetings.core.remote.ConferenceLibrary;
@@ -481,7 +482,7 @@ public class RoomPanel extends BasePanel
                if (r.isHidden(RoomElement.Chat)) {
                        getMainPanel().getChat().toggle(handler, true);
                }
-               
handler.appendJavaScript("$(window).off('resize.openmeetings');");
+               handler.appendJavaScript("roomUnload();");
                RoomMenuPanel.roomExit(getClient());
                getMainPanel().getChat().roomExit(r, handler);
        }
@@ -494,6 +495,12 @@ public class RoomPanel extends BasePanel
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+               WebSession ws = WebSession.get();
+               if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() 
!= null || ws.getInvitation() != null)) {
+                       response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(
+                                       String.format("function 
roomReload(event, ui) {window.location.href='%s';}", r.getRedirectURL())
+                                       , String.format("room-reload-%s", 
UUID.randomUUID()))));
+               }
                if (room.isVisible()) {
                        
response.render(OnDomReadyHeaderItem.forScript(aab.getCallbackScript()));
                        response.render(new 
PriorityHeaderItem(getNamedFunction("setActiveWbId", activeWb, 
explicit(PARAM_WB_ID))));

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
 Mon Dec 26 10:08:10 2016
@@ -30,6 +30,27 @@ function alignBlocks() {
        $(".room.wb.area").width(w);
        $(".room.wb.area .wb").width(w);
 }
+function roomReload(event, ui) {
+       window.location.reload();
+}
+function roomClosed(jqEvent, msg) {
+       roomUnload();
+       $(".room.container").remove();
+       var dlg = $('#disconnected-dlg');
+       dlg.dialog({
+               modal: true
+               , close: roomReload
+               , buttons: [
+                       {
+                               text: dlg.data('reload')
+                               , icons: {primary: "ui-icon-refresh"}
+                               , click: function() {
+                                       $(this).dialog("close");
+                               }
+                       }
+               ]
+       });
+}
 function roomLoad() {
        $(".room.sidebar.left").ready(function() {
                alignBlocks();
@@ -45,6 +66,11 @@ function roomLoad() {
                        alignBlocks();
                }
        });
+       Wicket.Event.subscribe("/websocket/closed", roomClosed);
+}
+function roomUnload() {
+       $(window).off('resize.openmeetings');
+       Wicket.Event.unsubscribe("/websocket/closed", roomClosed);
 }
 function startPrivateChat(el) {
        addChatTab('chatTab-u' + el.parent().parent().data("userid"), 
el.parent().parent().find('.user.name').text());

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 Mon Dec 26 10:08:10 2016
@@ -19,28 +19,26 @@
   
 -->
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:head>
-       <script type="text/javascript">
-               Wicket.Event.subscribe("/websocket/closed", function(jqEvent, 
msg) {
-                       //FIXME add Error dialog should be displayed 
-               });
-       </script>
-</wicket:head>
 <wicket:panel>
-       <div wicket:id="roomContainer" style="height: 100%">
-               <div class="room menu" wicket:id="menu"></div>
-               <div class="room sidebar left" wicket:id="sidebar"></div>
-               <div wicket:id="wb-area" class="room wb area">
-                       <div class="wb-drop-area"></div>
-                       <div class="wb" wicket:id="whiteboard"></div>
+       <div class="room container">
+               <div wicket:id="roomContainer" style="height: 100%">
+                       <div class="room menu" wicket:id="menu"></div>
+                       <div class="room sidebar left" 
wicket:id="sidebar"></div>
+                       <div wicket:id="wb-area" class="room wb area">
+                               <div class="wb-drop-area"></div>
+                               <div class="wb" wicket:id="whiteboard"></div>
+                       </div>
+                       <div wicket:id="activities"></div>
                </div>
-               <div wicket:id="activities"></div>
+               <div wicket:id="event-details"></div>
+               <div wicket:id="access-denied"></div>
+               <div wicket:id="room-closed"></div>
+               <div wicket:id="wait-for-recording"></div>
+               <div wicket:id="nickname"></div>
+               <div wicket:id="client-kicked"></div>
+       </div>
+       <div id="disconnected-dlg" wicket:message="title:204, data-reload:753" 
style="display:none">
+               <wicket:message key="556"/>
        </div>
-       <div wicket:id="event-details"></div>
-       <div wicket:id="access-denied"></div>
-       <div wicket:id="room-closed"></div>
-       <div wicket:id="wait-for-recording"></div>
-       <div wicket:id="nickname"></div>
-       <div wicket:id="client-kicked"></div>
 </wicket:panel>
 </html>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Mon Dec 26 10:08:10 2016
@@ -29,6 +29,7 @@ import static org.apache.openmeetings.we
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Calendar;
+import java.util.UUID;
 
 import org.apache.directory.api.util.Strings;
 import org.apache.openmeetings.core.remote.ConferenceLibrary;
@@ -484,7 +485,7 @@ public class RoomPanel extends BasePanel
                if (r.isHidden(RoomElement.Chat)) {
                        getMainPanel().getChat().toggle(handler, true);
                }
-               
handler.appendJavaScript("$(window).off('resize.openmeetings');");
+               handler.appendJavaScript("roomUnload();");
                RoomMenuPanel.roomExit(getClient());
                getMainPanel().getChat().roomExit(r, handler);
        }
@@ -497,6 +498,12 @@ public class RoomPanel extends BasePanel
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+               WebSession ws = WebSession.get();
+               if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() 
!= null || ws.getInvitation() != null)) {
+                       response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(
+                                       String.format("function 
roomReload(event, ui) {window.location.href='%s';}", r.getRedirectURL())
+                                       , String.format("room-reload-%s", 
UUID.randomUUID()))));
+               }
                if (room.isVisible()) {
                        
response.render(OnDomReadyHeaderItem.forScript(aab.getCallbackScript()));
                }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js?rev=1776050&r1=1776049&r2=1776050&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
 Mon Dec 26 10:08:10 2016
@@ -60,31 +60,57 @@ function setHeight() {
        var h = $(window).height() - $('#menu').height();
        $(".room.sidebar.left").height(h);
        var p = $(".room.sidebar.left .tabs");
-       p.height(h - 5); //FIXME hacks
-       $(".user.list", p).height(h - $("ul", p).height() - 15); //FIXME hacks
+       p.height(h - 5);
+       $(".user.list", p).height(h - $("ul", p).height() - $(".user.header", 
p).height() - 10);
        $(".room.wb.area").height(h);
        $(".room.wb.area .wb").height(h);
 }
-
-$(document).ready(function() {
+function alignBlocks() {
+       var w = $(window).width() - $(".room.sidebar.left").width() - 5;
+       $(".room.wb.area").width(w);
+       $(".room.wb.area .wb").width(w);
+}
+function roomReload(event, ui) {
+       window.location.reload();
+}
+function roomClosed(jqEvent, msg) {
+       roomUnload();
+       $(".room.container").remove();
+       var dlg = $('#disconnected-dlg');
+       dlg.dialog({
+               modal: true
+               , close: roomReload
+               , buttons: [
+                       {
+                               text: dlg.data('reload')
+                               , icons: {primary: "ui-icon-refresh"}
+                               , click: function() {
+                                       $(this).dialog("close");
+                               }
+                       }
+               ]
+       });
+}
+function roomLoad() {
+       $(".room.sidebar.left").ready(function() {
+               alignBlocks();
+               setHeight();
+       });
        $(window).on('resize.openmeetings', function() {
-               roomWidth = $(window).width();
+               alignBlocks();
                setHeight();
        });
-});
-
-var roomWidth = $(window).width();
-function roomLoad() {
        $(".room.sidebar.left").resizable({
                handles: "e"
                , stop: function(event, ui) {
-                       //TODO not really works, need to be investigated
-                       var w = roomWidth - $(this).width() - 5;
-                       $(".room.wb.area").width(w);
-                       $(".room.wb.area .wb").width(w);
+                       alignBlocks();
                }
        });
-       setHeight();
+       Wicket.Event.subscribe("/websocket/closed", roomClosed);
+}
+function roomUnload() {
+       $(window).off('resize.openmeetings');
+       Wicket.Event.unsubscribe("/websocket/closed", roomClosed);
 }
 function startPrivateChat(el) {
        addChatTab('chatTab-u' + el.parent().parent().data("userid"), 
el.parent().parent().find('.user.name').text());


Reply via email to