This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch 4.0.x in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push: new 7e9e6cb [OPENMEETINGS-2008] chat clean affects all users 7e9e6cb is described below commit 7e9e6cb992e779ed31ddbb4ab737a7eb8b380697 Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Mon Feb 11 15:01:35 2019 +0700 [OPENMEETINGS-2008] chat clean affects all users --- .../openmeetings/web/user/chat/ChatToolbar.java | 20 +++++++++++--------- .../apache/openmeetings/web/user/chat/raw-chat.js | 6 +++++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java index 62872a7..f90cab1 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java @@ -33,6 +33,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import org.apache.openmeetings.core.util.WebSocketHelper; import org.apache.openmeetings.db.dao.basic.ChatDao; import org.apache.openmeetings.db.entity.basic.ChatMessage; import org.apache.openmeetings.db.entity.user.User; @@ -50,6 +51,7 @@ import org.apache.wicket.request.resource.ResourceStreamResource; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.StringResourceStream; +import com.github.openjson.JSONObject; import com.googlecode.wicket.jquery.core.IJQueryWidget.JQueryWidget; import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.IWysiwygToolbar; @@ -180,26 +182,26 @@ public class ChatToolbar extends Panel implements IWysiwygToolbar { @Override protected void onSubmit(AjaxRequestTarget target) { - final ChatDao dao = getBean(ChatDao.class); + final ChatDao chatDao = getBean(ChatDao.class); final String scope = chatForm.getScope(); final boolean admin = hasAdminLevel(getRights()); chatForm.process( () -> { if (admin) { - dao.deleteGlobal(); - clean(target, ID_ALL); + chatDao.deleteGlobal(); + WebSocketHelper.sendAll(cleanMsg(ID_ALL).toString()); } return true; } , r -> { if (admin || isModerator(getUserId(), r.getId())) { - dao.deleteRoom(r.getId()); - clean(target, scope); + chatDao.deleteRoom(r.getId()); + WebSocketHelper.sendRoom(r.getId(), cleanMsg(scope)); } return true; }, u -> { - dao.deleteUser(u.getId()); - clean(target, scope); + chatDao.deleteUser(u.getId()); + WebSocketHelper.sendUser(u.getId(), cleanMsg(scope).toString()); return true; }); } @@ -217,8 +219,8 @@ public class ChatToolbar extends Panel implements IWysiwygToolbar { })); } - private static void clean(AjaxRequestTarget target, String scope) { - target.appendJavaScript("$('#" + scope + "').html('')"); + private static JSONObject cleanMsg(String scope) { + return new JSONObject().put("type", "chat").put("action", "clean").put("scope", scope); } void update(AjaxRequestTarget target) { diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js index 366264d..d89e06b 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/raw-chat.js @@ -437,7 +437,11 @@ $(function() { if (m) { switch(m.type) { case "chat": - Chat.addMessage(m); + if ('clean' === m.action) { + $('#' + m.scope).html(''); + } else { + Chat.addMessage(m); + } break; case "typing": if (typeof(typingActivity) === "function") {