You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2019/02/11 08:06:15 UTC
[openmeetings] branch 4.0.x updated: [OPENMEETINGS-2008] chat clean
affects all users
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 <so...@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") {