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,