This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 467faec  [OPENMEETINGS-2008] chat clean affects all users
467faec is described below

commit 467faece48c246a191f8c5d9c709b31f91da51a4
Author: Maxim Solodovnik <solomax...@gmail.com>
AuthorDate: Mon Feb 11 15:01:35 2019 +0700

    [OPENMEETINGS-2008] chat clean affects all users
---
 .../org/apache/openmeetings/web/user/chat/ChatToolbar.java   | 12 +++++++-----
 .../java/org/apache/openmeetings/web/user/chat/raw-chat.js   |  6 +++++-
 2 files changed, 12 insertions(+), 6 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 a635d3c..b87f1d8 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
@@ -32,6 +32,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;
@@ -51,6 +52,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 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;
 
@@ -191,19 +193,19 @@ public class ChatToolbar extends Panel implements 
IWysiwygToolbar {
                                        () -> {
                                                if (admin) {
                                                        chatDao.deleteGlobal();
-                                                       clean(target, ID_ALL);
+                                                       
WebSocketHelper.sendAll(cleanMsg(ID_ALL).toString());
                                                }
                                                return true;
                                        }
                                        , r -> {
                                                if (admin || isModerator(cm, 
getUserId(), r.getId())) {
                                                        
chatDao.deleteRoom(r.getId());
-                                                       clean(target, scope);
+                                                       
WebSocketHelper.sendRoom(r.getId(), cleanMsg(scope));
                                                }
                                                return true;
                                        }, u -> {
                                                chatDao.deleteUser(u.getId());
-                                               clean(target, scope);
+                                               
WebSocketHelper.sendUser(u.getId(), cleanMsg(scope).toString());
                                                return true;
                                        });
                        }
@@ -221,8 +223,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 f15537c..95d4ec2 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
@@ -439,7 +439,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") {

Reply via email to