Author: solomax
Date: Tue Dec 27 04:10:30 2016
New Revision: 1776086

URL: http://svn.apache.org/viewvc?rev=1776086&view=rev
Log:
[OPENMEETINGS-1505] password is checked for the room invitation

Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
    
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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
    
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
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 Tue Dec 27 04:10:30 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-         
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -25,10 +25,9 @@
                        <div wicket:id="info"></div>
                        <div wicket:id="player"></div>
                </div>
-               <div wicket:id="i-pass"></div>
        </div>
+       <div wicket:id="i-pass"></div>
        <div wicket:id="panel-main" style="width: 100%; height: 100%;"></div>
        <div wicket:id="access-denied"></div>
 </wicket:extend>
 </html>
-

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Tue Dec 27 04:10:30 2016
@@ -64,6 +64,8 @@ public class HashPage extends BaseInited
        private final VideoPlayer vp = new VideoPlayer("player", null);
        private String errorKey = "invalid.hash";
        private boolean error = true;
+       private MainPanel mp = null;
+       private RoomPanel rp = null;
 
        public HashPage(PageParameters p) {
                StringValue secure = p.get(HASH);
@@ -95,6 +97,10 @@ public class HashPage extends BaseInited
                                Room r = i.getRoom();
                                if (r != null) {
                                        createRoom(r.getId());
+                                       if (i.isPasswordProtected() && rp != 
null) {
+                                               mp.getChat().setVisible(false);
+                                               
rp.setOutputMarkupPlaceholderTag(true).setVisible(false);
+                                       }
                                }
                        }
                } else if (!secure.isEmpty()) {
@@ -117,7 +123,7 @@ public class HashPage extends BaseInited
                        error = false;
                }
                
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true),
-                               vp.setOutputMarkupPlaceholderTag(true), new 
InvitationPasswordDialog("i-pass", this)));
+                               vp.setOutputMarkupPlaceholderTag(true)), new 
InvitationPasswordDialog("i-pass", this));
        }
 
        private void createRoom(Long roomId) {
@@ -126,7 +132,9 @@ public class HashPage extends BaseInited
                // need to re-fetch Room object to initialize all collections
                Room room = getBean(RoomDao.class).get(roomId);
                if (room != null) {
-                       replace(new MainPanel(PANEL_MAIN, new 
RoomPanel(CHILD_ID, room)));
+                       rp = new RoomPanel(CHILD_ID, room);
+                       mp = new MainPanel(PANEL_MAIN, rp);
+                       replace(mp);
                }
        }
 
@@ -158,8 +166,12 @@ public class HashPage extends BaseInited
        @Override
        public void update(AjaxRequestTarget target) {
                Invitation i = WebSession.get().getInvitation();
-               target.add(vi.update(target, i.getRecording()).setVisible(true)
-                               , vp.update(target, 
i.getRecording()).setVisible(true));
+               if (i.getRoom() != null && rp != null) {
+                       rp.show(target);
+               } else if (i.getRecording() != null) {
+                       target.add(vi.update(target, 
i.getRecording()).setVisible(true)
+                                       , vp.update(target, 
i.getRecording()).setVisible(true));
+               }
        }
 
        @Override

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
 Tue Dec 27 04:10:30 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-         
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -23,7 +23,8 @@
        <form wicket:id="form">
                <div wicket:id="feedback"></div>
                <label wicket:for="password"><wicket:message key="536"/></label>
-               <input wicket:id="password" type="password"/>
+               <input wicket:id="password" type="password" 
autofocus="autofocus"/>
+               <input type="submit" wicket:id="submit" 
class="invisible-form-component"/>
        </form>
 </wicket:panel>
 </html>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
 Tue Dec 27 04:10:30 2016
@@ -27,6 +27,7 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.IUpdatable;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
@@ -63,6 +64,22 @@ public class InvitationPasswordDialog ex
                        }
                });
                add(form.add(password, feedback.setOutputMarkupId(true)));
+               AjaxButton ab = new AjaxButton("submit", form) { //FAKE button 
so "submit-on-enter" works as expected
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               InvitationPasswordDialog.this.onSubmit(target);
+                               InvitationPasswordDialog.this.close(target, 
null);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               InvitationPasswordDialog.this.onError(target);
+                       }
+               };
+               form.add(ab);
+               form.setDefaultButton(ab);
        }
 
        @Override
