You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by mm...@apache.org on 2020/02/04 12:41:53 UTC

[syncope] 04/04: work out events with item selection after the merge

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

mmoayyed pushed a commit to branch SYNCOPE-1506
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit 836607ea209eade19f197151c50b39ec8f7674ff
Author: Misagh Moayyed <mm...@gmail.com>
AuthorDate: Tue Feb 4 16:41:14 2020 +0400

    work out events with item selection after the merge
---
 .../panels/MergeLinkedAccountsResourcesPanel.java     | 10 ++++++++++
 .../panels/MergeLinkedAccountsSearchPanel.java        | 19 +++++--------------
 .../repeater/data/table/AjaxFallbackDataTable.java    |  6 +-----
 .../wizards/any/MergeLinkedAccountsWizardBuilder.java |  7 ++++---
 4 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsResourcesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsResourcesPanel.java
index b06a0c0..628b1a6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsResourcesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsResourcesPanel.java
@@ -125,6 +125,16 @@ public class MergeLinkedAccountsResourcesPanel extends WizardStep implements ICo
                         model.getMergingUser().getKey());
                     if (connObjectKeyValue != null) {
                         model.setResource(resource);
+                        String tableId = MergeLinkedAccountsResourcesPanel.this.
+                            get("resources:container:content:searchContainer:resultTable"
+                                + ":tablePanel:groupForm:checkgroup:dataTable").
+                            getMarkupId();
+                        String js = "$('#" + tableId + "').removeClass('active');";
+                        js += "$('#" + tableId + " tbody tr td div').filter(function() "
+                            + "{return $(this).text() === \"" + resource.getKey() + "\";})"
+                            + ".parent().parent().addClass('active');";
+                        target.prependJavaScript(js);
+
                     } else {
                         error("Unable to determine connector object key");
                         ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsSearchPanel.java
index 0d299a6..5e8d55a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsSearchPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/MergeLinkedAccountsSearchPanel.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.client.console.panels;
 
-import org.apache.syncope.client.console.SyncopeConsoleApplication;
 import org.apache.syncope.client.console.panels.search.AnySelectionDirectoryPanel;
 import org.apache.syncope.client.console.panels.search.SearchClausePanel;
 import org.apache.syncope.client.console.panels.search.SearchUtils;
@@ -36,7 +35,6 @@ import org.apache.wicket.Component;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.wizard.WizardModel.ICondition;
 import org.apache.wicket.extensions.wizard.WizardStep;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Fragment;
@@ -46,7 +44,7 @@ import org.apache.wicket.model.util.ListModel;
 
 import java.util.ArrayList;
 
-public class MergeLinkedAccountsSearchPanel extends WizardStep implements ICondition {
+public class MergeLinkedAccountsSearchPanel extends WizardStep {
     private static final long serialVersionUID = 1221037007528732347L;
 
     private final WebMarkupContainer ownerContainer;
@@ -61,8 +59,8 @@ public class MergeLinkedAccountsSearchPanel extends WizardStep implements ICondi
 
     private final Fragment userSearchFragment;
 
-    private MergeLinkedAccountsWizardModel wizardModel;
-    
+    private final MergeLinkedAccountsWizardModel wizardModel;
+
     public MergeLinkedAccountsSearchPanel(final MergeLinkedAccountsWizardModel model, final PageReference pageRef) {
         super();
         setOutputMarkupId(true);
@@ -99,23 +97,16 @@ public class MergeLinkedAccountsSearchPanel extends WizardStep implements ICondi
         } else if (event.getPayload() instanceof AnySelectionDirectoryPanel.ItemSelection) {
             AnySelectionDirectoryPanel.ItemSelection payload =
                 (AnySelectionDirectoryPanel.ItemSelection) event.getPayload();
-            
+
             final AnyTO sel = payload.getSelection();
             this.wizardModel.setMergingUser(new UserRestClient().read(sel.getKey()));
 
             String tableId = ((Component) event.getSource()).
                 get("container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable").
                 getMarkupId();
-            String rowId = "dataTableRowId" + sel.getKey();
             String js = "$('#" + tableId + " tr').removeClass('active');";
-            js += "$('#" + tableId + " tr[id=" + rowId + "]').addClass('active');";
+            js += "$('#" + tableId + " td[title=" + sel.getKey() + "]').parent().addClass('active');";
             payload.getTarget().prependJavaScript(js);
         }
     }
-
-    @Override
-    public boolean evaluate() {
-        return SyncopeConsoleApplication.get().getSecuritySettings().getAuthorizationStrategy().
-            isActionAuthorized(this, RENDER);
-    }
 }
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
index 5a095e7..a3ffc29 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
@@ -26,7 +26,6 @@ import org.apache.syncope.client.console.panels.AjaxDataTablePanel;
 import org.apache.syncope.client.console.wicket.ajax.markup.html.navigation.paging.AjaxDataNavigationToolbar;
 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.common.lib.to.EntityTO;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -123,10 +122,7 @@ public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable<
 
     @Override
     protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
-        String componentId = "dataTableRowId" + EntityTO.class.cast(model.getObject()).getKey();
-        final OddEvenItem<T> item = new OddEvenItem<>(componentId, index, model);
-        item.setMarkupId(componentId);
-        item.setOutputMarkupId(true);
+        final OddEvenItem<T> item = new OddEvenItem<>(id, index, model);
 
         if (togglePanel != null) {
             final ActionsPanel<T> actions = getActions(model);
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsWizardBuilder.java
index b35f29b..be549d5 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsWizardBuilder.java
@@ -25,6 +25,7 @@ import org.apache.syncope.client.console.pages.BasePage;
 import org.apache.syncope.client.console.panels.MergeLinkedAccountsResourcesPanel;
 import org.apache.syncope.client.console.panels.MergeLinkedAccountsReviewPanel;
 import org.apache.syncope.client.console.panels.MergeLinkedAccountsSearchPanel;
+import org.apache.syncope.client.console.panels.UserDirectoryPanel;
 import org.apache.syncope.client.console.rest.ResourceRestClient;
 import org.apache.syncope.client.console.rest.UserRestClient;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
@@ -43,7 +44,6 @@ import org.apache.wicket.PageReference;
 import org.apache.wicket.event.IEvent;
 import org.apache.wicket.event.IEventSink;
 import org.apache.wicket.extensions.wizard.WizardModel;
-import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 
 import javax.ws.rs.HttpMethod;
@@ -59,14 +59,14 @@ public class MergeLinkedAccountsWizardBuilder extends AjaxWizardBuilder<UserTO>
 
     private static final ObjectMapper MAPPER = new ObjectMapper();
 
-    private final Panel parentPanel;
+    private final UserDirectoryPanel parentPanel;
 
     private final BaseModal<?> modal;
 
     private MergeLinkedAccountsWizardModel model;
 
     public MergeLinkedAccountsWizardBuilder(final IModel<UserTO> model, final PageReference pageRef,
-                                            final Panel parentPanel, final BaseModal<?> modal) {
+                                            final UserDirectoryPanel parentPanel, final BaseModal<?> modal) {
         super(model.getObject(), pageRef);
         this.parentPanel = parentPanel;
         this.modal = modal;
@@ -92,6 +92,7 @@ public class MergeLinkedAccountsWizardBuilder extends AjaxWizardBuilder<UserTO>
                     mergeAccounts();
                     this.parentPanel.info(this.parentPanel.getString(Constants.OPERATION_SUCCEEDED));
                     ((BasePage) this.parentPanel.getPage()).getNotificationPanel().refresh(target);
+                    parentPanel.updateResultTable(target);
                     modal.close(target);
                 } catch (Exception e) {
                     this.parentPanel.error(this.parentPanel.getString(Constants.ERROR) + ": " + e.getMessage());