You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2015/12/31 09:20:11 UTC
[1/4] syncope git commit: [SYNCOPE-156] providing material style for
buttons
Repository: syncope
Updated Branches:
refs/heads/master 24cb528e6 -> 6a93860d8
[SYNCOPE-156] providing material style for buttons
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/e5990330
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/e5990330
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/e5990330
Branch: refs/heads/master
Commit: e5990330f193fd7e0777b37ea5128b939e9000a8
Parents: 24cb528
Author: fmartelli <fa...@gmail.com>
Authored: Tue Dec 29 11:26:46 2015 +0100
Committer: fmartelli <fa...@gmail.com>
Committed: Thu Dec 31 08:55:33 2015 +0100
----------------------------------------------------------------------
.../syncope/client/console/pages/Realms.java | 97 ++++++--------------
.../syncope/client/console/pages/Types.java | 1 -
.../syncope/client/console/panels/Realm.java | 46 +++++++++-
.../client/console/panels/RealmDetails.java | 24 ++++-
.../resources/META-INF/resources/css/bulk.css | 2 +
.../META-INF/resources/css/syncopeConsole.css | 71 +++++++++++---
.../syncope/client/console/pages/Realms.html | 18 +---
.../client/console/pages/SecurityQuestions.html | 14 +--
.../panels/AbstractSearchResultPanel.html | 14 +--
.../console/panels/AbstractTypesPanel.html | 12 +--
.../client/console/panels/RealmDetails.html | 11 ++-
.../markup/html/form/ActionLinksPanel.html | 64 ++++++-------
.../client/console/wizards/WizardMgtPanel.html | 4 +-
13 files changed, 217 insertions(+), 161 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index 53cd426..19c3e0a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -24,15 +24,11 @@ import org.apache.syncope.client.console.panels.RealmModalPanel;
import org.apache.syncope.client.console.panels.RealmSidebarPanel;
import org.apache.syncope.client.console.panels.RealmSidebarPanel.ControlSidebarClick;
import org.apache.syncope.client.console.rest.RealmRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.confirmation.ConfirmationModalBehavior;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -82,10 +78,6 @@ public class Realms extends BasePage {
}
});
- setupDeleteLink();
- setupCreateLink();
- setupEditLink();
-
updateRealmContent(realmSidebarPanel.getCurrentRealm());
}
@@ -103,63 +95,22 @@ public class Realms extends BasePage {
private WebMarkupContainer updateRealmContent(final RealmTO realmTO) {
content.addOrReplace(new Label("header", realmTO.getName()));
- content.addOrReplace(new Realm("body", realmTO, getPageReference()));
- return content;
- }
-
- private void setupDeleteLink() {
+ content.addOrReplace(new Realm("body", realmTO, getPageReference()) {
- @SuppressWarnings("unchecked")
- final AjaxLink<Void> deleteLink = new AjaxLink("deleteLink", Model.of("deleteLink")) {
-
- private static final long serialVersionUID = 3776750333491622263L;
+ private static final long serialVersionUID = 8221398624379357183L;
@Override
- public void onClick(final AjaxRequestTarget target) {
- try {
- final RealmTO toBeDeleted = realmSidebarPanel.getCurrentRealm();
-
- if (toBeDeleted.getKey() == 0) {
- throw new Exception("Root realm cannot be deleted");
- }
-
- realmRestClient.delete(toBeDeleted.getFullPath());
-
- target.add(realmSidebarPanel.reloadRealmTree());
- target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
-
- info(getString(Constants.OPERATION_SUCCEEDED));
- } catch (Exception e) {
- LOG.error("While deleting realm", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- }
- notificationPanel.refresh(target);
- }
- };
-
- deleteLink.add(new ConfirmationModalBehavior());
- MetaDataRoleAuthorizationStrategy.authorize(deleteLink, ENABLE, StandardEntitlement.REALM_DELETE);
-
- content.addOrReplace(deleteLink);
- }
-
- private void setupCreateLink() {
-
- final AjaxLink<Void> createLink = new IndicatingAjaxLink<Void>("createLink") {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
+ protected void onClickCreate(final AjaxRequestTarget target) {
modal.header(new ResourceModel("createRealm"));
- final RealmTO realmTO = new RealmTO();
- modal.setFormModel(realmTO);
+ final RealmTO newRealmTO = new RealmTO();
+
+ modal.setFormModel(newRealmTO);
final RealmModalPanel panel = new RealmModalPanel(
modal,
Realms.this.getPageReference(),
- realmTO,
+ newRealmTO,
realmSidebarPanel.getCurrentRealm().getFullPath(),
StandardEntitlement.REALM_CREATE,
true);
@@ -168,22 +119,11 @@ public class Realms extends BasePage {
modal.addSumbitButton();
modal.show(true);
}
- };
-
- MetaDataRoleAuthorizationStrategy.authorize(createLink, ENABLE, StandardEntitlement.REALM_CREATE);
- content.addOrReplace(createLink);
- }
-
- private void setupEditLink() {
- final AjaxLink<Void> editLink = new IndicatingAjaxLink<Void>("editLink") {
-
- private static final long serialVersionUID = -6957616042924610290L;
@Override
- public void onClick(final AjaxRequestTarget target) {
+ protected void onClickEdit(final AjaxRequestTarget target, final RealmTO realmTO) {
modal.header(Model.of(realmSidebarPanel.getCurrentRealm().getName()));
- final RealmTO realmTO = realmSidebarPanel.getCurrentRealm();
modal.setFormModel(realmTO);
final RealmModalPanel panel = new RealmModalPanel(
@@ -198,9 +138,24 @@ public class Realms extends BasePage {
modal.addSumbitButton();
modal.show(true);
}
- };
- MetaDataRoleAuthorizationStrategy.authorize(editLink, ENABLE, StandardEntitlement.REALM_UPDATE);
- content.addOrReplace(editLink);
+ @Override
+ protected void onClickDelete(final AjaxRequestTarget target, final RealmTO realmTO) {
+ try {
+ if (realmTO.getKey() == 0) {
+ throw new Exception("Root realm cannot be deleted");
+ }
+ realmRestClient.delete(realmTO.getFullPath());
+ target.add(realmSidebarPanel.reloadRealmTree());
+ target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ } catch (Exception e) {
+ LOG.error("While deleting realm", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ BasePage.class.cast(getPage()).getNotificationPanel().refresh(target);
+ }
+ });
+ return content;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
index 0cad78a..f1d2bbb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
@@ -72,7 +72,6 @@ public class Types extends BasePage {
ANYTYPECLASS,
ANYTYPE,
RELATIONSHIPTYPE;
-
}
public Types(final PageParameters parameters) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
index ae59885..48bd345 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
@@ -27,6 +27,8 @@ import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.rest.GroupRestClient;
import org.apache.syncope.client.console.rest.UserRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
import org.apache.syncope.client.console.wizards.any.AnyWizardBuilder;
import org.apache.syncope.client.console.wizards.any.GroupWizardBuilder;
import org.apache.syncope.client.console.wizards.any.UserWizardBuilder;
@@ -38,6 +40,7 @@ import org.apache.syncope.common.lib.to.UserTO;
import org.apache.syncope.common.lib.types.AnyEntitlement;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
@@ -47,7 +50,7 @@ import org.apache.wicket.model.Model;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class Realm extends Panel {
+public abstract class Realm extends Panel {
private static final long serialVersionUID = -1100228004207271270L;
@@ -91,8 +94,39 @@ public class Realm extends Panel {
@Override
public Panel getPanel(final String panelId) {
- final RealmDetails panel = new RealmDetails(panelId, realmTO, false);
- panel.setEnabled(false);
+ final ActionLinksPanel<RealmTO> actionLinksPanel = ActionLinksPanel.<RealmTO>builder(pageRef).
+ add(new ActionLink<RealmTO>(realmTO) {
+
+ private static final long serialVersionUID = 2802988981431379827L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final RealmTO modelObject) {
+ onClickCreate(target);
+ }
+ }, ActionLink.ActionType.CREATE, StandardEntitlement.REALM_CREATE).
+ add(new ActionLink<RealmTO>(realmTO) {
+
+ private static final long serialVersionUID = 2802988981431379828L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final RealmTO modelObject) {
+ onClickEdit(target, realmTO);
+ }
+ }, ActionLink.ActionType.EDIT, StandardEntitlement.REALM_UPDATE).
+ add(new ActionLink<RealmTO>(realmTO) {
+
+ private static final long serialVersionUID = 2802988981431379829L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final RealmTO modelObject) {
+ onClickDelete(target, realmTO);
+ }
+ }, ActionLink.ActionType.DELETE, StandardEntitlement.REALM_DELETE).
+ build("actions");
+
+ final RealmDetails panel = new RealmDetails(panelId, realmTO, actionLinksPanel, false);
+ panel.setContentEnabled(false);
+ actionLinksPanel.setEnabled(true);
return panel;
}
});
@@ -165,4 +199,10 @@ public class Realm extends Panel {
}
return panel;
}
+
+ protected abstract void onClickCreate(final AjaxRequestTarget target);
+
+ protected abstract void onClickEdit(final AjaxRequestTarget target, final RealmTO realmTO);
+
+ protected abstract void onClickDelete(final AjaxRequestTarget target, final RealmTO realmTO);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
index 2bc232b..c27b6cb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
@@ -18,10 +18,12 @@
*/
package org.apache.syncope.client.console.panels;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.PropertyModel;
import org.slf4j.Logger;
@@ -33,14 +35,17 @@ public class RealmDetails extends Panel {
protected static final Logger LOG = LoggerFactory.getLogger(RealmDetails.class);
+ private final WebMarkupContainer container;
+
public RealmDetails(final String id, final RealmTO realmTO) {
- this(id, realmTO, true);
+ this(id, realmTO, null, true);
}
- public RealmDetails(final String id, final RealmTO realmTO, final boolean unwraped) {
+ public RealmDetails(
+ final String id, final RealmTO realmTO, final ActionLinksPanel<?> actions, final boolean unwraped) {
super(id);
- final WebMarkupContainer container = new WebMarkupContainer("container");
+ container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
container.setRenderBodyOnly(unwraped);
add(container);
@@ -62,5 +67,18 @@ public class RealmDetails extends Panel {
final FieldPanel<String> passwordPolicy = new AjaxTextFieldPanel(
"passwordPolicy", "passwordPolicy", new PropertyModel<String>(realmTO, "passwordPolicy"), false);
container.add(passwordPolicy);
+
+ if (actions == null) {
+ add(new Fragment("actions", "emptyFragment", this).setRenderBodyOnly(true));
+ } else {
+ Fragment fragment = new Fragment("actions", "actionsFragment", this);
+ fragment.add(actions);
+ add(fragment.setRenderBodyOnly(true));
+ }
+ }
+
+ public RealmDetails setContentEnabled(final boolean enable) {
+ container.setEnabled(enable);
+ return this;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/META-INF/resources/css/bulk.css
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/resources/css/bulk.css b/client/console/src/main/resources/META-INF/resources/css/bulk.css
index 1f0e621..db44653 100644
--- a/client/console/src/main/resources/META-INF/resources/css/bulk.css
+++ b/client/console/src/main/resources/META-INF/resources/css/bulk.css
@@ -18,6 +18,8 @@
*/
th.checkGroupColumn{
width: 20px;
+ text-align: center;
+ padding-right: 8px !important;
}
td.checkGroupColumn{
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
index a0391f0..20f0946 100644
--- a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
+++ b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
@@ -74,16 +74,6 @@ pre {
min-height: 554px
}
-.actions > li > a {
- padding-top: 5px !important;
- padding-bottom: 5px !important;
-}
-
-div.listview-actions a{
- float:left;
- padding-right:8px
-}
-
.block-header {
position: fixed !important;
width: 100% !important;
@@ -352,7 +342,6 @@ div.searchResult{
box-sizing: border-box;
}
-
.wicket-aa-container {
border-color: #eee;
box-shadow: none;
@@ -369,6 +358,9 @@ div.searchResult{
max-height: 250px;
}
+/**
+START - Notifications
+*/
.k-notification-error.k-group {
background: rgba(100% , 0% , 0% , .7);
color: red;
@@ -419,3 +411,60 @@ div.searchResult{
width:85%
}
+/**
+END - Notifications
+*/
+
+/**
+START - Actions
+*/
+.actions > li > a {
+ padding: 5px 0px 5px 0px !important;
+}
+
+div.listview-actions a {
+ float:left;
+ padding: 5px 0px 5px 0px !important;
+}
+
+.action a.btn {
+ padding: 0px;
+}
+
+.btn-circle, .circular-actions a {
+ border-radius: 15px;
+ font-size: 12px;
+ height: 30px;
+ line-height: 1.42857;
+ padding: 6px 0;
+ text-align: center;
+ width: 30px;
+}
+
+.circular-actions a.btn {
+ background-color: #3c8dbc;
+ border-color: #367fa9;
+ color: #fff;
+}
+
+.btn-circle i, .circular-actions a i {
+ margin: 0px;
+}
+/**
+END - Actions
+*/
+
+/**
+START - DataTable
+*/
+.dataTable {
+ clear: both;
+}
+
+.rowsChooser {
+ padding: 5px 0px 15px 0px;
+ text-align: right;
+}
+/**
+END - DataTable
+*/
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/pages/Realms.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Realms.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Realms.html
index 47c136e..4d70dbc 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Realms.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Realms.html
@@ -18,6 +18,7 @@ specific language governing permissions and limitations
under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://xmlns.jcp.org/jsf/composite">
+ <head><title>Realms</title></head>
<wicket:extend>
<div class="wrapper">
<div class="admin-content-page content-margin-layout" wicket:id="content">
@@ -27,23 +28,6 @@ under the License.
<wicket:container wicket:id="header"></wicket:container>
</h3>
<div class="box-tools pull-right">
- <ul class="nav navbar-nav actions">
- <li>
- <a wicket:id="editLink">
- <i class="fa fa-pencil-square-o"></i>
- </a>
- </li>
- <li>
- <a wicket:id="createLink">
- <i class="fa fa-plus"></i>
- </a>
- </li>
- <li>
- <a wicket:id="deleteLink" data-bb="confirm">
- <i class="fa fa-minus"></i>
- </a>
- </li>
- </ul>
</div><!-- /.box-tools -->
</div><!-- /.box-header -->
<div class="box-body">
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
index 8d35765..981a5c5 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
@@ -27,18 +27,18 @@ under the License.
<span wicket:id="header"></span>
</h3>
<div class="box-tools pull-right">
- <ul class="nav navbar-nav actions">
- <li>
- <a wicket:message="title:createSecurityQuestion" wicket:id="createSecurityQuestion">
- <i class="glyphicon glyphicon-plus"></i>
- </a>
- </li>
- </ul>
</div>
</div>
<div class="box-body">
<div class="realms">
<div wicket:id="securityQuestionPanel"></div>
+
+ <div class="modal-footer">
+ <a wicket:message="title:createSecurityQuestion" wicket:id="createSecurityQuestion" class="btn btn-primary btn-circle btn-lg">
+ <i class="glyphicon glyphicon-plus"></i>
+ </a>
+ </div>
+
</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.html
index 8a51c77..c7677df 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.html
@@ -23,11 +23,13 @@ under the License.
<body>
<wicket:extend>
<div wicket:id="searchContainer">
- <span wicket:id="resultTable">[Table]</span>
-
- <span style="float:right">
- <form wicket:id="paginator" style="display:inline">
- <div class="col-sm-6">
+ <div class="dataTable">
+ <span wicket:id="resultTable">[Table]</span>
+ </div>
+
+ <div class="rowsChooser">
+ <form wicket:id="paginator">
+ <div>
<div class="dataTables_length">
<label>
<wicket:message key="displayRows"/>
@@ -36,7 +38,7 @@ under the License.
</div>
</div>
</form>
- </span>
+ </div>
</div>
</wicket:extend>
</body>
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
index 99f4b22..ff35ea3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
@@ -20,12 +20,12 @@ under the License.
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="container">
- <span wicket:id="tableContainer">
+ <div wicket:id="tableContainer" class="dataTable">
<table class="table table-bordered table-hover dataTable" wicket:id="datatable">[datatable]</table>
- </span>
- <span style="float:right">
- <form wicket:id="paginator" style="display:inline">
- <div class="col-sm-6">
+ </div>
+ <div class="rowsChooser">
+ <form wicket:id="paginator">
+ <div>
<div class="dataTables_length">
<label>
<wicket:message key="displayRows"/>
@@ -34,7 +34,7 @@ under the License.
</div>
</div>
</form>
- </span>
+ </div>
</div>
</wicket:panel>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/panels/RealmDetails.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/RealmDetails.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RealmDetails.html
index d894546..57955dd 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/RealmDetails.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RealmDetails.html
@@ -17,10 +17,8 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://xmlns.jcp.org/jsf/composite">
+ <head><title></title></head>
<body>
<wicket:panel>
<div wicket:id="container" class="summarize">
@@ -29,6 +27,13 @@ under the License.
<span wicket:id="accountPolicy">[accountPolicy]</span>
<span wicket:id="passwordPolicy">[passwordPolicy]</span>
</div>
+
+ <span wicket:id="actions"></span>
+
+ <wicket:fragment wicket:id="emptyFragment"></wicket:fragment>
+ <wicket:fragment wicket:id="actionsFragment">
+ <div wicket:id="actions" class="modal-footer circular-actions"/>
+ </wicket:fragment>
</wicket:panel>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
index 772222e..c2b32de 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
@@ -60,131 +60,131 @@ under the License.
<span wicket:id="panelZoomOut">[plus]</span>
<wicket:fragment wicket:id="fragmentClaim">
- <a href="#" wicket:id="claimLink"><img id="actionLink" src="img/actions/claim.png" alt="claim icon" title="Claim"/></a>
+ <a href="#" wicket:id="claimLink" class="btn"><img id="actionLink" src="img/actions/claim.png" alt="claim icon" title="Claim"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentManageResources">
- <a href="#" wicket:id="manageResourcesLink"><i id="actionLink" class="fa fa-sitemap" alt="manage resources icon" title="Manage resources"></i></a>
+ <a href="#" wicket:id="manageResourcesLink" class="btn"><i id="actionLink" class="fa fa-sitemap" alt="manage resources icon" title="Manage resources"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentManageUsers">
- <a href="#" wicket:id="manageUsersLink"><img id="actionLink" src="img/actions/users-icon.png" alt="manage users icon" title="Manage users"/></a>
+ <a href="#" wicket:id="manageUsersLink" class="btn"><img id="actionLink" src="img/actions/users-icon.png" alt="manage users icon" title="Manage users"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentManageGroups">
- <a href="#" wicket:id="manageGroupsLink"><img id="actionLink" src="img/actions/groups-icon.png" alt="manage groups icon" title="Manage groups"/></a>
+ <a href="#" wicket:id="manageGroupsLink" class="btn"><img id="actionLink" src="img/actions/groups-icon.png" alt="manage groups icon" title="Manage groups"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentMapping">
- <a href="#" wicket:id="mappingLink" title="Mapping"><i class="fa fa-exchange"></i></a>
+ <a href="#" wicket:id="mappingLink" class="btn"><i class="fa fa-exchange" alt="mapping icon" title="Mapping"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentAccountLink">
- <a href="#" wicket:id="accountLinkLink" title="Account Link"><i class="fa fa-external-link"></i></a>
+ <a href="#" wicket:id="accountLinkLink" class="btn"><i class="fa fa-external-link" alt="account link icon" title="Account Link"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentResetTime">
- <a href="#" wicket:id="resetTimeLink" title="Reset Time"><i class="fa fa-hourglass-start"></i></a>
+ <a href="#" wicket:id="resetTimeLink" class="btn"><i class="fa fa-hourglass-start" alt="reset time icon" title="Reset Time"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentClone">
- <a href="#" wicket:id="cloneLink" title="Clone"><i class="fa fa-clone"></i></a>
+ <a href="#" wicket:id="cloneLink" class="btn"><i class="fa fa-clone" alt="clone icon" title="Clone"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentCreate">
- <a href="#" wicket:id="createLink" title="Create"><i class="fa fa-create"></i></a>
+ <a href="#" wicket:id="createLink" class="btn"><i class="glyphicon glyphicon-plus" alt="create icon" title="Create"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentSearch">
- <a href="#" wicket:id="searchLink"><i class="glyphicon glyphicon-search" alt="search icon" title="Search"></i></a>
+ <a href="#" wicket:id="searchLink" class="btn"><i class="glyphicon glyphicon-search" alt="search icon" title="Search"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentEnable">
- <a href="#" wicket:id="enableLink"><i id="actionLink" class="fa fa-toggle-on" alt="enable icon" title="Enable / Disable"></i></a>
+ <a href="#" wicket:id="enableLink" class="btn"><i id="actionLink" class="fa fa-toggle-on" alt="enable icon" title="Enable / Disable"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentEdit">
- <a href="#" wicket:id="editLink"><i id="actionLink" class="fa fa-pencil" alt="edit icon" title="Edit"></i></a>
+ <a href="#" wicket:id="editLink" class="btn"><i id="actionLink" class="glyphicon glyphicon-pencil" alt="edit icon" title="Edit"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentReset">
- <a href="#" wicket:id="resetLink"><img id="actionLink" src="img/actions/reset.png" alt="reset icon" title="Reset sync token"/></a>
+ <a href="#" wicket:id="resetLink" class="btn"><img id="actionLink" src="img/actions/reset.png" alt="reset icon" title="Reset sync token"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentUserTemplate">
- <a href="#" wicket:id="userTemplateLink"><img id="actionLink" src="img/actions/user_template.png" alt="user template icon" title="Specify user template"/></a>
+ <a href="#" wicket:id="userTemplateLink" class="btn"><img id="actionLink" src="img/actions/user_template.png" alt="user template icon" title="Specify user template"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentGroupTemplate">
- <a href="#" wicket:id="groupTemplateLink"><img id="actionLink" src="img/actions/groups-icon.png" alt="group template icon" title="Specify group template"/></a>
+ <a href="#" wicket:id="groupTemplateLink" class="btn"><img id="actionLink" src="img/actions/groups-icon.png" alt="group template icon" title="Specify group template"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentDelete">
- <a href="#" wicket:id="deleteLink" title="Delete"><i class="fa fa-minus"></i></a>
+ <a href="#" wicket:id="deleteLink" class="btn"><i class="glyphicon glyphicon-minus" alt="delete icon" title="Delete"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentDryRun">
- <a href="#" wicket:id="dryRunLink"><img id="actionLink" src="img/actions/dryrun.png" alt="dryrun icon" title="DryRun"/></a>
+ <a href="#" wicket:id="dryRunLink" class="btn"><img id="actionLink" src="img/actions/dryrun.png" alt="dryrun icon" title="DryRun"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentExecute">
- <a href="#" wicket:id="executeLink"><img id="actionLink" src="img/actions/execute.png" alt="execute icon" title="Execute"/></a>
+ <a href="#" wicket:id="executeLink" class="btn"><img id="actionLink" src="img/actions/execute.png" alt="execute icon" title="Execute"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentSelect">
- <a href="#" wicket:id="selectLink"><i class="glyphicon glyphicon-ok"></i></a>
+ <a href="#" wicket:id="selectLink" class="btn"><i class="glyphicon glyphicon-ok"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentExport">
- <a href="#" wicket:id="exportLink"><img id="actionLink" src="img/actions/export.png" alt="export icon" title="Export"/></a>
+ <a href="#" wicket:id="exportLink" class="btn"><img id="actionLink" src="img/actions/export.png" alt="export icon" title="Export"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentSuspend">
- <a href="#" wicket:id="suspendLink"><img id="actionLink" src="img/actions/suspend.png" alt="suspend icon" title="Suspend"/></a>
+ <a href="#" wicket:id="suspendLink" class="btn"><img id="actionLink" src="img/actions/suspend.png" alt="suspend icon" title="Suspend"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentReactivate">
- <a href="#" wicket:id="reactivateLink"><img id="actionLink" src="img/actions/reactivate.png" alt="reactivate icon" title="Reactivate"/></a>
+ <a href="#" wicket:id="reactivateLink" class="btn"><img id="actionLink" src="img/actions/reactivate.png" alt="reactivate icon" title="Reactivate"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentReload">
- <a href="#" wicket:id="reloadLink"><i id="actionLink" class="fa fa-repeat" alt="reload icon" title="Reload"></i></a>
+ <a href="#" wicket:id="reloadLink" class="btn"><i id="actionLink" class="fa fa-repeat" alt="reload icon" title="Reload"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentChangeView">
- <a href="#" wicket:id="changeViewLink"><i id="actionLink" class="fa fa-list" alt="Change view icon" title="Change view"></i></a>
+ <a href="#" wicket:id="changeViewLink" class="btn"><i id="actionLink" class="fa fa-list" alt="Change view icon" title="Change view"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentUnlink">
- <a href="#" wicket:id="unlinkLink"><img id="actionLink" src="img/actions/unlink-icon.png" alt="Unlink icon" title="Unlink"/></a>
+ <a href="#" wicket:id="unlinkLink" class="btn"><img id="actionLink" src="img/actions/unlink-icon.png" alt="Unlink icon" title="Unlink"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentLink">
- <a href="#" wicket:id="linkLink"><img id="actionLink" src="img/actions/link-icon.png" alt="Link icon" title="Link"/></a>
+ <a href="#" wicket:id="linkLink" class="btn"><img id="actionLink" src="img/actions/link-icon.png" alt="Link icon" title="Link"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentUnassign">
- <a href="#" wicket:id="unassignLink"><img id="actionLink" src="img/actions/unassign-icon.png" alt="Unassign icon" title="Unassign"/></a>
+ <a href="#" wicket:id="unassignLink" class="btn"><img id="actionLink" src="img/actions/unassign-icon.png" alt="Unassign icon" title="Unassign"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentAssign">
- <a href="#" wicket:id="assignLink"><img id="actionLink" src="img/actions/assign-icon.png" alt="Assign icon" title="Assign"/></a>
+ <a href="#" wicket:id="assignLink" class="btn"><img id="actionLink" src="img/actions/assign-icon.png" alt="Assign icon" title="Assign"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentDeprovision">
- <a href="#" wicket:id="deprovisionLink"><img id="actionLink" src="img/actions/deprovision-icon.png" alt="De-provision icon" title="De-provision"/></a>
+ <a href="#" wicket:id="deprovisionLink" class="btn"><img id="actionLink" src="img/actions/deprovision-icon.png" alt="De-provision icon" title="De-provision"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentProvision">
- <a href="#" wicket:id="provisionLink"><img id="actionLink" src="img/actions/provision-icon.png" alt="Provision icon" title="Provision"/></a>
+ <a href="#" wicket:id="provisionLink" class="btn"><img id="actionLink" src="img/actions/provision-icon.png" alt="Provision icon" title="Provision"/></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentZoomIn">
- <a href="#" wicket:id="zoomInLink" title="Zoom In"><i class="fa fa-search-plus"></i></a>
+ <a href="#" wicket:id="zoomInLink" class="btn"><i class="fa fa-search-plus" alt="zoom in icon" title="Zoom In"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="fragmentZoomOut">
- <a href="#" wicket:id="zoomOutLink" title="Zoom Out"><i class="fa fa-search-minus"></i></a>
+ <a href="#" wicket:id="zoomOutLink" class="btn"><i class="fa fa-search-minus" alt="zoom out icon" title="Zoom Out"></i></a>
</wicket:fragment>
<wicket:fragment wicket:id="emptyFragment">
http://git-wip-us.apache.org/repos/asf/syncope/blob/e5990330/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
index 9bf9518..c4e0180 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
@@ -36,7 +36,9 @@ under the License.
<wicket:enclosure child="add">
<div class="modal-footer" style="text-align: right">
- <a haref="#" class="btn btn-primary" wicket:id="add">Add</a>
+ <a haref="#" class="btn btn-primary btn-circle btn-lg" wicket:id="add">
+ <i class="glyphicon glyphicon-plus"></i>
+ </a>
</div>
</wicket:enclosure>
</wicket:fragment>
[3/4] syncope git commit: [SYNCOPE-156] provides material button for
types by changing to be compliant to the standard use of search tables +
fixes some notifications & icons
Posted by fm...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java
index 03a836d..17cfbe0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java
@@ -43,7 +43,7 @@ import org.apache.wicket.model.ResourceModel;
/**
* Modal window with Connector form.
*/
-public class ConnectorModal extends AbstractResourceModal {
+public class ConnectorModal extends AbstractResourceModal<Serializable> {
private static final long serialVersionUID = -2025535531121434050L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
index 46237ab..58aa653 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.panels;
+import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
@@ -32,7 +33,7 @@ import org.apache.wicket.model.IModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class DataTablePanel<T, S> extends Panel {
+public abstract class DataTablePanel<T extends Serializable, S> extends Panel {
private static final long serialVersionUID = -7264400471578272966L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
index f23cecb..bee0c05 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/FailureMessageModal.java
@@ -18,16 +18,17 @@
*/
package org.apache.syncope.client.console.panels;
+import java.io.Serializable;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.wicket.PageReference;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
-public class FailureMessageModal extends AbstractModalPanel {
+public class FailureMessageModal<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 9216117990503199258L;
- public FailureMessageModal(final BaseModal<?> modal, final PageReference pageRef, final String failureMessage) {
+ public FailureMessageModal(final BaseModal<T> modal, final PageReference pageRef, final String failureMessage) {
super(modal, pageRef);
final Label executionFailureMessage;
if (!failureMessage.isEmpty()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java
index 8670265..27d27b6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java
@@ -168,7 +168,7 @@ public class GroupSearchResultPanel extends AnyObjectSearchResultPanel<GroupTO>
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- target.add(modal.setContent(new GroupDisplayAttributesModalPage(
+ target.add(modal.setContent(new GroupDisplayAttributesModalPage<>(
modal, page.getPageReference(), schemaNames, dSchemaNames)));
modal.header(new ResourceModel("any.attr.display", ""));
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
index 681c1f2..11a9f78 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ModalPanel.java
@@ -18,13 +18,16 @@
*/
package org.apache.syncope.client.console.panels;
+import java.io.Serializable;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.request.component.IRequestableComponent;
-public interface ModalPanel extends IRequestableComponent {
+public interface ModalPanel<T extends Serializable> extends IRequestableComponent, Serializable {
void onSubmit(final AjaxRequestTarget target, final Form<?> form);
void onError(final AjaxRequestTarget target, final Form<?> form);
+
+ T getItem();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/NotificationPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/NotificationPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/NotificationPanel.java
index 03102ae..d38cfad 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/NotificationPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/NotificationPanel.java
@@ -61,10 +61,12 @@ public class NotificationPanel extends FeedbackPanel {
public void refresh(final AjaxRequestTarget target) {
if (anyMessage()) {
for (FeedbackMessage message : getCurrentMessages()) {
- if (anyErrorMessage()) {
+ if (message.isError()) {
notification.error(target, message.getMessage());
- } else {
+ } else if (message.isSuccess() || message.isInfo()) {
notification.success(target, message.getMessage());
+ } else {
+ notification.warn(target, message.getMessage());
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
index 48bd345..1755341 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
@@ -22,6 +22,7 @@ import com.googlecode.wicket.jquery.core.panel.LabelPanel;
import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
import java.util.ArrayList;
import java.util.List;
+import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.rest.AnyObjectRestClient;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.rest.GroupRestClient;
@@ -160,7 +161,7 @@ public abstract class Realm extends Panel {
pageReference).setRealm(realmTO.getFullPath()).
addNewItemPanelBuilder(new UserWizardBuilder(
BaseModal.CONTENT_ID, userTO, anyTypeTO.getClasses(), pageRef)).
- //addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getPopupComponent()).
+ addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getNotificationPanel()).
build(id);
MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.RENDER, StandardEntitlement.USER_LIST);
break;
@@ -174,7 +175,7 @@ public abstract class Realm extends Panel {
pageReference).setRealm(realmTO.getFullPath()).
addNewItemPanelBuilder(new GroupWizardBuilder(
BaseModal.CONTENT_ID, groupTO, anyTypeTO.getClasses(), pageRef)).
- //addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getFeedbackPanel).
+ addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getNotificationPanel()).
build(id);
// list of group is available to all authenticated users
break;
@@ -189,7 +190,7 @@ public abstract class Realm extends Panel {
pageReference).setRealm(realmTO.getFullPath()).
addNewItemPanelBuilder(new AnyWizardBuilder<AnyObjectTO>(
BaseModal.CONTENT_ID, anyObjectTO, anyTypeTO.getClasses(), pageRef)).
- //addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getPopupComponent()).
+ addNotificationPanel(BasePage.class.cast(this.pageRef.getPage()).getNotificationPanel()).
build(id);
MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.RENDER,
String.format("%s_%s", anyObjectTO.getType(), AnyEntitlement.LIST));
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java
index b7692fb..4912dfd 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java
@@ -20,6 +20,7 @@ package org.apache.syncope.client.console.panels;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.rest.RealmRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.RealmTO;
@@ -28,20 +29,18 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.markup.html.form.Form;
-public class RealmModalPanel extends AbstractModalPanel {
+public class RealmModalPanel extends AbstractModalPanel<RealmTO> {
private static final long serialVersionUID = -4285220460543213901L;
private final RealmRestClient realmRestClient = new RealmRestClient();
- private RealmTO realmTO;
-
private boolean newRealm = false;
private final String parentPath;
public RealmModalPanel(
- final BaseModal<?> modal,
+ final BaseModal<RealmTO> modal,
final PageReference pageRef,
final RealmTO realmTO,
final String parentPath,
@@ -51,7 +50,7 @@ public class RealmModalPanel extends AbstractModalPanel {
}
public RealmModalPanel(
- final BaseModal<?> modal,
+ final BaseModal<RealmTO> modal,
final PageReference pageRef,
final RealmTO realmTO,
final String parentPath,
@@ -61,7 +60,6 @@ public class RealmModalPanel extends AbstractModalPanel {
super(modal, pageRef);
this.newRealm = newRealm;
- this.realmTO = realmTO;
this.parentPath = parentPath;
final RealmDetails realmDetail = new RealmDetails("details", realmTO);
@@ -81,13 +79,13 @@ public class RealmModalPanel extends AbstractModalPanel {
} else {
realmRestClient.update(updatedRealmTO);
}
-
+
info(getString(Constants.OPERATION_SUCCEEDED));
closeAction(target, form);
} catch (Exception e) {
LOG.error("While creating or updating realm", e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
- modal.getNotificationPanel().refresh(target);
}
+ BasePage.class.cast(pageRef.getPage()).getNotificationPanel().refresh(target);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
index e1fd9fc..ef53d05 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeDetailsPanel.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.client.console.panels;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.common.lib.to.RelationshipTypeTO;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -31,32 +30,27 @@ public class RelationshipTypeDetailsPanel extends Panel {
private static final long serialVersionUID = -4962850669086306255L;
- private final RelationshipTypeTO relationshipTypeTO;
-
public RelationshipTypeDetailsPanel(
final String id,
- final BaseModal<RelationshipTypeTO> modal) {
+ final RelationshipTypeTO relationshipTypeTO) {
super(id);
- this.relationshipTypeTO = modal.getFormModel();
-
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
add(container);
final Form<RelationshipTypeTO> form = new Form<>("form");
- form.setModel(new CompoundPropertyModel<>(this.relationshipTypeTO));
+ form.setModel(new CompoundPropertyModel<>(relationshipTypeTO));
container.add(form);
- final AjaxTextFieldPanel key =
- new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(relationshipTypeTO, "key"));
+ final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(
+ relationshipTypeTO, "key"));
key.addRequiredLabel();
key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
form.add(key);
- final AjaxTextFieldPanel description =
- new AjaxTextFieldPanel("description",
- getString("description"), new PropertyModel<String>(relationshipTypeTO, "description"));
+ final AjaxTextFieldPanel description = new AjaxTextFieldPanel("description",
+ getString("description"), new PropertyModel<String>(relationshipTypeTO, "description"));
description.addRequiredLabel();
form.add(description);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeModalPanel.java
index dd11959..4cbfa5a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypeModalPanel.java
@@ -18,47 +18,27 @@
*/
package org.apache.syncope.client.console.panels;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.RelationshipTypeTO;
-import org.apache.syncope.common.rest.api.service.RelationshipTypeService;
import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.form.Form;
-public class RelationshipTypeModalPanel extends AbstractModalPanel {
+public class RelationshipTypeModalPanel extends AbstractModalPanel<RelationshipTypeTO> {
private static final long serialVersionUID = 1602285111803121341L;
- private final boolean createFlag;
+ private final RelationshipTypeTO relationshipTypeTO;
public RelationshipTypeModalPanel(
final BaseModal<RelationshipTypeTO> modal,
- final PageReference pageRef, final boolean createFlag) {
+ final RelationshipTypeTO relationshipTypeTO,
+ final PageReference pageRef) {
super(modal, pageRef);
-
- this.createFlag = createFlag;
- add(new RelationshipTypeDetailsPanel("relationshipTypeDetails", modal));
+ this.relationshipTypeTO = relationshipTypeTO;
+ add(new RelationshipTypeDetailsPanel("relationshipTypeDetails", this.relationshipTypeTO));
}
@Override
- public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- try {
- final RelationshipTypeTO updateRelationshipTypeTO = RelationshipTypeTO.class.cast(form.getModelObject());
-
- if (createFlag) {
- SyncopeConsoleSession.get().getService(RelationshipTypeService.class).create(updateRelationshipTypeTO);
- } else {
- SyncopeConsoleSession.get().getService(RelationshipTypeService.class).update(updateRelationshipTypeTO);
- }
-
- info(getString(Constants.OPERATION_SUCCEEDED));
- modal.close(target);
- } catch (Exception e) {
- LOG.error("While creating or updating RelationshipTypeTO", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- modal.getNotificationPanel().refresh(target);
- }
+ public RelationshipTypeTO getItem() {
+ return this.relationshipTypeTO;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypePanel.java
index 2467a4a..f4c64e4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypePanel.java
@@ -18,69 +18,137 @@
*/
package org.apache.syncope.client.console.panels;
+import static org.apache.syncope.client.console.panels.AbstractModalPanel.LOG;
+
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
+import org.apache.syncope.client.console.panels.RelationshipTypePanel.RelationshipTypeProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.syncope.client.console.wizards.AbstractModalPanelBuilder;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.RelationshipTypeTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.RelationshipTypeService;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
-import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO> {
+public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO, RelationshipTypeProvider> {
private static final long serialVersionUID = -3731778000138547357L;
- private static final Logger LOG = LoggerFactory.getLogger(RelationshipTypePanel.class);
+ private final String pageID = "RelationshipTypes";
- private static final String PAGINATOR_ROWS_KEYS = Constants.PREF_RELATIONSHIPTYPE_PAGINATOR_ROWS;
+ public RelationshipTypePanel(
+ final String id, final Builder<RelationshipTypeTO, RelationshipTypeTO, BaseRestClient> builder) {
+ super(id, builder);
+ }
- private final BaseModal<RelationshipTypeTO> modal;
+ public RelationshipTypePanel(final String id, final PageReference pageRef) {
+ super(id, new Builder<RelationshipTypeTO, RelationshipTypeTO, BaseRestClient>(null, pageRef) {
- public RelationshipTypePanel(
- final String panelId,
- final PageReference pageReference,
- final BaseModal<RelationshipTypeTO> modal) {
- super(panelId, pageReference);
+ private static final long serialVersionUID = 8769126634538601689L;
+
+ @Override
+ protected WizardMgtPanel<RelationshipTypeTO> newInstance(final String id) {
+ return new RelationshipTypePanel(id, this);
+ }
+ });
+
+ this.addNewItemPanelBuilder(new AbstractModalPanelBuilder<RelationshipTypeTO>(
+ BaseModal.CONTENT_ID, new RelationshipTypeTO(), pageRef) {
+
+ private static final long serialVersionUID = -6388405037134399367L;
+
+ @Override
+ public ModalPanel<RelationshipTypeTO> build(final int index, final boolean edit) {
+ final RelationshipTypeTO modelObject = newModelObject();
+ return new RelationshipTypeModalPanel(modal, modelObject, pageRef) {
+
+ private static final long serialVersionUID = -6227956682141146094L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ try {
+ if (getOriginalItem() == null || StringUtils.isBlank(getOriginalItem().getKey())) {
+ SyncopeConsoleSession.get().
+ getService(RelationshipTypeService.class).create(modelObject);
+ } else {
+ SyncopeConsoleSession.get().
+ getService(RelationshipTypeService.class).update(modelObject);
+ }
+
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ modal.close(target);
+ } catch (Exception e) {
+ LOG.error("While creating or updating RelationshipTypeTO", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ modal.getNotificationPanel().refresh(target);
+ }
+ }
+ };
+ }
+
+ @Override
+ protected void onCancelInternal(final RelationshipTypeTO modelObject) {
+ }
- this.pageRows = prefMan.getPaginatorRows(getRequest(), PAGINATOR_ROWS_KEYS);
- this.modal = modal;
+ @Override
+ protected void onApplyInternal(final RelationshipTypeTO modelObject) {
+ }
+ }, true);
- final WebMarkupContainer container = new WebMarkupContainer("container");
- container.setOutputMarkupId(true);
- add(container);
+ initResultTable();
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.RELATIONSHIPTYPE_CREATE);
+ }
+
+ @Override
+ protected RelationshipTypeProvider dataProvider() {
+ return new RelationshipTypeProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return Constants.PREF_RELATIONSHIPTYPE_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBulkActions() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
- buildDataTable(container, getColumns(container, pageReference),
- new RelationshipTypePanel.RelationshipTypeProvider(), PAGINATOR_ROWS_KEYS);
+ @Override
+ protected String getPageId() {
+ return pageID;
}
- private List<IColumn<RelationshipTypeTO, String>> getColumns(
- final WebMarkupContainer webContainer, final PageReference pageReference) {
+ @Override
+ protected List<IColumn<RelationshipTypeTO, String>> getColumns() {
final List<IColumn<RelationshipTypeTO, String>> columns = new ArrayList<>();
@@ -89,9 +157,8 @@ public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO
if (field != null && !Modifier.isStatic(field.getModifiers())) {
final String fieldName = field.getName();
- final IColumn<RelationshipTypeTO, String> column =
- new PropertyColumn<RelationshipTypeTO, String>(
- new ResourceModel(field.getName()), field.getName(), field.getName()) {
+ final IColumn<RelationshipTypeTO, String> column = new PropertyColumn<RelationshipTypeTO, String>(
+ new ResourceModel(field.getName()), field.getName(), field.getName()) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -126,7 +193,8 @@ public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO
final RelationshipTypeTO relationshipTypeTO = model.getObject();
- final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(pageReference);
+ final ActionLinksPanel.Builder<Serializable> actionLinks
+ = ActionLinksPanel.builder(page.getPageReference());
actionLinks.setDisableIndicator(true);
actionLinks.addWithRoles(new ActionLink<Serializable>() {
@@ -134,11 +202,8 @@ public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- modal.header(Model.of(relationshipTypeTO.getKey()));
- modal.setFormModel(relationshipTypeTO);
- target.add(modal.setContent(new RelationshipTypeModalPanel(modal, pageReference, false)));
- modal.addSumbitButton();
- modal.show(true);
+ send(RelationshipTypePanel.this, Broadcast.EXACT,
+ new AjaxWizard.EditItemActionEvent<RelationshipTypeTO>(model.getObject(), target));
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.RELATIONSHIPTYPE_UPDATE).addWithRoles(
new ActionLink<Serializable>() {
@@ -151,7 +216,7 @@ public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO
SyncopeConsoleSession.get().getService(
RelationshipTypeService.class).delete(relationshipTypeTO.getKey());
info(getString(Constants.OPERATION_SUCCEEDED));
- target.add(webContainer);
+ target.add(container);
} catch (Exception e) {
LOG.error("While deleting RelationshipType", e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -168,22 +233,21 @@ public class RelationshipTypePanel extends AbstractTypesPanel<RelationshipTypeTO
}
- private final class RelationshipTypeProvider extends SortableDataProvider<RelationshipTypeTO, String> {
+ protected final class RelationshipTypeProvider extends SearchableDataProvider<RelationshipTypeTO> {
private static final long serialVersionUID = -185944053385660794L;
private final SortableDataProviderComparator<RelationshipTypeTO> comparator;
- private RelationshipTypeProvider() {
- super();
- setSort("key", SortOrder.ASCENDING);
+ private RelationshipTypeProvider(final int paginatorRows) {
+ super(paginatorRows);
comparator = new SortableDataProviderComparator<>(this);
}
@Override
public Iterator<RelationshipTypeTO> iterator(final long first, final long count) {
- final List<RelationshipTypeTO> list =
- SyncopeConsoleSession.get().getService(RelationshipTypeService.class).list();
+ final List<RelationshipTypeTO> list = SyncopeConsoleSession.get().getService(RelationshipTypeService.class).
+ list();
Collections.sort(list, comparator);
return list.subList((int) first, (int) first + (int) count).iterator();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
index 3864322..f649ee0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
@@ -48,8 +48,10 @@ import org.apache.wicket.model.ResourceModel;
/**
* Modal window with Resource form.
+ *
+ * @param <T>
*/
-public class ResourceModal extends AbstractResourceModal {
+public class ResourceModal<T extends Serializable> extends AbstractResourceModal<T> {
private static final long serialVersionUID = 1734415311027284221L;
@@ -60,7 +62,7 @@ public class ResourceModal extends AbstractResourceModal {
private final boolean createFlag;
public ResourceModal(
- final BaseModal<Serializable> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final IModel<ResourceTO> model,
final boolean createFlag) {
@@ -91,37 +93,39 @@ public class ResourceModal extends AbstractResourceModal {
builder.setItems(model.getObject().getProvisions());
builder.includes("anyType", "objectClass");
- builder.addAction(new ActionLink<ProvisionTO>() {
+ builder.
+ addAction(new ActionLink<ProvisionTO>() {
- private static final long serialVersionUID = -3722207913631435504L;
+ private static final long serialVersionUID = -3722207913631435504L;
- @Override
- public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
- send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemActionEvent<>(provisionTO, 2, target));
- }
- }, ActionLink.ActionType.MAPPING, StandardEntitlement.RESOURCE_UPDATE).addAction(new ActionLink<ProvisionTO>() {
+ @Override
+ public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+ send(pageRef.getPage(), Broadcast.DEPTH,
+ new AjaxWizard.NewItemActionEvent<>(provisionTO, 2, target));
+ }
+ }, ActionLink.ActionType.MAPPING, StandardEntitlement.RESOURCE_UPDATE).
+ addAction(new ActionLink<ProvisionTO>() {
- private static final long serialVersionUID = -3722207913631435514L;
+ private static final long serialVersionUID = -3722207913631435514L;
- @Override
- public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
- send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemActionEvent<>(provisionTO, 3, target));
- }
- }, ActionLink.ActionType.ACCOUNT_LINK, StandardEntitlement.RESOURCE_UPDATE).addAction(
- new ActionLink<ProvisionTO>() {
+ @Override
+ public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+ send(pageRef.getPage(), Broadcast.DEPTH,
+ new AjaxWizard.NewItemActionEvent<>(provisionTO, 3, target));
+ }
+ }, ActionLink.ActionType.ACCOUNT_LINK, StandardEntitlement.RESOURCE_UPDATE).
+ addAction(new ActionLink<ProvisionTO>() {
- private static final long serialVersionUID = -3722207913631435524L;
+ private static final long serialVersionUID = -3722207913631435524L;
- @Override
- public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
- provisionTO.setSyncToken(null);
- send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemFinishEvent<>(provisionTO, target));
- }
- }, ActionLink.ActionType.RESET_TIME, StandardEntitlement.RESOURCE_UPDATE).addAction(
- new ActionLink<ProvisionTO>() {
+ @Override
+ public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+ provisionTO.setSyncToken(null);
+ send(pageRef.getPage(), Broadcast.DEPTH,
+ new AjaxWizard.NewItemFinishEvent<>(provisionTO, target));
+ }
+ }, ActionLink.ActionType.RESET_TIME, StandardEntitlement.RESOURCE_UPDATE).
+ addAction(new ActionLink<ProvisionTO>() {
private static final long serialVersionUID = -3722207913631435534L;
@@ -130,8 +134,8 @@ public class ResourceModal extends AbstractResourceModal {
send(pageRef.getPage(), Broadcast.DEPTH,
new AjaxWizard.NewItemActionEvent<>(SerializationUtils.clone(provisionTO), target));
}
- }, ActionLink.ActionType.CLONE, StandardEntitlement.RESOURCE_CREATE).addAction(
- new ActionLink<ProvisionTO>() {
+ }, ActionLink.ActionType.CLONE, StandardEntitlement.RESOURCE_CREATE).
+ addAction(new ActionLink<ProvisionTO>() {
private static final long serialVersionUID = -3722207913631435544L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleSearchResultPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleSearchResultPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleSearchResultPanel.java
index c84ff3c..6e2492c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleSearchResultPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RoleSearchResultPanel.java
@@ -39,6 +39,7 @@ import org.apache.syncope.common.lib.to.RoleTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
@@ -54,8 +55,11 @@ public class RoleSearchResultPanel
protected RoleSearchResultPanel(final String id, final Builder builder) {
super(id, builder);
+
modal.size(Modal.Size.Large);
initResultTable();
+
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.ROLE_CREATE);
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
index f822471..bb30f7b 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java
@@ -32,7 +32,7 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;
-public class SchemaModalPanel extends AbstractModalPanel {
+public class SchemaModalPanel extends AbstractModalPanel<AbstractSchemaTO> {
private static final long serialVersionUID = -4681998932778822125L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java
----------------------------------------------------------------------
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 03899e9..48cdd9d 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
@@ -18,6 +18,8 @@
*/
package org.apache.syncope.client.console.panels;
+import static org.apache.wicket.Component.ENABLE;
+
import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.Collapsible;
import java.io.Serializable;
import java.lang.reflect.Field;
@@ -41,12 +43,15 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
import org.apache.syncope.client.console.wicket.markup.html.form.SelectChoiceRenderer;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
+import org.apache.syncope.common.lib.to.PlainSchemaTO;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
@@ -74,8 +79,7 @@ public class SchemasPanel extends Panel {
private static final long serialVersionUID = -1140213992451232279L;
- private static final Map<SchemaType, String> PAGINATOR_ROWS_KEYS =
- new HashMap<SchemaType, String>() {
+ private static final Map<SchemaType, String> PAGINATOR_ROWS_KEYS = new HashMap<SchemaType, String>() {
private static final long serialVersionUID = 3109256773218160485L;
@@ -106,15 +110,32 @@ public class SchemasPanel extends Panel {
private final BaseModal<AbstractSchemaTO> modal;
- public SchemasPanel(final String id, final PageReference pageReference, final BaseModal<AbstractSchemaTO> modal) {
+ public SchemasPanel(final String id, final PageReference pageRef, final BaseModal<AbstractSchemaTO> modal) {
super(id);
- this.pageReference = pageReference;
+ this.pageReference = pageRef;
this.modal = modal;
final Collapsible collapsible = new Collapsible("collapsePanel", buildTabList());
collapsible.setOutputMarkupId(true);
add(collapsible);
+
+ final IndicatingAjaxLink<Void> schemaLink = new IndicatingAjaxLink<Void>("createSchema") {
+
+ private static final long serialVersionUID = -7978723352517770644L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ modal.header(new ResourceModel("createSchema"));
+ modal.setFormModel(new PlainSchemaTO());
+ target.add(modal.setContent(new SchemaModalPanel(modal, pageRef, true)));
+ modal.addSumbitButton();
+ modal.show(true);
+ }
+ };
+
+ add(schemaLink);
+ MetaDataRoleAuthorizationStrategy.authorize(schemaLink, ENABLE, StandardEntitlement.SCHEMA_CREATE);
}
private List<ITab> buildTabList() {
@@ -171,8 +192,8 @@ public class SchemasPanel extends Panel {
}
});
} else {
- final IColumn<AbstractSchemaTO, String> column =
- new PropertyColumn<AbstractSchemaTO, String>(new ResourceModel(field), field, field) {
+ final IColumn<AbstractSchemaTO, String> column = new PropertyColumn<AbstractSchemaTO, String>(
+ new ResourceModel(field), field, field) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -291,9 +312,8 @@ public class SchemasPanel extends Panel {
final List<IColumn<AbstractSchemaTO, String>> tableCols = getColumns(schemaContainer,
schemaType, COL_NAMES.get(schemaType));
- final AjaxFallbackDataTable<AbstractSchemaTO, String> table =
- new AjaxFallbackDataTable<>("datatable",
- tableCols, new SchemaProvider(schemaType), pageRows, schemaContainer);
+ final AjaxFallbackDataTable<AbstractSchemaTO, String> table = new AjaxFallbackDataTable<>("datatable",
+ tableCols, new SchemaProvider(schemaType), pageRows, schemaContainer);
table.setOutputMarkupId(true);
schemaContainer.add(table);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
index b6ab809..d7a70a1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionDetailsPanel.java
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.client.console.panels;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -31,9 +30,7 @@ public class SecurityQuestionDetailsPanel extends Panel {
private static final long serialVersionUID = 6278708606604582875L;
- public SecurityQuestionDetailsPanel(
- final String id,
- final BaseModal<SecurityQuestionTO> modal) {
+ public SecurityQuestionDetailsPanel(final String id, final SecurityQuestionTO securityQuestionTO) {
super(id);
final WebMarkupContainer container = new WebMarkupContainer("container");
@@ -43,7 +40,6 @@ public class SecurityQuestionDetailsPanel extends Panel {
final Form<SecurityQuestionTO> form = new Form<>("form");
- final SecurityQuestionTO securityQuestionTO = modal.getFormModel();
form.setModel(new CompoundPropertyModel<>(securityQuestionTO));
container.add(form);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionModalPanel.java
index e3d083c..671a494 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionModalPanel.java
@@ -27,27 +27,30 @@ import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
-public class SecurityQuestionModalPanel extends AbstractModalPanel {
+public class SecurityQuestionModalPanel extends AbstractModalPanel<SecurityQuestionTO> {
private static final long serialVersionUID = 4024126489500665435L;
- private final boolean createFlag;
+ private final SecurityQuestionTO securityQuestionTO;
public SecurityQuestionModalPanel(
final BaseModal<SecurityQuestionTO> modal,
- final PageReference pageRef,
- final boolean createFlag) {
+ final SecurityQuestionTO securityQuestionTO,
+ final PageReference pageRef) {
super(modal, pageRef);
- this.createFlag = createFlag;
- add(new SecurityQuestionDetailsPanel("securityQuestionDetailsPanel", modal));
+ this.securityQuestionTO = securityQuestionTO;
+ add(new SecurityQuestionDetailsPanel("securityQuestionDetailsPanel", getItem()));
+ }
+
+ @Override
+ public final SecurityQuestionTO getItem() {
+ return this.securityQuestionTO;
}
@Override
public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
try {
- final SecurityQuestionTO securityQuestionTO = SecurityQuestionTO.class.cast(form.getModelObject());
-
- if (createFlag) {
+ if (securityQuestionTO.getKey() == 0) {
SyncopeConsoleSession.get().getService(SecurityQuestionService.class).create(securityQuestionTO);
} else {
SyncopeConsoleSession.get().getService(SecurityQuestionService.class).update(securityQuestionTO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
index 45e80fe..bc83d03 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
@@ -18,70 +18,120 @@
*/
package org.apache.syncope.client.console.panels;
+import static org.apache.wicket.Component.ENABLE;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
import org.apache.syncope.client.console.pages.AbstractBasePage;
+import org.apache.syncope.client.console.panels.SecurityQuestionsPanel.SecurityQuestionsProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.syncope.client.console.wizards.AbstractModalPanelBuilder;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.SecurityQuestionService;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
-import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class SecurityQuestionsPanel extends AbstractTypesPanel<SecurityQuestionTO> {
+public class SecurityQuestionsPanel extends AbstractSearchResultPanel<
+ SecurityQuestionTO, SecurityQuestionTO, SecurityQuestionsProvider, BaseRestClient> {
private static final long serialVersionUID = 3323019773236588850L;
- private static final Logger LOG = LoggerFactory.getLogger(SecurityQuestionsPanel.class);
+ private final String pageID = "SecurityQuestions";
+
+ public SecurityQuestionsPanel(final String id, final PageReference pageRef) {
+ super(id, new Builder<SecurityQuestionTO, SecurityQuestionTO, BaseRestClient>(null, pageRef) {
+
+ private static final long serialVersionUID = 8769126634538601689L;
+
+ @Override
+ protected WizardMgtPanel<SecurityQuestionTO> newInstance(final String id) {
+ return new SecurityQuestionsPanel(id, this);
+ }
+ });
+
+ this.addNewItemPanelBuilder(new AbstractModalPanelBuilder<SecurityQuestionTO>(
+ BaseModal.CONTENT_ID, new SecurityQuestionTO(), pageRef) {
+
+ private static final long serialVersionUID = -6388405037134399367L;
+
+ @Override
+ public ModalPanel<SecurityQuestionTO> build(final int index, final boolean edit) {
+ final SecurityQuestionTO modelObject = newModelObject();
+ return new SecurityQuestionModalPanel(modal, modelObject, pageRef);
+ }
+
+ @Override
+ protected void onCancelInternal(final SecurityQuestionTO modelObject) {
+ }
+
+ @Override
+ protected void onApplyInternal(final SecurityQuestionTO modelObject) {
+ }
+ }, true);
- private static final String PAGINATOR_ROWS_KEYS = Constants.PREF_SECURITY_QUESTIONS_PAGINATOR_ROWS;
+ setFooterVisibility(true);
+ modal.addSumbitButton();
+ modal.size(Modal.Size.Large);
+ initResultTable();
- private final BaseModal<SecurityQuestionTO> modal;
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.SECURITY_QUESTION_CREATE);
+ }
public SecurityQuestionsPanel(
- final String id, final PageReference pageReference, final BaseModal<SecurityQuestionTO> modal) {
- super(id, pageReference);
- this.pageRows = prefMan.getPaginatorRows(getRequest(), PAGINATOR_ROWS_KEYS);
- this.modal = modal;
+ final String id, final Builder<SecurityQuestionTO, SecurityQuestionTO, BaseRestClient> builder) {
+ super(id, builder);
+ }
+
+ @Override
+ protected SecurityQuestionsProvider dataProvider() {
+ return new SecurityQuestionsProvider(rows);
+ }
- final WebMarkupContainer container = new WebMarkupContainer("container");
- container.setOutputMarkupId(true);
- add(container);
+ @Override
+ protected String paginatorRowsKey() {
+ return Constants.PREF_SECURITY_QUESTIONS_PAGINATOR_ROWS;
+ }
- buildDataTable(container,
- getColumns(container, pageReference),
- new SecurityQuestionsPanel.SecurityQuestionsProvider(),
- PAGINATOR_ROWS_KEYS);
+ @Override
+ protected Collection<ActionLink.ActionType> getBulkActions() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+ @Override
+ protected String getPageId() {
+ return pageID;
}
- private List<IColumn<SecurityQuestionTO, String>> getColumns(
- final WebMarkupContainer webContainer, final PageReference pageReference) {
+ @Override
+ protected List<IColumn<SecurityQuestionTO, String>> getColumns() {
final List<IColumn<SecurityQuestionTO, String>> columns = new ArrayList<>();
@@ -145,7 +195,8 @@ public class SecurityQuestionsPanel extends AbstractTypesPanel<SecurityQuestionT
final SecurityQuestionTO securityQuestionTO = model.getObject();
- final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(pageReference);
+ final ActionLinksPanel.Builder<Serializable> actionLinks
+ = ActionLinksPanel.builder(page.getPageReference());
actionLinks.setDisableIndicator(true);
actionLinks
.addWithRoles(new ActionLink<Serializable>() {
@@ -154,12 +205,9 @@ public class SecurityQuestionsPanel extends AbstractTypesPanel<SecurityQuestionT
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- modal.header(Model.of(String.valueOf(securityQuestionTO.getKey())));
- modal.setFormModel(securityQuestionTO);
- target.add(modal.setContent(
- new SecurityQuestionModalPanel(modal, pageReference, false)));
- modal.addSumbitButton();
- modal.show(true);
+ send(SecurityQuestionsPanel.this, Broadcast.EXACT,
+ new AjaxWizard.EditItemActionEvent<SecurityQuestionTO>(
+ model.getObject(), target));
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.SECURITY_QUESTION_UPDATE)
.addWithRoles(new ActionLink<Serializable>() {
@@ -172,7 +220,7 @@ public class SecurityQuestionsPanel extends AbstractTypesPanel<SecurityQuestionT
SyncopeConsoleSession.get().getService(SecurityQuestionService.class
).delete(securityQuestionTO.getKey());
info(getString(Constants.OPERATION_SUCCEEDED));
- target.add(webContainer);
+ target.add(container);
} catch (Exception e) {
LOG.error("While deleting SecutiryQuestionTO", e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -190,15 +238,14 @@ public class SecurityQuestionsPanel extends AbstractTypesPanel<SecurityQuestionT
}
- private final class SecurityQuestionsProvider extends SortableDataProvider<SecurityQuestionTO, String> {
+ protected final class SecurityQuestionsProvider extends SearchableDataProvider<SecurityQuestionTO> {
private static final long serialVersionUID = -185944053385660794L;
private final SortableDataProviderComparator<SecurityQuestionTO> comparator;
- private SecurityQuestionsProvider() {
- super();
- setSort("key", SortOrder.ASCENDING);
+ private SecurityQuestionsProvider(final int paginatorRows) {
+ super(paginatorRows);
comparator = new SortableDataProviderComparator<>(this);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java
index 6f5a985..c7501c6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java
@@ -20,7 +20,6 @@ package org.apache.syncope.client.console.panels;
import java.io.Serializable;
import java.lang.reflect.Field;
-import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -126,15 +125,16 @@ public class UserSearchResultPanel extends AnyObjectSearchResultPanel<UserTO> {
@Override
public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
- final IModel<AnyHandler<UserTO>> formModel =
- new CompoundPropertyModel<>(new AnyHandler<UserTO>(model.getObject()));
+ final IModel<AnyHandler<UserTO>> formModel
+ = new CompoundPropertyModel<>(new AnyHandler<UserTO>(model.getObject()));
modal.setFormModel(formModel);
target.add(modal.setContent(new StatusModal<>(
modal, page.getPageReference(), formModel.getObject().getInnerObject())));
- modal.header(new Model<>(MessageFormat.format(
- getString("any.edit"), model.getObject().getKey())));
+ modal.header(new Model<>(
+ getString("any.edit", new Model<>(new AnyHandler<UserTO>(model.getObject())))));
+
modal.show(true);
}
}, ActionLink.ActionType.MANAGE_RESOURCES, StandardEntitlement.USER_READ).add(new ActionLink<UserTO>() {
@@ -143,15 +143,16 @@ public class UserSearchResultPanel extends AnyObjectSearchResultPanel<UserTO> {
@Override
public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
- final IModel<AnyHandler<UserTO>> formModel =
- new CompoundPropertyModel<>(new AnyHandler<UserTO>(model.getObject()));
+ final IModel<AnyHandler<UserTO>> formModel
+ = new CompoundPropertyModel<>(new AnyHandler<UserTO>(model.getObject()));
modal.setFormModel(formModel);
target.add(modal.setContent(new StatusModal<>(
modal, page.getPageReference(), formModel.getObject().getInnerObject(), true)));
- modal.header(new Model<>(MessageFormat.format(
- getString("any.edit"), model.getObject().getKey())));
+ modal.header(new Model<>(
+ getString("any.edit", new Model<>(new AnyHandler<UserTO>(model.getObject())))));
+
modal.show(true);
}
}, ActionLink.ActionType.ENABLE, StandardEntitlement.USER_READ).add(new ActionLink<UserTO>() {
@@ -209,7 +210,7 @@ public class UserSearchResultPanel extends AnyObjectSearchResultPanel<UserTO> {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- target.add(modal.setContent(new UserDisplayAttributesModalPage(
+ target.add(modal.setContent(new UserDisplayAttributesModalPage<>(
modal, page.getPageReference(), schemaNames, dSchemaNames)));
modal.header(new ResourceModel("any.attr.display", ""));
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
----------------------------------------------------------------------
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 17ee0ce..2478b61 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
@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.client.console.panels.NotificationPanel;
import org.apache.syncope.client.console.rest.AnyTypeRestClient;
import org.apache.syncope.client.console.rest.ResourceRestClient;
import org.apache.syncope.client.console.rest.SchemaRestClient;
@@ -64,8 +63,6 @@ public abstract class AbstractSearchPanel extends Panel {
protected IModel<List<Pair<Long, String>>> groupNames;
- protected NotificationPanel searchFeedback;
-
protected IModel<List<SearchClause>> model;
protected WebMarkupContainer searchFormContainer;
@@ -127,28 +124,6 @@ public abstract class AbstractSearchPanel extends Panel {
searchFormContainer.setOutputMarkupId(true);
add(searchFormContainer);
-// searchFeedback = new NotificationPanel("searchFeedback", new IFeedbackMessageFilter() {
-//
-// private static final long serialVersionUID = 6895024863321391672L;
-//
-// @Override
-// public boolean accept(final FeedbackMessage message) {
-// boolean result;
-//
-// // messages reported on the session have a null reporter
-// if (message.getReporter() == null) {
-// result = false;
-// } else {
-// // only accept messages coming from the children of the search form container
-// result = searchFormContainer.contains(message.getReporter(), true);
-// }
-//
-// return result;
-// }
-// });
-// searchFeedback.setOutputMarkupId(true);
-// add(searchFeedback);
-
final SearchClausePanel searchClausePanel = new SearchClausePanel("panel", "panel",
Model.of(new SearchClause()),
required,
@@ -217,10 +192,6 @@ public abstract class AbstractSearchPanel extends Panel {
};
}
- public NotificationPanel getSearchFeedback() {
- return searchFeedback;
- }
-
public IModel<List<SearchClause>> getModel() {
return this.model;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
index 6a6733e..e3bc2be 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ResourceRestClient.java
@@ -43,7 +43,7 @@ public class ResourceRestClient extends BaseRestClient {
return new ArrayList<>(SyncopeConsoleSession.get().getSyncopeTO().getPropagationActions());
}
- public static List<ResourceTO> getAll() {
+ public List<ResourceTO> getAll() {
List<ResourceTO> resources = null;
try {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index e11e234..1a904a1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -32,6 +32,7 @@ import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.panels.AbstractResourceModal.CreateEvent;
+import org.apache.syncope.client.console.panels.NotificationPanel;
import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.client.console.rest.ConnectorRestClient;
import org.apache.syncope.client.console.rest.ResourceRestClient;
@@ -92,48 +93,48 @@ public class Topology extends BasePage {
private final LoadableDetachableModel<Map<String, List<ConnInstanceTO>>> connModel
= new LoadableDetachableModel<Map<String, List<ConnInstanceTO>>>() {
- private static final long serialVersionUID = 5275935387613157432L;
+ private static final long serialVersionUID = 5275935387613157432L;
- @Override
- protected Map<String, List<ConnInstanceTO>> load() {
- final Map<String, List<ConnInstanceTO>> res = new HashMap<>();
-
- for (ConnInstanceTO conn : connectorRestClient.getAllConnectors()) {
- final List<ConnInstanceTO> conns;
- if (res.containsKey(conn.getLocation())) {
- conns = res.get(conn.getLocation());
- } else {
- conns = new ArrayList<>();
- res.put(conn.getLocation(), conns);
- }
- conns.add(conn);
- }
-
- return res;
+ @Override
+ protected Map<String, List<ConnInstanceTO>> load() {
+ final Map<String, List<ConnInstanceTO>> res = new HashMap<>();
+
+ for (ConnInstanceTO conn : connectorRestClient.getAllConnectors()) {
+ final List<ConnInstanceTO> conns;
+ if (res.containsKey(conn.getLocation())) {
+ conns = res.get(conn.getLocation());
+ } else {
+ conns = new ArrayList<>();
+ res.put(conn.getLocation(), conns);
}
- };
+ conns.add(conn);
+ }
+
+ return res;
+ }
+ };
private final LoadableDetachableModel<Pair<List<URI>, List<URI>>> csModel
= new LoadableDetachableModel<Pair<List<URI>, List<URI>>>() {
- private static final long serialVersionUID = 5275935387613157433L;
+ private static final long serialVersionUID = 5275935387613157433L;
- @Override
- protected Pair<List<URI>, List<URI>> load() {
- final List<URI> connectorServers = new ArrayList<>();
- final List<URI> filePaths = new ArrayList<>();
-
- for (String location : SyncopeConsoleSession.get().getSyncopeTO().getConnIdLocations()) {
- if (location.startsWith(CONNECTOR_SERVER_LOCATION_PREFIX)) {
- connectorServers.add(URI.create(location));
- } else {
- filePaths.add(URI.create(location));
- }
- }
-
- return Pair.of(connectorServers, filePaths);
+ @Override
+ protected Pair<List<URI>, List<URI>> load() {
+ final List<URI> connectorServers = new ArrayList<>();
+ final List<URI> filePaths = new ArrayList<>();
+
+ for (String location : SyncopeConsoleSession.get().getSyncopeTO().getConnIdLocations()) {
+ if (location.startsWith(CONNECTOR_SERVER_LOCATION_PREFIX)) {
+ connectorServers.add(URI.create(location));
+ } else {
+ filePaths.add(URI.create(location));
}
- };
+ }
+
+ return Pair.of(connectorServers, filePaths);
+ }
+ };
protected enum SupportedOperation {
@@ -144,7 +145,15 @@ public class Topology extends BasePage {
}
public Topology() {
- modal = new BaseModal<>("resource-modal");
+ modal = new BaseModal<Serializable>("resource-modal") {
+
+ private static final long serialVersionUID = -5912673052161214766L;
+
+ @Override
+ public NotificationPanel getNotificationPanel() {
+ return Topology.this.notificationPanel;
+ }
+ };
add(modal.size(Modal.Size.Large));
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
@@ -154,11 +163,6 @@ public class Topology extends BasePage {
@Override
public void onClose(final AjaxRequestTarget target) {
modal.show(false);
-
-// if (isModalResult()) {
-// info(getString(Constants.OPERATION_SUCCEEDED));
-// notificationPanel.refresh(target);
-// }
}
});
@@ -398,37 +402,37 @@ public class Topology extends BasePage {
final ListView<TopologyNode> innerListView = new ListView<TopologyNode>("resources",
new ArrayList<>(connections.get(connectorId).values())) {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
- private final int size = getModelObject().size() + 1;
+ private final int size = getModelObject().size() + 1;
- @Override
- protected void populateItem(final ListItem<TopologyNode> item) {
- final TopologyNode topologynode = item.getModelObject();
- final TopologyNode parent = connectors.get(connectorId);
+ @Override
+ protected void populateItem(final ListItem<TopologyNode> item) {
+ final TopologyNode topologynode = item.getModelObject();
+ final TopologyNode parent = connectors.get(connectorId);
- // Set position
- int kx = size >= 16 ? 800 : (48 * size);
- int ky = size < 4 ? 100 : size < 6 ? 350 : 750;
+ // Set position
+ int kx = size >= 16 ? 800 : (48 * size);
+ int ky = size < 4 ? 100 : size < 6 ? 350 : 750;
- final double hpos;
- if (parent == null || parent.getY() < syncopeTopologyNode.getY()) {
- hpos = Math.PI;
- } else {
- hpos = 0.0;
- }
+ final double hpos;
+ if (parent == null || parent.getY() < syncopeTopologyNode.getY()) {
+ hpos = Math.PI;
+ } else {
+ hpos = 0.0;
+ }
- int x = (int) Math.round((parent == null ? origX : parent.getX())
- + kx * Math.cos(hpos + Math.PI * (item.getIndex() + 1) / size));
- int y = (int) Math.round((parent == null ? origY : parent.getY())
- + ky * Math.sin(hpos + Math.PI * (item.getIndex() + 1) / size));
+ int x = (int) Math.round((parent == null ? origX : parent.getX())
+ + kx * Math.cos(hpos + Math.PI * (item.getIndex() + 1) / size));
+ int y = (int) Math.round((parent == null ? origY : parent.getY())
+ + ky * Math.sin(hpos + Math.PI * (item.getIndex() + 1) / size));
- topologynode.setX(x);
- topologynode.setY(y);
+ topologynode.setX(x);
+ topologynode.setY(y);
- item.add(topologyNodePanel("res", topologynode));
- }
- };
+ item.add(topologyNodePanel("res", topologynode));
+ }
+ };
innerListView.setOutputMarkupId(true);
item.add(innerListView);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
index 3c6f72c..a7bd832 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
@@ -35,12 +35,15 @@ import org.apache.syncope.common.lib.to.ConnInstanceTO;
import org.apache.syncope.common.lib.to.ResourceTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.IAjaxIndicatorAware;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Fragment;
@@ -117,6 +120,21 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
BasePage.class.cast(pageRef.getPage()).setWindowClosedCallback(modal, null);
}
+ @Override
+ public final MarkupContainer add(final Component... childs) {
+ return super.add(childs);
+ }
+
+ @Override
+ public final Component add(final Behavior... behaviors) {
+ return super.add(behaviors);
+ }
+
+ @Override
+ public final Component setMarkupId(final String markupId) {
+ return super.setMarkupId(markupId);
+ }
+
private Fragment getSyncopeFragment() {
return new Fragment("actions", "syncopeActions", this);
}
@@ -173,7 +191,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
((AbstractBasePage) getPage()).getNotificationPanel().refresh(target);
}
};
-
+
fragment.add(delete);
delete.add(new ConfirmationModalBehavior());
@@ -192,7 +210,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
final IModel<ResourceTO> model = new CompoundPropertyModel<>(modelObject);
modal.setFormModel(model);
- target.add(modal.setContent(new ResourceModal(modal, pageRef, model, true)));
+ target.add(modal.setContent(new ResourceModal<>(modal, pageRef, model, true)));
modal.header(new Model<>(MessageFormat.format(getString("resource.new"), node.getKey())));
@@ -271,7 +289,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
final IModel<ResourceTO> model = new CompoundPropertyModel<>(modelObject);
modal.setFormModel(model);
- target.add(modal.setContent(new ResourceModal(modal, pageRef, model, false)));
+ target.add(modal.setContent(new ResourceModal<>(modal, pageRef, model, false)));
modal.header(new Model<>(MessageFormat.format(getString("resource.edit"), node.getKey())));
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
index 566991e..ab602b6 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
@@ -33,8 +33,10 @@ import org.apache.syncope.client.console.panels.NotificationPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.DefaultModalCloseButton;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.PrimaryModalButton;
import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -82,7 +84,7 @@ public class BaseModal<T extends Serializable> extends Modal<T> implements Notif
form = new Form<>(FORM);
add(form);
- content = new AbstractModalPanel(this, null) {
+ content = new AbstractModalPanel<T>(this, null) {
private static final long serialVersionUID = 1L;
@@ -105,7 +107,21 @@ public class BaseModal<T extends Serializable> extends Modal<T> implements Notif
addButton(new DefaultModalCloseButton());
setUseKeyboard(true);
setFadeIn(true);
+ }
+ @Override
+ public final Component add(final Behavior... behaviors) {
+ return super.add(behaviors);
+ }
+
+ @Override
+ public final MarkupContainer add(final Component... childs) {
+ return super.add(childs);
+ }
+
+ @Override
+ public final MarkupContainer addOrReplace(final Component... childs) {
+ return super.addOrReplace(childs);
}
@Override
@@ -131,11 +147,14 @@ public class BaseModal<T extends Serializable> extends Modal<T> implements Notif
return form.getModelObject();
}
- public ModalPanel getContent() {
- return ModalPanel.class.cast(content);
+ public ModalPanel<T> getContent() {
+ if (content instanceof ModalPanel) {
+ return (ModalPanel<T>) content;
+ }
+ throw new IllegalStateException();
}
- public BaseModal<T> setContent(final ModalPanel component) {
+ public BaseModal<T> setContent(final ModalPanel<T> component) {
if (component instanceof Panel) {
return setInternalContent(Panel.class.cast(component));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
new file mode 100644
index 0000000..88b79c5
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AbstractModalPanelBuilder.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2015 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.syncope.client.console.wizards;
+
+import java.io.Serializable;
+import org.apache.commons.lang3.SerializationUtils;
+import org.apache.syncope.client.console.panels.ModalPanel;
+import org.apache.wicket.PageReference;
+
+public abstract class AbstractModalPanelBuilder<T extends Serializable> implements Serializable {
+
+ private static final long serialVersionUID = 5241745929825564456L;
+
+ protected final String id;
+
+ protected final PageReference pageRef;
+
+ private final T defaultItem;
+
+ private T item;
+
+ /**
+ * Construct.
+ *
+ * @param id The component id
+ * @param defaultItem default item.
+ * @param pageRef Caller page reference.
+ */
+ public AbstractModalPanelBuilder(final String id, final T defaultItem, final PageReference pageRef) {
+ this.id = id;
+ this.defaultItem = defaultItem;
+ this.pageRef = pageRef;
+ }
+
+ public abstract ModalPanel<T> build(final int index, final boolean edit);
+
+ protected abstract void onCancelInternal(T modelObject);
+
+ protected abstract void onApplyInternal(T modelObject);
+
+ protected T getOriginalItem() {
+ return item;
+ }
+
+ public T getDefaultItem() {
+ return defaultItem;
+ }
+
+ protected T newModelObject() {
+ if (item == null) {
+ // keep the original item: the which one before the changes performed during wizard browsing
+ item = SerializationUtils.clone(defaultItem);
+ }
+
+ // instantiate a new model object and return it
+ return SerializationUtils.clone(item);
+ }
+
+ /**
+ * Replaces the default value provided with the constructor and nullify working item object.
+ *
+ * @param item new value.
+ * @return the current wizard factory instance.
+ */
+ public AbstractModalPanelBuilder<T> setItem(final T item) {
+ this.item = item;
+ return this;
+ }
+
+ public PageReference getPageReference() {
+ return pageRef;
+ }
+}
[2/4] syncope git commit: [SYNCOPE-156] provides material button for
types by changing to be compliant to the standard use of search tables +
fixes some notifications & icons
Posted by fm...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
index 54f9223..d868180 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java
@@ -29,7 +29,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class AjaxWizard<T extends Serializable> extends Wizard implements ModalPanel {
+public abstract class AjaxWizard<T extends Serializable> extends Wizard implements ModalPanel<T> {
private static final long serialVersionUID = -1272120742876833520L;
@@ -53,11 +53,8 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen
super(id);
this.item = item;
this.edit = edit;
-
setOutputMarkupId(true);
-
setDefaultModel(new CompoundPropertyModel<>(this));
-
init(model);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
index 173e4d5..0afa9f4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java
@@ -16,22 +16,13 @@
package org.apache.syncope.client.console.wizards;
import java.io.Serializable;
-import org.apache.commons.lang3.SerializationUtils;
import org.apache.wicket.PageReference;
import org.apache.wicket.extensions.wizard.WizardModel;
-public abstract class AjaxWizardBuilder<T extends Serializable> implements Serializable {
+public abstract class AjaxWizardBuilder<T extends Serializable> extends AbstractModalPanelBuilder<T> {
private static final long serialVersionUID = 5241745929825564456L;
- private final String id;
-
- protected final PageReference pageRef;
-
- private final T defaultItem;
-
- private T item;
-
/**
* Construct.
*
@@ -40,11 +31,10 @@ public abstract class AjaxWizardBuilder<T extends Serializable> implements Seria
* @param pageRef Caller page reference.
*/
public AjaxWizardBuilder(final String id, final T defaultItem, final PageReference pageRef) {
- this.id = id;
- this.defaultItem = defaultItem;
- this.pageRef = pageRef;
+ super(id, defaultItem, pageRef);
}
+ @Override
public AjaxWizard<T> build(final int index, final boolean edit) {
final AjaxWizard<T> wizard = build(edit);
for (int i = 1; i < index; i++) {
@@ -74,41 +64,4 @@ public abstract class AjaxWizardBuilder<T extends Serializable> implements Seria
}
protected abstract WizardModel buildModelSteps(final T modelObject, final WizardModel wizardModel);
-
- protected abstract void onCancelInternal(T modelObject);
-
- protected abstract void onApplyInternal(T modelObject);
-
- protected T getOriginalItem() {
- return item;
- }
-
- public T getDefaultItem() {
- return defaultItem;
- }
-
- private T newModelObject() {
- if (item == null) {
- // keep the original item: the which one before the changes performed during wizard browsing
- item = SerializationUtils.clone(defaultItem);
- }
-
- // instantiate a new model object and return it
- return SerializationUtils.clone(item);
- }
-
- /**
- * Replaces the default value provided with the constructor and nullify working item object.
- *
- * @param item new value.
- * @return the current wizard factory instance.
- */
- public AjaxWizardBuilder<T> setItem(final T item) {
- this.item = item;
- return this;
- }
-
- public PageReference getPageReference() {
- return pageRef;
- }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
index 56b1cc5..f9abcdc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
@@ -20,8 +20,11 @@ package org.apache.syncope.client.console.wizards;
import java.io.Serializable;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.panels.ModalPanel;
import org.apache.syncope.client.console.panels.NotificationPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -45,12 +48,14 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
private final Fragment initialFragment;
- private final AjaxLink<?> addAjaxLink;
+ protected final AjaxLink<?> addAjaxLink;
- private AjaxWizardBuilder<T> newItemPanelBuilder;
+ private AbstractModalPanelBuilder<T> newItemPanelBuilder;
private NotificationPanel notificationPanel;
+ private boolean footerVisibility = false;
+
/**
* Modal window.
*/
@@ -61,7 +66,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
@Override
protected void onConfigure() {
super.onConfigure();
- setFooterVisible(false);
+ setFooterVisible(footerVisibility);
}
};
@@ -102,6 +107,15 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
}
@Override
+ public final MarkupContainer add(final Component... childs) {
+ return super.add(childs);
+ }
+
+ public void setFooterVisibility(final boolean footerVisibility) {
+ this.footerVisibility = footerVisibility;
+ }
+
+ @Override
@SuppressWarnings("unchecked")
public void onEvent(final IEvent<?> event) {
if (event.getPayload() instanceof AjaxWizard.NewItemEvent) {
@@ -109,27 +123,27 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
final AjaxRequestTarget target = newItemEvent.getTarget();
final T item = newItemEvent.getItem();
- if (event.getPayload() instanceof AjaxWizard.NewItemActionEvent) {
+ if (event.getPayload() instanceof AjaxWizard.NewItemActionEvent && newItemPanelBuilder != null) {
newItemPanelBuilder.setItem(item);
- final AjaxWizard<T> wizard = newItemPanelBuilder.build(
+ final ModalPanel<T> modalPanel = newItemPanelBuilder.build(
((AjaxWizard.NewItemActionEvent<T>) newItemEvent).getIndex(), item != null);
if (wizardInModal) {
final IModel<T> model = new CompoundPropertyModel<>(item);
modal.setFormModel(model);
- target.add(modal.setContent(wizard));
+ target.add(modal.setContent(modalPanel));
modal.header(new StringResourceModel(
String.format("any.%s", newItemEvent.getEventDescription()),
this,
- new Model<T>(wizard.getItem())));
+ new Model<T>(modalPanel.getItem())));
modal.show(true);
} else {
final Fragment fragment = new Fragment("content", "wizard", WizardMgtPanel.this);
- fragment.add(wizard);
+ fragment.add(Component.class.cast(modalPanel));
container.addOrReplace(fragment);
}
} else {
@@ -153,8 +167,8 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
super.onEvent(event);
}
- private WizardMgtPanel<T> addNewItemPanelBuilder(
- final AjaxWizardBuilder<T> panelBuilder, final boolean newItemDefaultButtonEnabled) {
+ protected <B extends AbstractModalPanelBuilder<T>> WizardMgtPanel<T> addNewItemPanelBuilder(
+ final B panelBuilder, final boolean newItemDefaultButtonEnabled) {
this.newItemPanelBuilder = panelBuilder;
if (this.newItemPanelBuilder != null) {
@@ -165,7 +179,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
return this;
}
- private WizardMgtPanel<T> addNotificationPanel(final NotificationPanel notificationPanel) {
+ protected WizardMgtPanel<T> addNotificationPanel(final NotificationPanel notificationPanel) {
this.notificationPanel = notificationPanel;
return this;
}
@@ -181,7 +195,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
protected final PageReference pageRef;
- private AjaxWizardBuilder<T> newItemPanelBuilder;
+ private AbstractModalPanelBuilder<T> newItemPanelBuilder;
private boolean newItemDefaultButtonEnabled = true;
@@ -205,7 +219,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
addNotificationPanel(notificationPanel);
}
- public Builder<T> addNewItemPanelBuilder(final AjaxWizardBuilder<T> panelBuilder) {
+ public Builder<T> addNewItemPanelBuilder(final AbstractModalPanelBuilder<T> panelBuilder) {
this.newItemPanelBuilder = panelBuilder;
return this;
}
@@ -218,7 +232,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple
* @return the current builder.
*/
public Builder<T> addNewItemPanelBuilder(
- final AjaxWizardBuilder<T> panelBuilder, final boolean newItemDefaultButtonEnabled) {
+ final AbstractModalPanelBuilder<T> panelBuilder, final boolean newItemDefaultButtonEnabled) {
this.newItemDefaultButtonEnabled = newItemDefaultButtonEnabled;
return addNewItemPanelBuilder(panelBuilder);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
index 8d5a78a..ed4c227 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
@@ -56,7 +56,9 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> {
*/
@Override
public AjaxWizardBuilder<AnyHandler<GroupTO>> setItem(final AnyHandler<GroupTO> item) {
- return item == null ? super.setItem(item) : super.setItem(new GroupHandler(item.getInnerObject()));
+ return (AjaxWizardBuilder<AnyHandler<GroupTO>>) (item == null
+ ? super.setItem(item)
+ : super.setItem(new GroupHandler(item.getInnerObject())));
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
index 86ad35f..d20636f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java
@@ -53,7 +53,7 @@ public class Resources extends WizardStep {
entityTO.getResources().addAll(object);
}
}, new ListModel<>(CollectionUtils.collect(
- ResourceRestClient.getAll(),
+ new ResourceRestClient().getAll(),
new Transformer<ResourceTO, String>() {
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
index b14bf7a..7801a6e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
@@ -68,7 +68,9 @@ public class RoleWizardBuilder extends AjaxWizardBuilder<RoleHandler> {
*/
@Override
public AjaxWizardBuilder<RoleHandler> setItem(final RoleHandler item) {
- return item == null ? super.setItem(item) : super.setItem(new RoleHandler(item.getInnerObject()));
+ return (AjaxWizardBuilder<RoleHandler>) (item == null
+ ? super.setItem(item)
+ : super.setItem(new RoleHandler(item.getInnerObject())));
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
index 8db1214..7bae94e 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
@@ -95,23 +95,23 @@ under the License.
<ul class="sidebar-menu">
<li wicket:id="dashboardLI"><a href="#" wicket:id="dashboard"><i class="fa fa-dashboard"></i><span>Dashboard</span></a></li>
<li wicket:id="realmsLI"><a href="#" wicket:id="realms"><i class="fa fa-folder-o"></i><span>Realms</span></a></li>
- <li wicket:id="topologyLI"><a href="#" wicket:id="topology"><i class="fa fa-database"></i><span>Topology</span></a></li>
+ <li wicket:id="topologyLI"><a href="#" wicket:id="topology"><i class="fa fa-plug"></i><span>Topology</span></a></li>
<li wicket:id="reportsLI"><a href="#" wicket:id="reports"><i class="fa fa-pie-chart"></i><span>Reports</span></a></li>
<li wicket:id="configurationLI" class="treeview">
<a href="#"><i class="fa fa-edit"></i><span>Configuration</span> <i class="fa fa-angle-left pull-right"></i></a>
<ul wicket:id="configurationUL" class="treeview-menu">
<li wicket:id="rolesLI"><a href="#" wicket:id="roles"><i class="fa fa-users"></i>Roles</a></li>
- <li wicket:id="policiesLI"><a href="#" wicket:id="policies"><i class="fa fa-circle-o"></i>Policies</a></li>
- <li wicket:id="securityquestionsLI"><a href="#" wicket:id="securityquestions"><i class="fa fa-circle-o"></i>Security Questions</a></li>
- <li wicket:id="workflowLI"><a href="#" wicket:id="workflow"><i class="fa fa-circle-o"></i>Workflow</a></li>
- <li wicket:id="logsLI"><a href="#" wicket:id="logs"><i class="fa fa-circle-o"></i>Logs</a></li>
- <li wicket:id="layoutsLI"><a href="#" wicket:id="layouts"><i class="fa fa-circle-o"></i>Layouts</a></li>
- <li wicket:id="typesLI"><a href="#" wicket:id="types"><i class="fa fa-circle-o"></i><wicket:message key="types"/></a></li>
- <li wicket:id="notificationsLI"><a href="#" wicket:id="notifications"><i class="fa fa-circle-o"></i>Notifications</a></li>
+ <li wicket:id="policiesLI"><a href="#" wicket:id="policies"><i class="fa fa-list"></i>Policies</a></li>
+ <li wicket:id="securityquestionsLI"><a href="#" wicket:id="securityquestions"><i class="fa fa-question"></i>Security Questions</a></li>
+ <li wicket:id="workflowLI"><a href="#" wicket:id="workflow"><i class="fa fa-share-alt"></i>Workflow</a></li>
+ <li wicket:id="logsLI"><a href="#" wicket:id="logs"><i class="fa fa-file-text-o"></i>Logs</a></li>
+ <li wicket:id="layoutsLI"><a href="#" wicket:id="layouts"><i class="fa fa-object-ungroup"></i>Layouts</a></li>
+ <li wicket:id="typesLI"><a href="#" wicket:id="types"><i class="fa fa-wrench"></i><wicket:message key="types"/></a></li>
+ <li wicket:id="notificationsLI"><a href="#" wicket:id="notifications"><i class="fa fa-envelope-o"></i>Notifications</a></li>
</ul>
</li>
<li class="treeview">
- <a href="#"><i class="fa fa-laptop"></i><span>Extensions</span> <i class="fa fa-angle-left pull-right"></i></a>
+ <a href="#"><i class="fa fa-puzzle-piece"></i><span>Extensions</span> <i class="fa fa-angle-left pull-right"></i></a>
<ul class="treeview-menu">
<li wicket:id="camelroutesLI"><a href="#" wicket:id="camelroutes"><i class="fa fa-circle-o"></i>Camel Routes</a></li>
</ul>
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/pages/Logs.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Logs.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Logs.html
index b68b8cd..142df33 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Logs.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Logs.html
@@ -30,7 +30,7 @@ under the License.
</div>
<div class="box-body">
<div class="realms">
- <form wicket:id="form">
+ <form>
<div wicket:id="tabbedPanel"></div>
</form>
</div>
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/pages/Roles.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Roles.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Roles.html
index 4180c56..852db68 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Roles.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Roles.html
@@ -27,13 +27,6 @@ under the License.
<span wicket:id="header"></span>
</h3>
<div class="box-tools pull-right">
- <ul class="nav navbar-nav actions">
- <li>
- <a wicket:message="title:add" alt="add icon" wicket:id="add">
- <i class="glyphicon glyphicon-plus"></i>
- </a>
- </li>
- </ul>
</div>
</div>
<div class="box-body">
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
index 981a5c5..77d0675 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/SecurityQuestions.html
@@ -32,13 +32,6 @@ under the License.
<div class="box-body">
<div class="realms">
<div wicket:id="securityQuestionPanel"></div>
-
- <div class="modal-footer">
- <a wicket:message="title:createSecurityQuestion" wicket:id="createSecurityQuestion" class="btn btn-primary btn-circle btn-lg">
- <i class="glyphicon glyphicon-plus"></i>
- </a>
- </div>
-
</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html
index e04c84d..49062b3 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html
@@ -27,28 +27,6 @@ under the License.
<span wicket:id="header"></span>
</h3>
<div class="box-tools pull-right">
- <ul class="nav navbar-nav actions">
- <li>
- <a wicket:message="title:createRelationshipType" wicket:id="createRelationshipType">
- <i class="glyphicon glyphicon-link"></i>
- </a>
- </li>
- <li>
- <a wicket:message="title:createAnyType" wicket:id="createAnyType">
- <i class="glyphicon glyphicon-leaf"></i>
- </a>
- </li>
- <li>
- <a wicket:message="title:createAnyTypeClass" wicket:id="createAnyTypeClass">
- <i class="glyphicon glyphicon-duplicate"></i>
- </a>
- </li>
- <li>
- <a wicket:message="title:createSchema" wicket:id="createSchema">
- <i class="glyphicon glyphicon-list-alt"></i>
- </a>
- </li>
- </ul>
</div>
</div>
<div class="box-body">
@@ -61,7 +39,5 @@ under the License.
</div>
<div wicket:id="schemaModal"></div>
<div wicket:id="anyTypeClassModal"></div>
- <div wicket:id="anyTypeModal"></div>
- <div wicket:id="relationshipTypeModal"></div>
</wicket:extend>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
deleted file mode 100644
index ff35ea3..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AbstractTypesPanel.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:panel>
- <div wicket:id="container">
- <div wicket:id="tableContainer" class="dataTable">
- <table class="table table-bordered table-hover dataTable" wicket:id="datatable">[datatable]</table>
- </div>
- <div class="rowsChooser">
- <form wicket:id="paginator">
- <div>
- <div class="dataTables_length">
- <label>
- <wicket:message key="displayRows"/>
- <select class="form-control input-sm" wicket:id="rowsChooser"/>
- </label>
- </div>
- </div>
- </form>
- </div>
- </div>
- </wicket:panel>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel.properties
new file mode 100644
index 0000000..2f30b82
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Edit AnyType ${key}
+any.new=New AnyType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_it.properties
new file mode 100644
index 0000000..396f3d8
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_it.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Modifica AnyType ${key}
+any.new=Nuovo AnyType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_pt_BR.properties
new file mode 100644
index 0000000..75418a3
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypePanel_pt_BR.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Alterar AnyType ${key}
+any.new=Novo AnyType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel.properties
new file mode 100644
index 0000000..66ad3af
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Edit RelationshipType ${key}
+any.new=New RelationshipType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_it.properties
new file mode 100644
index 0000000..2882c37
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_it.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Modifica RelationshipType ${key}
+any.new=Nuovo RelationshipType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_pt_BR.properties
new file mode 100644
index 0000000..f884328
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/RelationshipTypePanel_pt_BR.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Alterar RelationshipType ${key}
+any.new=Novo RelationshipType
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/SchemasPanel.html
----------------------------------------------------------------------
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 a006d12..2cea30f 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
@@ -23,6 +23,11 @@ under the License.
<body>
<wicket:panel>
<div wicket:id="collapsePanel"></div>
+ <div class="modal-footer">
+ <a wicket:message="title:createSchema" wicket:id="createSchema">
+ <i class="glyphicon glyphicon-duplicate"></i>
+ </a>
+ </div>
</wicket:panel>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.properties
new file mode 100644
index 0000000..7323e05
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Edit Security Question ${key}
+any.new=New Security Question
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_it.properties
new file mode 100644
index 0000000..6d55323
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_it.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Modifica Domanda Segreta ${key}
+any.new=Nuova Domanda Segreta
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_pt_BR.properties
new file mode 100644
index 0000000..930c3c2
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/SecurityQuestionsPanel_pt_BR.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+any.edit=Alterar Pergunta de Seguran\u00e7a ${key}
+any.new=Novo Pergunta de Seguran\u00e7a
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/resources/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.html
index 4de4c23..70ea03d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.html
@@ -25,7 +25,6 @@ under the License.
<wicket:panel>
<span class="searchBox">
<div class="col-xs-12">
- <div wicket:id="searchFeedback"></div>
<span wicket:id="searchFormContainer">
<span wicket:id="search">[SEARCH]</span>
</span>
[4/4] syncope git commit: [SYNCOPE-156] provides material button for
types by changing to be compliant to the standard use of search tables +
fixes some notifications & icons
Posted by fm...@apache.org.
[SYNCOPE-156] provides material button for types by changing to be compliant to the standard use of search tables + fixes some notifications & icons
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/6a93860d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/6a93860d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/6a93860d
Branch: refs/heads/master
Commit: 6a93860d8deab4a2c1e5cf2c8e75e64c8c5eb27d
Parents: e599033
Author: fmartelli <fa...@gmail.com>
Authored: Thu Dec 31 09:19:54 2015 +0100
Committer: fmartelli <fa...@gmail.com>
Committed: Thu Dec 31 09:19:54 2015 +0100
----------------------------------------------------------------------
.../console/pages/AbstractStatusModalPage.java | 5 +-
.../pages/AnyDisplayAttributesModalPage.java | 8 +-
.../console/pages/BulkActionModalPage.java | 7 +-
.../pages/BulkActionResultModalPage.java | 10 +-
.../pages/DisplayAttributesModalPage.java | 25 +--
.../pages/GroupDisplayAttributesModalPage.java | 11 +-
.../syncope/client/console/pages/Realms.java | 8 +-
.../client/console/pages/ResultStatusModal.java | 168 +++++++++----------
.../syncope/client/console/pages/Roles.java | 25 +--
.../client/console/pages/SecurityQuestions.java | 33 +---
.../client/console/pages/StatusModal.java | 14 +-
.../syncope/client/console/pages/Types.java | 109 +-----------
.../pages/UserDisplayAttributesModalPage.java | 11 +-
.../console/panels/AbstractModalPanel.java | 24 ++-
.../console/panels/AbstractResourceModal.java | 6 +-
.../console/panels/AbstractTypesPanel.java | 83 ++-------
.../console/panels/ActionDataTablePanel.java | 2 +-
.../console/panels/AjaxDataTablePanel.java | 6 +-
.../console/panels/AnyTypeClassModalPanel.java | 6 +-
.../console/panels/AnyTypeClassesPanel.java | 65 ++++---
.../console/panels/AnyTypeDetailsPanel.java | 19 +--
.../console/panels/AnyTypeModalPanel.java | 34 +---
.../client/console/panels/AnyTypePanel.java | 143 +++++++++++-----
.../client/console/panels/ConnectorModal.java | 2 +-
.../client/console/panels/DataTablePanel.java | 3 +-
.../console/panels/FailureMessageModal.java | 5 +-
.../console/panels/GroupSearchResultPanel.java | 2 +-
.../client/console/panels/ModalPanel.java | 5 +-
.../console/panels/NotificationPanel.java | 6 +-
.../syncope/client/console/panels/Realm.java | 7 +-
.../client/console/panels/RealmModalPanel.java | 14 +-
.../panels/RelationshipTypeDetailsPanel.java | 18 +-
.../panels/RelationshipTypeModalPanel.java | 36 +---
.../console/panels/RelationshipTypePanel.java | 144 +++++++++++-----
.../client/console/panels/ResourceModal.java | 62 +++----
.../console/panels/RoleSearchResultPanel.java | 4 +
.../client/console/panels/SchemaModalPanel.java | 2 +-
.../client/console/panels/SchemasPanel.java | 38 ++++-
.../panels/SecurityQuestionDetailsPanel.java | 6 +-
.../panels/SecurityQuestionModalPanel.java | 21 ++-
.../console/panels/SecurityQuestionsPanel.java | 117 +++++++++----
.../console/panels/UserSearchResultPanel.java | 21 +--
.../panels/search/AbstractSearchPanel.java | 29 ----
.../client/console/rest/ResourceRestClient.java | 2 +-
.../client/console/topology/Topology.java | 132 ++++++++-------
.../console/topology/TopologyNodePanel.java | 24 ++-
.../markup/html/bootstrap/dialog/BaseModal.java | 27 ++-
.../wizards/AbstractModalPanelBuilder.java | 86 ++++++++++
.../client/console/wizards/AjaxWizard.java | 5 +-
.../console/wizards/AjaxWizardBuilder.java | 53 +-----
.../client/console/wizards/WizardMgtPanel.java | 42 +++--
.../console/wizards/any/GroupWizardBuilder.java | 4 +-
.../client/console/wizards/any/Resources.java | 2 +-
.../console/wizards/role/RoleWizardBuilder.java | 4 +-
.../syncope/client/console/pages/BasePage.html | 18 +-
.../syncope/client/console/pages/Logs.html | 2 +-
.../syncope/client/console/pages/Roles.html | 7 -
.../client/console/pages/SecurityQuestions.html | 7 -
.../syncope/client/console/pages/Types.html | 24 ---
.../console/panels/AbstractTypesPanel.html | 40 -----
.../console/panels/AnyTypePanel.properties | 18 ++
.../console/panels/AnyTypePanel_it.properties | 18 ++
.../panels/AnyTypePanel_pt_BR.properties | 18 ++
.../panels/RelationshipTypePanel.properties | 18 ++
.../panels/RelationshipTypePanel_it.properties | 18 ++
.../RelationshipTypePanel_pt_BR.properties | 18 ++
.../client/console/panels/SchemasPanel.html | 5 +
.../panels/SecurityQuestionsPanel.properties | 18 ++
.../panels/SecurityQuestionsPanel_it.properties | 18 ++
.../SecurityQuestionsPanel_pt_BR.properties | 18 ++
.../panels/search/AbstractSearchPanel.html | 1 -
71 files changed, 1074 insertions(+), 937 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
index f46ec67..20c71b7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractStatusModalPage.java
@@ -18,16 +18,17 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import org.apache.syncope.client.console.panels.AbstractModalPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.wicket.PageReference;
import org.apache.wicket.markup.html.panel.Fragment;
-public class AbstractStatusModalPage extends AbstractModalPanel {
+public class AbstractStatusModalPage<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 6633408683036028540L;
- public AbstractStatusModalPage(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractStatusModalPage(final BaseModal<T> modal, final PageReference pageRef) {
super(modal, pageRef);
add(new Fragment("pwdMgtFields", "emptyFragment", this));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
index 1995014..ec43ddc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/AnyDisplayAttributesModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
@@ -30,8 +31,7 @@ import org.apache.wicket.PageReference;
*
* @param <T> anyTO
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttributesModalPage {
+public class AnyDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
@@ -40,7 +40,7 @@ public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttri
private final String type;
public AnyDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames,
@@ -66,7 +66,7 @@ public class AnyDisplayAttributesModalPage<T extends AnyTO> extends DisplayAttri
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return AnyObjectTO.class;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
index 9a16098..da5aac2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionModalPage.java
@@ -45,12 +45,12 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.springframework.beans.BeanUtils;
-public class BulkActionModalPage<T, S> extends AbstractModalPanel {
+public class BulkActionModalPage<T extends Serializable, S> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 4114026480146090962L;
public BulkActionModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final Collection<T> items,
final List<IColumn<T, S>> columns,
@@ -88,8 +88,7 @@ public class BulkActionModalPage<T, S> extends AbstractModalPanel {
Integer.MAX_VALUE).setVisible(items != null && !items.isEmpty()));
@SuppressWarnings("rawtypes")
- final ActionLinksPanel<Serializable> actionPanel =
- ActionLinksPanel.builder(pageRef).build("actions");
+ final ActionLinksPanel<Serializable> actionPanel = ActionLinksPanel.builder(pageRef).build("actions");
add(actionPanel);
for (ActionLink.ActionType action : actions) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
index c659ddc..aa6a63e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BulkActionResultModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -39,15 +40,14 @@ import org.apache.wicket.model.IModel;
/**
* Show user or group status after performing a successful operation.
*
- * @param <T> type of the object that will be rendered in columns
- * @param <S> type of the sorting parameter
+ * @param <E> type of the inner model object
*/
-public class BulkActionResultModalPage<T, S> extends AbstractModalPanel {
+public class BulkActionResultModalPage<E extends Serializable> extends AbstractModalPanel<E> {
private static final long serialVersionUID = 2646115294319713724L;
- public BulkActionResultModalPage(
- final BaseModal<?> modal,
+ public <T extends Serializable, S> BulkActionResultModalPage(
+ final BaseModal<E> modal,
final PageReference pageRef,
final Collection<T> items,
final List<IColumn<T, S>> columns,
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
index a6c0298..a1ea8b9 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -49,8 +50,7 @@ import org.apache.wicket.model.ResourceModel;
*
* @param <T> anyTO
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public abstract class DisplayAttributesModalPage<T extends AnyTO> extends AbstractModalPanel {
+public abstract class DisplayAttributesModalPage<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = -4274117450918385110L;
@@ -105,8 +105,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
}
};
- final Form form = new Form(FORM);
- form.setModel(new CompoundPropertyModel(this));
+ final Form<DisplayAttributesModalPage<T>> form = new Form<>(FORM);
+ form.setModel(new CompoundPropertyModel<>(this));
selectedDetails = prefMan.getList(getRequest(), getPrefDetailView());
@@ -114,7 +114,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
selectedDerSchemas = prefMan.getList(getRequest(), getPrefDerivedAttributeView());
- final CheckGroup dgroup = new CheckGroup("dCheckGroup", new PropertyModel(this, "selectedDetails"));
+ final CheckGroup<String> dgroup
+ = new CheckGroup<>("dCheckGroup", new PropertyModel<List<String>>(this, "selectedDetails"));
form.add(dgroup);
final ListView<String> details = new ListView<String>("details", fnames) {
@@ -123,7 +124,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("dcheck", item.getModel()));
+ item.add(new Check<>("dcheck", item.getModel()));
item.add(new Label("dname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -138,7 +139,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
final Fragment fragment = new Fragment("plainSchemas", "sfragment", form);
form.add(fragment);
- final CheckGroup sgroup = new CheckGroup("psCheckGroup", new PropertyModel(this, "selectedPlainSchemas"));
+ final CheckGroup<String> sgroup
+ = new CheckGroup<>("psCheckGroup", new PropertyModel<List<String>>(this, "selectedPlainSchemas"));
fragment.add(sgroup);
final ListView<String> schemas = new ListView<String>("plainSchemas", names) {
@@ -147,7 +149,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("scheck", item.getModel()));
+ item.add(new Check<>("scheck", item.getModel()));
item.add(new Label("sname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -163,7 +165,8 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
final Fragment fragment = new Fragment("dschemas", "dsfragment", form);
form.add(fragment);
- final CheckGroup dsgroup = new CheckGroup("dsCheckGroup", new PropertyModel(this, "selectedDerSchemas"));
+ final CheckGroup<String> dsgroup
+ = new CheckGroup<>("dsCheckGroup", new PropertyModel<List<String>>(this, "selectedDerSchemas"));
fragment.add(dsgroup);
final ListView<String> derSchemas = new ListView<String>("derSchemas", dsnames) {
@@ -172,7 +175,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
@Override
protected void populateItem(final ListItem<String> item) {
- item.add(new Check("dscheck", item.getModel()));
+ item.add(new Check<>("dscheck", item.getModel()));
item.add(new Label("dsname", new ResourceModel(item.getModelObject(), item.getModelObject())));
}
};
@@ -237,6 +240,6 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra
public abstract String getPrefDerivedAttributeView();
- public abstract Class getTOClass();
+ public abstract Class<? extends AnyTO> getTOClass();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
index 09dbb06..6167c99 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/GroupDisplayAttributesModalPage.java
@@ -18,24 +18,27 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.GroupTO;
import org.apache.wicket.PageReference;
/**
* Modal window with Display group attributes form.
+ *
+ * @param <T>
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class GroupDisplayAttributesModalPage extends DisplayAttributesModalPage {
+public class GroupDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
public static final String[] GROUP_DEFAULT_SELECTION = { "key", "name" };
public GroupDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames) {
@@ -58,7 +61,7 @@ public class GroupDisplayAttributesModalPage extends DisplayAttributesModalPage
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return GroupTO.class;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index 19c3e0a..25a2064 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -73,7 +73,6 @@ public class Realms extends BasePage {
public void onClose(final AjaxRequestTarget target) {
target.add(realmSidebarPanel.reloadRealmTree());
target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
-
modal.show(false);
}
});
@@ -148,12 +147,13 @@ public class Realms extends BasePage {
realmRestClient.delete(realmTO.getFullPath());
target.add(realmSidebarPanel.reloadRealmTree());
target.add(updateRealmContent(realmSidebarPanel.getCurrentRealm()));
- info(getString(Constants.OPERATION_SUCCEEDED));
+ getSession().info(getString(Constants.OPERATION_SUCCEEDED));
} catch (Exception e) {
LOG.error("While deleting realm", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
+ // Excape line breaks
+ getSession().error(getString(Constants.ERROR) + ": " + e.getMessage().replace("\n", " "));
}
- BasePage.class.cast(getPage()).getNotificationPanel().refresh(target);
+ getNotificationPanel().refresh(target);
}
});
return content;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
index bd90381..9507941 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java
@@ -64,7 +64,7 @@ import org.apache.wicket.request.resource.ContextRelativeResource;
*
* @param <T> anyTO
*/
-public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel {
+public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 2646115294319713723L;
@@ -157,87 +157,87 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel
final ListView<PropagationStatus> propRes = new ListView<PropagationStatus>("resources",
propagations) {
- private static final long serialVersionUID = -1020475259727720708L;
+ private static final long serialVersionUID = -1020475259727720708L;
+
+ @Override
+ protected void populateItem(final ListItem<PropagationStatus> item) {
+ final PropagationStatus propTO = (PropagationStatus) item.getDefaultModelObject();
+
+ final ListView<String> attributes = getConnObjectView(propTO);
+
+ final Fragment attrhead;
+ if (attributes.getModelObject() == null || attributes.getModelObject().isEmpty()) {
+ attrhead = new Fragment("attrhead", "emptyAttrHeadFrag", this);
+ } else {
+ attrhead = new Fragment("attrhead", "attrHeadFrag", this);
+ }
+
+ item.add(attrhead);
+ item.add(attributes);
+
+ attrhead.add(new Label("resource", propTO.getResource()));
+
+ attrhead.add(new Label("propagation", propTO.getStatus() == null
+ ? "UNDEFINED" : propTO.getStatus().toString()));
+
+ final Image image;
+ final String alt, title;
+
+ final BaseModal<T> failureWindow = new BaseModal<>("failureWindow");
+
+ final AjaxLink<?> failureWindowLink = new AjaxLink<Void>("showFailureWindow") {
+
+ private static final long serialVersionUID = -7978723352517770644L;
@Override
- protected void populateItem(final ListItem<PropagationStatus> item) {
- final PropagationStatus propTO = (PropagationStatus) item.getDefaultModelObject();
-
- final ListView<String> attributes = getConnObjectView(propTO);
-
- final Fragment attrhead;
- if (attributes.getModelObject() == null || attributes.getModelObject().isEmpty()) {
- attrhead = new Fragment("attrhead", "emptyAttrHeadFrag", this);
- } else {
- attrhead = new Fragment("attrhead", "attrHeadFrag", this);
- }
-
- item.add(attrhead);
- item.add(attributes);
-
- attrhead.add(new Label("resource", propTO.getResource()));
-
- attrhead.add(new Label("propagation", propTO.getStatus() == null
- ? "UNDEFINED" : propTO.getStatus().toString()));
-
- final Image image;
- final String alt, title;
-
- final BaseModal<?> failureWindow = new BaseModal<>("failureWindow");
-
- final AjaxLink<?> failureWindowLink = new AjaxLink<Void>("showFailureWindow") {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- failureWindow.show(target);
- }
- };
-
- switch (propTO.getStatus()) {
-
- case SUCCESS:
- case CREATED:
- image = new Image("icon",
- new ContextRelativeResource(IMG_PREFIX + Status.ACTIVE.toString()
- + Constants.PNG_EXT));
- alt = "success icon";
- title = "success";
- failureWindow.setVisible(false);
- failureWindowLink.setEnabled(false);
- break;
-
- default:
- image = new Image("icon",
- new ContextRelativeResource(IMG_PREFIX + Status.SUSPENDED.toString()
- + Constants.PNG_EXT));
- alt = "failure icon";
- title = "failure";
- }
-
- image.add(new Behavior() {
-
- private static final long serialVersionUID = 1469628524240283489L;
-
- @Override
- public void onComponentTag(final Component component, final ComponentTag tag) {
- tag.put("alt", alt);
- tag.put("title", title);
- }
- });
- final FailureMessageModal executionFailureMessagePage;
- if (propTO.getFailureReason() == null) {
- executionFailureMessagePage = new FailureMessageModal(
- modal, pageRef, StringUtils.EMPTY);
- } else {
- executionFailureMessagePage = new FailureMessageModal(
- modal, pageRef, propTO.getFailureReason());
- }
-
- failureWindow.setContent(executionFailureMessagePage);
+ public void onClick(final AjaxRequestTarget target) {
+ failureWindow.show(target);
}
};
+
+ switch (propTO.getStatus()) {
+
+ case SUCCESS:
+ case CREATED:
+ image = new Image("icon",
+ new ContextRelativeResource(IMG_PREFIX + Status.ACTIVE.toString()
+ + Constants.PNG_EXT));
+ alt = "success icon";
+ title = "success";
+ failureWindow.setVisible(false);
+ failureWindowLink.setEnabled(false);
+ break;
+
+ default:
+ image = new Image("icon",
+ new ContextRelativeResource(IMG_PREFIX + Status.SUSPENDED.toString()
+ + Constants.PNG_EXT));
+ alt = "failure icon";
+ title = "failure";
+ }
+
+ image.add(new Behavior() {
+
+ private static final long serialVersionUID = 1469628524240283489L;
+
+ @Override
+ public void onComponentTag(final Component component, final ComponentTag tag) {
+ tag.put("alt", alt);
+ tag.put("title", title);
+ }
+ });
+ final FailureMessageModal<T> executionFailureMessagePage;
+ if (propTO.getFailureReason() == null) {
+ executionFailureMessagePage = new FailureMessageModal<>(
+ modal, pageRef, StringUtils.EMPTY);
+ } else {
+ executionFailureMessagePage = new FailureMessageModal<>(
+ modal, pageRef, propTO.getFailureReason());
+ }
+
+ failureWindow.setContent(executionFailureMessagePage);
+ }
+ };
fragment.add(propRes);
}
@@ -343,14 +343,12 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel
if (attr == null || attr.getValues() == null || attr.getValues().isEmpty()) {
value = "";
+ } else if (ConnIdSpecialAttributeName.PASSWORD.equals(attrName)) {
+ value = "********";
} else {
- if (ConnIdSpecialAttributeName.PASSWORD.equals(attrName)) {
- value = "********";
- } else {
- value = attr.getValues().size() > 1
- ? attr.getValues().toString()
- : attr.getValues().get(0);
- }
+ value = attr.getValues().size() > 1
+ ? attr.getValues().toString()
+ : attr.getValues().get(0);
}
Component label = new Label("value", value.length() > 50 ? value.substring(0, 50) + "..." : value).
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
index 7910c9a..8f7e7f1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Roles.java
@@ -18,20 +18,12 @@
*/
package org.apache.syncope.client.console.pages;
-import static org.apache.wicket.Component.ENABLE;
-
import org.apache.syncope.client.console.panels.RoleSearchResultPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.client.console.wizards.role.RoleHandler;
import org.apache.syncope.client.console.wizards.role.RoleWizardBuilder;
import org.apache.syncope.common.lib.to.RoleTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
@@ -54,21 +46,8 @@ public class Roles extends BasePage {
private static final long serialVersionUID = -5960765294082359003L;
- }.addNewItemPanelBuilder(new RoleWizardBuilder(BaseModal.CONTENT_ID, new RoleTO(), getPageReference()), false).
- build("roles");
-
- final AjaxLink<RoleTO> createLink = new AjaxLink<RoleTO>("add") {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- send(roleSearchResultPanel, Broadcast.EXACT, new AjaxWizard.NewItemActionEvent<RoleTO>(null, target));
- }
- };
-
- content.add(createLink);
- MetaDataRoleAuthorizationStrategy.authorize(createLink, ENABLE, StandardEntitlement.ROLE_CREATE);
+ }.addNewItemPanelBuilder(new RoleWizardBuilder(BaseModal.CONTENT_ID, new RoleTO(), getPageReference()), true)
+ .build("roles");
content.add(roleSearchResultPanel);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
index 6b0df50..83686bc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/SecurityQuestions.java
@@ -18,21 +18,13 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.panels.SecurityQuestionModalPanel;
import org.apache.syncope.client.console.panels.SecurityQuestionsPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.SecurityQuestionTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
public class SecurityQuestions extends BasePage {
@@ -55,30 +47,7 @@ public class SecurityQuestions extends BasePage {
addWindowWindowClosedCallback(securityQuestionModal);
add(securityQuestionModal);
- final AjaxLink<Void> createLink = new IndicatingAjaxLink<Void>("createSecurityQuestion") {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- securityQuestionModal.header(new ResourceModel("createSecurityQuestion"));
- securityQuestionModal.setFormModel(new SecurityQuestionTO());
- securityQuestionModal.size(Modal.Size.Large);
- target.add(securityQuestionModal.setContent(
- new SecurityQuestionModalPanel(securityQuestionModal, getPageReference(), true)));
- securityQuestionModal.addSumbitButton();
- securityQuestionModal.show(true);
- }
- };
- content.add(createLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.SECURITY_QUESTION_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createLink, ENABLE, StandardEntitlement.SECURITY_QUESTION_CREATE);
- }
-
- securityQuestionsPanel = new SecurityQuestionsPanel(
- "securityQuestionPanel", getPageReference(), securityQuestionModal);
+ securityQuestionsPanel = new SecurityQuestionsPanel("securityQuestionPanel", getPageReference());
securityQuestionsPanel.setOutputMarkupId(true);
content.add(securityQuestionsPanel);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
index d59088a..5718dab 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModal.java
@@ -64,7 +64,7 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.StringResourceModel;
-public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
+public class StatusModal<T extends Serializable> extends AbstractStatusModalPage<T> {
private static final long serialVersionUID = -9148734710505211261L;
@@ -103,15 +103,15 @@ public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
private final List<IColumn<StatusBean, String>> columns;
public StatusModal(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
- final AnyTO attributableTO) {
+ final AnyTO anyTO) {
- this(modal, pageRef, attributableTO, false);
+ this(modal, pageRef, anyTO, false);
}
public StatusModal(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final AnyTO anyTO,
final boolean statusOnly) {
@@ -547,8 +547,8 @@ public class StatusModal<T extends AnyTO> extends AbstractStatusModalPage {
final ResourceAssociationAction type,
final Collection<StatusBean> selection) {
- final IndicatingAjaxButton goon =
- new IndicatingAjaxButton("continue", new ResourceModel("continue", "Continue")) {
+ final IndicatingAjaxButton goon
+ = new IndicatingAjaxButton("continue", new ResourceModel("continue", "Continue")) {
private static final long serialVersionUID = -2341391430136818027L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
index f1d2bbb..4869a98 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java
@@ -18,39 +18,24 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
import java.util.ArrayList;
import java.util.List;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.panels.AnyTypeClassModalPanel;
import org.apache.syncope.client.console.panels.AnyTypeClassesPanel;
-import org.apache.syncope.client.console.panels.AnyTypeModalPanel;
import org.apache.syncope.client.console.panels.AnyTypePanel;
-import org.apache.syncope.client.console.panels.ModalPanel;
-import org.apache.syncope.client.console.panels.RelationshipTypeModalPanel;
import org.apache.syncope.client.console.panels.RelationshipTypePanel;
import org.apache.syncope.client.console.panels.SchemasPanel;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.AbstractSchemaTO;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.syncope.client.console.panels.SchemaModalPanel;
import org.apache.syncope.common.lib.to.AnyTypeClassTO;
-import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.lib.to.PlainSchemaTO;
-import org.apache.syncope.common.lib.to.RelationshipTypeTO;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
public class Types extends BasePage {
@@ -61,10 +46,6 @@ public class Types extends BasePage {
private final BaseModal<AnyTypeClassTO> anyTypeClassModal;
- private final BaseModal<AnyTypeTO> anyTypeModal;
-
- private final BaseModal<RelationshipTypeTO> relationshipTypeModal;
-
private final AjaxBootstrapTabbedPanel<ITab> tabbedPanel;
private enum Type {
@@ -72,6 +53,7 @@ public class Types extends BasePage {
ANYTYPECLASS,
ANYTYPE,
RELATIONSHIPTYPE;
+
}
public Types(final PageParameters parameters) {
@@ -79,8 +61,6 @@ public class Types extends BasePage {
this.schemaModal = new BaseModal<>("schemaModal");
this.anyTypeClassModal = new BaseModal<>("anyTypeClassModal");
- this.anyTypeModal = new BaseModal<>("anyTypeModal");
- this.relationshipTypeModal = new BaseModal<>("relationshipTypeModal");
final WebMarkupContainer content = new WebMarkupContainer("content");
content.add(new Label("header", "Types"));
@@ -88,50 +68,11 @@ public class Types extends BasePage {
tabbedPanel = new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList());
content.add(tabbedPanel);
- final AjaxLink<Void> createSchemaLink =
- buildCreateLink("createSchema", schemaModal, Type.SCHEMA);
- content.add(createSchemaLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.SCHEMA_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(createSchemaLink, ENABLE, StandardEntitlement.SCHEMA_CREATE);
- }
-
- final AjaxLink<Void> createAnyTypeClassLink =
- buildCreateLink("createAnyTypeClass", anyTypeClassModal, Type.ANYTYPECLASS);
- content.add(createAnyTypeClassLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.ANYTYPECLASS_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createAnyTypeClassLink, ENABLE, StandardEntitlement.ANYTYPECLASS_CREATE);
- }
-
- final AjaxLink<Void> createAnyTypeLink =
- buildCreateLink("createAnyType", anyTypeModal, Type.ANYTYPE);
- content.add(createAnyTypeLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.ANYTYPE_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createAnyTypeLink, ENABLE, StandardEntitlement.ANYTYPE_CREATE);
- }
-
- final AjaxLink<Void> createRelationshipTypeLink =
- buildCreateLink("createRelationshipType", relationshipTypeModal, Type.RELATIONSHIPTYPE);
- content.add(createRelationshipTypeLink);
-
- if (SyncopeConsoleSession.get().owns(StandardEntitlement.RELATIONSHIPTYPE_CREATE)) {
- MetaDataRoleAuthorizationStrategy.authorize(
- createRelationshipTypeLink, ENABLE, StandardEntitlement.RELATIONSHIPTYPE_CREATE);
- }
-
add(content);
addWindowWindowClosedCallback(schemaModal);
addWindowWindowClosedCallback(anyTypeClassModal);
- addWindowWindowClosedCallback(anyTypeModal);
- addWindowWindowClosedCallback(relationshipTypeModal);
add(schemaModal);
add(anyTypeClassModal);
- add(anyTypeModal);
- add(relationshipTypeModal);
}
private List<ITab> buildTabList() {
@@ -144,7 +85,7 @@ public class Types extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new RelationshipTypePanel(panelId, getPageReference(), relationshipTypeModal);
+ return new RelationshipTypePanel(panelId, getPageReference());
}
});
@@ -154,7 +95,7 @@ public class Types extends BasePage {
@Override
public Panel getPanel(final String panelId) {
- return new AnyTypePanel(panelId, getPageReference(), anyTypeModal);
+ return new AnyTypePanel(panelId, getPageReference());
}
});
@@ -181,50 +122,6 @@ public class Types extends BasePage {
return tabs;
}
- private AjaxLink<Void> buildCreateLink(final String label, final BaseModal<?> modal, final Type type) {
-
- final AjaxLink<Void> createLink = new IndicatingAjaxLink<Void>(label) {
-
- private static final long serialVersionUID = -7978723352517770644L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- modal.header(new ResourceModel(label));
- target.add(modal.setContent(buildModalPanel(type)));
- modal.addSumbitButton();
- modal.show(true);
- }
- };
-
- return createLink;
- }
-
- private ModalPanel buildModalPanel(final Type type) {
- final ModalPanel panel;
- switch (type) {
- case ANYTYPECLASS:
- anyTypeClassModal.setFormModel(new AnyTypeClassTO());
- anyTypeClassModal.size(Modal.Size.Large);
- panel = new AnyTypeClassModalPanel(anyTypeClassModal, getPageReference(), true);
- break;
- case ANYTYPE:
- anyTypeModal.setFormModel(new AnyTypeTO());
- anyTypeModal.size(Modal.Size.Large);
- panel = new AnyTypeModalPanel(anyTypeModal, getPageReference(), true);
- break;
- case RELATIONSHIPTYPE:
- relationshipTypeModal.setFormModel(new RelationshipTypeTO());
- relationshipTypeModal.size(Modal.Size.Medium);
- panel = new RelationshipTypeModalPanel(relationshipTypeModal, getPageReference(), true);
- break;
- case SCHEMA:
- default:
- schemaModal.setFormModel(new PlainSchemaTO());
- panel = new SchemaModalPanel(schemaModal, getPageReference(), true);
- }
- return panel;
- }
-
private void addWindowWindowClosedCallback(final BaseModal<?> modal) {
modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
index 0529f9f..307e61c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/UserDisplayAttributesModalPage.java
@@ -18,24 +18,27 @@
*/
package org.apache.syncope.client.console.pages;
+import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.common.lib.to.AnyTO;
import org.apache.syncope.common.lib.to.UserTO;
import org.apache.wicket.PageReference;
/**
* Modal window with Display user attributes form.
+ *
+ * @param <T>
*/
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class UserDisplayAttributesModalPage extends DisplayAttributesModalPage {
+public class UserDisplayAttributesModalPage<T extends Serializable> extends DisplayAttributesModalPage<T> {
private static final long serialVersionUID = 5194630813773543054L;
public static final String[] USER_DEFAULT_SELECTION = { "key", "username", "status" };
public UserDisplayAttributesModalPage(
- final BaseModal<?> modal,
+ final BaseModal<T> modal,
final PageReference pageRef,
final List<String> schemaNames,
final List<String> dSchemaNames) {
@@ -58,7 +61,7 @@ public class UserDisplayAttributesModalPage extends DisplayAttributesModalPage {
}
@Override
- public Class getTOClass() {
+ public Class<? extends AnyTO> getTOClass() {
return UserTO.class;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
index 3811873..dae4216 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java
@@ -18,8 +18,11 @@
*/
package org.apache.syncope.client.console.panels;
+import java.io.Serializable;
import org.apache.syncope.client.console.wicket.markup.head.MetaHeaderItem;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.head.HeaderItem;
@@ -30,13 +33,13 @@ import org.apache.wicket.markup.html.panel.Panel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class AbstractModalPanel extends Panel implements ModalPanel {
+public class AbstractModalPanel<T extends Serializable> extends Panel implements ModalPanel<T> {
private static final long serialVersionUID = 8611724965544132636L;
protected static final Logger LOG = LoggerFactory.getLogger(AbstractModalPanel.class);
- protected final BaseModal<?> modal;
+ protected final BaseModal<T> modal;
protected static final String CANCEL = "cancel";
@@ -50,13 +53,23 @@ public class AbstractModalPanel extends Panel implements ModalPanel {
protected final HeaderItem meta = new MetaHeaderItem("X-UA-Compatible", "IE=edge");
- public AbstractModalPanel(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractModalPanel(final BaseModal<T> modal, final PageReference pageRef) {
super(BaseModal.getContentId());
this.pageRef = pageRef;
this.modal = modal;
}
@Override
+ public final MarkupContainer add(final Component... childs) {
+ return super.add(childs);
+ }
+
+ @Override
+ public final MarkupContainer addOrReplace(final Component... childs) {
+ return super.addOrReplace(childs);
+ }
+
+ @Override
public void renderHead(final IHeaderResponse response) {
super.renderHead(response);
response.render(new PriorityHeaderItem(meta));
@@ -75,4 +88,9 @@ public class AbstractModalPanel extends Panel implements ModalPanel {
public void onError(final AjaxRequestTarget target, final Form<?> form) {
modal.getNotificationPanel().refresh(target);
}
+
+ @Override
+ public T getItem() {
+ return modal.getFormModel();
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
index 68fcc19..a4446ff 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractResourceModal.java
@@ -33,14 +33,16 @@ import org.apache.wicket.markup.html.form.Form;
/**
* Modal window with Resource form.
+ *
+ * @param <T>
*/
-public abstract class AbstractResourceModal extends AbstractModalPanel {
+public abstract class AbstractResourceModal<T extends Serializable> extends AbstractModalPanel<T> {
private static final long serialVersionUID = 1734415311027284221L;
protected final List<ITab> tabs;
- public AbstractResourceModal(final BaseModal<?> modal, final PageReference pageRef) {
+ public AbstractResourceModal(final BaseModal<T> modal, final PageReference pageRef) {
super(modal, pageRef);
this.tabs = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
index cad794e..fd9f547 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractTypesPanel.java
@@ -18,83 +18,20 @@
*/
package org.apache.syncope.client.console.panels;
-import java.util.List;
-import org.apache.syncope.client.console.PreferenceManager;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AjaxFallbackDataTable;
-import org.apache.syncope.client.console.wicket.markup.html.form.SelectChoiceRenderer;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.PropertyModel;
-public class AbstractTypesPanel<T extends AbstractBaseBean> extends Panel {
+public abstract class AbstractTypesPanel<T extends AbstractBaseBean, DP extends SearchableDataProvider<T>>
+ extends AbstractSearchResultPanel<T, T, DP, BaseRestClient> {
private static final long serialVersionUID = 7890071604330629259L;
- protected final PreferenceManager prefMan = new PreferenceManager();
-
- protected final PageReference pageRef;
-
- protected int pageRows;
-
- public AbstractTypesPanel(final String id, final PageReference pageRef) {
- super(id);
- this.pageRef = pageRef;
- }
-
- protected void buildDataTable(final WebMarkupContainer container, final List<IColumn<T, String>> tableCols,
- final SortableDataProvider<T, String> provider, final String paginatorKey) {
-
- final WebMarkupContainer tableContainer = new WebMarkupContainer("tableContainer");
-
- tableContainer.setOutputMarkupId(true);
- container.add(tableContainer);
-
- final AjaxFallbackDataTable<T, String> table =
- new AjaxFallbackDataTable<>("datatable",
- tableCols, provider, pageRows, tableContainer);
-
- table.setOutputMarkupId(true);
- tableContainer.add(table);
- container.add(getPaginatorForm(tableContainer, table, "paginator", this, paginatorKey));
- }
-
- protected Form<Void> getPaginatorForm(final WebMarkupContainer webContainer,
- final AjaxFallbackDataTable<T, String> dataTable,
- final String formname, final Panel panel, final String rowsPerPagePrefName) {
-
- final Form<Void> form = new Form<>(formname);
-
- final DropDownChoice<Integer> rowChooser = new DropDownChoice<>("rowsChooser",
- new PropertyModel<Integer>(panel, "pageRows"), prefMan.getPaginatorChoices(),
- new SelectChoiceRenderer<Integer>());
-
- rowChooser.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
- private static final long serialVersionUID = -1107858522700306810L;
-
- @Override
- protected void onUpdate(final AjaxRequestTarget target) {
- prefMan.set(getRequest(), getResponse(), rowsPerPagePrefName, rowChooser.getInput());
- dataTable.setItemsPerPage(rowChooser.getModelObject());
- target.add(webContainer);
- }
- });
-
- form.add(rowChooser);
- return form;
- }
-
- protected int getPageRows() {
- return pageRows;
+ public AbstractTypesPanel(final String id, final Builder<T, T, BaseRestClient> builder) {
+ super(id, builder);
+ setFooterVisibility(true);
+ modal.addSumbitButton();
+ modal.size(Modal.Size.Large);
}
}
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
index 8c063b2..65e9ca1 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
@@ -40,7 +40,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.ResourceModel;
-public class ActionDataTablePanel<T, S> extends DataTablePanel<T, S> {
+public class ActionDataTablePanel<T extends Serializable, S> extends DataTablePanel<T, S> {
private static final long serialVersionUID = -8826989026203543957L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
index f740fc3..6a5b596 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
@@ -45,11 +45,11 @@ import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Fragment;
-public final class AjaxDataTablePanel<T, S> extends DataTablePanel<T, S> {
+public final class AjaxDataTablePanel<T extends Serializable, S> extends DataTablePanel<T, S> {
private static final long serialVersionUID = -7264400471578272966L;
- public static class Builder<T, S> implements Serializable {
+ public static class Builder<T extends Serializable, S> implements Serializable {
private static final long serialVersionUID = 8876232177473972722L;
@@ -148,7 +148,7 @@ public final class AjaxDataTablePanel<T, S> extends DataTablePanel<T, S> {
super(id);
- final BaseModal<?> bulkModalWin = new BaseModal<>("bulkModal");
+ final BaseModal<T> bulkModalWin = new BaseModal<>("bulkModal");
add(bulkModalWin);
bulkModalWin.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
index a5eae89..02063f3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java
@@ -30,7 +30,7 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
-public class AnyTypeClassModalPanel extends AbstractModalPanel {
+public class AnyTypeClassModalPanel extends AbstractModalPanel<AnyTypeClassTO> {
private static final long serialVersionUID = 1086997609984272599L;
@@ -51,8 +51,8 @@ public class AnyTypeClassModalPanel extends AbstractModalPanel {
antTypeClassForm.setModel(new CompoundPropertyModel<>(anyTypeClassTO));
antTypeClassForm.setOutputMarkupId(true);
- final AjaxTextFieldPanel key =
- new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeClassTO, "key"));
+ final AjaxTextFieldPanel key = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(
+ anyTypeClassTO, "key"));
key.addRequiredLabel();
key.setEnabled(anyTypeClassTO.getKey() == null || anyTypeClassTO.getKey().isEmpty());
antTypeClassForm.add(key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
index f5dba79..1948904 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.client.console.panels;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import java.io.Serializable;
import java.util.List;
import org.apache.syncope.client.console.SyncopeConsoleSession;
@@ -38,6 +39,7 @@ import org.apache.wicket.markup.html.form.ListChoice;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +55,6 @@ public class AnyTypeClassesPanel extends Panel {
public AnyTypeClassesPanel(final String id, final PageReference pageRef, final BaseModal<AnyTypeClassTO> modal) {
super(id);
-
this.setOutputMarkupId(true);
final WebMarkupContainer container = new WebMarkupContainer("container");
@@ -124,6 +125,20 @@ public class AnyTypeClassesPanel extends Panel {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
+ modal.header(new ResourceModel("createAnyTypeClass"));
+ modal.setFormModel(new AnyTypeClassTO());
+ modal.size(Modal.Size.Large);
+ target.add(modal.setContent(new AnyTypeClassModalPanel(modal, pageRef, true)));
+ modal.addSumbitButton();
+ modal.show(true);
+ }
+ }, ActionLink.ActionType.CREATE, StandardEntitlement.ANYTYPECLASS_CREATE).addWithRoles(
+ new ActionLink<Serializable>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
modal.header(Model.of(anyTypeClasses.getModelObject().getKey()));
modal.setFormModel(anyTypeClasses.getModelObject());
@@ -133,30 +148,32 @@ public class AnyTypeClassesPanel extends Panel {
}
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.ANYTYPECLASS_UPDATE).addWithRoles(
- new ActionLink<Serializable>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- try {
- if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
- SyncopeConsoleSession.get()
- .getService(AnyTypeClassService.class).delete(anyTypeClasses.getModelObject().getKey());
- anyTypeClasses.setModelObject(null);
- anyTypeClasses.setChoices(SyncopeConsoleSession.get().getService(AnyTypeClassService.class).
- list());
- target.add(anyTypeClasses);
- target.add(updateAnyTypeClassDetails(new AnyTypeClassTO(), true));
- info(getString(Constants.OPERATION_SUCCEEDED));
+ new ActionLink<Serializable>() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
+ try {
+ if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) {
+ SyncopeConsoleSession.get()
+ .getService(AnyTypeClassService.class).delete(anyTypeClasses.getModelObject().
+ getKey());
+ anyTypeClasses.setModelObject(null);
+ anyTypeClasses.setChoices(SyncopeConsoleSession.get().getService(
+ AnyTypeClassService.class).
+ list());
+ target.add(anyTypeClasses);
+ target.add(updateAnyTypeClassDetails(new AnyTypeClassTO(), true));
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ }
+ } catch (Exception e) {
+ LOG.error("While deleting AnyTypeClass", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ }
+ ((AbstractBasePage) getPage()).getNotificationPanel().refresh(target);
}
- } catch (Exception e) {
- LOG.error("While deleting AnyTypeClass", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- }
- ((AbstractBasePage) getPage()).getNotificationPanel().refresh(target);
- }
- }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE);
+ }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE);
container.add(actionLinks.build("editRemove"));
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
index f5d5a97..8bda922 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeDetailsPanel.java
@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel;
import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
@@ -43,32 +42,30 @@ public class AnyTypeDetailsPanel extends Panel {
private static final long serialVersionUID = 8131650329622035501L;
- private final AnyTypeTO anyTypeTO;
-
- public AnyTypeDetailsPanel(final String id, final BaseModal<AnyTypeTO> modal) {
+ public AnyTypeDetailsPanel(final String id, final AnyTypeTO anyTypeTO) {
super(id);
- this.anyTypeTO = modal.getFormModel();
-
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
add(container);
final Form<AnyTypeTO> form = new Form<>("form");
- form.setModel(new CompoundPropertyModel<>(this.anyTypeTO));
+ form.setModel(new CompoundPropertyModel<>(anyTypeTO));
container.add(form);
- final AjaxTextFieldPanel key =
- new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(this.anyTypeTO, "key"));
+ final AjaxTextFieldPanel key
+ = new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeTO, "key"));
key.addRequiredLabel();
key.setEnabled(key.getModelObject() == null || key.getModelObject().isEmpty());
form.add(key);
final AjaxDropDownChoicePanel<AnyTypeKind> kind = new AjaxDropDownChoicePanel<>(
- "kind", getString("kind"), new PropertyModel<AnyTypeKind>(this.anyTypeTO, "kind"));
+ "kind", getString("kind"), new PropertyModel<AnyTypeKind>(anyTypeTO, "kind"));
kind.setChoices(Arrays.asList(AnyTypeKind.values()));
- kind.setModelObject(AnyTypeKind.ANY_OBJECT);
kind.setOutputMarkupId(true);
+ if (anyTypeTO.getKind() == null) {
+ kind.setModelObject(AnyTypeKind.ANY_OBJECT);
+ }
kind.setEnabled(false);
form.add(kind);
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
index 76acff0..0ec02d0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeModalPanel.java
@@ -18,44 +18,24 @@
*/
package org.apache.syncope.client.console.panels;
-import org.apache.syncope.client.console.SyncopeConsoleSession;
-import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.rest.api.service.AnyTypeService;
import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.form.Form;
-public class AnyTypeModalPanel extends AbstractModalPanel {
+public class AnyTypeModalPanel extends AbstractModalPanel<AnyTypeTO> {
private static final long serialVersionUID = -4603032036433309900L;
- private final boolean createFlag;
+ protected final AnyTypeTO anyTypeTO;
- public AnyTypeModalPanel(final BaseModal<AnyTypeTO> modal, final PageReference pageRef, final boolean createFlag) {
+ public AnyTypeModalPanel(final BaseModal<AnyTypeTO> modal, final AnyTypeTO anyTypeTO, final PageReference pageRef) {
super(modal, pageRef);
-
- this.createFlag = createFlag;
- add(new AnyTypeDetailsPanel("anyTypeDetailsPanel", modal));
+ this.anyTypeTO = anyTypeTO;
+ add(new AnyTypeDetailsPanel("anyTypeDetailsPanel", this.anyTypeTO));
}
@Override
- public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- try {
- final AnyTypeTO updateAnyTypeTO = AnyTypeTO.class.cast(form.getModelObject());
-
- if (createFlag) {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).create(updateAnyTypeTO);
- } else {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).update(updateAnyTypeTO);
- }
- info(getString(Constants.OPERATION_SUCCEEDED));
- modal.close(target);
- } catch (Exception e) {
- LOG.error("While creating or updating AnyTypeTO", e);
- error(getString(Constants.ERROR) + ": " + e.getMessage());
- modal.getNotificationPanel().refresh(target);
- }
+ public AnyTypeTO getItem() {
+ return this.anyTypeTO;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/6a93860d/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
index ccdfd77..e445746 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java
@@ -18,68 +18,135 @@
*/
package org.apache.syncope.client.console.panels;
+import static org.apache.syncope.client.console.panels.AbstractModalPanel.LOG;
+import static org.apache.wicket.Component.ENABLE;
+
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.commons.SearchableDataProvider;
import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
import org.apache.syncope.client.console.pages.AbstractBasePage;
+import org.apache.syncope.client.console.panels.AnyTypePanel.AnyTypeProvider;
+import org.apache.syncope.client.console.rest.BaseRestClient;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel;
+import org.apache.syncope.client.console.wizards.AbstractModalPanelBuilder;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
+import org.apache.syncope.client.console.wizards.WizardMgtPanel;
import org.apache.syncope.common.lib.to.AnyTypeTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.syncope.common.rest.api.service.AnyTypeService;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.event.Broadcast;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
-import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
+public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO, AnyTypeProvider> {
private static final long serialVersionUID = 3905038169553185171L;
- private static final Logger LOG = LoggerFactory.getLogger(AnyTypePanel.class);
+ private final String pageID = "AnyTypes";
- private static final String PAGINATOR_ROWS_KEYS = Constants.PREF_ANYTYPE_PAGINATOR_ROWS;
+ public AnyTypePanel(final String id, final Builder<AnyTypeTO, AnyTypeTO, BaseRestClient> builder) {
+ super(id, builder);
+ }
- private final BaseModal<AnyTypeTO> modal;
+ public AnyTypePanel(final String id, final PageReference pageRef) {
+ super(id, new Builder<AnyTypeTO, AnyTypeTO, BaseRestClient>(null, pageRef) {
- public AnyTypePanel(final String id, final PageReference pageReference, final BaseModal<AnyTypeTO> modal) {
- super(id, pageReference);
+ private static final long serialVersionUID = 8769126634538601689L;
- this.pageRows = prefMan.getPaginatorRows(getRequest(), PAGINATOR_ROWS_KEYS);
- this.modal = modal;
+ @Override
+ protected WizardMgtPanel<AnyTypeTO> newInstance(final String id) {
+ return new AnyTypePanel(id, this);
+ }
+ });
- final WebMarkupContainer container = new WebMarkupContainer("container");
- container.setOutputMarkupId(true);
- add(container);
+ this.addNewItemPanelBuilder(new AbstractModalPanelBuilder<AnyTypeTO>(
+ BaseModal.CONTENT_ID, new AnyTypeTO(), pageRef) {
- buildDataTable(container,
- getColumns(container, pageReference), new AnyTypePanel.AnyTypeProvider(), PAGINATOR_ROWS_KEYS);
+ private static final long serialVersionUID = -6388405037134399367L;
+ @Override
+ public ModalPanel<AnyTypeTO> build(final int index, final boolean edit) {
+ final AnyTypeTO modelObject = newModelObject();
+ return new AnyTypeModalPanel(modal, modelObject, pageRef) {
+
+ private static final long serialVersionUID = -6227956682141146095L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ try {
+ if (getOriginalItem() == null || StringUtils.isBlank(getOriginalItem().getKey())) {
+ SyncopeConsoleSession.get().getService(AnyTypeService.class).create(modelObject);
+ } else {
+ SyncopeConsoleSession.get().getService(AnyTypeService.class).update(modelObject);
+ }
+ info(getString(Constants.OPERATION_SUCCEEDED));
+ modal.close(target);
+ } catch (Exception e) {
+ LOG.error("While creating or updating AnyTypeTO", e);
+ error(getString(Constants.ERROR) + ": " + e.getMessage());
+ modal.getNotificationPanel().refresh(target);
+ }
+ }
+ };
+ }
+
+ @Override
+ protected void onCancelInternal(final AnyTypeTO modelObject) {
+ }
+
+ @Override
+ protected void onApplyInternal(final AnyTypeTO modelObject) {
+ }
+ }, true);
+
+ initResultTable();
+ MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.ANYTYPE_CREATE);
+ }
+
+ @Override
+ protected AnyTypeProvider dataProvider() {
+ return new AnyTypeProvider(rows);
+ }
+
+ @Override
+ protected String paginatorRowsKey() {
+ return Constants.PREF_ANYTYPE_PAGINATOR_ROWS;
+ }
+
+ @Override
+ protected Collection<ActionLink.ActionType> getBulkActions() {
+ return Collections.<ActionLink.ActionType>emptyList();
+ }
+
+ @Override
+ protected String getPageId() {
+ return pageID;
}
- private <T extends AnyTypeModalPanel> List<IColumn<AnyTypeTO, String>> getColumns(
- final WebMarkupContainer webContainer, final PageReference pageReference) {
+ @Override
+ protected List<IColumn<AnyTypeTO, String>> getColumns() {
final List<IColumn<AnyTypeTO, String>> columns = new ArrayList<>();
@@ -88,9 +155,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
if (field != null && !Modifier.isStatic(field.getModifiers())) {
final String fieldName = field.getName();
if (field.getType().isArray()) {
- final IColumn<AnyTypeTO, String> column =
- new PropertyColumn<AnyTypeTO, String>(
- new ResourceModel(field.getName()), field.getName()) {
+ final IColumn<AnyTypeTO, String> column = new PropertyColumn<AnyTypeTO, String>(
+ new ResourceModel(field.getName()), field.getName()) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -108,9 +174,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
columns.add(column);
} else {
- final IColumn<AnyTypeTO, String> column =
- new PropertyColumn<AnyTypeTO, String>(
- new ResourceModel(field.getName()), field.getName(), field.getName()) {
+ final IColumn<AnyTypeTO, String> column = new PropertyColumn<AnyTypeTO, String>(
+ new ResourceModel(field.getName()), field.getName(), field.getName()) {
private static final long serialVersionUID = 3282547854226892169L;
@@ -143,9 +208,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
public void populateItem(final Item<ICellPopulator<AnyTypeTO>> item, final String componentId,
final IModel<AnyTypeTO> model) {
- final AnyTypeTO anyTypeTO = model.getObject();
-
- final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(pageReference);
+ final ActionLinksPanel.Builder<Serializable> actionLinks
+ = ActionLinksPanel.builder(page.getPageReference());
actionLinks.setDisableIndicator(true);
actionLinks.addWithRoles(new ActionLink<Serializable>() {
@@ -153,11 +217,8 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
- modal.header(Model.of(anyTypeTO.getKey()));
- modal.setFormModel(anyTypeTO);
- target.add(modal.setContent(new AnyTypeModalPanel(modal, pageReference, false)));
- modal.addSumbitButton();
- modal.show(true);
+ send(AnyTypePanel.this, Broadcast.EXACT,
+ new AjaxWizard.EditItemActionEvent<AnyTypeTO>(model.getObject(), target));
}
}, ActionLink.ActionType.EDIT, StandardEntitlement.ANYTYPE_UPDATE).addWithRoles(
new ActionLink<Serializable>() {
@@ -167,9 +228,10 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
@Override
public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
try {
- SyncopeConsoleSession.get().getService(AnyTypeService.class).delete(anyTypeTO.getKey());
+ SyncopeConsoleSession.get().
+ getService(AnyTypeService.class).delete(model.getObject().getKey());
info(getString(Constants.OPERATION_SUCCEEDED));
- target.add(webContainer);
+ target.add(container);
} catch (Exception e) {
LOG.error("While deleting AnyTypeTO", e);
error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -186,15 +248,14 @@ public class AnyTypePanel extends AbstractTypesPanel<AnyTypeTO> {
}
- private final class AnyTypeProvider extends SortableDataProvider<AnyTypeTO, String> {
+ protected final class AnyTypeProvider extends SearchableDataProvider<AnyTypeTO> {
private static final long serialVersionUID = -185944053385660794L;
private final SortableDataProviderComparator<AnyTypeTO> comparator;
- private AnyTypeProvider() {
- super();
- setSort("key", SortOrder.ASCENDING);
+ private AnyTypeProvider(final int paginatorRows) {
+ super(paginatorRows);
comparator = new SortableDataProviderComparator<>(this);
}