Repository: openmeetings
Updated Branches:
  refs/heads/3.3.x e201ec25f -> 3a2dd8378


[OPENMEETINGS-1698] dashboard.show.chat seems to work as expected


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/3a2dd837
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/3a2dd837
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/3a2dd837

Branch: refs/heads/3.3.x
Commit: 3a2dd8378223f49c06ccaba8343cdd033ee466b3
Parents: e201ec2
Author: Maxim Solodovnik <solomax...@gmail.com>
Authored: Mon Sep 11 13:37:37 2017 +0700
Committer: Maxim Solodovnik <solomax...@gmail.com>
Committed: Mon Sep 11 13:38:53 2017 +0700

----------------------------------------------------------------------
 .../apache/openmeetings/web/user/chat/Chat.java | 33 +++++++++++++-------
 .../openmeetings/web/user/chat/ChatPanel.java   | 16 ++++------
 .../apache/openmeetings/web/user/chat/chat.js   |  2 +-
 3 files changed, 28 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3a2dd837/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index 77ad001..c828843 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
@@ -22,6 +22,7 @@ import static 
org.apache.openmeetings.core.util.WebSocketHelper.ID_ALL;
 import static org.apache.openmeetings.core.util.WebSocketHelper.ID_ROOM_PREFIX;
 import static org.apache.openmeetings.core.util.WebSocketHelper.ID_USER_PREFIX;
 import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.Application.getUserRooms;
@@ -46,6 +47,7 @@ import java.util.List;
 import org.apache.openmeetings.core.remote.MobileService;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ChatMessage;
@@ -79,6 +81,7 @@ public class Chat extends Panel {
        private static final String PARAM_MSG_ID = "msgid";
        private static final String PARAM_ROOM_ID = "roomid";
        private static final String PARAM_TYPE = "type";
+       private boolean showDashboardChat = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_DASHBOARD_SHOW_CHAT, 
Integer.class, "1") == 1;
        private final AbstractDefaultAjaxBehavior chatActivity = new 
AbstractDefaultAjaxBehavior() {
                private static final long serialVersionUID = 1L;
 
@@ -156,19 +159,21 @@ public class Chat extends Panel {
                
response.render(CssHeaderItem.forReference(EMOTIONS_CSS_REFERENCE));
                response.render(new 
PriorityHeaderItem(getNamedFunction("chatActivity", chatActivity, 
explicit(PARAM_TYPE), explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID))));
 
-               ChatDao dao = getBean(ChatDao.class);
-               //FIXME limited count should be loaded with "earlier" link
-               List<ChatMessage> list = new ArrayList<>(dao.getGlobal(0, 30));
-               for(Long roomId : getUserRooms(getUserId())) {
-                       Room r = getBean(RoomDao.class).get(roomId);
-                       list.addAll(dao.getRoom(roomId, 0, 30, 
!r.isChatModerated() || isModerator(getUserId(), roomId)));
-               }
-               list.addAll(dao.getUserRecent(getUserId(), 
Date.from(Instant.now().minus(Duration.ofHours(1L))), 0, 30));
-               StringBuilder sb = new StringBuilder(getReinit());
-               if (list.size() > 0) {
-                       
sb.append("Chat.addMessage(").append(getMessage(list).toString()).append(");");
+               if (showDashboardChat) {
+                       ChatDao dao = getBean(ChatDao.class);
+                       //FIXME limited count should be loaded with "earlier" 
link
+                       List<ChatMessage> list = new 
ArrayList<>(dao.getGlobal(0, 30));
+                       for(Long roomId : getUserRooms(getUserId())) {
+                               Room r = getBean(RoomDao.class).get(roomId);
+                               list.addAll(dao.getRoom(roomId, 0, 30, 
!r.isChatModerated() || isModerator(getUserId(), roomId)));
+                       }
+                       list.addAll(dao.getUserRecent(getUserId(), 
Date.from(Instant.now().minus(Duration.ofHours(1L))), 0, 30));
+                       StringBuilder sb = new StringBuilder(getReinit());
+                       if (list.size() > 0) {
+                               
sb.append("Chat.addMessage(").append(getMessage(list).toString()).append(");");
+                       }
+                       
response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
                }
-               response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
        }
 
        private class ChatForm extends Form<Void> {
@@ -276,4 +281,8 @@ public class Chat extends Panel {
                        add(delBtn.setVisible(hasAdminLevel(getRights())));
                }
        }
+
+       public boolean isShowDashboardChat() {
+               return showDashboardChat;
+       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3a2dd837/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
index a6822c2..ffe0c53 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
@@ -19,11 +19,8 @@
 package org.apache.openmeetings.web.user.chat;
 
 import static org.apache.openmeetings.core.util.WebSocketHelper.ID_ROOM_PREFIX;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
-import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.user.chat.Chat.getReinit;
 
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.web.common.BasePanel;
@@ -36,7 +33,6 @@ import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 @AuthorizeInstantiation({"Dashboard", "Room"})
 public class ChatPanel extends BasePanel {
        private static final long serialVersionUID = 1L;
-       private boolean showDashboardChat = 
getBean(ConfigurationDao.class).getConfValue(CONFIG_DASHBOARD_SHOW_CHAT, 
Integer.class, "1") == 1;
        private final Chat chat;
 
        public ChatPanel(String id) {
@@ -54,8 +50,8 @@ public class ChatPanel extends BasePanel {
                }
                StringBuilder sb = new StringBuilder();
                sb.append("$(function() {");
-               if (!showDashboardChat) {
-                       sb.append("$('#chat').show();");
+               if (!chat.isShowDashboardChat()) {
+                       sb.append("$('#chatPanel,#chat').show();");
                }
                sb.append(chat.addRoom(r));
                sb.append(r.isChatOpened() ? "Chat.open();" : "Chat.close();");
@@ -68,10 +64,10 @@ public class ChatPanel extends BasePanel {
                        return;
                }
                handler.appendJavaScript(String.format("if (typeof Chat == 
'object') { Chat.removeTab('%1$s%2$d'); }", ID_ROOM_PREFIX, r.getId()));
-               if (!showDashboardChat) {
+               if (!chat.isShowDashboardChat()) {
                        StringBuilder sb = new StringBuilder();
                        sb.append("$(function() {");
-                       sb.append("$('#chat').hide();");
+                       sb.append("$('#chatPanel,#chat').hide();");
                        sb.append("});");
                        handler.appendJavaScript(sb);
                }
@@ -90,11 +86,11 @@ public class ChatPanel extends BasePanel {
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
-               if (!showDashboardChat) {
+               if (!chat.isShowDashboardChat()) {
                        StringBuilder sb = new StringBuilder();
                        sb.append("$(document).ready(function(){");
                        sb.append("$('#ui-id-1').hide();");
-                       sb.append("$('#chat').hide();");
+                       sb.append("$('#chatPanel,#chat').hide();");
                        sb.append("});");
                        
response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3a2dd837/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
index 626aae8..0c0c417 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
@@ -173,7 +173,7 @@ var Chat = function() {
                        if ($('#chat').length > 0 && m && m.type == "chat") {
                                if (isClosed()) {
                                        $('#chatPopup 
.control.block').addClass('ui-state-highlight');
-                                       if (s.chat.muted !== true) {
+                                       if ($('#chatPanel').is(':visible') && 
s.chat.muted !== true) {
                                                var playPromise = audio.play();
 
                                                // In browsers that don’t yet 
support this functionality,

Reply via email to