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>