@@ -76,6 +93,11 @@ public class InvitationPasswordDialog ex
        }
 
        @Override
+       public boolean isDefaultCloseEventEnabled() {
+               return false;
+       }
+
+       @Override
        protected void onOpen(IPartialPageRequestHandler handler) {
                password.setModelObject(null);
        }
@@ -104,5 +126,4 @@ public class InvitationPasswordDialog ex
        protected void onSubmit(AjaxRequestTarget target) {
                comp.update(target);
        }
-
 }

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=1776086&r1=1776085&r2=1776086&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
 Tue Dec 27 04:10:30 2016
@@ -386,7 +386,7 @@ public class RoomPanel extends BasePanel
                                                        String uid = 
((TextRoomMessage)m).getText();
                                                        if 
(getClient().getUid().equals(uid)) {
                                                                
handler.add(room.setVisible(false));
-                                                               //FIXME TODO 
chat still available for the client being kicked
+                                                               
getMainPanel().getChat().toggle(handler, false);
                                                                
clientKicked.open(handler);
                                                        }
                                                }
@@ -466,23 +466,33 @@ public class RoomPanel extends BasePanel
        public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                getBasePage().getHeader().setVisible(false);
                getMainPanel().getTopControls().setVisible(false);
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.Chat) || !isVisible()) {
                        getMainPanel().getChat().toggle(handler, false);
                }
                if (handler != null) {
                        handler.add(getBasePage().getHeader(), 
getMainPanel().getTopControls());
-                       handler.appendJavaScript("roomLoad();");
+                       if (isVisible()) {
+                               handler.appendJavaScript("roomLoad();");
+                       }
                }
                return this;
        }
 
+       public void show(IPartialPageRequestHandler handler) {
+               if (!r.isHidden(RoomElement.Chat)) {
+                       getMainPanel().getChat().toggle(handler, true);
+               }
+               handler.add(this.setVisible(true));
+               handler.appendJavaScript("roomLoad();");
+       }
+
        @Override
        public void cleanup(IPartialPageRequestHandler handler) {
                handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getTopControls().setVisible(true));
                if (r.isHidden(RoomElement.Chat)) {
                        getMainPanel().getChat().toggle(handler, true);
                }
-               handler.appendJavaScript("roomUnload();");
+               handler.appendJavaScript("if (typeof roomUnload == 'function') 
{ roomUnload(); }");
                RoomMenuPanel.roomExit(getClient());
                getMainPanel().getChat().roomExit(r, handler);
        }
@@ -490,7 +500,7 @@ public class RoomPanel extends BasePanel
        private static ResourceReference newResourceReference() {
                return new JavaScriptResourceReference(RoomPanel.class, 
"room.js");
        }
-       
+
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);

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=1776086&r1=1776085&r2=1776086&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
 Tue Dec 27 04:10:30 2016
