You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/02/10 15:43:28 UTC

[syncope] branch 2_1_X updated: Improving Schema Type's search bar

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

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


The following commit(s) were added to refs/heads/2_1_X by this push:
     new 042c0a9  Improving Schema Type's search bar
042c0a9 is described below

commit 042c0a941043f1a3d320b55a3b55214777816613
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon Feb 10 16:27:09 2020 +0100

    Improving Schema Type's search bar
---
 .../client/console/panels/DirectoryPanel.java      | 10 ++--
 .../client/console/panels/SchemaTypePanel.java     | 12 ++--
 .../client/console/panels/SchemasPanel.java        | 69 +++++-----------------
 .../console/panels/search/AbstractSearchPanel.java |  3 +
 .../repeater/data/table/AjaxFallbackDataTable.java |  3 +-
 .../markup/html/form/ActionLinksTogglePanel.java   |  8 ++-
 .../client/console/panels/SchemasPanel.html        | 10 ++--
 7 files changed, 43 insertions(+), 72 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index 399b202..32c7156 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -272,11 +272,11 @@ public abstract class DirectoryPanel<
         }
     }
 
-    private void updateResultTable(final boolean create) {
+    protected void updateResultTable(final boolean create) {
         updateResultTable(create, rows);
     }
 
-    private void updateResultTable(final boolean create, final int rows) {
+    protected void updateResultTable(final boolean create, final int rows) {
         dataProvider = dataProvider();
 
         final int currentPage = resultTable != null
@@ -298,9 +298,9 @@ public abstract class DirectoryPanel<
                 return DirectoryPanel.this.getTogglePanel();
             }
 
-        }.
-                setColumns(getColumns()).
-                setRowsPerPage(rows).setBatches(getBatches(), restClient, itemKeyFieldName).
+        }.setColumns(getColumns()).
+                setRowsPerPage(rows).
+                setBatches(getBatches(), restClient, itemKeyFieldName).
                 setContainer(container);
 
         if (!checkBoxEnabled) {
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
index 9147359..5846d2f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
@@ -263,11 +263,13 @@ public class SchemaTypePanel extends TypesDirectoryPanel<SchemaTO, SchemaProvide
             AjaxRequestTarget target = payload.getTarget();
 
             keyword = payload.getKeyword();
-            if (!StringUtils.startsWith(keyword, "*")) {
-                keyword = "*" + keyword;
-            }
-            if (!StringUtils.endsWith(keyword, "*")) {
-                keyword = keyword + "*";
+            if (StringUtils.isNotBlank(keyword)) {
+                if (!StringUtils.startsWith(keyword, "*")) {
+                    keyword = "*" + keyword;
+                }
+                if (!StringUtils.endsWith(keyword, "*")) {
+                    keyword = keyword + "*";
+                }
             }
 
             updateResultTable(target);
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java
index e45a58a..2bcebfa 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java
@@ -24,14 +24,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.tabs.Accordion;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
 import org.apache.syncope.common.lib.types.SchemaType;
-import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.Component;
 import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.event.Broadcast;
 import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
 import org.apache.wicket.extensions.markup.html.tabs.ITab;
@@ -44,71 +39,37 @@ public class SchemasPanel extends Panel {
 
     private static final long serialVersionUID = -1140213992451232279L;
 
-    private static final String SEARCH_SUBMIT_LINK = "searchSubmitLink";
-
-    private final PageReference pageReference;
+    private final PageReference pageRef;
 
     public SchemasPanel(final String id, final PageReference pageRef) {
         super(id);
 
-        this.pageReference = pageRef;
+        this.pageRef = pageRef;
 
-        final Model<String> keywordModel = new Model<>(StringUtils.EMPTY);
+        Model<String> keywordModel = new Model<>(StringUtils.EMPTY);
 
         WebMarkupContainer searchBoxContainer = new WebMarkupContainer("searchBox");
         add(searchBoxContainer);
 
-        final Form<?> form = new Form<>("form");
+        Form<?> form = new Form<>("form");
         searchBoxContainer.add(form);
 
-        final AjaxTextFieldPanel searchPanel = new AjaxTextFieldPanel(
-                "filter", "filter", keywordModel, true);
-        form.add(searchPanel.hideLabel().setOutputMarkupId(true));
+        AjaxTextFieldPanel filter = new AjaxTextFieldPanel("filter", "filter", keywordModel, true);
+        form.add(filter.hideLabel().setOutputMarkupId(true));
 
-        final AjaxSubmitLink submitLink = new AjaxSubmitLink("search") {
+        AjaxButton search = new AjaxButton("search") {
 
-            private static final long serialVersionUID = -1765773642975892072L;
+            private static final long serialVersionUID = 8390605330558248736L;
 
             @Override
-            protected void onAfterSubmit(final AjaxRequestTarget target) {
-                super.onAfterSubmit(target);
-
-                send(SchemasPanel.this, Broadcast.DEPTH,
+            protected void onSubmit(final AjaxRequestTarget target) {
+                send(SchemasPanel.this, Broadcast.DEPTH, 
                         new SchemaTypePanel.SchemaSearchEvent(target, keywordModel.getObject()));
             }
         };
-        submitLink.setOutputMarkupId(true);
-        submitLink.setMarkupId(SEARCH_SUBMIT_LINK);
-        form.add(submitLink);
-
-        searchPanel.getField().add(AttributeModifier.replace(
-                "onkeydown",
-                Model.of("if(event.keyCode == 13) {event.preventDefault();}")));
-
-        searchPanel.getField().add(new AjaxEventBehavior("onkeydown") {
-
-            private static final long serialVersionUID = -7133385027739964990L;
-
-            @Override
-            protected void onEvent(final AjaxRequestTarget target) {
-                target.appendJavaScript("$('#" + SEARCH_SUBMIT_LINK + "').click();");
-            }
-
-            @Override
-            protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
-                super.updateAjaxAttributes(attributes);
-
-                attributes.getAjaxCallListeners().add(new AjaxCallListener() {
-
-                    private static final long serialVersionUID = 7160235486520935153L;
-
-                    @Override
-                    public CharSequence getPrecondition(final Component component) {
-                        return "if (Wicket.Event.keyCode(attrs.event)  == 13) { return true; } else { return false; }";
-                    }
-                });
-            }
-        });
+        search.setOutputMarkupId(true);
+        form.add(search);
+        form.setDefaultButton(search);
 
         Accordion accordion = new Accordion("accordionPanel", buildTabList());
         accordion.setOutputMarkupId(true);
@@ -125,7 +86,7 @@ public class SchemasPanel extends Panel {
 
                 @Override
                 public Panel getPanel(final String panelId) {
-                    return new SchemaTypePanel(panelId, schemaType, pageReference);
+                    return new SchemaTypePanel(panelId, schemaType, pageRef);
                 }
             });
         }
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
index 32cdc3d..131cf22 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
@@ -95,6 +95,9 @@ public abstract class AbstractSearchPanel extends Panel {
         protected boolean enableSearch = false;
 
         protected SearchClausePanel.Customizer customizer = new SearchClausePanel.Customizer() {
+
+            private static final long serialVersionUID = 4449199405807453441L;
+
         };
 
         protected IEventSink resultContainer;
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 a3ffc29..a85941d 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
@@ -119,7 +119,6 @@ public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable<
         return null;
     }
 
-
     @Override
     protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
         final OddEvenItem<T> item = new OddEvenItem<>(id, index, model);
@@ -131,7 +130,7 @@ public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable<
                 item.add(new AttributeModifier("style", "cursor: pointer;"));
                 item.add(new AjaxEventBehavior(Constants.ON_CLICK) {
 
-                    private static final long serialVersionUID = 1L;
+                    private static final long serialVersionUID = -4609215765213990763L;
 
                     @Override
                     protected String findIndicatorId() {
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
index a758f1b..63d0e83 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
@@ -125,8 +125,12 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
     }
 
     public void toggleWithContent(
-            final AjaxRequestTarget target, final ActionsPanel<T> actionsPanel, final T modelObject) {
+            final AjaxRequestTarget target,
+            final ActionsPanel<T> actionsPanel,
+            final T modelObject) {
+
         updateHeader(target, modelObject);
+
         modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
 
             private static final long serialVersionUID = 8804221891699487139L;
@@ -137,7 +141,7 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
             }
         });
 
-        final Fragment frag = new Fragment("actions", "actionsFragment", this);
+        Fragment frag = new Fragment("actions", "actionsFragment", this);
         frag.setOutputMarkupId(true);
         frag.add(actionsPanel);
 
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/SchemasPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SchemasPanel.html
index c1e31f3..bf3cc46 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/SchemasPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SchemasPanel.html
@@ -20,10 +20,12 @@ under the License.
   <wicket:panel>
     <div wicket:id="searchBox">
       <form wicket:id="form">
-        <div class="form-group input-group">
+        <div class="input-group margin-bottom">
           <span wicket:id="filter">[FILTER]</span>
-          <span class="input-group-addon">
-            <a href="#" wicket:id="search"><i class="glyphicon glyphicon-search"></i></a>
+          <span class="input-group-btn">
+            <button type="button" class="btn btn-default btn-flat" wicket:id="search">
+              <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
+            </button>
           </span>
         </div>
       </form>
@@ -31,4 +33,4 @@ under the License.
 
     <div wicket:id="accordionPanel"></div>
   </wicket:panel>
-</html>
\ No newline at end of file
+</html>