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 8009a74 [OPENMEETINGS-1988] dublicated action requests are filtered 8009a74 is described below commit 8009a740cac9ae4c68919514bf9c2be30fe1367e Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Wed Feb 13 16:50:37 2019 +0700 [OPENMEETINGS-1988] dublicated action requests are filtered --- .../web/room/activities/ActivitiesPanel.java | 22 ++++++++++++++++++---- .../openmeetings/web/room/activities/activities.js | 8 ++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java index 043fb8e..b7789d3 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java @@ -48,6 +48,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.github.openjson.JSONArray; import com.github.openjson.JSONObject; public class ActivitiesPanel extends Panel { @@ -87,7 +88,7 @@ public class ActivitiesPanel extends Panel { } switch (act) { case close: - remove(id, target); + remove(target, id); break; case decline: if (room.getClient().hasRight(Right.moderator)) { @@ -171,6 +172,12 @@ public class ActivitiesPanel extends Panel { if (shouldSkip(self, a)) { return; } + if (a.getType().isAction()) { + remove(handler, activities.entrySet().parallelStream() + .filter(e -> a.getSender().equals(e.getValue().getSender()) && a.getType() == e.getValue().getType()) + .map(e -> e.getValue().getId()) + .toArray(String[]::new)); + } activities.put(a.getId(), a); String text = ""; final String name = self ? getString("1362") : a.getName(); @@ -241,9 +248,16 @@ public class ActivitiesPanel extends Panel { handler.appendJavaScript(new StringBuilder("Activities.add(").append(aobj.toString()).append(");")); } - public void remove(String uid, IPartialPageRequestHandler handler) { - activities.remove(uid); - handler.appendJavaScript(String.format("Activities.remove('%s');", uid)); + public void remove(IPartialPageRequestHandler handler, String...ids) { + if (ids.length < 1) { + return; + } + JSONArray arr = new JSONArray(); + for (String id : ids) { + arr.put(id); + activities.remove(id); + } + handler.appendJavaScript(String.format("Activities.remove(%s);", arr)); } @Override diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js index f97dc53..7ce2d68 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js @@ -84,8 +84,10 @@ var Activities = function() { function _action(name, val) { activityAction($('.room.box').data('room-id'), name, val); } - function _remove(id) { - $('#' + _getId(id)).remove(); + function _remove(ids) { + for (let i = 0; i < ids.length; ++i) { + $('#' + _getId(ids[i])).remove(); + } _updateCount(); } function _clearItem(id) { @@ -168,8 +170,6 @@ var Activities = function() { fnd.hide(); } a.find('.activity-close').click(function() { - a.remove(); - _updateCount(); _action('close', obj.id); }); a.find('.activity-text').text(obj.text);