You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/12/16 14:38:46 UTC

[27/30] syncope git commit: [SYNCOPE-740] Release process in place, now time to check if it works

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/Configuration.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/Configuration.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/Configuration.java
deleted file mode 100644
index bb6fcdf..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/Configuration.java
+++ /dev/null
@@ -1,812 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.config.LoggerConfig;
-import org.apache.syncope.client.console.ExtensionPanel;
-import org.apache.syncope.client.console.commons.AttrLayoutType;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.HttpResourceStream;
-import org.apache.syncope.client.console.commons.PreferenceManager;
-import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
-import org.apache.syncope.client.console.init.ImplementationClassNamesLoader;
-import org.apache.syncope.client.console.panels.AbstractExtensionPanel;
-import org.apache.syncope.client.console.panels.JQueryUITabbedPanel;
-import org.apache.syncope.client.console.panels.LayoutsPanel;
-import org.apache.syncope.client.console.panels.PoliciesPanel;
-import org.apache.syncope.client.console.rest.LoggerRestClient;
-import org.apache.syncope.client.console.rest.NotificationRestClient;
-import org.apache.syncope.client.console.rest.SecurityQuestionRestClient;
-import org.apache.syncope.client.console.rest.WorkflowRestClient;
-import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.CollectionPropertyColumn;
-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.link.VeilPopupSettings;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.SyncopeConstants;
-import org.apache.syncope.common.lib.to.LoggerTO;
-import org.apache.syncope.common.lib.to.NotificationTO;
-import org.apache.syncope.common.lib.to.SecurityQuestionTO;
-import org.apache.syncope.common.lib.types.LoggerLevel;
-import org.apache.syncope.common.lib.types.PolicyType;
-import org.apache.wicket.Page;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-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.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
-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.extensions.markup.html.tabs.AbstractTab;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.PropertyListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.model.AbstractReadOnlyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
-import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.request.resource.DynamicImageResource;
-import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.springframework.util.ClassUtils;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-
-/**
- * Configurations WebPage.
- */
-public class Configuration extends BasePage {
-
-    private static final long serialVersionUID = -2838270869037702214L;
-
-    private static final int SYNCOPECONF_WIN_HEIGHT = 300;
-
-    private static final int SYNCOPECONF_WIN_WIDTH = 900;
-
-    private static final int NOTIFICATION_WIN_HEIGHT = 500;
-
-    private static final int NOTIFICATION_WIN_WIDTH = 1100;
-
-    private static final int SECURITY_QUESTION_WIN_HEIGHT = 300;
-
-    private static final int SECURITY_QUESTION_WIN_WIDTH = 900;
-
-    @SpringBean
-    private LoggerRestClient loggerRestClient;
-
-    @SpringBean
-    private NotificationRestClient notificationRestClient;
-
-    @SpringBean
-    private SecurityQuestionRestClient securityQuestionRestClient;
-
-    @SpringBean
-    private WorkflowRestClient wfRestClient;
-
-    @SpringBean
-    private PreferenceManager prefMan;
-
-    @SpringBean
-    private ImplementationClassNamesLoader implementationClassNamesLoader;
-
-    private final ModalWindow syncopeConfWin;
-
-    private final ModalWindow createNotificationWin;
-
-    private final ModalWindow editNotificationWin;
-
-    private final ModalWindow createSecurityQuestionWin;
-
-    private final ModalWindow editSecurityQuestionWin;
-
-    private WebMarkupContainer notificationContainer;
-
-    private WebMarkupContainer securityQuestionContainer;
-
-    private int notificationPaginatorRows;
-
-    public Configuration() {
-        super();
-
-        // Layouts
-        add(new LayoutsPanel("adminUserLayoutPanel", AttrLayoutType.ADMIN_USER, feedbackPanel));
-        add(new LayoutsPanel("selfUserLayoutPanel", AttrLayoutType.SELF_USER, feedbackPanel));
-        add(new LayoutsPanel("adminGroupLayoutPanel", AttrLayoutType.ADMIN_GROUP, feedbackPanel));
-        add(new LayoutsPanel("selfGroupLayoutPanel", AttrLayoutType.SELF_GROUP, feedbackPanel));
-        add(new LayoutsPanel("adminMembershipLayoutPanel", AttrLayoutType.ADMIN_MEMBERSHIP, feedbackPanel));
-        add(new LayoutsPanel("selfMembershipLayoutPanel", AttrLayoutType.SELF_MEMBERSHIP, feedbackPanel));
-
-        add(syncopeConfWin = new ModalWindow("syncopeConfWin"));
-        syncopeConfWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        syncopeConfWin.setInitialHeight(SYNCOPECONF_WIN_HEIGHT);
-        syncopeConfWin.setInitialWidth(SYNCOPECONF_WIN_WIDTH);
-        syncopeConfWin.setCookieName("syncopeconf-modal");
-        setupSyncopeConf();
-
-        add(new PoliciesPanel("passwordPoliciesPanel", getPageReference(), PolicyType.PASSWORD));
-        add(new PoliciesPanel("accountPoliciesPanel", getPageReference(), PolicyType.ACCOUNT));
-        add(new PoliciesPanel("syncPoliciesPanel", getPageReference(), PolicyType.SYNC));
-
-        add(createNotificationWin = new ModalWindow("createNotificationWin"));
-        createNotificationWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        createNotificationWin.setInitialHeight(NOTIFICATION_WIN_HEIGHT);
-        createNotificationWin.setInitialWidth(NOTIFICATION_WIN_WIDTH);
-        createNotificationWin.setCookieName("create-notification-modal");
-        add(editNotificationWin = new ModalWindow("editNotificationWin"));
-        editNotificationWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        editNotificationWin.setInitialHeight(NOTIFICATION_WIN_HEIGHT);
-        editNotificationWin.setInitialWidth(NOTIFICATION_WIN_WIDTH);
-        editNotificationWin.setCookieName("edit-notification-modal");
-        setupNotification();
-
-        add(createSecurityQuestionWin = new ModalWindow("createSecurityQuestionWin"));
-        createSecurityQuestionWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        createSecurityQuestionWin.setInitialHeight(SECURITY_QUESTION_WIN_HEIGHT);
-        createSecurityQuestionWin.setInitialWidth(SECURITY_QUESTION_WIN_WIDTH);
-        createSecurityQuestionWin.setCookieName("create-security-question-modal");
-        add(editSecurityQuestionWin = new ModalWindow("editSecurityQuestionWin"));
-        editSecurityQuestionWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
-        editSecurityQuestionWin.setInitialHeight(SECURITY_QUESTION_WIN_HEIGHT);
-        editSecurityQuestionWin.setInitialWidth(SECURITY_QUESTION_WIN_WIDTH);
-        editSecurityQuestionWin.setCookieName("edit-security-question-modal");
-        setupSecurityQuestion();
-
-        // Workflow definition stuff
-        WebMarkupContainer noActivitiEnabledForUsers = new WebMarkupContainer("noActivitiEnabledForUsers");
-        noActivitiEnabledForUsers.setOutputMarkupPlaceholderTag(true);
-        add(noActivitiEnabledForUsers);
-
-        WebMarkupContainer workflowDefContainer = new WebMarkupContainer("workflowDefContainer");
-        workflowDefContainer.setOutputMarkupPlaceholderTag(true);
-
-        if (wfRestClient.isActivitiEnabledForUsers()) {
-            noActivitiEnabledForUsers.setVisible(false);
-        } else {
-            workflowDefContainer.setVisible(false);
-        }
-
-        BookmarkablePageLink<Void> activitiModeler =
-                new BookmarkablePageLink<>("activitiModeler", ActivitiModelerPopupPage.class);
-        activitiModeler.setPopupSettings(new VeilPopupSettings().setHeight(600).setWidth(800));
-        MetaDataRoleAuthorizationStrategy.authorize(activitiModeler, ENABLE,
-                xmlRolesReader.getEntitlement("Configuration", "workflowDefRead"));
-        workflowDefContainer.add(activitiModeler);
-        // Check if Activiti Modeler directory is found
-        boolean activitiModelerEnabled = false;
-        try {
-            String activitiModelerDirectory = WebApplicationContextUtils.getWebApplicationContext(
-                    WebApplication.get().getServletContext()).getBean("activitiModelerDirectory", String.class);
-            File baseDir = new File(activitiModelerDirectory);
-            activitiModelerEnabled = baseDir.exists() && baseDir.canRead() && baseDir.isDirectory();
-        } catch (Exception e) {
-            LOG.error("Could not check for Activiti Modeler directory", e);
-        }
-        activitiModeler.setEnabled(activitiModelerEnabled);
-
-        BookmarkablePageLink<Void> xmlEditor = new BookmarkablePageLink<>("xmlEditor", XMLEditorPopupPage.class);
-        xmlEditor.setPopupSettings(new VeilPopupSettings().setHeight(480).setWidth(800));
-        MetaDataRoleAuthorizationStrategy.authorize(xmlEditor, ENABLE,
-                xmlRolesReader.getEntitlement("Configuration", "workflowDefRead"));
-        workflowDefContainer.add(xmlEditor);
-
-        Image workflowDefDiagram = new Image("workflowDefDiagram", new Model()) {
-
-            private static final long serialVersionUID = -8457850449086490660L;
-
-            @Override
-            protected IResource getImageResource() {
-                return new DynamicImageResource() {
-
-                    private static final long serialVersionUID = 923201517955737928L;
-
-                    @Override
-                    protected byte[] getImageData(final IResource.Attributes attributes) {
-                        return wfRestClient.isActivitiEnabledForUsers()
-                                ? wfRestClient.getDiagram()
-                                : new byte[0];
-                    }
-                };
-            }
-        };
-        workflowDefContainer.add(workflowDefDiagram);
-
-        MetaDataRoleAuthorizationStrategy.authorize(workflowDefContainer, ENABLE,
-                xmlRolesReader.getEntitlement("Configuration", "workflowDefRead"));
-        add(workflowDefContainer);
-
-        // Logger stuff
-        PropertyListView<LoggerTO> coreLoggerList =
-                new LoggerPropertyList(null, "corelogger", loggerRestClient.listLogs());
-        WebMarkupContainer coreLoggerContainer = new WebMarkupContainer("coreLoggerContainer");
-        coreLoggerContainer.add(coreLoggerList);
-        coreLoggerContainer.setOutputMarkupId(true);
-
-        MetaDataRoleAuthorizationStrategy.authorize(coreLoggerContainer, ENABLE, xmlRolesReader.getEntitlement(
-                "Configuration", "logList"));
-        add(coreLoggerContainer);
-
-        ConsoleLoggerController consoleLoggerController = new ConsoleLoggerController();
-        PropertyListView<LoggerTO> consoleLoggerList =
-                new LoggerPropertyList(consoleLoggerController, "consolelogger", consoleLoggerController.getLoggers());
-        WebMarkupContainer consoleLoggerContainer = new WebMarkupContainer("consoleLoggerContainer");
-        consoleLoggerContainer.add(consoleLoggerList);
-        consoleLoggerContainer.setOutputMarkupId(true);
-
-        MetaDataRoleAuthorizationStrategy.authorize(
-                consoleLoggerContainer, ENABLE, xmlRolesReader.getEntitlement("Configuration", "logList"));
-        add(consoleLoggerContainer);
-
-        // Extension panels
-        setupExtPanels();
-    }
-
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    private void setupSyncopeConf() {
-        final WebMarkupContainer parameters = new WebMarkupContainer("parameters");
-        parameters.setOutputMarkupId(true);
-        add(parameters);
-
-        setWindowClosedCallback(syncopeConfWin, parameters);
-
-        AjaxLink<Void> confLink = new IndicatingAjaxLink<Void>("confLink") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-                syncopeConfWin.setPageCreator(new ModalWindow.PageCreator() {
-
-                    private static final long serialVersionUID = -7834632442532690940L;
-
-                    @Override
-                    public Page createPage() {
-                        return new ConfModalPage(getPageReference(), editNotificationWin, parameters);
-                    }
-                });
-
-                syncopeConfWin.show(target);
-            }
-        };
-        parameters.add(confLink);
-
-        Link<Void> dbExportLink = new Link<Void>("dbExportLink") {
-
-            private static final long serialVersionUID = -4331619903296515985L;
-
-            @Override
-            public void onClick() {
-                try {
-                    HttpResourceStream stream = new HttpResourceStream(confRestClient.dbExport());
-
-                    ResourceStreamRequestHandler rsrh = new ResourceStreamRequestHandler(stream);
-                    rsrh.setFileName(stream.getFilename() == null ? "content.xml" : stream.getFilename());
-                    rsrh.setContentDisposition(ContentDisposition.ATTACHMENT);
-
-                    getRequestCycle().scheduleRequestHandlerAfterCurrent(rsrh);
-                } catch (Exception e) {
-                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                }
-            }
-        };
-        MetaDataRoleAuthorizationStrategy.authorize(
-                dbExportLink, ENABLE, xmlRolesReader.getEntitlement("Configuration", "export"));
-        add(dbExportLink);
-    }
-
-    private void setupNotification() {
-        notificationPaginatorRows = prefMan.getPaginatorRows(getRequest(), Constants.PREF_NOTIFICATION_PAGINATOR_ROWS);
-
-        final List<IColumn<NotificationTO, String>> notificationCols = new ArrayList<>();
-        notificationCols.add(new PropertyColumn<NotificationTO, String>(
-                new ResourceModel("key"), "key", "key"));
-        notificationCols.add(new CollectionPropertyColumn<NotificationTO>(
-                new ResourceModel("events"), "events", "events"));
-        notificationCols.add(new PropertyColumn<NotificationTO, String>(
-                new ResourceModel("subject"), "subject", "subject"));
-        notificationCols.add(new PropertyColumn<NotificationTO, String>(
-                new ResourceModel("template"), "template", "template"));
-        notificationCols.add(new PropertyColumn<NotificationTO, String>(
-                new ResourceModel("traceLevel"), "traceLevel", "traceLevel"));
-        notificationCols.add(new PropertyColumn<NotificationTO, String>(
-                new ResourceModel("active"), "active", "active"));
-
-        notificationCols.add(new AbstractColumn<NotificationTO, String>(new ResourceModel("actions", "")) {
-
-            private static final long serialVersionUID = 2054811145491901166L;
-
-            @Override
-            public String getCssClass() {
-                return "action";
-            }
-
-            @Override
-            public void populateItem(final Item<ICellPopulator<NotificationTO>> cellItem, final String componentId,
-                    final IModel<NotificationTO> model) {
-
-                final NotificationTO notificationTO = model.getObject();
-
-                final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, getPageReference());
-
-                panel.add(new ActionLink() {
-
-                    private static final long serialVersionUID = -3722207913631435501L;
-
-                    @Override
-                    public void onClick(final AjaxRequestTarget target) {
-                        editNotificationWin.setPageCreator(new ModalWindow.PageCreator() {
-
-                            private static final long serialVersionUID = -7834632442532690940L;
-
-                            @Override
-                            public Page createPage() {
-                                return new NotificationModalPage(Configuration.this.getPageReference(),
-                                        editNotificationWin, notificationTO, false);
-                            }
-                        });
-
-                        editNotificationWin.show(target);
-                    }
-                }, ActionLink.ActionType.EDIT, "Notification");
-
-                panel.add(new ActionLink() {
-
-                    private static final long serialVersionUID = -3722207913631435501L;
-
-                    @Override
-                    public void onClick(final AjaxRequestTarget target) {
-                        try {
-                            notificationRestClient.delete(notificationTO.getKey());
-                        } catch (SyncopeClientException e) {
-                            LOG.error("While deleting a notification", e);
-                            error(e.getMessage());
-                            return;
-                        }
-
-                        info(getString(Constants.OPERATION_SUCCEEDED));
-                        feedbackPanel.refresh(target);
-                        target.add(notificationContainer);
-                    }
-                }, ActionLink.ActionType.DELETE, "Notification");
-
-                cellItem.add(panel);
-            }
-        });
-
-        final AjaxFallbackDefaultDataTable<NotificationTO, String> notificationTable =
-                new AjaxFallbackDefaultDataTable<>(
-                        "notificationTable", notificationCols, new NotificationProvider(), notificationPaginatorRows);
-
-        notificationContainer = new WebMarkupContainer("notificationContainer");
-        notificationContainer.add(notificationTable);
-        notificationContainer.setOutputMarkupId(true);
-
-        add(notificationContainer);
-
-        setWindowClosedCallback(createNotificationWin, notificationContainer);
-        setWindowClosedCallback(editNotificationWin, notificationContainer);
-
-        AjaxLink<Void> createNotificationLink = new AjaxLink<Void>("createNotificationLink") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-                createNotificationWin.setPageCreator(new ModalWindow.PageCreator() {
-
-                    private static final long serialVersionUID = -7834632442532690940L;
-
-                    @Override
-                    public Page createPage() {
-                        return new NotificationModalPage(Configuration.this.getPageReference(), createNotificationWin,
-                                new NotificationTO(), true);
-                    }
-                });
-
-                createNotificationWin.show(target);
-            }
-        };
-
-        MetaDataRoleAuthorizationStrategy.authorize(createNotificationLink, ENABLE, xmlRolesReader.getEntitlement(
-                "Notification", "create"));
-        add(createNotificationLink);
-
-        @SuppressWarnings("rawtypes")
-        Form notificationPaginatorForm = new Form("notificationPaginatorForm");
-
-        @SuppressWarnings({ "unchecked", "rawtypes" })
-        final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser", new PropertyModel(this,
-                "notificationPaginatorRows"), prefMan.getPaginatorChoices());
-
-        rowsChooser.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                prefMan.set(getRequest(), getResponse(), Constants.PREF_NOTIFICATION_PAGINATOR_ROWS, String.valueOf(
-                        notificationPaginatorRows));
-                notificationTable.setItemsPerPage(notificationPaginatorRows);
-
-                target.add(notificationContainer);
-            }
-        });
-
-        notificationPaginatorForm.add(rowsChooser);
-        add(notificationPaginatorForm);
-    }
-
-    private void setupSecurityQuestion() {
-        final List<IColumn<SecurityQuestionTO, String>> securityQuestionCols = new ArrayList<>();
-        securityQuestionCols.add(new PropertyColumn<SecurityQuestionTO, String>(
-                new ResourceModel("key"), "key", "key"));
-        securityQuestionCols.add(new PropertyColumn<SecurityQuestionTO, String>(
-                new ResourceModel("content"), "content", "content"));
-
-        securityQuestionCols.add(new AbstractColumn<SecurityQuestionTO, String>(new ResourceModel("actions", "")) {
-
-            private static final long serialVersionUID = 2054811145491901166L;
-
-            @Override
-            public String getCssClass() {
-                return "action";
-            }
-
-            @Override
-            public void populateItem(final Item<ICellPopulator<SecurityQuestionTO>> cellItem, final String componentId,
-                    final IModel<SecurityQuestionTO> model) {
-
-                final SecurityQuestionTO securityQuestionTO = model.getObject();
-
-                final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, getPageReference());
-
-                panel.add(new ActionLink() {
-
-                    private static final long serialVersionUID = -3722207913631435501L;
-
-                    @Override
-                    public void onClick(final AjaxRequestTarget target) {
-                        editSecurityQuestionWin.setPageCreator(new ModalWindow.PageCreator() {
-
-                            private static final long serialVersionUID = -7834632442532690940L;
-
-                            @Override
-                            public Page createPage() {
-                                return new SecurityQuestionModalPage(Configuration.this.getPageReference(),
-                                        editSecurityQuestionWin, securityQuestionTO, false);
-                            }
-                        });
-
-                        editSecurityQuestionWin.show(target);
-                    }
-                }, ActionLink.ActionType.EDIT, "SecurityQuestion");
-
-                panel.add(new ActionLink() {
-
-                    private static final long serialVersionUID = -3722207913631435501L;
-
-                    @Override
-                    public void onClick(final AjaxRequestTarget target) {
-                        try {
-                            securityQuestionRestClient.delete(securityQuestionTO.getKey());
-                        } catch (SyncopeClientException e) {
-                            LOG.error("While deleting a security question", e);
-                            error(e.getMessage());
-                            return;
-                        }
-
-                        info(getString(Constants.OPERATION_SUCCEEDED));
-                        feedbackPanel.refresh(target);
-                        target.add(securityQuestionContainer);
-                    }
-                }, ActionLink.ActionType.DELETE, "SecurityQuestion");
-
-                cellItem.add(panel);
-            }
-        });
-
-        final AjaxFallbackDefaultDataTable<SecurityQuestionTO, String> securityQuestionTable =
-                new AjaxFallbackDefaultDataTable<>("securityQuestionTable",
-                        securityQuestionCols, new SecurityQuestionProvider(), 50);
-
-        securityQuestionContainer = new WebMarkupContainer("securityQuestionContainer");
-        securityQuestionContainer.add(securityQuestionTable);
-        securityQuestionContainer.setOutputMarkupId(true);
-
-        add(securityQuestionContainer);
-
-        setWindowClosedCallback(createSecurityQuestionWin, securityQuestionContainer);
-        setWindowClosedCallback(editSecurityQuestionWin, securityQuestionContainer);
-
-        AjaxLink<Void> createSecurityQuestionLink = new AjaxLink<Void>("createSecurityQuestionLink") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-
-                createSecurityQuestionWin.setPageCreator(new ModalWindow.PageCreator() {
-
-                    private static final long serialVersionUID = -7834632442532690940L;
-
-                    @Override
-                    public Page createPage() {
-                        return new SecurityQuestionModalPage(Configuration.this.getPageReference(),
-                                createSecurityQuestionWin, new SecurityQuestionTO(), true);
-                    }
-                });
-
-                createSecurityQuestionWin.show(target);
-            }
-        };
-
-        MetaDataRoleAuthorizationStrategy.authorize(
-                createSecurityQuestionLink, ENABLE, xmlRolesReader.getEntitlement("SecurityQuestion", "create"));
-        add(createSecurityQuestionLink);
-    }
-
-    private void setupExtPanels() {
-        List<AbstractTab> tabs = new ArrayList<>();
-        int index = 0;
-        for (final Class<? extends AbstractExtensionPanel> clazz
-                : implementationClassNamesLoader.getExtPanelClasses()) {
-
-            String title = clazz.getAnnotation(ExtensionPanel.class) == null
-                    ? "Extension " + index
-                    : clazz.getAnnotation(ExtensionPanel.class).value();
-            tabs.add(new AbstractTab(new Model<>(title)) {
-
-                private static final long serialVersionUID = -5861786415855103549L;
-
-                @Override
-                public WebMarkupContainer getPanel(final String panelId) {
-                    Panel panel;
-
-                    try {
-                        panel = ClassUtils.getConstructorIfAvailable(clazz, String.class, PageReference.class).
-                                newInstance(panelId, Configuration.this.getPageReference());
-                    } catch (Exception e) {
-                        panel = new Panel(panelId) {
-
-                            private static final long serialVersionUID = 5538299138211283825L;
-
-                        };
-
-                        LOG.error("Could not instantiate {}", clazz.getName(), e);
-                    }
-
-                    return panel;
-                }
-            });
-
-            index++;
-        }
-
-        JQueryUITabbedPanel<AbstractTab> extPanels = new JQueryUITabbedPanel<>("extPanels", tabs);
-        extPanels.setVisible(!tabs.isEmpty());
-        add(extPanels);
-    }
-
-    private class NotificationProvider extends SortableDataProvider<NotificationTO, String> {
-
-        private static final long serialVersionUID = -276043813563988590L;
-
-        private final SortableDataProviderComparator<NotificationTO> comparator;
-
-        public NotificationProvider() {
-            //Default sorting
-            setSort("key", SortOrder.ASCENDING);
-            comparator = new SortableDataProviderComparator<>(this);
-        }
-
-        @Override
-        public Iterator<NotificationTO> iterator(final long first, final long count) {
-            List<NotificationTO> list = notificationRestClient.getAllNotifications();
-
-            Collections.sort(list, comparator);
-
-            return list.subList((int) first, (int) first + (int) count).iterator();
-        }
-
-        @Override
-        public long size() {
-            return notificationRestClient.getAllNotifications().size();
-        }
-
-        @Override
-        public IModel<NotificationTO> model(final NotificationTO notification) {
-            return new AbstractReadOnlyModel<NotificationTO>() {
-
-                private static final long serialVersionUID = 774694801558497248L;
-
-                @Override
-                public NotificationTO getObject() {
-                    return notification;
-                }
-            };
-        }
-    }
-
-    private class SecurityQuestionProvider extends SortableDataProvider<SecurityQuestionTO, String> {
-
-        private static final long serialVersionUID = -1458398823626281188L;
-
-        private final SortableDataProviderComparator<SecurityQuestionTO> comparator;
-
-        public SecurityQuestionProvider() {
-            //Default sorting
-            setSort("key", SortOrder.ASCENDING);
-            comparator = new SortableDataProviderComparator<>(this);
-        }
-
-        @Override
-        public Iterator<SecurityQuestionTO> iterator(final long first, final long count) {
-            List<SecurityQuestionTO> list = securityQuestionRestClient.list();
-
-            Collections.sort(list, comparator);
-
-            return list.subList((int) first, (int) first + (int) count).iterator();
-        }
-
-        @Override
-        public long size() {
-            return securityQuestionRestClient.list().size();
-        }
-
-        @Override
-        public IModel<SecurityQuestionTO> model(final SecurityQuestionTO securityQuestionTO) {
-            return new AbstractReadOnlyModel<SecurityQuestionTO>() {
-
-                private static final long serialVersionUID = 5079291243768775704L;
-
-                @Override
-                public SecurityQuestionTO getObject() {
-                    return securityQuestionTO;
-                }
-            };
-        }
-    }
-
-    private class LoggerPropertyList extends PropertyListView<LoggerTO> {
-
-        private static final long serialVersionUID = 5911412425994616111L;
-
-        private final ConsoleLoggerController consoleLoggerController;
-
-        public LoggerPropertyList(final ConsoleLoggerController consoleLoggerController, final String id,
-                final List<? extends LoggerTO> list) {
-
-            super(id, list);
-            this.consoleLoggerController = consoleLoggerController;
-        }
-
-        @Override
-        protected void populateItem(final ListItem<LoggerTO> item) {
-            item.add(new Label("key"));
-
-            DropDownChoice<LoggerLevel> level = new DropDownChoice<>("level");
-            level.setModel(new IModel<LoggerLevel>() {
-
-                private static final long serialVersionUID = -2350428186089596562L;
-
-                @Override
-                public LoggerLevel getObject() {
-                    return item.getModelObject().getLevel();
-                }
-
-                @Override
-                public void setObject(final LoggerLevel object) {
-                    item.getModelObject().setLevel(object);
-                }
-
-                @Override
-                public void detach() {
-                }
-            });
-            level.setChoices(Arrays.asList(LoggerLevel.values()));
-            level.setOutputMarkupId(true);
-            level.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-                private static final long serialVersionUID = -1107858522700306810L;
-
-                @Override
-                protected void onUpdate(final AjaxRequestTarget target) {
-                    try {
-                        if (getId().equals("corelogger")) {
-                            loggerRestClient.setLogLevel(item.getModelObject().getKey(),
-                                    item.getModelObject().getLevel());
-                        } else {
-                            consoleLoggerController.setLogLevel(item.getModelObject().getKey(),
-                                    item.getModelObject().getLevel());
-                        }
-
-                        info(getString(Constants.OPERATION_SUCCEEDED));
-                    } catch (SyncopeClientException e) {
-                        info(getString(Constants.OPERATION_ERROR));
-                    }
-
-                    feedbackPanel.refresh(target);
-                }
-            });
-
-            MetaDataRoleAuthorizationStrategy.authorize(level, ENABLE, xmlRolesReader.getEntitlement(
-                    "Configuration", "logSetLevel"));
-
-            item.add(level);
-        }
-    }
-
-    private static class ConsoleLoggerController implements Serializable {
-
-        private static final long serialVersionUID = -1550459341476431714L;
-
-        public List<LoggerTO> getLoggers() {
-            LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
-
-            List<LoggerTO> result = new ArrayList<>();
-            for (LoggerConfig logger : ctx.getConfiguration().getLoggers().values()) {
-                final String loggerName = LogManager.ROOT_LOGGER_NAME.equals(logger.getName())
-                        ? SyncopeConstants.ROOT_LOGGER : logger.getName();
-                if (logger.getLevel() != null) {
-                    LoggerTO loggerTO = new LoggerTO();
-                    loggerTO.setKey(loggerName);
-                    loggerTO.setLevel(LoggerLevel.fromLevel(logger.getLevel()));
-                    result.add(loggerTO);
-                }
-            }
-
-            return result;
-        }
-
-        public void setLogLevel(final String name, final LoggerLevel level) {
-            LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
-            LoggerConfig logConf = SyncopeConstants.ROOT_LOGGER.equals(name)
-                    ? ctx.getConfiguration().getLoggerConfig(LogManager.ROOT_LOGGER_NAME)
-                    : ctx.getConfiguration().getLoggerConfig(name);
-            logConf.setLevel(level.getLevel());
-            ctx.updateLoggers();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConfirmPasswordResetModalPage.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConfirmPasswordResetModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConfirmPasswordResetModalPage.java
deleted file mode 100644
index ebc041d..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConfirmPasswordResetModalPage.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.Mode;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPasswordFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.PasswordTextField;
-import org.apache.wicket.markup.html.form.StatelessForm;
-import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
-
-public class ConfirmPasswordResetModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -8419445804421211904L;
-
-    public ConfirmPasswordResetModalPage(final ModalWindow window, final String token) {
-        super();
-        setOutputMarkupId(true);
-
-        final StatelessForm<?> form = new StatelessForm<Object>(FORM);
-        form.setOutputMarkupId(true);
-
-        final FieldPanel<String> password =
-                new AjaxPasswordFieldPanel("password", "password", new Model<String>()).setRequired(true);
-        ((PasswordTextField) password.getField()).setResetPassword(true);
-        form.add(password);
-
-        final FieldPanel<String> confirmPassword =
-                new AjaxPasswordFieldPanel("confirmPassword", "confirmPassword", new Model<String>());
-        ((PasswordTextField) confirmPassword.getField()).setResetPassword(true);
-        form.add(confirmPassword);
-
-        form.add(new EqualPasswordInputValidator(password.getField(), confirmPassword.getField()));
-
-        final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(SUBMIT, SUBMIT)) {
-
-            private static final long serialVersionUID = -4804368561204623354L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                try {
-                    userSelfRestClient.confirmPasswordReset(token, password.getModelObject());
-
-                    setResponsePage(new ResultStatusModalPage.Builder(window, new UserTO()).mode(Mode.SELF).build());
-                } catch (Exception e) {
-                    LOG.error("While confirming password reset for {}", token, e);
-                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                    feedbackPanel.refresh(target);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-        form.add(submit);
-        form.setDefaultButton(submit);
-
-        final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                window.close(target);
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-            }
-        };
-        cancel.setDefaultFormProcessing(false);
-        form.add(cancel);
-
-        add(form);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnObjectModalPage.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnObjectModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnObjectModalPage.java
deleted file mode 100644
index cf1c405..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnObjectModalPage.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.common.lib.to.ConnObjectTO;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.list.AltListView;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.util.ListModel;
-
-public class ConnObjectModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -6469290753080058487L;
-
-    public ConnObjectModalPage(final ConnObjectTO connObjectTO) {
-        super();
-
-        final Form<Void> form = new Form<Void>(FORM);
-        form.setEnabled(false);
-        add(form);
-
-        IModel<List<AttrTO>> formProps = new LoadableDetachableModel<List<AttrTO>>() {
-
-            private static final long serialVersionUID = 5275935387613157437L;
-
-            @Override
-            protected List<AttrTO> load() {
-                List<AttrTO> attrs = connObjectTO.getPlainAttrs();
-                Collections.sort(attrs, new Comparator<AttrTO>() {
-
-                    @Override
-                    public int compare(final AttrTO attr1, final AttrTO attr2) {
-                        if (attr1 == null || attr1.getSchema() == null) {
-                            return -1;
-                        }
-                        if (attr2 == null || attr2.getSchema() == null) {
-                            return 1;
-                        }
-                        return attr1.getSchema().compareTo(attr2.getSchema());
-                    }
-                });
-
-                return attrs;
-            }
-        };
-        final ListView<AttrTO> propView = new AltListView<AttrTO>("propView", formProps) {
-
-            private static final long serialVersionUID = 3109256773218160485L;
-
-            @Override
-            protected void populateItem(final ListItem<AttrTO> item) {
-                final AttrTO prop = item.getModelObject();
-
-                Label label = new Label("key", prop.getSchema());
-                item.add(label);
-
-                Panel field;
-                if (prop.getValues().isEmpty()) {
-                    field = new AjaxTextFieldPanel("value",
-                            prop.getSchema(), new Model<String>());
-                } else if (prop.getValues().size() == 1) {
-                    field = new AjaxTextFieldPanel("value",
-                            prop.getSchema(), new Model<String>(prop.getValues().get(0)));
-                } else {
-                    field = new MultiFieldPanel<String>("value", new ListModel<String>(prop.getValues()),
-                            new AjaxTextFieldPanel("panel", prop.getSchema(), new Model<String>()));
-                }
-                item.add(field);
-            }
-        };
-        form.add(propView);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnectorModalPage.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnectorModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnectorModalPage.java
deleted file mode 100644
index 8095591..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/ConnectorModalPage.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.rest.ConnectorRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.SpinnerFieldPanel;
-import org.apache.syncope.client.console.wicket.markup.html.list.ConnConfPropertyListView;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.ConnBundleTO;
-import org.apache.syncope.common.lib.to.ConnInstanceTO;
-import org.apache.syncope.common.lib.to.ConnPoolConfTO;
-import org.apache.syncope.common.lib.types.ConnConfPropSchema;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
-import org.apache.syncope.common.lib.types.ConnectorCapability;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-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.markup.html.form.CheckBoxMultipleChoice;
-import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.apache.wicket.validation.validator.RangeValidator;
-
-/**
- * Modal window with Connector form.
- */
-public class ConnectorModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -2025535531121434050L;
-
-    @SpringBean
-    private ConnectorRestClient restClient;
-
-    private final Map<String, Map<String, Map<String, ConnBundleTO>>> mapConnBundleTOs;
-
-    private final List<ConnectorCapability> selectedCapabilities;
-
-    private ConnBundleTO bundleTO;
-
-    private List<ConnConfProperty> properties;
-
-    private final WebMarkupContainer propertiesContainer;
-
-    public ConnectorModalPage(final PageReference pageRef, final ModalWindow window,
-            final ConnInstanceTO connInstanceTO) {
-
-        super();
-
-        this.add(new Label("new", connInstanceTO.getKey() == 0
-                ? new ResourceModel("new")
-                : new Model<>(StringUtils.EMPTY)));
-        this.add(new Label("key", connInstanceTO.getKey() == 0
-                ? StringUtils.EMPTY
-                : connInstanceTO.getKey()));
-
-        // general data setup
-        selectedCapabilities = new ArrayList<>(connInstanceTO.getKey() == 0
-                ? EnumSet.noneOf(ConnectorCapability.class)
-                : connInstanceTO.getCapabilities());
-
-        mapConnBundleTOs = new HashMap<>();
-        for (ConnBundleTO connBundleTO : restClient.getAllBundles()) {
-            // by location
-            if (!mapConnBundleTOs.containsKey(connBundleTO.getLocation())) {
-                mapConnBundleTOs.put(connBundleTO.getLocation(), new HashMap<String, Map<String, ConnBundleTO>>());
-            }
-            final Map<String, Map<String, ConnBundleTO>> byLocation = mapConnBundleTOs.get(connBundleTO.getLocation());
-
-            // by name
-            if (!byLocation.containsKey(connBundleTO.getBundleName())) {
-                byLocation.put(connBundleTO.getBundleName(), new HashMap<String, ConnBundleTO>());
-            }
-            final Map<String, ConnBundleTO> byName = byLocation.get(connBundleTO.getBundleName());
-
-            // by version
-            if (!byName.containsKey(connBundleTO.getVersion())) {
-                byName.put(connBundleTO.getVersion(), connBundleTO);
-            }
-        }
-
-        bundleTO = getSelectedBundleTO(connInstanceTO);
-        properties = fillProperties(bundleTO, connInstanceTO);
-
-        // form - first tab
-        final Form<ConnInstanceTO> connectorForm = new Form<>(FORM);
-        connectorForm.setModel(new CompoundPropertyModel<>(connInstanceTO));
-        connectorForm.setOutputMarkupId(true);
-        add(connectorForm);
-
-        propertiesContainer = new WebMarkupContainer("container");
-        propertiesContainer.setOutputMarkupId(true);
-        connectorForm.add(propertiesContainer);
-
-        final Form<ConnInstanceTO> connectorPropForm = new Form<>("connectorPropForm");
-        connectorPropForm.setModel(new CompoundPropertyModel<>(connInstanceTO));
-        connectorPropForm.setOutputMarkupId(true);
-        propertiesContainer.add(connectorPropForm);
-
-        final AjaxTextFieldPanel displayName = new AjaxTextFieldPanel(
-                "displayName", "display name", new PropertyModel<String>(connInstanceTO, "displayName"));
-        displayName.setOutputMarkupId(true);
-        displayName.addRequiredLabel();
-        connectorForm.add(displayName);
-
-        final AjaxDropDownChoicePanel<String> location =
-                new AjaxDropDownChoicePanel<>("location", "location",
-                        new Model<>(bundleTO == null ? null : bundleTO.getLocation()));
-        ((DropDownChoice<String>) location.getField()).setNullValid(true);
-        location.setStyleSheet("long_dynamicsize");
-        location.setChoices(new ArrayList<>(mapConnBundleTOs.keySet()));
-        location.setRequired(true);
-        location.addRequiredLabel();
-        location.setOutputMarkupId(true);
-        location.setEnabled(connInstanceTO.getKey() == 0);
-        location.getField().setOutputMarkupId(true);
-        connectorForm.add(location);
-
-        final AjaxDropDownChoicePanel<String> connectorName =
-                new AjaxDropDownChoicePanel<>("connectorName", "connectorName",
-                        new Model<>(bundleTO == null ? null : bundleTO.getBundleName()));
-        ((DropDownChoice<String>) connectorName.getField()).setNullValid(true);
-        connectorName.setStyleSheet("long_dynamicsize");
-        connectorName.setChoices(bundleTO == null
-                ? new ArrayList<String>()
-                : new ArrayList<>(mapConnBundleTOs.get(connInstanceTO.getLocation()).keySet()));
-        connectorName.setRequired(true);
-        connectorName.addRequiredLabel();
-        connectorName.setEnabled(connInstanceTO.getLocation() != null);
-        connectorName.setOutputMarkupId(true);
-        connectorName.setEnabled(connInstanceTO.getKey() == 0);
-        connectorName.getField().setOutputMarkupId(true);
-        connectorForm.add(connectorName);
-
-        final AjaxDropDownChoicePanel<String> version =
-                new AjaxDropDownChoicePanel<>("version", "version",
-                        new Model<>(bundleTO == null ? null : bundleTO.getVersion()));
-        version.setStyleSheet("long_dynamicsize");
-        version.setChoices(bundleTO == null
-                ? new ArrayList<String>()
-                : new ArrayList<>(mapConnBundleTOs.get(connInstanceTO.getLocation()).
-                        get(connInstanceTO.getBundleName()).keySet()));
-        version.setRequired(true);
-        version.addRequiredLabel();
-        version.setEnabled(connInstanceTO.getBundleName() != null);
-        version.setOutputMarkupId(true);
-        version.addRequiredLabel();
-        version.getField().setOutputMarkupId(true);
-        connectorForm.add(version);
-
-        final SpinnerFieldPanel<Integer> connRequestTimeout =
-                new SpinnerFieldPanel<>("connRequestTimeout", "connRequestTimeout", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO, "connRequestTimeout"), 0, null);
-        connRequestTimeout.getField().add(new RangeValidator<>(0, Integer.MAX_VALUE));
-        connectorForm.add(connRequestTimeout);
-
-        if (connInstanceTO.getPoolConf() == null) {
-            connInstanceTO.setPoolConf(new ConnPoolConfTO());
-        }
-        final SpinnerFieldPanel<Integer> poolMaxObjects =
-                new SpinnerFieldPanel<>("poolMaxObjects", "poolMaxObjects", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxObjects"), 0, null);
-        poolMaxObjects.getField().add(new RangeValidator<>(0, Integer.MAX_VALUE));
-        connectorForm.add(poolMaxObjects);
-        final SpinnerFieldPanel<Integer> poolMinIdle =
-                new SpinnerFieldPanel<>("poolMinIdle", "poolMinIdle", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "minIdle"), 0, null);
-        poolMinIdle.getField().add(new RangeValidator<>(0, Integer.MAX_VALUE));
-        connectorForm.add(poolMinIdle);
-        final SpinnerFieldPanel<Integer> poolMaxIdle =
-                new SpinnerFieldPanel<>("poolMaxIdle", "poolMaxIdle", Integer.class,
-                        new PropertyModel<Integer>(connInstanceTO.getPoolConf(), "maxIdle"), 0, null);
-        poolMaxIdle.getField().add(new RangeValidator<>(0, Integer.MAX_VALUE));
-        connectorForm.add(poolMaxIdle);
-        final SpinnerFieldPanel<Long> poolMaxWait =
-                new SpinnerFieldPanel<>("poolMaxWait", "poolMaxWait", Long.class,
-                        new PropertyModel<Long>(connInstanceTO.getPoolConf(), "maxWait"), 0L, null);
-        poolMaxWait.getField().add(new RangeValidator<>(0L, Long.MAX_VALUE));
-        connectorForm.add(poolMaxWait);
-        final SpinnerFieldPanel<Long> poolMinEvictableIdleTime =
-                new SpinnerFieldPanel<>("poolMinEvictableIdleTime", "poolMinEvictableIdleTime", Long.class,
-                        new PropertyModel<Long>(connInstanceTO.getPoolConf(), "minEvictableIdleTimeMillis"),
-                        0L, null);
-        poolMinEvictableIdleTime.getField().add(new RangeValidator<>(0L, Long.MAX_VALUE));
-        connectorForm.add(poolMinEvictableIdleTime);
-
-        // form - first tab - onchange()
-        location.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                ((DropDownChoice<String>) location.getField()).setNullValid(false);
-                connInstanceTO.setLocation(location.getModelObject());
-                target.add(location);
-
-                connectorName.setChoices(new ArrayList<>(
-                        mapConnBundleTOs.get(location.getModelObject()).keySet()));
-                connectorName.setEnabled(true);
-                connectorName.getField().setModelValue(null);
-                target.add(connectorName);
-
-                version.setChoices(new ArrayList<String>());
-                version.getField().setModelValue(null);
-                version.setEnabled(false);
-                target.add(version);
-
-                properties.clear();
-                target.add(propertiesContainer);
-            }
-        });
-        connectorName.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                ((DropDownChoice<String>) connectorName.getField()).setNullValid(false);
-                connInstanceTO.setBundleName(connectorName.getModelObject());
-                target.add(connectorName);
-
-                List<String> versions = new ArrayList<>(
-                        mapConnBundleTOs.get(location.getModelObject()).get(connectorName.getModelObject()).keySet());
-                version.setChoices(versions);
-                version.setEnabled(true);
-                if (versions.size() == 1) {
-                    selectVersion(target, connInstanceTO, version, versions.get(0));
-                    version.getField().setModelObject(versions.get(0));
-                } else {
-                    version.getField().setModelValue(null);
-                    properties.clear();
-                    target.add(propertiesContainer);
-                }
-                target.add(version);
-            }
-        });
-        version.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(final AjaxRequestTarget target) {
-                selectVersion(target, connInstanceTO, version, version.getModelObject());
-            }
-        });
-
-        // form - second tab (properties)
-        final ListView<ConnConfProperty> connPropView = new ConnConfPropertyListView("connectorProperties",
-                new PropertyModel<List<ConnConfProperty>>(this, "properties"),
-                true, connInstanceTO.getConfiguration());
-        connPropView.setOutputMarkupId(true);
-        connectorPropForm.add(connPropView);
-
-        final AjaxButton check = new IndicatingAjaxButton("check", new ResourceModel("check")) {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                final ConnInstanceTO conn = (ConnInstanceTO) form.getModelObject();
-
-                // ensure that connector bundle information is in sync
-                conn.setBundleName(bundleTO.getBundleName());
-                conn.setVersion(bundleTO.getVersion());
-                conn.setConnectorName(bundleTO.getConnectorName());
-
-                if (restClient.check(conn)) {
-                    info(getString("success_connection"));
-                } else {
-                    error(getString("error_connection"));
-                }
-
-                feedbackPanel.refresh(target);
-            }
-        };
-        connectorPropForm.add(check);
-
-        // form - third tab (capabilities)
-        final IModel<List<ConnectorCapability>> capabilities =
-                new LoadableDetachableModel<List<ConnectorCapability>>() {
-
-                    private static final long serialVersionUID = 5275935387613157437L;
-
-                    @Override
-                    protected List<ConnectorCapability> load() {
-                        return Arrays.asList(ConnectorCapability.values());
-                    }
-                };
-        CheckBoxMultipleChoice<ConnectorCapability> capabilitiesPalette =
-                new CheckBoxMultipleChoice<>("capabilitiesPalette",
-                        new PropertyModel<List<ConnectorCapability>>(this, "selectedCapabilities"), capabilities);
-
-        capabilitiesPalette.add(new AjaxFormChoiceComponentUpdatingBehavior() {
-
-            private static final long serialVersionUID = -1107858522700306810L;
-
-            @Override
-            protected void onUpdate(AjaxRequestTarget target) {
-            }
-        });
-
-        connectorForm.add(capabilitiesPalette);
-
-        // form - submit / cancel buttons
-        final AjaxButton submit = new IndicatingAjaxButton(APPLY, new Model<>(getString(SUBMIT))) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                final ConnInstanceTO conn = (ConnInstanceTO) form.getModelObject();
-
-                conn.setConnectorName(bundleTO.getConnectorName());
-                conn.setBundleName(bundleTO.getBundleName());
-                conn.setVersion(bundleTO.getVersion());
-                conn.getConfiguration().clear();
-                conn.getConfiguration().addAll(connPropView.getModelObject());
-
-                // Set the model object's capabilities to capabilitiesPalette's converted Set
-                conn.getCapabilities().clear();
-                conn.getCapabilities().addAll(selectedCapabilities.isEmpty()
-                        ? EnumSet.noneOf(ConnectorCapability.class)
-                        : EnumSet.copyOf(selectedCapabilities));
-
-                // Reset pool configuration if all fields are null
-                if (conn.getPoolConf() != null
-                        && conn.getPoolConf().getMaxIdle() == null
-                        && conn.getPoolConf().getMaxObjects() == null
-                        && conn.getPoolConf().getMaxWait() == null
-                        && conn.getPoolConf().getMinEvictableIdleTimeMillis() == null
-                        && conn.getPoolConf().getMinIdle() == null) {
-
-                    conn.setPoolConf(null);
-                }
-
-                try {
-                    if (connInstanceTO.getKey() == 0) {
-                        restClient.create(conn);
-                    } else {
-                        restClient.update(conn);
-                    }
-
-                    ((Resources) pageRef.getPage()).setModalResult(true);
-                    window.close(target);
-                } catch (SyncopeClientException e) {
-                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                    feedbackPanel.refresh(target);
-                    ((Resources) pageRef.getPage()).setModalResult(false);
-                    LOG.error("While creating or updating connector {}", conn, e);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-        String roles = connInstanceTO.getKey() == 0
-                ? xmlRolesReader.getEntitlement("Connectors", "create")
-                : xmlRolesReader.getEntitlement("Connectors", "update");
-        MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, roles);
-        connectorForm.add(submit);
-
-        final IndicatingAjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                window.close(target);
-            }
-        };
-        cancel.setDefaultFormProcessing(false);
-        connectorForm.add(cancel);
-    }
-
-    private ConnBundleTO getSelectedBundleTO(final ConnInstanceTO connInstanceTO) {
-        ConnBundleTO result = null;
-        if (connInstanceTO != null
-                && StringUtils.isNotBlank(connInstanceTO.getLocation())
-                && StringUtils.isNotBlank(connInstanceTO.getBundleName())
-                && StringUtils.isNotBlank(connInstanceTO.getVersion())
-                && mapConnBundleTOs.containsKey(connInstanceTO.getLocation())) {
-
-            Map<String, Map<String, ConnBundleTO>> byLocation = mapConnBundleTOs.get(connInstanceTO.getLocation());
-            if (byLocation.containsKey(connInstanceTO.getBundleName())) {
-                Map<String, ConnBundleTO> byName = byLocation.get(connInstanceTO.getBundleName());
-                if (byName.containsKey(connInstanceTO.getVersion())) {
-                    result = byName.get(connInstanceTO.getVersion());
-                }
-            }
-        }
-        return result;
-    }
-
-    private List<ConnConfProperty> fillProperties(final ConnBundleTO bundleTO, final ConnInstanceTO connInstanceTO) {
-        final List<ConnConfProperty> props = new ArrayList<>();
-
-        if (bundleTO != null) {
-            for (ConnConfPropSchema key : bundleTO.getProperties()) {
-                final ConnConfProperty property = new ConnConfProperty();
-                property.setSchema(key);
-                if (connInstanceTO.getKey() != 0
-                        && connInstanceTO.getConfigurationMap().containsKey(key.getName())
-                        && connInstanceTO.getConfigurationMap().get(key.getName()).getValues() != null) {
-
-                    property.getValues().addAll(connInstanceTO.getConfigurationMap().get(key.getName()).getValues());
-                    property.setOverridable(connInstanceTO.getConfigurationMap().get(key.getName()).isOverridable());
-                }
-
-                if (property.getValues().isEmpty() && !key.getDefaultValues().isEmpty()) {
-                    property.getValues().addAll(key.getDefaultValues());
-                }
-
-                props.add(property);
-            }
-        }
-
-        // re-order properties (implements Comparable)
-        Collections.sort(props);
-        return props;
-    }
-
-    private void selectVersion(final AjaxRequestTarget target, final ConnInstanceTO connInstanceTO,
-            final AjaxDropDownChoicePanel<String> version, final String versionValue) {
-
-        connInstanceTO.setVersion(versionValue);
-        target.add(version);
-
-        bundleTO = getSelectedBundleTO(connInstanceTO);
-        properties = fillProperties(bundleTO, connInstanceTO);
-        target.add(propertiesContainer);
-    }
-
-    public List<ConnConfProperty> getProperties() {
-        return properties;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DerSchemaModalPage.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DerSchemaModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DerSchemaModalPage.java
deleted file mode 100644
index 1abe744..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DerSchemaModalPage.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.JexlHelpUtils;
-import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.to.DerSchemaTO;
-import org.apache.syncope.common.lib.types.AttributableType;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-
-/**
- * Modal window with Schema form.
- */
-public class DerSchemaModalPage extends AbstractSchemaModalPage<DerSchemaTO> {
-
-    private static final long serialVersionUID = 6668789770131753386L;
-
-    public DerSchemaModalPage(final AttributableType kind) {
-        super(kind);
-    }
-
-    @Override
-    public void setSchemaModalPage(final PageReference pageRef, final ModalWindow window,
-            DerSchemaTO schema, final boolean createFlag) {
-
-        if (schema == null) {
-            schema = new DerSchemaTO();
-        }
-
-        final Form<DerSchemaTO> schemaForm = new Form<>(FORM);
-
-        schemaForm.setModel(new CompoundPropertyModel<>(schema));
-
-        final AjaxTextFieldPanel name =
-                new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(schema, "key"));
-        name.addRequiredLabel();
-
-        final AjaxTextFieldPanel expression = new AjaxTextFieldPanel("expression", getString("expression"),
-                new PropertyModel<String>(schema, "expression"));
-        expression.addRequiredLabel();
-
-        final WebMarkupContainer jexlHelp = JexlHelpUtils.getJexlHelpWebContainer("jexlHelp");
-
-        final AjaxLink<Void> questionMarkJexlHelp = JexlHelpUtils.getAjaxLink(jexlHelp, "questionMarkJexlHelp");
-        schemaForm.add(questionMarkJexlHelp);
-        questionMarkJexlHelp.add(jexlHelp);
-
-        name.setEnabled(createFlag);
-
-        final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(SUBMIT)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form form) {
-                DerSchemaTO schemaTO = (DerSchemaTO) form.getDefaultModelObject();
-
-                try {
-                    if (createFlag) {
-                        schemaRestClient.createDerSchema(kind, schemaTO);
-                    } else {
-                        schemaRestClient.updateDerSchema(kind, schemaTO);
-                    }
-
-                    if (pageRef.getPage() instanceof BasePage) {
-                        ((BasePage) pageRef.getPage()).setModalResult(true);
-                    }
-
-                    window.close(target);
-                } catch (SyncopeClientException e) {
-                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                    feedbackPanel.refresh(target);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-
-        final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                window.close(target);
-            }
-        };
-
-        cancel.setDefaultFormProcessing(
-                false);
-
-        String allowedRoles = createFlag
-                ? xmlRolesReader.getEntitlement("Schema", "create")
-                : xmlRolesReader.getEntitlement("Schema", "update");
-
-        MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles);
-
-        schemaForm.add(name);
-
-        schemaForm.add(expression);
-
-        schemaForm.add(submit);
-
-        schemaForm.add(cancel);
-
-        add(schemaForm);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/b7f88690/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
----------------------------------------------------------------------
diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
deleted file mode 100644
index f4a6cea..0000000
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * 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.
- */
-package org.apache.syncope.client.console.pages;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.syncope.client.console.commons.Constants;
-import org.apache.syncope.client.console.commons.PreferenceManager;
-import org.apache.syncope.common.lib.search.SearchableFields;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.wicket.PageReference;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Check;
-import org.apache.wicket.markup.html.form.CheckGroup;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-
-/**
- * Modal window with Display attributes form.
- */
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class DisplayAttributesModalPage extends BaseModalPage {
-
-    private static final long serialVersionUID = -4274117450918385110L;
-
-    /**
-     * Max allowed selections.
-     */
-    private static final int MAX_SELECTIONS = 9;
-
-        public static final String[] DEFAULT_SELECTION = { "key", "username", "status" };
-
-    @SpringBean
-    private PreferenceManager prefMan;
-
-    private final List<String> selectedDetails;
-
-    private final List<String> selectedPlainSchemas;
-
-    private final List<String> selectedDerSchemas;
-
-    public DisplayAttributesModalPage(final PageReference pageRef, final ModalWindow window,
-            final List<String> schemaNames, final List<String> dSchemaNames) {
-
-        super();
-
-        final IModel<List<String>> fnames = new LoadableDetachableModel<List<String>>() {
-
-            private static final long serialVersionUID = 5275935387613157437L;
-
-            @Override
-            protected List<String> load() {
-                return SearchableFields.get(UserTO.class);
-            }
-        };
-
-        final IModel<List<String>> names = new LoadableDetachableModel<List<String>>() {
-
-            private static final long serialVersionUID = 5275935387613157437L;
-
-            @Override
-            protected List<String> load() {
-                return schemaNames;
-            }
-        };
-
-        final IModel<List<String>> dsnames = new LoadableDetachableModel<List<String>>() {
-
-            private static final long serialVersionUID = 5275935387613157437L;
-
-            @Override
-            protected List<String> load() {
-                return dSchemaNames;
-            }
-        };
-
-        final Form form = new Form(FORM);
-        form.setModel(new CompoundPropertyModel(this));
-
-        selectedDetails = prefMan.getList(getRequest(), Constants.PREF_USERS_DETAILS_VIEW);
-
-        selectedPlainSchemas = prefMan.getList(getRequest(), Constants.PREF_USERS_ATTRIBUTES_VIEW);
-
-        selectedDerSchemas = prefMan.getList(getRequest(), Constants.PREF_USERS_DERIVED_ATTRIBUTES_VIEW);
-
-        final CheckGroup dgroup = new CheckGroup("dCheckGroup", new PropertyModel(this, "selectedDetails"));
-        form.add(dgroup);
-
-        final ListView<String> details = new ListView<String>("details", fnames) {
-
-            private static final long serialVersionUID = 9101744072914090143L;
-
-            @Override
-            protected void populateItem(final ListItem<String> item) {
-                item.add(new Check("dcheck", item.getModel()));
-                item.add(new Label("dname", new ResourceModel(item.getModelObject(), item.getModelObject())));
-            }
-        };
-        dgroup.add(details);
-
-        if (names.getObject() == null || names.getObject().isEmpty()) {
-            final Fragment fragment = new Fragment("plainSchemas", "emptyFragment", form);
-            form.add(fragment);
-
-            selectedPlainSchemas.clear();
-        } else {
-            final Fragment fragment = new Fragment("plainSchemas", "sfragment", form);
-            form.add(fragment);
-
-            final CheckGroup sgroup = new CheckGroup("psCheckGroup", new PropertyModel(this, "selectedPlainSchemas"));
-            fragment.add(sgroup);
-
-            final ListView<String> schemas = new ListView<String>("plainSchemas", names) {
-
-                private static final long serialVersionUID = 9101744072914090143L;
-
-                @Override
-                protected void populateItem(final ListItem<String> item) {
-                    item.add(new Check("scheck", item.getModel()));
-                    item.add(new Label("sname", new ResourceModel(item.getModelObject(), item.getModelObject())));
-                }
-            };
-            sgroup.add(schemas);
-        }
-
-        if (dsnames.getObject() == null || dsnames.getObject().isEmpty()) {
-            final Fragment fragment = new Fragment("dschemas", "emptyFragment", form);
-            form.add(fragment);
-
-            selectedDerSchemas.clear();
-        } else {
-            final Fragment fragment = new Fragment("dschemas", "dsfragment", form);
-            form.add(fragment);
-
-            final CheckGroup dsgroup = new CheckGroup("dsCheckGroup", new PropertyModel(this, "selectedDerSchemas"));
-            fragment.add(dsgroup);
-
-            final ListView<String> derSchemas = new ListView<String>("derSchemas", dsnames) {
-
-                private static final long serialVersionUID = 9101744072914090143L;
-
-                @Override
-                protected void populateItem(ListItem<String> item) {
-                    item.add(new Check("dscheck", item.getModel()));
-                    item.add(new Label("dsname", new ResourceModel(item.getModelObject(), item.getModelObject())));
-                }
-            };
-            dsgroup.add(derSchemas);
-        }
-
-        final AjaxButton submit = new IndicatingAjaxButton(SUBMIT, new ResourceModel(SUBMIT)) {
-
-            private static final long serialVersionUID = -4804368561204623354L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                if (selectedDetails.size() + selectedPlainSchemas.size() + selectedDerSchemas.size()
-                        > MAX_SELECTIONS) {
-
-                    error(getString("tooManySelections"));
-                    onError(target, form);
-                } else {
-                    final Map<String, List<String>> prefs = new HashMap<>();
-
-                    prefs.put(Constants.PREF_USERS_DETAILS_VIEW, selectedDetails);
-
-                    prefs.put(Constants.PREF_USERS_ATTRIBUTES_VIEW, selectedPlainSchemas);
-
-                    prefs.put(Constants.PREF_USERS_DERIVED_ATTRIBUTES_VIEW, selectedDerSchemas);
-
-                    prefMan.setList(getRequest(), getResponse(), prefs);
-
-                    ((BasePage) pageRef.getPage()).setModalResult(true);
-
-                    window.close(target);
-                }
-            }
-
-            @Override
-            protected void onError(final AjaxRequestTarget target, final Form<?> form) {
-                feedbackPanel.refresh(target);
-            }
-        };
-
-        form.add(submit);
-
-        final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {
-
-            private static final long serialVersionUID = -958724007591692537L;
-
-            @Override
-            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
-                window.close(target);
-            }
-        };
-
-        cancel.setDefaultFormProcessing(false);
-        form.add(cancel);
-
-        add(form);
-    }
-}