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

ilgrosso pushed a commit to branch 4_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 23201cf82fe46c7bbf04c7325dea465b73276190
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Wed Sep 16 11:03:36 2026 +0200

    [SYNCOPE-1995] Reworking webSocket-based timers for Tasks and Reports
---
 .../client/console/panels/DirectoryPanel.java        | 20 ++++++++++++++++++++
 .../client/console/reports/ReportDirectoryPanel.java | 13 +------------
 .../console/tasks/SchedTaskDirectoryPanel.java       | 13 +------------
 3 files changed, 22 insertions(+), 24 deletions(-)

diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index ad1158cb8b..227f117fa9 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -24,6 +24,7 @@ import java.io.Serializable;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import java.util.function.BiConsumer;
 import org.apache.syncope.client.console.PreferenceManager;
 import org.apache.syncope.client.console.commons.DirectoryDataProvider;
@@ -32,6 +33,7 @@ import 
org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.Bas
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksTogglePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.client.console.wicket.ws.BasePageWebSocketBehavior;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
 import org.apache.syncope.client.ui.commons.Constants;
 import 
org.apache.syncope.client.ui.commons.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
@@ -48,6 +50,7 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,6 +64,23 @@ public abstract class DirectoryPanel<
 
     protected static final JsonMapper MAPPER = 
JsonMapper.builder().findAndAddModules().build();
 
+    protected class OnTimerUpdateResultTable extends 
BasePageWebSocketBehavior.OnTimerChild {
+
+        private static final long serialVersionUID = 532119924423529449L;
+
+        public OnTimerUpdateResultTable() {
+            super(10, TimeUnit.SECONDS);
+        }
+
+        @Override
+        protected void onTimer(final WebSocketRequestHandler handler) {
+            updateResultTable(false);
+            if (container.isVisibleInHierarchy()) {
+                handler.add(container);
+            }
+        }
+    }
+
     protected E restClient;
 
     /**
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
index 4392e4ae4e..12dedca431 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.commons.DirectoryDataProvider;
@@ -67,7 +66,6 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.StringResourceModel;
-import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 /**
@@ -101,16 +99,7 @@ public abstract class ReportDirectoryPanel
 
         pageRef.getPage().getBehaviors().stream().
                 
filter(BasePageWebSocketBehavior.class::isInstance).map(BasePageWebSocketBehavior.class::cast).
-                findFirst().ifPresent(wsb -> wsb.add(new 
BasePageWebSocketBehavior.OnTimerChild(10, TimeUnit.SECONDS) {
-
-            private static final long serialVersionUID = -4661303265651934868L;
-
-            @Override
-            protected void onTimer(final WebSocketRequestHandler handler) {
-                container.modelChanged();
-                handler.add(container);
-            }
-        }));
+                findFirst().ifPresent(wsb -> wsb.add(new 
OnTimerUpdateResultTable()));
 
         startAt = new ReportStartAtTogglePanel(container, pageRef);
         addInnerObject(startAt);
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index 94a6dda78e..175d360e70 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -69,7 +68,6 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.StringResourceModel;
-import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 /**
@@ -123,16 +121,7 @@ public abstract class SchedTaskDirectoryPanel<T extends 
SchedTaskTO>
 
         pageRef.getPage().getBehaviors().stream().
                 
filter(BasePageWebSocketBehavior.class::isInstance).map(BasePageWebSocketBehavior.class::cast).
-                findFirst().ifPresent(wsb -> wsb.add(new 
BasePageWebSocketBehavior.OnTimerChild(10, TimeUnit.SECONDS) {
-
-            private static final long serialVersionUID = 532119924423529449L;
-
-            @Override
-            protected void onTimer(final WebSocketRequestHandler handler) {
-                container.modelChanged();
-                handler.add(container);
-            }
-        }));
+                findFirst().ifPresent(wsb -> wsb.add(new 
OnTimerUpdateResultTable()));
 
         startAt = new TaskStartAtTogglePanel(container, pageRef);
         addInnerObject(startAt);

Reply via email to