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 f20675e [OPENMEETINGS-1988] dublicated action requests are filtered f20675e is described below commit f20675e7bb87d4dba17aef8bcf49d3a57a18ddee 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 0624b29..c1de34e 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 @@ -49,6 +49,7 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; +import com.github.openjson.JSONArray; import com.github.openjson.JSONObject; public class ActivitiesPanel extends Panel { @@ -88,7 +89,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)) { @@ -170,6 +171,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(); @@ -240,9 +247,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 3e437c3..3b5563c 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 @@ -82,8 +82,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) { @@ -162,8 +164,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);