Repository: syncope Updated Branches: refs/heads/SYNCOPE-156 [created] 518f7bef2
http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeMenuItem.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeMenuItem.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeMenuItem.java new file mode 100644 index 0000000..b6b2c9b --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeMenuItem.java @@ -0,0 +1,43 @@ +/* + * 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.panels; + +import org.apache.wicket.AttributeModifier; +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.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AnyTypeMenuItem extends Panel { + + private static final long serialVersionUID = -1100228004207271270L; + + protected static final Logger LOG = LoggerFactory.getLogger(AnyTypeMenuItem.class); + + public AnyTypeMenuItem(final String label, final String href) { + super("anytype-menuitem"); + + WebMarkupContainer myLink = new WebMarkupContainer("tabLink"); + myLink.add(new AttributeModifier("href", "#" + href)); + myLink.add(new Label("tabLabel", label)); + add(myLink); + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 new file mode 100644 index 0000000..83e442b --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupSearchResultPanel.java @@ -0,0 +1,234 @@ +/* + * 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.panels; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import org.apache.syncope.client.console.commons.Constants; +import org.apache.syncope.client.console.pages.GroupDisplayAttributesModalPage; +import org.apache.syncope.client.console.rest.AbstractAnyRestClient; +import org.apache.syncope.client.console.rest.GroupRestClient; +import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.ActionColumn; +import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AttrColumn; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AnyTO; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.lib.to.GroupTO; +import org.apache.syncope.common.lib.types.SchemaType; +import org.apache.wicket.Page; +import org.apache.wicket.PageReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; +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.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.ResourceModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.ReflectionUtils; + +public class GroupSearchResultPanel extends AnySearchResultPanel { + + private static final long serialVersionUID = -1100228004207271270L; + + protected static final Logger LOG = LoggerFactory.getLogger(GroupSearchResultPanel.class); + + private final String entitlement = "GROUP_READ"; + + public GroupSearchResultPanel(final String type, final String parentId, final String markupId, + final boolean filtered, final String fiql, final PageReference callerRef, + final AbstractAnyRestClient restClient, final List<AnyTypeClassTO> anyTypeClassTOs, final String realm) { + + super(type, parentId, markupId, filtered, fiql, callerRef, restClient, anyTypeClassTOs, realm); + } + + @Override + protected List<IColumn<AnyTO, String>> getColumns() { + + final List<IColumn<AnyTO, String>> columns = + new ArrayList<IColumn<AnyTO, String>>(); + + for (String name : prefMan.getList(getRequest(), Constants.PREF_GROUP_DETAILS_VIEW)) { + final Field field = ReflectionUtils.findField(GroupTO.class, name); + + if ("token".equalsIgnoreCase(name)) { + columns.add(new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } else if (field != null && field.getType().equals(Date.class)) { + columns.add(new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } else { + columns.add( + new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } + } + + for (String name : prefMan.getList(getRequest(), Constants.PREF_GROUP_ATTRIBUTES_VIEW)) { + if (schemaNames.contains(name)) { + columns.add(new AttrColumn(name, SchemaType.PLAIN)); + } + } + + for (String name : prefMan.getList(getRequest(), Constants.PREF_GROUP_DERIVED_ATTRIBUTES_VIEW)) { + if (dSchemaNames.contains(name)) { + columns.add(new AttrColumn(name, SchemaType.DERIVED)); + } + } + + // Add defaults in case of no selection + if (columns.isEmpty()) { + for (String name : GroupDisplayAttributesModalPage.GROUP_DEFAULT_SELECTION) { + columns.add( + new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } + + prefMan.setList(getRequest(), getResponse(), Constants.PREF_GROUP_DETAILS_VIEW, + Arrays.asList(GroupDisplayAttributesModalPage.GROUP_DEFAULT_SELECTION)); + } + + columns.add(new ActionColumn<AnyTO, String>(new ResourceModel("actions", "")) { + + private static final long serialVersionUID = -3503023501954863131L; + + @Override + public ActionLinksPanel getActions(final String componentId, final IModel<AnyTO> model) { + + final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, page.getPageReference()); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + editmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + // SYNCOPE-294: re-read groupTO before edit + GroupTO groupTO = ((GroupRestClient) restClient).read(model.getObject().getKey()); + return null; + } + }); + + editmodal.show(target); + } + }, ActionLink.ActionType.EDIT, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + try { + final GroupTO groupTO = (GroupTO) restClient. + delete(model.getObject().getETagValue(), model.getObject().getKey()); + + page.setModalResult(true); + + editmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return null; + } + }); + + editmodal.show(target); + } catch (SyncopeClientException scce) { + error(getString(Constants.OPERATION_ERROR) + ": " + scce.getMessage()); + feedbackPanel.refresh(target); + } + } + }, ActionLink.ActionType.DELETE, entitlement); + + return panel; + } + + @Override + public ActionLinksPanel getHeader(final String componentId) { + final ActionLinksPanel panel = new ActionLinksPanel(componentId, new Model(), page.getPageReference()); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + displaymodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return new GroupDisplayAttributesModalPage( + page.getPageReference(), displaymodal, schemaNames, dSchemaNames); + } + }); + + displaymodal.show(target); + } + }, ActionLink.ActionType.CHANGE_VIEW, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + if (target != null) { + target.add(container); + } + } + }, ActionLink.ActionType.RELOAD, entitlement); + + return panel; + } + }); + + return columns; + } + + @Override + protected <T extends AnyTO> Collection<ActionLink.ActionType> getBulkActions() { + final List<ActionType> bulkActions = new ArrayList<ActionType>(); + + bulkActions.add(ActionType.DELETE); + bulkActions.add(ActionType.SUSPEND); + bulkActions.add(ActionType.REACTIVATE); + + return bulkActions; + } + + @Override + protected String getPageId() { + return pageID; + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 f31c87c..a35fc09 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 @@ -18,8 +18,22 @@ */ package org.apache.syncope.client.console.panels; +import static org.apache.syncope.common.lib.types.AnyTypeKind.USER; + +import java.util.ArrayList; +import java.util.List; +import org.apache.syncope.client.console.rest.AnyObjectRestClient; +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.common.lib.to.AnyTypeTO; import org.apache.syncope.common.lib.to.RealmTO; +import org.apache.wicket.AttributeModifier; +import org.apache.wicket.PageReference; +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.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,19 +45,85 @@ public class Realm extends Panel { private final RealmTO realmTO; - public Realm(final String id, final RealmTO realmTO) { + private static Integer MARKUP_ID = 0; + + @SpringBean + private AnyTypeRestClient anyTypeRestClient; + + @SpringBean + private UserRestClient userRestClient; + + @SpringBean + private GroupRestClient groupRestClient; + + @SpringBean + private AnyObjectRestClient anyObjectRestClient; + + public Realm(final String id, final RealmTO realmTO, final PageReference pageReference) { super(id); this.realmTO = realmTO; - add(new RealmDetails("details", realmTO)); - add(new Any("users")); - add(new Any("groups")); - add(new Any("services")); - add(new Any("serviceRoles")); - add(new Any("contexts")); - add(new Any("enactmentEngine")); - add(new AccountPolicy("accountPolicy")); - add(new PasswordPolicy("passwordPolicy")); + List<AnyTypeMenuItem> anyMenu = new ArrayList<>(); + List<AnySearchResultPanel> anyList = new ArrayList<>(); + + for (AnyTypeTO anyTypeTO : anyTypeRestClient.list()) { + anyMenu.add(new AnyTypeMenuItem(anyTypeTO.getKey(), MARKUP_ID.toString())); + + switch (anyTypeTO.getKind()) { + case USER: + anyList.add( + new UserSearchResultPanel(anyTypeTO.getKey(), "anytype-contentitem", MARKUP_ID.toString(), + false, null, pageReference, userRestClient, anyTypeRestClient.getAnyTypeClass( + anyTypeTO.getClasses()), realmTO.getFullPath())); + break; + case GROUP: + anyList.add( + new GroupSearchResultPanel(anyTypeTO.getKey(), "anytype-contentitem", MARKUP_ID.toString(), + false, null, pageReference, groupRestClient, anyTypeRestClient.getAnyTypeClass( + anyTypeTO.getClasses()), realmTO.getFullPath())); + break; + case ANY_OBJECT: + anyList.add( + new AnySearchResultPanel(anyTypeTO.getKey(), "anytype-contentitem", MARKUP_ID.toString(), + false, null, pageReference, anyObjectRestClient, anyTypeRestClient.getAnyTypeClass( + anyTypeTO.getClasses()), realmTO.getFullPath())); + break; + default: + } + MARKUP_ID++; + } + + ListView<AnyTypeMenuItem> menuListView = new ListView<AnyTypeMenuItem>("anytype-menu", anyMenu) { + + private static final long serialVersionUID = 4949588177564901031L; + + @Override + protected void populateItem(final ListItem<AnyTypeMenuItem> item) { + item.add(item.getModelObject()); + if (item.getIndex() == 0) { + item.add(new AttributeModifier("class", "active")); + } + } + }; + add(menuListView); + + add(new ListView<AnySearchResultPanel>("anytype-content", anyList) { + + private static final long serialVersionUID = 4949588177564901031L; + + @Override + protected void populateItem(final ListItem<AnySearchResultPanel> item) { + item.setMarkupId(item.getModelObject().getCustomMarkupId()); + item.add(item.getModelObject()); + if (item.getIndex() == 0) { + item.add(new AttributeModifier("class", "tab-pane active")); + } + } + }); + } + + public RealmTO getRealmTO() { + return realmTO; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 391dba2..8797d13 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 @@ -33,9 +33,10 @@ public class RealmDetails extends Panel { public RealmDetails(final String id, final RealmTO realmTO) { super(id); - add(new TextField<>("id", new PropertyModel<>(realmTO, "key")).setEnabled(false)); - add(new TextField<>("name", new PropertyModel<>(realmTO, "name")).setEnabled(false)); - add(new TextField<>("path", new PropertyModel<>(realmTO, "fullPath")).setEnabled(false)); + add(new TextField<>("name", new PropertyModel<>(realmTO, "name"))); + add(new TextField<>("path", new PropertyModel<>(realmTO, "fullPath"))); + add(new TextField<>("accountPolicy", new PropertyModel<>(realmTO, "accountPolicy"))); + add(new TextField<>("passwordPolicy", new PropertyModel<>(realmTO, "passwordPolicy"))); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 new file mode 100644 index 0000000..8c78785 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/UserSearchResultPanel.java @@ -0,0 +1,277 @@ +/* + * 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.panels; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import org.apache.syncope.client.console.commons.Constants; +import org.apache.syncope.client.console.pages.StatusModalPage; +import org.apache.syncope.client.console.pages.UserDisplayAttributesModalPage; +import org.apache.syncope.client.console.rest.AbstractAnyRestClient; +import org.apache.syncope.client.console.rest.UserRestClient; +import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.ActionColumn; +import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AttrColumn; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AnyTO; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.lib.to.UserTO; +import org.apache.syncope.common.lib.types.SchemaType; +import org.apache.wicket.Page; +import org.apache.wicket.PageReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; +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.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.ResourceModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.ReflectionUtils; + +public class UserSearchResultPanel extends AnySearchResultPanel { + + private static final long serialVersionUID = -1100228004207271270L; + + protected static final Logger LOG = LoggerFactory.getLogger(UserSearchResultPanel.class); + + private final String entitlement = "USER_LIST"; + + public UserSearchResultPanel(final String type, final String parentId, final String markupId, + final boolean filtered, final String fiql, final PageReference callerRef, + final AbstractAnyRestClient restClient, final List<AnyTypeClassTO> anyTypeClassTOs, final String realm) { + + super(type, parentId, markupId, filtered, fiql, callerRef, restClient, anyTypeClassTOs, realm); + } + + @Override + protected List<IColumn<AnyTO, String>> getColumns() { + + final List<IColumn<AnyTO, String>> columns = + new ArrayList<IColumn<AnyTO, String>>(); + + for (String name : prefMan.getList(getRequest(), Constants.PREF_USERS_DETAILS_VIEW)) { + final Field field = ReflectionUtils.findField(UserTO.class, name); + + if ("token".equalsIgnoreCase(name)) { + columns.add(new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } else if (field != null && field.getType().equals(Date.class)) { + columns.add(new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } else { + columns.add( + new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } + } + + for (String name : prefMan.getList(getRequest(), Constants.PREF_USERS_ATTRIBUTES_VIEW)) { + if (schemaNames.contains(name)) { + columns.add(new AttrColumn(name, SchemaType.PLAIN)); + } + } + + for (String name : prefMan.getList(getRequest(), Constants.PREF_USERS_DERIVED_ATTRIBUTES_VIEW)) { + if (dSchemaNames.contains(name)) { + columns.add(new AttrColumn(name, SchemaType.DERIVED)); + } + } + + // Add defaults in case of no selection + if (columns.isEmpty()) { + for (String name : UserDisplayAttributesModalPage.USER_DEFAULT_SELECTION) { + columns.add( + new PropertyColumn<AnyTO, String>(new ResourceModel(name, name), name, name)); + } + + prefMan.setList(getRequest(), getResponse(), Constants.PREF_USERS_DETAILS_VIEW, + Arrays.asList(UserDisplayAttributesModalPage.USER_DEFAULT_SELECTION)); + } + + columns.add(new ActionColumn<AnyTO, String>(new ResourceModel("actions", "")) { + + private static final long serialVersionUID = -3503023501954863131L; + + @Override + public ActionLinksPanel getActions(final String componentId, final IModel<AnyTO> model) { + + final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, page.getPageReference()); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + statusmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return new StatusModalPage<UserTO>( + page.getPageReference(), statusmodal, (UserTO) model.getObject()); + } + }); + + statusmodal.show(target); + } + }, ActionLink.ActionType.MANAGE_RESOURCES, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + statusmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return new StatusModalPage<UserTO>( + page.getPageReference(), statusmodal, (UserTO) model.getObject(), true); + } + }); + + statusmodal.show(target); + } + }, ActionLink.ActionType.ENABLE, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + editmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + // SYNCOPE-294: re-read userTO before edit + UserTO userTO = ((UserRestClient) restClient).read(model.getObject().getKey()); + return null; + } + }); + + editmodal.show(target); + } + }, ActionLink.ActionType.EDIT, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + try { + final UserTO userTO = (UserTO) restClient. + delete(model.getObject().getETagValue(), model.getObject().getKey()); + + page.setModalResult(true); + + editmodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return null; + } + }); + + editmodal.show(target); + } catch (SyncopeClientException scce) { + error(getString(Constants.OPERATION_ERROR) + ": " + scce.getMessage()); + feedbackPanel.refresh(target); + } + } + }, ActionLink.ActionType.DELETE, entitlement); + + return panel; + } + + @Override + public ActionLinksPanel getHeader(final String componentId) { + final ActionLinksPanel panel = new ActionLinksPanel(componentId, new Model(), page.getPageReference()); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + displaymodal.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return new UserDisplayAttributesModalPage( + page.getPageReference(), displaymodal, schemaNames, dSchemaNames); + } + }); + + displaymodal.show(target); + } + }, ActionLink.ActionType.CHANGE_VIEW, entitlement); + + panel.add(new ActionLink() { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + public void onClick(final AjaxRequestTarget target) { + if (target != null) { + target.add(container); + } + } + }, ActionLink.ActionType.RELOAD, entitlement); + + return panel; + } + }); + + return columns; + } + + @Override + protected <T extends AnyTO> Collection<ActionLink.ActionType> getBulkActions() { + final List<ActionType> bulkActions = new ArrayList<ActionType>(); + + bulkActions.add(ActionType.DELETE); + bulkActions.add(ActionType.SUSPEND); + bulkActions.add(ActionType.REACTIVATE); + + return bulkActions; + } + + @Override + protected String getPageId() { + return pageID; + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java index b9a316d..d4debf0 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java @@ -32,12 +32,12 @@ public abstract class AbstractAnyRestClient extends BaseRestClient { public abstract int count(String realm); public abstract List<? extends AnyTO> list( - String realm, int page, int size, final SortParam<String> sort); + String realm, int page, int size, final SortParam<String> sort, final String type); - public abstract int searchCount(String realm, String fiql); + public abstract int searchCount(String realm, String fiql, final String type); public abstract List<? extends AnyTO> search( - String realm, String fiql, int page, int size, final SortParam<String> sort); + String realm, String fiql, int page, int size, final SortParam<String> sort, final String type); public abstract ConnObjectTO readConnObject(String resourceName, Long key); http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java new file mode 100644 index 0000000..3fd98bd --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java @@ -0,0 +1,96 @@ +/* + * 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.rest; + +import java.util.List; +import org.apache.syncope.client.lib.SyncopeClient; +import org.apache.syncope.common.lib.SyncopeClientException; +import org.apache.syncope.common.lib.to.AnyObjectTO; +import org.apache.syncope.common.lib.to.AnyTO; +import org.apache.syncope.common.lib.to.BulkAction; +import org.apache.syncope.common.lib.to.BulkActionResult; +import org.apache.syncope.common.lib.to.ConnObjectTO; +import org.apache.syncope.common.lib.to.PagedResult; +import org.apache.syncope.common.rest.api.service.AnyObjectService; +import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; +import org.springframework.stereotype.Component; + +/** + * Console client for invoking Rest any type class services. + */ +@Component +public class AnyObjectRestClient extends AbstractAnyRestClient { + + private static final long serialVersionUID = -8874495991295283249L; + + @Override + public int count(final String realm) { + return getService(AnyObjectService.class).list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(1).size( + 1).build()).getTotalCount(); + } + + @Override + public List<? extends AnyTO> list(final String realm, final int page, final int size, final SortParam<String> sort, + final String type) { + return list(type, realm).getResult(); + } + + public PagedResult<AnyObjectTO> list(final String type, final String realm) { + return getService(AnyObjectService.class). + list(type, SyncopeClient.getAnyListQueryBuilder().realm(realm).build()); + } + + @Override + public int searchCount(final String realm, final String fiql, final String type) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public List<? extends AnyTO> search(final String realm, final String fiql, final int page, final int size, + final SortParam<String> sort, + final String type) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public ConnObjectTO readConnObject(final String resourceName, final Long key) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public AnyObjectTO read(final Long id) { + AnyObjectTO anyObjectTO = null; + try { + anyObjectTO = getService(AnyObjectService.class).read(id); + } catch (SyncopeClientException e) { + LOG.error("While reading any object", e); + } + return anyObjectTO; + } + + @Override + public AnyTO delete(final String etag, final Long key) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public BulkActionResult bulkAction(final BulkAction action) { + throw new UnsupportedOperationException("Not supported yet."); + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java new file mode 100644 index 0000000..cce0bef --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java @@ -0,0 +1,49 @@ +/* + * 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.rest; + +import java.util.ArrayList; +import java.util.List; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.lib.to.AnyTypeTO; +import org.apache.syncope.common.rest.api.service.AnyTypeClassService; +import org.apache.syncope.common.rest.api.service.AnyTypeService; +import org.springframework.stereotype.Component; + +/** + * Console client for invoking Rest any type class services. + */ +@Component +public class AnyTypeRestClient extends BaseRestClient { + + private static final long serialVersionUID = -8874495991295283249L; + + public List<AnyTypeTO> list() { + return getService(AnyTypeService.class).list(); + } + + public List<AnyTypeClassTO> getAnyTypeClass(final List<String> anyTypeClassNames) { + List<AnyTypeClassTO> anyTypeClassTOs = new ArrayList<AnyTypeClassTO>(); + for (String anyTypeClass : anyTypeClassNames) { + anyTypeClassTOs.add(getService(AnyTypeClassService.class).read(anyTypeClass)); + } + return anyTypeClassTOs; + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java index 512e08f..659eeb4 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java @@ -56,7 +56,8 @@ public class GroupRestClient extends AbstractAnyRestClient { } @Override - public List<GroupTO> list(final String realm, final int page, final int size, final SortParam<String> sort) { + public List<GroupTO> list(final String realm, final int page, final int size, final SortParam<String> sort, + final String type) { return getService(GroupService.class). list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(page).size(size). orderBy(toOrderBy(sort)).details(false).build()). @@ -64,7 +65,7 @@ public class GroupRestClient extends AbstractAnyRestClient { } @Override - public int searchCount(final String realm, final String fiql) { + public int searchCount(final String realm, final String fiql, final String type) { return getService(GroupService.class). search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()). getTotalCount(); @@ -72,7 +73,8 @@ public class GroupRestClient extends AbstractAnyRestClient { @Override public List<GroupTO> search( - final String realm, final String fiql, final int page, final int size, final SortParam<String> sort) { + final String realm, final String fiql, final int page, final int size, final SortParam<String> sort, + final String type) { return getService(GroupService.class). search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size). http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java index 06cba4d..5dfe69a 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java @@ -19,7 +19,6 @@ package org.apache.syncope.client.console.rest; import java.util.List; - import org.apache.syncope.common.lib.to.RealmTO; import org.apache.syncope.common.rest.api.service.RealmService; import org.springframework.stereotype.Component; @@ -35,4 +34,8 @@ public class RealmRestClient extends BaseRestClient { public List<RealmTO> list() { return getService(RealmService.class).list(); } + + public void create(final String parentPath, final RealmTO realmTO) { + getService(RealmService.class).create(parentPath, realmTO); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java index 338851d..142a2db 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java @@ -57,7 +57,8 @@ public class UserRestClient extends AbstractAnyRestClient { } @Override - public List<UserTO> list(final String realm, final int page, final int size, final SortParam<String> sort) { + public List<UserTO> list(final String realm, final int page, final int size, final SortParam<String> sort, + final String type) { return getService(UserService.class). list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(page).size(size). orderBy(toOrderBy(sort)).details(false).build()). @@ -101,7 +102,7 @@ public class UserRestClient extends AbstractAnyRestClient { } @Override - public int searchCount(final String realm, final String fiql) { + public int searchCount(final String realm, final String fiql, final String type) { return getService(UserService.class). search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()). getTotalCount(); @@ -109,7 +110,8 @@ public class UserRestClient extends AbstractAnyRestClient { @Override public List<UserTO> search( - final String realm, final String fiql, final int page, final int size, final SortParam<String> sort) { + final String realm, final String fiql, final int page, final int size, final SortParam<String> sort, + final String type) { return getService(UserService.class). search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size). http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java new file mode 100644 index 0000000..b9dfa62 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/ActionColumn.java @@ -0,0 +1,59 @@ +/* + * 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.wicket.extensions.markup.html.repeater.data.table; + +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel; +import org.apache.wicket.Component; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.model.IModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public abstract class ActionColumn<T, S> extends AbstractColumn<T, S> { + + private static final long serialVersionUID = 7955560320949560725L; + + /** + * Logger. + */ + protected static final Logger LOG = LoggerFactory.getLogger(ActionColumn.class); + + public ActionColumn(final IModel<String> displayModel) { + super(displayModel); + } + + @Override + public String getCssClass() { + return "action"; + } + + @Override + public Component getHeader(final String componentId) { + return super.getHeader(componentId); + } + + @Override + public void populateItem(final Item<ICellPopulator<T>> item, final String componentId, final IModel<T> rowModel) { + item.add(getActions(componentId, rowModel)); + } + + public abstract ActionLinksPanel getActions(final String componentId, final IModel<T> rowModel); +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java new file mode 100644 index 0000000..029a523 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AttrColumn.java @@ -0,0 +1,84 @@ +/* + * 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.wicket.extensions.markup.html.repeater.data.table; + +import java.util.List; +import org.apache.syncope.common.lib.types.SchemaType; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.ResourceModel; +import org.apache.syncope.common.lib.to.AnyTO; + +public class AttrColumn extends AbstractColumn<AnyTO, String> { + + private static final long serialVersionUID = 2624734332447371372L; + + private final String name; + + private final SchemaType schemaType; + + public AttrColumn(final String name, final SchemaType schemaType) { + // set sortProperty to schematype#name (e.g. derivedSchema#cn, + // for use with SortableUserProviderComparator.AttrModel#getObject) + super(new ResourceModel(name, name), schemaType.name() + "#" + name); + this.name = name; + this.schemaType = schemaType; + } + + @Override + public void populateItem(final Item<ICellPopulator<AnyTO>> cellItem, final String componentId, + final IModel<AnyTO> rowModel) { + List<String> values = null; + + switch (schemaType) { + case PLAIN: + if (rowModel.getObject().getPlainAttrMap().containsKey(name)) { + values = rowModel.getObject().getPlainAttrMap().get(name).getValues(); + } + break; + + case VIRTUAL: + if (rowModel.getObject().getVirAttrMap().containsKey(name)) { + values = rowModel.getObject().getVirAttrMap().get(name).getValues(); + } + break; + + case DERIVED: + if (rowModel.getObject().getDerAttrMap().containsKey(name)) { + values = rowModel.getObject().getDerAttrMap().get(name).getValues(); + } + break; + + default: + } + + if (values == null || values.isEmpty()) { + cellItem.add(new Label(componentId, "")); + } else { + if (values.size() == 1) { + cellItem.add(new Label(componentId, values.get(0))); + } else { + cellItem.add(new Label(componentId, values.toString())); + } + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/META-INF/resources/css/AdminLTE.css ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/META-INF/resources/css/AdminLTE.css b/client/console/src/main/resources/META-INF/resources/css/AdminLTE.css index 147a648..2587b84 100644 --- a/client/console/src/main/resources/META-INF/resources/css/AdminLTE.css +++ b/client/console/src/main/resources/META-INF/resources/css/AdminLTE.css @@ -4360,3 +4360,7 @@ fieldset[disabled] .btn-vk.active { white-space: normal!important; } } + +i{ + margin-right: 5px; +} http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 1b8e565..3cfd680 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 @@ -17,129 +17,129 @@ * under the License. */ .feedbackPanel { - padding-left: 0px; - text-align: center; + padding-left: 0px; + text-align: center; } .notificationpanel_row { - list-style-type: none; + list-style-type: none; } .notificationpanel_row span { - border:0 none; + border:0 none; } pre { - white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */ - white-space: -pre-wrap; /* Opera */ - white-space: -o-pre-wrap; /* Opera */ - white-space: pre-wrap; /* CSS3 - Text module (Candidate Recommendation) http://www.w3.org/TR/css3-text/#white-space */ - word-wrap: break-word; /* IE 5.5+ */ + white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */ + white-space: -pre-wrap; /* Opera */ + white-space: -o-pre-wrap; /* Opera */ + white-space: pre-wrap; /* CSS3 - Text module (Candidate Recommendation) http://www.w3.org/TR/css3-text/#white-space */ + word-wrap: break-word; /* IE 5.5+ */ } #veil { - display:none; - position:absolute; - top:0; - left:0; - z-index:99999; - background-color:black; - width:100%; - height:20000px; - color:white; - opacity:0.3; - filter:alpha(opacity=30); + display:none; + position:absolute; + top:0; + left:0; + z-index:99999; + background-color:black; + width:100%; + height:20000px; + color:white; + opacity:0.3; + filter:alpha(opacity=30); } #veil img { - position:absolute; - top:300px; - left:50%; - margin-left:-75px; - width:150px; + position:absolute; + top:300px; + left:50%; + margin-left:-75px; + width:150px; } .block-sidebar { - max-height: 100%; - overflow: auto; - padding-top: 90px; - padding-bottom: 50px; - position: fixed; + max-height: 100%; + overflow: auto; + padding-top: 90px; + padding-bottom: 50px; + position: fixed; } .inner-control-sidebar { - position: fixed; - height: auto; + position: fixed; + height: auto; } .content-margin-layout { - margin: 0px 230px 0px 0px !important; - padding: 20px !important; + margin: 0px 230px 0px 0px !important; + padding: 20px !important; } .admin-content-page { - padding: 20px; - background: #ecf0f5 + padding: 20px; + background: #ecf0f5 } .realms { - min-height: 554px + min-height: 554px } .actions > li > a { - padding-top: 5px !important; - padding-bottom: 5px !important; + padding-top: 5px !important; + padding-bottom: 5px !important; } .block-header { - position: fixed; - width: 100%; - top: 0; + position: fixed; + width: 100%; + top: 0; } .block-footer { - position: fixed; - width: 100%; - bottom: 0px; + position: fixed; + width: 100%; + bottom: 0px; } .logo-pos { - padding-top: 4px !important; - overflow: visible !important; + padding-top: 4px !important; + overflow: visible !important; } .angle { - border: medium none !important; - cursor: pointer; - display: inline-table !important; - float: right; - height: 30px; - overflow: hidden; - position: relative !important; - right: 0; - top: -30px; - width: 25%; - z-index: 3; + border: medium none !important; + cursor: pointer; + display: inline-table !important; + float: right; + height: 30px; + overflow: hidden; + position: relative !important; + right: 0; + top: -30px; + width: 25%; + z-index: 3; } @media (min-width: 768px) { - .main-header .logo { - height: 54px; - } + .main-header .logo { + height: 54px; + } } .w_caption h3 { - font-size: 16px; + font-size: 16px; } div.wicket-modal div.w_content_3 { - border: 1px solid #eee; - border-radius: 20px; - padding: 5px; + border: 1px solid #eee; + border-radius: 20px; + padding: 5px; } .tab-content { - margin-bottom: 10px; - margin-top: 10px; + margin-bottom: 10px; + margin-top: 10px; } a.help { http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.html new file mode 100644 index 0000000..c48612f --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.html @@ -0,0 +1,118 @@ +<!-- +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:head> + <style> + div.group{ + width:450px; + } + + div.group div{ + width:150; + height: 25px; + float:left; + } + + div.group div input { + width: 30px; + } + + div#attributes-view { + display: block; + clear: both; + float: none; + overflow: auto; + margin-top: 0px; + margin-bottom: 20px; + margin-left: 10px; + margin-right: 10px; + } + + .submit{ + display: block; + clear: both; + float: none; + margin-left: 10px; + } + + span.grouplabel{ + display:block; + clear: both; + margin-left: 10px; + margin-bottom: 10px; + font-weight: bold; + } + </style> + </wicket:head> + <wicket:extend> + <form wicket:id="form"> + <div id="attributes-view"> + <p class="ui-widget ui-corner-all ui-widget-header"> + <wicket:message key="title"/> + </p> + + <span class="grouplabel"><wicket:message key="plainSchemas"/></span> + <span wicket:id="dCheckGroup"> + <div class="group"> + <div wicket:id="details"> + <input type="checkbox" wicket:id="dcheck"/> + <span wicket:id="dname">[schema name]</span> + </div> + </div> + </span> + + <span wicket:id="plainSchemas">[schemas]</span> + + <span wicket:id="dschemas">[derived schemas]</span> + + </div> + + <wicket:fragment wicket:id="sfragment"> + <span wicket:id="psCheckGroup"> + <div class="group"> + <div wicket:id="plainSchemas"> + <input type="checkbox" wicket:id="scheck"/> + <span wicket:id="sname">[schema name]</span> + </div> + </div> + </span> + </wicket:fragment> + + <wicket:fragment wicket:id="dsfragment"> + <span class="grouplabel"><wicket:message key="derSchemas"/></span> + <span wicket:id="dsCheckGroup"> + <div class="group"> + <div wicket:id="derSchemas"> + <input type="checkbox" wicket:id="dscheck"/> + <span wicket:id="dsname">[schema name]</span> + </div> + </div> + </span> + </wicket:fragment> + + <wicket:fragment wicket:id="emptyFragment"> + </wicket:fragment> + + <div class="submit"> + <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="submit"/> + <input type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="cancel"/> + </div> + </form> + </wicket:extend> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.properties new file mode 100644 index 0000000..2b5c573 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.properties @@ -0,0 +1,32 @@ +# 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. +title=Change display attributes +tooManySelections=Too many columns to be shown +plainSchemas=Plain attributes +derSchemas=Derived attributes + +firstname=Firstname +surname=Surname +userId=User Id +edit=Edit +delete=Delete +status=Status +token=Token +username=Username +creationDate=Creation Date +tokenValued=Valued +tokenNotValued=Not valued http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/pages/RealmModalPage.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/RealmModalPage.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/RealmModalPage.html new file mode 100644 index 0000000..e655aa1 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/RealmModalPage.html @@ -0,0 +1,70 @@ +<!-- +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"> + <head> + <title></title> + + <link href="webjars/bootstrap/${bootstrap.version}/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> + <link href="webjars/bootstrap-select/${bootstrap-select.version}/dist/css/bootstrap-select.min.css" rel="stylesheet" type="text/css" /> + <link href="webjars/font-awesome/${font-awesome.version}/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> + <link href="webjars/ionicons/${ionicons.version}/css/ionicons.min.css" rel="stylesheet" type="text/css" /> + <link href="css/AdminLTE.css" rel="stylesheet" type="text/css" /> + <link href="css/AdminLTE_skins/skin-green.css" rel="stylesheet" type="text/css" /> + <link href="css/syncopeConsole.css" rel="stylesheet" type="text/css" /> + <link href="css/fieldstyle.css" rel="stylesheet" type="text/css" /> + + <script type="text/javascript" src="webjars/jquery-ui/${jquery-ui.version}/jquery-ui.min.js"></script> + <script type="text/javascript" src="webjars/bootstrap/${bootstrap.version}/js/bootstrap.min.js"></script> + <script type="text/javascript" src="webjars/bootstrap-select/${bootstrap-select.version}/dist/js/bootstrap-select.min.js"></script> + <script type="text/javascript" src="js/AdminLTE-app.min.js"></script> + + <script type="text/javascript"> + var notificationShownTimes = 0; + + function showNotification(componentId, messagecount) { + notificationShownTimes++; + timeout = 1700 + (messagecount * 500) + notificationShownTimes * 200; + $('div#' + componentId).fadeTo('normal', 1.0); + setTimeout("$('div#" + componentId + "').fadeOut('normal')", timeout); + } + </script> + + <style type="text/css"> + table.palette td.header { + background:url("images/ui-bg_glass_75_e6e6e6_1x400.png") + repeat-x scroll 50% 50% #E6E6E6 !important; + } + </style> + </head> + <body onload="setTimeout('window.focus();', 0);"> + <div wicket:id="feedback"/> + <form data-example-id="simple-input-groups" class="bs-example bs-example-form" wicket:id="RealmForm"> + <wicket:container wicket:id="details"/> + <wicket:child /> + <div style="margin: 20px 10px 0"> + <input type="submit" + class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" + wicket:id="apply"/> + <input type="button" + class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" + wicket:id="cancel"/> + </div> + </form> + </body> +</html> http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 8a998cc..7eaf56d 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 @@ -30,10 +30,19 @@ under the License. </h3> <div class="box-tools pull-right"> <ul class="nav navbar-nav actions"> - <li><a href="#"><i class="fa fa-plus"></i></a></li> + <li> + <a href="#" wicket:id="createLink"> + <i class="fa fa-plus"></i> + </a> + </li> <li><a href="#"><i class="fa fa-minus"></i></a></li> - <li><a href="#"><i class="fa fa-pencil-square-o"></i></a></li> + <li> + <a href="#" wicket:id="edit"> + <i class="fa fa-pencil-square-o"></i> + </a> + </li> </ul> + <div wicket:id="editModal" ></div> </div><!-- /.box-tools --> </div><!-- /.box-header --> <div class="box-body"> http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/panels/AjaxDataTablePanel.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AjaxDataTablePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AjaxDataTablePanel.html index f67ba10..86b6359 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AjaxDataTablePanel.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AjaxDataTablePanel.html @@ -33,7 +33,7 @@ under the License. <div class="bulkAction"> <div class="bulkActionCell" style="width: 40px"> <a href="#" wicket:id="bulkActionLink"> - <img src="img/actions/bulk.png" alt="bulk action icon" title="Bulk action"/> + <i class="fa fa-gear" alt="bulk action icon" title="Bulk action"></i> </a> </div> </div> http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/panels/Any.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/Any.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/Any.html deleted file mode 100644 index 84340b5..0000000 --- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/Any.html +++ /dev/null @@ -1,29 +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. ---> -<!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"> - <body> - <wicket:panel> - <h1>ANY</h1> - </wicket:panel> - </body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeMenuItem.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeMenuItem.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeMenuItem.html new file mode 100644 index 0000000..9d9ed0e --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeMenuItem.html @@ -0,0 +1,29 @@ +<!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. +--> +<!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"> + <body> + <wicket:panel> + <a data-toggle="tab" wicket:id="tabLink"><span wicket:id="tabLabel"></span></a> + </wicket:panel> + </body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/console/src/main/resources/org/apache/syncope/client/console/panels/Realm.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/Realm.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/Realm.html index 29eaae3..a38698a 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/Realm.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/Realm.html @@ -23,68 +23,16 @@ under the License. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://xmlns.jcp.org/jsf/composite"> <body> <wicket:panel> - + <div class="tabbable tabs-left"> - <ul class="nav nav-tabs"> - <li class="active"> - <a data-toggle="tab" href="#lA">Details</a> - </li> - <li> - <a data-toggle="tab" href="#lB">Users</a> - </li> - <li> - <a data-toggle="tab" href="#lC">Groups</a> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - ANY - <b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <li><a data-toggle="tab" href="#lB">Users</a></li> - <li><a data-toggle="tab" href="#lC">Groups</a></li> - <li class="divider"></li> - <li class="nav-header">Others</li> - <li><a data-toggle="tab" href="#lD">Services</a></li> - <li><a data-toggle="tab" href="#lE">Service Roles</a></li> - <li><a data-toggle="tab" href="#lF">Enactment Engines</a></li> - <li><a data-toggle="tab" href="#lG">Contexts</a></li> - </ul> - </li> - <li> - <a data-toggle="tab" href="#lH">Account policy</a> - </li> - <li> - <a data-toggle="tab" href="#lI">Password policy</a> + <ul class="nav nav-tabs realm"> + <li wicket:id="anytype-menu"> + <wicket:container wicket:id="anytype-menuitem"/> </li> </ul> <div class="tab-content"> - <div id="lA" class="tab-pane active"> - <wicket:container wicket:id="details"/> - </div> - <div id="lB" class="tab-pane"> - <wicket:container wicket:id="users"/> - </div> - <div id="lC" class="tab-pane"> - <wicket:container wicket:id="groups"/> - </div> - <div id="lD" class="tab-pane"> - <wicket:container wicket:id="services"/> - </div> - <div id="lE" class="tab-pane"> - <wicket:container wicket:id="serviceRoles"/> - </div> - <div id="lF" class="tab-pane"> - <wicket:container wicket:id="enactmentEngine"/> - </div> - <div id="lG" class="tab-pane"> - <wicket:container wicket:id="contexts"/> - </div> - <div id="lH" class="tab-pane"> - <wicket:container wicket:id="accountPolicy"/> - </div> - <div id="lI" class="tab-pane"> - <wicket:container wicket:id="passwordPolicy"/> + <div class="tab-pane" wicket:id="anytype-content"> + <wicket:container wicket:id="anytype-contentitem"/> </div> </div> </div> http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 b8c3d27..f75f98d 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 @@ -23,23 +23,27 @@ under the License. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://xmlns.jcp.org/jsf/composite"> <body> <wicket:panel> + <div class="input-group"> + <span id="basic-addon1" class="input-group-addon">Name</span> + <input type="text" aria-describedby="basic-addon1" placeholder="name" class="form-control" wicket:id="name" /> + </div> <br /> - <form data-example-id="simple-input-groups" class="bs-example bs-example-form"> - <div class="input-group"> - <span id="basic-addon1" class="input-group-addon">Id</span> - <input type="text" aria-describedby="basic-addon1" placeholder="id" class="form-control" wicket:id="id" /> - </div> - <br /> - <div class="input-group"> - <span id="basic-addon1" class="input-group-addon">Name</span> - <input type="text" aria-describedby="basic-addon1" placeholder="name" class="form-control" wicket:id="name" /> - </div> - <br /> - <div class="input-group"> - <span id="basic-addon1" class="input-group-addon">Path</span> - <input type="text" aria-describedby="basic-addon1" placeholder="path" class="form-control" wicket:id="path" /> - </div> - </form> + <div class="input-group"> + <span id="basic-addon1" class="input-group-addon">Path</span> + <input type="text" aria-describedby="basic-addon1" placeholder="path" class="form-control" wicket:id="path" /> + </div> + <br /> + <div class="input-group"> + <span id="basic-addon1" class="input-group-addon">Account Policy</span> + <input type="text" aria-describedby="basic-addon1" placeholder="accountPolicy" class="form-control" + wicket:id="accountPolicy" /> + </div> + <br /> + <div class="input-group"> + <span id="basic-addon1" class="input-group-addon">Password Policy</span> + <input type="text" aria-describedby="basic-addon1" placeholder="passwordPolicy" class="form-control" + wicket:id="passwordPolicy" /> + </div> </wicket:panel> </body> </html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 cf51170..312cbba 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,7 +60,7 @@ under the License. </wicket:fragment> <wicket:fragment wicket:id="fragmentManageResources"> - <a href="#" wicket:id="manageResourcesLink"><img id="actionLink" src="img/actions/resources-icon.png" alt="manage resources icon" title="Manage resources"/></a> + <a href="#" wicket:id="manageResourcesLink"><i id="actionLink" class="fa fa-sitemap" alt="manage resources icon" title="Manage resources"></i></a> </wicket:fragment> <wicket:fragment wicket:id="fragmentManageUsers"> @@ -80,11 +80,11 @@ under the License. </wicket:fragment> <wicket:fragment wicket:id="fragmentEnable"> - <a href="#" wicket:id="enableLink"><img id="actionLink" src="img/actions/enable.png" alt="enable icon" title="Enable / Disable"/></a> + <a href="#" wicket:id="enableLink"><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"><img id="actionLink" src="img/actions/edit.png" alt="edit icon" title="Edit"/></a> + <a href="#" wicket:id="editLink"><i id="actionLink" class="fa fa-pencil" alt="edit icon" title="Edit"></i></a> </wicket:fragment> <wicket:fragment wicket:id="fragmentReset"> @@ -100,7 +100,7 @@ under the License. </wicket:fragment> <wicket:fragment wicket:id="fragmentDelete"> - <a href="#" wicket:id="deleteLink"><img id="actionLink" src="img/actions/delete.png" alt="delete icon" title="Delete"/></a> + <a href="#" wicket:id="deleteLink"><i id="actionLink" class="fa fa-remove" alt="delete icon" title="Delete"></i></a> </wicket:fragment> <wicket:fragment wicket:id="fragmentDryRun"> @@ -128,11 +128,11 @@ under the License. </wicket:fragment> <wicket:fragment wicket:id="fragmentReload"> - <a href="#" wicket:id="reloadLink"><img id="actionLink" src="img/actions/reload.png" alt="reload icon" title="Reload"/></a> + <a href="#" wicket:id="reloadLink"><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"><img id="actionLink" src="img/actions/settings-icon.png" alt="Change view icon" title="Change view"/></a> + <a href="#" wicket:id="changeViewLink"><i id="actionLink" class="fa fa-list" alt="Change view icon" title="Change view"></i></a> </wicket:fragment> <wicket:fragment wicket:id="fragmentUnlink"> http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/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 index d588a01..f4a6cea 100644 --- 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 @@ -57,7 +57,7 @@ public class DisplayAttributesModalPage extends BaseModalPage { */ private static final int MAX_SELECTIONS = 9; - public static final String[] DEFAULT_SELECTION = { "key", "username", "status" }; + public static final String[] DEFAULT_SELECTION = { "key", "username", "status" }; @SpringBean private PreferenceManager prefMan; http://git-wip-us.apache.org/repos/asf/syncope/blob/518f7bef/client/old_console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java ---------------------------------------------------------------------- diff --git a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java index 792f3bd..15119d3 100644 --- a/client/old_console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java +++ b/client/old_console/src/main/java/org/apache/syncope/client/console/pages/EditUserModalPage.java @@ -98,6 +98,6 @@ public class EditUserModalPage extends UserModalPage { @Override protected void closeAction(final AjaxRequestTarget target, final Form<?> form) { - setResponsePage(new ResultStatusModalPage.Builder(window, userTO).mode(mode).build()); + setResponsePage(new Realms.Builder(window, userTO).mode(mode).build()); } }