@@ -36,6 +36,7 @@ function roomReload(event, ui) {
 function roomClosed(jqEvent, msg) {
        roomUnload();
        $(".room.container").remove();
+       $("#chatPanel").remove();
        var dlg = $('#disconnected-dlg');
        dlg.dialog({
                modal: true

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 Tue Dec 27 04:10:30 2016
@@ -217,7 +217,7 @@ public class ChatPanel extends BasePanel
                if (r.isHidden(RoomElement.Chat)) {
                        return;
                }
-               
handler.appendJavaScript(String.format("removeChatTab('%1$s%2$d');", 
ID_ROOM_PREFIX, r.getId()));
+               handler.appendJavaScript(String.format("if (typeof 
removeChatTab == 'function') { removeChatTab('%1$s%2$d'); }", ID_ROOM_PREFIX, 
r.getId()));
                if (!showDashboardChat) {
                        StringBuilder sb = new StringBuilder();
                        sb.append("$(function() {");
@@ -231,7 +231,9 @@ public class ChatPanel extends BasePanel
                setVisible(visible);
                if (handler != null) {
                        handler.add(this);
-                       handler.appendJavaScript("reinit();");
+                       if (visible) {
+                               handler.appendJavaScript("reinit();");
+                       }
                }
        }
 

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
 Tue Dec 27 04:10:30 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-         
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -25,10 +25,9 @@
                        <div wicket:id="info"></div>
                        <div wicket:id="player"></div>
                </div>
-               <div wicket:id="i-pass"></div>
        </div>
+       <div wicket:id="i-pass"></div>
        <div wicket:id="panel-main" style="width: 100%; height: 100%;"></div>
        <div wicket:id="access-denied"></div>
 </wicket:extend>
 </html>
-

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Tue Dec 27 04:10:30 2016
@@ -64,6 +64,8 @@ public class HashPage extends BaseInited
        private final VideoPlayer vp = new VideoPlayer("player", null);
        private String errorKey = "invalid.hash";
        private boolean error = true;
+       private MainPanel mp = null;
+       private RoomPanel rp = null;
 
        public HashPage(PageParameters p) {
                StringValue secure = p.get(HASH);
@@ -95,6 +97,10 @@ public class HashPage extends BaseInited
                                Room r = i.getRoom();
                                if (r != null) {
                                        createRoom(r.getId());
+                                       if (i.isPasswordProtected() && rp != 
null) {
+                                               mp.getChat().setVisible(false);
+                                               
rp.setOutputMarkupPlaceholderTag(true).setVisible(false);
+                                       }
                                }
                        }
                } else if (!secure.isEmpty()) {
@@ -117,7 +123,7 @@ public class HashPage extends BaseInited
                        error = false;
                }
                
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true),
-                               vp.setOutputMarkupPlaceholderTag(true), new 
InvitationPasswordDialog("i-pass", this)));
+                               vp.setOutputMarkupPlaceholderTag(true)), new 
InvitationPasswordDialog("i-pass", this));
        }
 
        private void createRoom(Long roomId) {
@@ -126,7 +132,9 @@ public class HashPage extends BaseInited
                // need to re-fetch Room object to initialize all collections
                Room room = getBean(RoomDao.class).get(roomId);
                if (room != null) {
-                       replace(new MainPanel(PANEL_MAIN, new 
RoomPanel(CHILD_ID, room)));
+                       rp = new RoomPanel(CHILD_ID, room);
+                       mp = new MainPanel(PANEL_MAIN, rp);
+                       replace(mp);
                }
        }
 
@@ -158,8 +166,12 @@ public class HashPage extends BaseInited
        @Override
        public void update(AjaxRequestTarget target) {
                Invitation i = WebSession.get().getInvitation();
-               target.add(vi.update(target, i.getRecording()).setVisible(true)
-                               , vp.update(target, 
i.getRecording()).setVisible(true));
+               if (i.getRoom() != null && rp != null) {
+                       rp.show(target);
+               } else if (i.getRecording() != null) {
+                       target.add(vi.update(target, 
i.getRecording()).setVisible(true)
+                                       , vp.update(target, 
i.getRecording()).setVisible(true));
+               }
        }
 
        @Override

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.html
 Tue Dec 27 04:10:30 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-         
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -23,7 +23,8 @@
        <form wicket:id="form">
                <div wicket:id="feedback"></div>
                <label wicket:for="password"><wicket:message key="536"/></label>
-               <input wicket:id="password" type="password"/>
+               <input wicket:id="password" type="password" 
autofocus="autofocus"/>
+               <input type="submit" wicket:id="submit" 
class="invisible-form-component"/>
        </form>
 </wicket:panel>
 </html>

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
 Tue Dec 27 04:10:30 2016
@@ -27,6 +27,7 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.IUpdatable;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
@@ -63,6 +64,22 @@ public class InvitationPasswordDialog ex
                        }
                });
                add(form.add(password, feedback.setOutputMarkupId(true)));
+               AjaxButton ab = new AjaxButton("submit", form) { //FAKE button 
so "submit-on-enter" works as expected
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               InvitationPasswordDialog.this.onSubmit(target);
+                               InvitationPasswordDialog.this.close(target, 
null);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               InvitationPasswordDialog.this.onError(target);
+                       }
+               };
+               form.add(ab);
+               form.setDefaultButton(ab);
        }
 
        @Override
@@ -76,6 +93,11 @@ public class InvitationPasswordDialog ex
        }
 
        @Override
+       public boolean isDefaultCloseEventEnabled() {
+               return false;
+       }
+
+       @Override
        protected void onOpen(IPartialPageRequestHandler handler) {
                password.setModelObject(null);
        }
@@ -104,5 +126,4 @@ public class InvitationPasswordDialog ex
        protected void onSubmit(AjaxRequestTarget target) {
                comp.update(target);
        }
-
 }

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=1776086&r1=1776085&r2=1776086&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
 Tue Dec 27 04:10:30 2016
@@ -389,7 +389,7 @@ public class RoomPanel extends BasePanel
                                                        String uid = 
((TextRoomMessage)m).getText();
                                                        if 
(getClient().getUid().equals(uid)) {
                                                                
handler.add(room.setVisible(false));
-                                                               //FIXME TODO 
chat still available for the client being kicked
+                                                               
getMainPanel().getChat().toggle(handler, false);
                                                                
clientKicked.open(handler);
                                                        }
                                                }
@@ -469,23 +469,33 @@ public class RoomPanel extends BasePanel
        public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
                getBasePage().getHeader().setVisible(false);
                getMainPanel().getTopControls().setVisible(false);
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.Chat) || !isVisible()) {
                        getMainPanel().getChat().toggle(handler, false);
                }
                if (handler != null) {
                        handler.add(getBasePage().getHeader(), 
getMainPanel().getTopControls());
-                       handler.appendJavaScript("roomLoad();");
+                       if (isVisible()) {
+                               handler.appendJavaScript("roomLoad();");
+                       }
                }
                return this;
        }
 
+       public void show(IPartialPageRequestHandler handler) {
+               if (!r.isHidden(RoomElement.Chat)) {
+                       getMainPanel().getChat().toggle(handler, true);
+               }
+               handler.add(this.setVisible(true));
+               handler.appendJavaScript("roomLoad();");
+       }
+
        @Override
        public void cleanup(IPartialPageRequestHandler handler) {
                handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getTopControls().setVisible(true));
                if (r.isHidden(RoomElement.Chat)) {
                        getMainPanel().getChat().toggle(handler, true);
                }
-               handler.appendJavaScript("roomUnload();");
+               handler.appendJavaScript("if (typeof roomUnload == 'function') 
{ roomUnload(); }");
                RoomMenuPanel.roomExit(getClient());
                getMainPanel().getChat().roomExit(r, handler);
        }
@@ -493,7 +503,7 @@ public class RoomPanel extends BasePanel
        private static ResourceReference newResourceReference() {
                return new JavaScriptResourceReference(RoomPanel.class, 
"room.js");
        }
-       
+
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);

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=1776086&r1=1776085&r2=1776086&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
 Tue Dec 27 04:10:30 2016
@@ -76,6 +76,7 @@ function roomReload(event, ui) {
 function roomClosed(jqEvent, msg) {
        roomUnload();
        $(".room.container").remove();
+       $("#chatPanel").remove();
        var dlg = $('#disconnected-dlg');
        dlg.dialog({
                modal: true

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1776086&r1=1776085&r2=1776086&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 Tue Dec 27 04:10:30 2016
@@ -217,7 +217,7 @@ public class ChatPanel extends BasePanel
                if (r.isHidden(RoomElement.Chat)) {
                        return;
                }
-               
handler.appendJavaScript(String.format("removeChatTab('%1$s%2$d');", 
ID_ROOM_PREFIX, r.getId()));
+               handler.appendJavaScript(String.format("if (typeof 
removeChatTab == 'function') { removeChatTab('%1$s%2$d'); }", ID_ROOM_PREFIX, 
r.getId()));
                if (!showDashboardChat) {
                        StringBuilder sb = new StringBuilder();
                        sb.append("$(function() {");
@@ -231,7 +231,9 @@ public class ChatPanel extends BasePanel
                setVisible(visible);
                if (handler != null) {
                        handler.add(this);
-                       handler.appendJavaScript("reinit();");
+                       if (visible) {
+                               handler.appendJavaScript("reinit();");
+                       }
                }
        }
 


Reply via email to