[SYNCOPE-156] Added the management of AnyTypeClasses
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/e6e2a471 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/e6e2a471 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/e6e2a471 Branch: refs/heads/master Commit: e6e2a4718f534240d97b64152b55041449f2ce90 Parents: 444182f Author: Marco Di Sabatino Di Diodoro <[email protected]> Authored: Fri Nov 20 15:22:03 2015 +0100 Committer: Marco Di Sabatino Di Diodoro <[email protected]> Committed: Fri Nov 20 15:22:14 2015 +0100 ---------------------------------------------------------------------- .../syncope/client/console/pages/BasePage.java | 8 +- .../syncope/client/console/pages/Schemas.java | 141 ------------- .../syncope/client/console/pages/Types.java | 202 +++++++++++++++++++ .../console/panels/AnyTypeClassDetails.java | 104 ++++++++++ .../console/panels/AnyTypeClassModalPanel.java | 87 ++++++++ .../console/panels/AnyTypeClassesPanel.java | 144 ++++++++++++- .../client/console/panels/AnyTypePanel.java | 33 +++ .../client/console/panels/SchemaModalPanel.java | 2 +- .../client/console/panels/SchemasPanel.java | 1 - .../markup/html/form/AjaxPalettePanel.java | 94 +++++++-- .../wicket/markup/html/form/NonI18nPalette.java | 11 + .../client/console/wizards/any/AuxClasses.java | 46 ++--- .../client/console/wizards/any/Resources.java | 37 ++-- .../client/console/wizards/any/Roles.java | 17 +- .../syncope/client/console/pages/BasePage.html | 2 +- .../syncope/client/console/pages/Schemas.html | 54 ----- .../client/console/pages/Schemas.properties | 18 -- .../client/console/pages/Schemas_it.properties | 18 -- .../console/pages/Schemas_pt_BR.properties | 18 -- .../syncope/client/console/pages/Types.html | 56 +++++ .../client/console/pages/Types.properties | 18 ++ .../client/console/pages/Types_it.properties | 18 ++ .../client/console/pages/Types_pt_BR.properties | 18 ++ .../console/panels/AnyTypeClassDetails.html | 57 ++++++ .../panels/AnyTypeClassDetails.properties | 20 ++ .../panels/AnyTypeClassDetails_it.properties | 20 ++ .../panels/AnyTypeClassDetails_pt_BR.properties | 20 ++ .../console/panels/AnyTypeClassModalPanel.html | 32 +++ .../console/panels/AnyTypeClassesPanel.html | 56 +++++ .../panels/AnyTypeClassesPanel.properties | 19 ++ .../panels/AnyTypeClassesPanel_it.properties | 19 ++ .../panels/AnyTypeClassesPanel_pt_BR.properties | 19 ++ 32 files changed, 1085 insertions(+), 324 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java index 16c7151..f77233e 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java @@ -84,11 +84,11 @@ public class BasePage extends AbstractBasePage implements IAjaxIndicatorAware { WebMarkupContainer confULContainer = new WebMarkupContainer(getULContainerId("configuration")); confLIContainer.add(confULContainer); - liContainer = new WebMarkupContainer(getLIContainerId("schemas")); + liContainer = new WebMarkupContainer(getLIContainerId("types")); confULContainer.add(liContainer); - BookmarkablePageLink<Page> schemaLink = new BookmarkablePageLink<>("schemas", Schemas.class); -// MetaDataRoleAuthorizationStrategy.authorize(schemaLink, WebPage.ENABLE, StandardEntitlement.SCHEMA_LIST); - liContainer.add(schemaLink); + BookmarkablePageLink<Page> typesLink = new BookmarkablePageLink<>("types", Types.class); + MetaDataRoleAuthorizationStrategy.authorize(typesLink, WebPage.ENABLE, StandardEntitlement.SCHEMA_LIST); + liContainer.add(typesLink); liContainer = new WebMarkupContainer(getLIContainerId("workflow")); confULContainer.add(liContainer); http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/pages/Schemas.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Schemas.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Schemas.java deleted file mode 100644 index 0e8b408..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Schemas.java +++ /dev/null @@ -1,141 +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 de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel; -import java.util.ArrayList; -import java.util.List; -import org.apache.syncope.client.console.SyncopeConsoleSession; -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.panels.SchemasPanel; -import org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink; -import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; -import org.apache.syncope.common.lib.to.AbstractSchemaTO; -import org.apache.wicket.PageReference; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; -import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; -import org.apache.wicket.extensions.markup.html.tabs.ITab; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.panel.EmptyPanel; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.syncope.client.console.panels.SchemaModalPanel; -import org.apache.syncope.common.lib.types.StandardEntitlement; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; - -public class Schemas extends BasePage { - - private static final long serialVersionUID = 8091922398776299403L; - - private final BaseModal<AbstractSchemaTO> modal; - - public Schemas(final PageParameters parameters) { - super(parameters); - - this.modal = new BaseModal<>("modal"); - - final WebMarkupContainer content = new WebMarkupContainer("content"); - content.add(new Label("header", "AnyTypeClasses/Schemas")); - content.setOutputMarkupId(true); - content.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList(getPageReference()))); - content.add(buildCreateSchemaLink()); - add(content); - - modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { - - private static final long serialVersionUID = 8804221891699487139L; - - @Override - public void onClose(final AjaxRequestTarget target) { - target.add(); - modal.show(false); - - if (((AbstractBasePage) Schemas.this.getPage()).isModalResult()) { - info(getString(Constants.OPERATION_SUCCEEDED)); - feedbackPanel.refresh(target); - ((AbstractBasePage) Schemas.this.getPage()).setModalResult(false); - } - } - }); - - add(modal); - - } - - private List<ITab> buildTabList(final PageReference pageReference) { - - final List<ITab> tabs = new ArrayList<>(); - - tabs.add(new AbstractTab(new Model<>("AnyTypeClasses")) { - - private static final long serialVersionUID = -6815067322125799251L; - - @Override - public Panel getPanel(final String panelId) { -// final AnyTypeClassesPanel objectClassesPanel = -// new AnyTypeClassesPanel(panelId, getPageReference(), false); -// objectClassesPanel.setEnabled(false); -// return objectClassesPanel; - return new EmptyPanel(panelId); - } - }); - - tabs.add(new AbstractTab(new Model<>("Schemas")) { - - private static final long serialVersionUID = -6815067322125799251L; - - @Override - public Panel getPanel(final String panelId) { - return new SchemasPanel(panelId, getPageReference(), modal); - } - }); - - return tabs; - } - - private AjaxLink<Void> buildCreateSchemaLink() { - - final AjaxLink<Void> createLink = new ClearIndicatingAjaxLink<Void>("createSchemaLink", getPageReference()) { - - private static final long serialVersionUID = -7978723352517770644L; - - @Override - protected void onClickInternal(final AjaxRequestTarget target) { - modal.header(new ResourceModel("createSchema")); - - final SchemaModalPanel panel = new SchemaModalPanel(modal, getPageReference(), true); - - target.add(modal.setContent(panel)); - modal.addSumbitButton(); - modal.show(true); - } - }; - - if (SyncopeConsoleSession.get().owns(StandardEntitlement.SCHEMA_CREATE)) { - MetaDataRoleAuthorizationStrategy.authorize(createLink, ENABLE, StandardEntitlement.SCHEMA_CREATE); - } - - return createLink; - } -} http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java new file mode 100644 index 0000000..8c710b7 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Types.java @@ -0,0 +1,202 @@ +/* + * 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 de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel; +import java.util.ArrayList; +import java.util.List; +import org.apache.syncope.client.console.SyncopeConsoleSession; +import org.apache.syncope.client.console.commons.Constants; +import org.apache.syncope.client.console.panels.AnyTypeClassModalPanel; +import org.apache.syncope.client.console.panels.AnyTypeClassesPanel; +import org.apache.syncope.client.console.panels.ModalPanel; +import org.apache.syncope.client.console.panels.SchemasPanel; +import org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink; +import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; +import org.apache.syncope.common.lib.to.AbstractSchemaTO; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; +import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; +import org.apache.wicket.extensions.markup.html.tabs.ITab; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.ResourceModel; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.syncope.client.console.panels.SchemaModalPanel; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.lib.to.AnyTypeTO; +import org.apache.syncope.common.lib.to.PlainSchemaTO; +import org.apache.syncope.common.lib.types.StandardEntitlement; +import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; +import org.apache.wicket.markup.html.panel.EmptyPanel; + +public class Types extends BasePage { + + private static final long serialVersionUID = 8091922398776299403L; + + private final BaseModal<AbstractSchemaTO> schemaModal; + + private final BaseModal<AnyTypeClassTO> anyTypeClassModal; + + private final BaseModal<AnyTypeTO> anyTypeModal; + + private final AjaxBootstrapTabbedPanel<ITab> tabbedPanel; + + private enum Type { + SCHEMA, + ANYTYPECLASS, + ANYTYPE, + RELATIONSHIPTYPE; + } + + public Types(final PageParameters parameters) { + super(parameters); + + this.schemaModal = new BaseModal<>("schemaModal"); + this.anyTypeClassModal = new BaseModal<>("anyTypeClassModal"); + this.anyTypeModal = new BaseModal<>("anyTypeModal"); + + final WebMarkupContainer content = new WebMarkupContainer("content"); + content.add(new Label("header", "Types")); + content.setOutputMarkupId(true); + tabbedPanel = new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList()); + content.add(tabbedPanel); + + final AjaxLink<Void> createSchemaLink = + buildCreateLink("createSchema", schemaModal, Type.SCHEMA); + content.add(createSchemaLink); + + if (SyncopeConsoleSession.get().owns(StandardEntitlement.SCHEMA_CREATE)) { + MetaDataRoleAuthorizationStrategy.authorize(createSchemaLink, ENABLE, StandardEntitlement.SCHEMA_CREATE); + } + + final AjaxLink<Void> createAnyTypeClassLink = + buildCreateLink("createAnyTypeClass", anyTypeClassModal, Type.ANYTYPECLASS); + content.add(createAnyTypeClassLink); + + if (SyncopeConsoleSession.get().owns(StandardEntitlement.ANYTYPECLASS_CREATE)) { + MetaDataRoleAuthorizationStrategy.authorize( + createSchemaLink, ENABLE, StandardEntitlement.ANYTYPECLASS_CREATE); + } + + add(content); + addWindowWindowClosedCallback(schemaModal); + addWindowWindowClosedCallback(anyTypeClassModal); + addWindowWindowClosedCallback(anyTypeModal); + add(schemaModal); + add(anyTypeClassModal); + add(anyTypeModal); + } + + private List<ITab> buildTabList() { + + final List<ITab> tabs = new ArrayList<>(); + + tabs.add(new AbstractTab(new Model<>("AnyTypes")) { + + private static final long serialVersionUID = -6815067322125799251L; + + @Override + public Panel getPanel(final String panelId) { + //return new AnyTypePanel(panelId, getPageReference(), anyTypeModal); + return new EmptyPanel(panelId); + } + }); + + tabs.add(new AbstractTab(new Model<>("AnyTypeClasses")) { + + private static final long serialVersionUID = -6815067322125799251L; + + @Override + public Panel getPanel(final String panelId) { + return new AnyTypeClassesPanel(panelId, getPageReference(), anyTypeClassModal); + } + }); + + tabs.add(new AbstractTab(new Model<>("Schemas")) { + + private static final long serialVersionUID = -6815067322125799251L; + + @Override + public Panel getPanel(final String panelId) { + return new SchemasPanel(panelId, getPageReference(), schemaModal); + } + }); + + return tabs; + } + + private AjaxLink<Void> buildCreateLink(final String label, final BaseModal<?> modal, final Type type) { + + final AjaxLink<Void> createLink = new ClearIndicatingAjaxLink<Void>(label, getPageReference()) { + + private static final long serialVersionUID = -7978723352517770644L; + + @Override + protected void onClickInternal(final AjaxRequestTarget target) { + modal.header(new ResourceModel(label)); + target.add(modal.setContent(buildModalPanel(type))); + modal.addSumbitButton(); + modal.show(true); + } + }; + + return createLink; + } + + private ModalPanel buildModalPanel(final Type type) { + final ModalPanel panel; + switch (type) { + case ANYTYPECLASS: + anyTypeClassModal.setFormModel(new AnyTypeClassTO()); + panel = new AnyTypeClassModalPanel(anyTypeClassModal, getPageReference(), true); + break; + case ANYTYPE: + case RELATIONSHIPTYPE: + case SCHEMA: + default: + schemaModal.setFormModel(new PlainSchemaTO()); + panel = new SchemaModalPanel(schemaModal, getPageReference(), true); + } + return panel; + } + + private void addWindowWindowClosedCallback(final BaseModal<?> modal) { + modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { + + private static final long serialVersionUID = 8804221891699487139L; + + @Override + public void onClose(final AjaxRequestTarget target) { + tabbedPanel.setSelectedTab(tabbedPanel.getSelectedTab()); + target.add(tabbedPanel); + modal.show(false); + + if (((AbstractBasePage) Types.this.getPage()).isModalResult()) { + info(getString(Constants.OPERATION_SUCCEEDED)); + feedbackPanel.refresh(target); + ((AbstractBasePage) Types.this.getPage()).setModalResult(false); + } + } + }); + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetails.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetails.java new file mode 100644 index 0000000..1b0206e --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassDetails.java @@ -0,0 +1,104 @@ +/* + * 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.util.List; +import org.apache.syncope.client.console.SyncopeConsoleSession; +import org.apache.syncope.client.console.rest.SchemaRestClient; +import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePanel; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.rest.api.service.AnyTypeClassService; +import org.apache.wicket.markup.html.TransparentWebMarkupContainer; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.model.util.ListModel; + +public class AnyTypeClassDetails extends Panel { + + private static final long serialVersionUID = 3321861543207340469L; + + private final AnyTypeClassTO anyTypeClassTO; + + private final SchemaRestClient schemaRestClient = new SchemaRestClient(); + + private final List<String> availablePlainSchemas = schemaRestClient.getPlainSchemaNames(); + + private final List<String> availableDerSchemas = schemaRestClient.getDerSchemaNames(); + + private final List<String> availableVirSchemas = schemaRestClient.getVirSchemaNames(); + + public AnyTypeClassDetails(final String id, + final AnyTypeClassTO anyTypeClassTO, final boolean edit) { + super(id); + + this.anyTypeClassTO = anyTypeClassTO; + buildAvailableSchemas(anyTypeClassTO.getKey()); + + final TransparentWebMarkupContainer container = new TransparentWebMarkupContainer("container"); + container.setOutputMarkupId(true); + add(container); + + final AjaxPalettePanel<String> plainSchema = + new AjaxPalettePanel.Builder<String>() + .setAllowOrder(true) + .setAllowMoveAll(true) + .build("plainSchemas", + new PropertyModel<List<String>>(this.anyTypeClassTO, "plainSchemas"), + new ListModel<>(availablePlainSchemas)); + + plainSchema.setOutputMarkupId(true); + plainSchema.setEnabled(edit); + container.add(plainSchema); + + final AjaxPalettePanel<String> derSchema = + new AjaxPalettePanel.Builder<String>() + .setAllowOrder(true) + .setAllowMoveAll(true) + .build("derSchemas", + new PropertyModel<List<String>>(this.anyTypeClassTO, "derSchemas"), + new ListModel<>(availableDerSchemas)); + + derSchema.setOutputMarkupId(true); + derSchema.setEnabled(edit); + container.add(derSchema); + + final AjaxPalettePanel<String> virSchema = + new AjaxPalettePanel.Builder<String>() + .setAllowOrder(true) + .setAllowMoveAll(true) + .build("virSchemas", + new PropertyModel<List<String>>(this.anyTypeClassTO, "virSchemas"), + new ListModel<>(availableVirSchemas)); + + virSchema.setOutputMarkupId(true); + virSchema.setEnabled(edit); + container.add(virSchema); + } + + private void buildAvailableSchemas(final String key) { + + for (AnyTypeClassTO item : SyncopeConsoleSession.get().getService(AnyTypeClassService.class).list()) { + if (key == null || !item.getKey().equals(key)) { + availablePlainSchemas.removeAll(item.getPlainSchemas()); + availableDerSchemas.removeAll(item.getDerSchemas()); + availableVirSchemas.removeAll(item.getVirSchemas()); + } + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java new file mode 100644 index 0000000..6df508f --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.java @@ -0,0 +1,87 @@ +/* + * 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.syncope.client.console.SyncopeConsoleSession; +import org.apache.syncope.client.console.commons.Constants; +import org.apache.syncope.client.console.pages.AbstractBasePage; +import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; +import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.rest.api.service.AnyTypeClassService; +import org.apache.wicket.PageReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.model.CompoundPropertyModel; +import org.apache.wicket.model.PropertyModel; + +public class AnyTypeClassModalPanel extends AbstractModalPanel { + + private static final long serialVersionUID = 1086997609984272599L; + + private final AnyTypeClassTO anyTypeClassTO; + + private final boolean createFlag; + + public AnyTypeClassModalPanel( + final BaseModal<AnyTypeClassTO> modal, + final PageReference pageRef, + final boolean createFlag) { + super(modal, pageRef); + + this.anyTypeClassTO = modal.getFormModel(); + this.createFlag = createFlag; + + final Form<AnyTypeClassTO> antTypeClassForm = new Form<>("form"); + antTypeClassForm.setModel(new CompoundPropertyModel<>(anyTypeClassTO)); + antTypeClassForm.setOutputMarkupId(true); + + final AjaxTextFieldPanel key = + new AjaxTextFieldPanel("key", getString("key"), new PropertyModel<String>(anyTypeClassTO, "key")); + key.addRequiredLabel(); + key.setEnabled(anyTypeClassTO.getKey() == null || anyTypeClassTO.getKey().isEmpty()); + antTypeClassForm.add(key); + + antTypeClassForm.add(new AnyTypeClassDetails("details", anyTypeClassTO, true)); + add(antTypeClassForm); + } + + @Override + public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { + + try { + final AnyTypeClassTO updatedAnyTypeClassTO = AnyTypeClassTO.class.cast(form.getModelObject()); + + if (createFlag) { + SyncopeConsoleSession.get().getService(AnyTypeClassService.class).create(updatedAnyTypeClassTO); + } else { + SyncopeConsoleSession.get().getService(AnyTypeClassService.class).update(updatedAnyTypeClassTO); + } + + if (pageRef.getPage() instanceof AbstractBasePage) { + ((AbstractBasePage) pageRef.getPage()).setModalResult(true); + } + modal.close(target); + } catch (Exception e) { + LOG.error("While creating or updating AnyTypeClass", e); + error(getString(Constants.ERROR) + ": " + e.getMessage()); + modal.getFeedbackPanel().refresh(target); + } + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java index 2d1c07f..28a9fab 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java @@ -18,15 +18,155 @@ */ package org.apache.syncope.client.console.panels; +import java.io.Serializable; +import java.util.List; +import org.apache.syncope.client.console.SyncopeConsoleSession; +import org.apache.syncope.client.console.commons.Constants; +import org.apache.syncope.client.console.pages.AbstractBasePage; +import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; +import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksPanel; +import org.apache.syncope.common.lib.to.AnyTypeClassTO; +import org.apache.syncope.common.lib.types.StandardEntitlement; +import org.apache.syncope.common.rest.api.service.AnyTypeClassService; import org.apache.wicket.PageReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.form.IChoiceRenderer; +import org.apache.wicket.markup.html.form.ListChoice; import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class AnyTypeClassesPanel extends Panel { private static final long serialVersionUID = -2356760296223908382L; - public AnyTypeClassesPanel(final String id, final PageReference pageReference, final boolean unwraped) { + private static final Logger LOG = LoggerFactory.getLogger(AnyTypeClassesPanel.class); + + private final ListChoice<AnyTypeClassTO> anyTypeClasses; + + private AnyTypeClassDetails anyTypeClassesDetails; + + public AnyTypeClassesPanel(final String id, final PageReference pageRef, final BaseModal<AnyTypeClassTO> modal) { super(id); + + this.setOutputMarkupId(true); + + final WebMarkupContainer container = new WebMarkupContainer("container"); + container.setOutputMarkupId(true); + add(container); + + anyTypeClasses = new ListChoice<AnyTypeClassTO>( + "anyTypeClasses", new Model<AnyTypeClassTO>(), + SyncopeConsoleSession.get().getService(AnyTypeClassService.class).list()) { + + private static final long serialVersionUID = 4022366881854379834L; + + @Override + protected CharSequence getDefaultChoice(final String selectedValue) { + return null; + } + }; + + anyTypeClasses.setChoiceRenderer(new IChoiceRenderer<AnyTypeClassTO>() { + + private static final long serialVersionUID = 1048000918946220007L; + + @Override + public Object getDisplayValue(final AnyTypeClassTO object) { + return object.getKey(); + } + + @Override + public String getIdValue(final AnyTypeClassTO object, final int index) { + return object.getKey(); + } + + @Override + public AnyTypeClassTO getObject(final String id, + final IModel<? extends List<? extends AnyTypeClassTO>> choices) { + for (AnyTypeClassTO item : choices.getObject()) { + if (item.getKey().equals(id)) { + return item; + } + } + return null; + } + }); + + anyTypeClasses.setNullValid(true); + container.add(anyTypeClasses); + + updateAnyTypeClassDetails(new AnyTypeClassTO(), false); + container.add(anyTypeClassesDetails); + + anyTypeClasses.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { + + private static final long serialVersionUID = -1107858522700306810L; + + @Override + protected void onUpdate(final AjaxRequestTarget target) { + updateAnyTypeClassDetails(anyTypeClasses.getModelObject(), true); + container.addOrReplace(anyTypeClassesDetails); + target.add(container); + } + }); + + final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(pageRef); + actionLinks.setDisableIndicator(true); + actionLinks.addWithRoles(new ActionLink<Serializable>() { + + private static final long serialVersionUID = -3722207913631435501L; + + @Override + public void onClick(final AjaxRequestTarget target, final Serializable ignore) { + if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) { + modal.header(Model.of(anyTypeClasses.getModelObject().getKey())); + modal.setFormModel(anyTypeClasses.getModelObject()); + modal.addSumbitButton(); + modal.show(true); + target.add(modal.setContent(new AnyTypeClassModalPanel(modal, pageRef, false))); + } + } + }, ActionLink.ActionType.EDIT, StandardEntitlement.ANYTYPECLASS_UPDATE).addWithRoles( + new ActionLink<Serializable>() { + + private static final long serialVersionUID = -3722207913631435501L; + + @Override + public void onClick(final AjaxRequestTarget target, final Serializable ignore) { + try { + if (anyTypeClasses != null && anyTypeClasses.getModelObject() != null) { + SyncopeConsoleSession.get() + .getService(AnyTypeClassService.class).delete(anyTypeClasses.getModelObject().getKey()); + anyTypeClasses.setModelObject(null); + anyTypeClasses.setChoices(SyncopeConsoleSession.get().getService(AnyTypeClassService.class). + list()); + target.add(anyTypeClasses); + target.add(updateAnyTypeClassDetails(new AnyTypeClassTO(), true)); + info(getString(Constants.OPERATION_SUCCEEDED)); + } + } catch (Exception e) { + LOG.error("While deleting AnyTypeClass", e); + error(getString(Constants.ERROR) + ": " + e.getMessage()); + } + ((AbstractBasePage) pageRef.getPage()).getFeedbackPanel().refresh(target); + } + }, ActionLink.ActionType.DELETE, StandardEntitlement.ANYTYPECLASS_DELETE); + + container.add(actionLinks.build("editRemove")); + } + + private Panel updateAnyTypeClassDetails(final AnyTypeClassTO anyTypeClassTO, final boolean visible) { + anyTypeClassesDetails = new AnyTypeClassDetails("anyTypeClassesDetails", anyTypeClassTO, false); + anyTypeClassesDetails.setOutputMarkupId(true); + anyTypeClassesDetails.setOutputMarkupPlaceholderTag(true); + anyTypeClassesDetails.setVisible(visible); + anyTypeClassesDetails.setEnabled(false); + return anyTypeClassesDetails; } - } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java new file mode 100644 index 0000000..bbf73a7 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypePanel.java @@ -0,0 +1,33 @@ +/* + * 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.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; +import org.apache.syncope.common.lib.to.AnyTypeTO; +import org.apache.wicket.PageReference; +import org.apache.wicket.markup.html.panel.Panel; + +public class AnyTypePanel extends Panel { + + private static final long serialVersionUID = 3905038169553185171L; + + public AnyTypePanel(final String id, final PageReference pageReference, final BaseModal<AnyTypeTO> modal) { + super(id); + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java index 2f589cc..f822471 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemaModalPanel.java @@ -90,7 +90,7 @@ public class SchemaModalPanel extends AbstractModalPanel { if (createFlag) { try { - Class<? extends AbstractSchemaTO> schemaTOClass = schemaType.getToClass(); + final Class<? extends AbstractSchemaTO> schemaTOClass = schemaType.getToClass(); modal.setFormModel((AbstractSchemaTO) schemaTOClass.newInstance()); } catch (InstantiationException | IllegalAccessException ex) { LOG.error("SchemaType not found", ex); http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java index a449044..6792b9c 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/SchemasPanel.java @@ -121,7 +121,6 @@ public class SchemasPanel extends Panel { final Collapsible collapsible = new Collapsible("collapsePanel", buildTabList()); collapsible.setOutputMarkupId(true); add(collapsible); - } private List<ITab> buildTabList() { http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java index bb86e7f..33b04da 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxPalettePanel.java @@ -18,11 +18,15 @@ */ package org.apache.syncope.client.console.wicket.markup.html.form; +import java.io.Serializable; import java.util.Collection; import java.util.List; +import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.form.palette.Palette; +import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.ResourceModel; import org.apache.wicket.model.util.ListModel; public class AjaxPalettePanel<T> extends AbstractFieldPanel<List<T>> { @@ -31,30 +35,38 @@ public class AjaxPalettePanel<T> extends AbstractFieldPanel<List<T>> { protected final Palette<T> palette; - public AjaxPalettePanel(final String id, final IModel<List<T>> model, final ListModel<T> choices) { - this(id, model, choices, false); - } - - public AjaxPalettePanel(final String id, final IModel<List<T>> model, final ListModel<T> choices, - final boolean allowOrder) { - - this(id, model, choices, new SelectChoiceRenderer<T>(), allowOrder, false); - } - - public AjaxPalettePanel(final String id, final IModel<List<T>> model, final ListModel<T> choices, - final IChoiceRenderer<T> renderer, final boolean allowOrder, final boolean allowMoveAll) { + public AjaxPalettePanel(final String id, + final IModel<List<T>> model, final ListModel<T> choices, + final IChoiceRenderer<T> renderer, final boolean allowOrder, + final boolean allowMoveAll, final String availableLabel, final String selectedLabel) { super(id, id, model); - this.palette = createPalette(model, choices, renderer, allowOrder, allowMoveAll); + this.palette = createPalette(model, choices, renderer, allowOrder, allowMoveAll, availableLabel, selectedLabel); add(palette.setOutputMarkupId(true)); setOutputMarkupId(true); } - protected final Palette<T> createPalette(final IModel<List<T>> model, final ListModel<T> choices, - final IChoiceRenderer<T> renderer, final boolean allowOrder, final boolean allowMoveAll) { + protected final Palette<T> createPalette( + final IModel<List<T>> model, final ListModel<T> choices, + final IChoiceRenderer<T> renderer, + final boolean allowOrder, final boolean allowMoveAll, + final String availableLabel, final String selectedLabel) { + + return new NonI18nPalette<T>("paletteField", model, choices, renderer, 8, allowOrder, allowMoveAll) { - return new NonI18nPalette<>("paletteField", model, choices, renderer, 8, allowOrder, allowMoveAll); + private static final long serialVersionUID = -3074655279011678437L; + + @Override + protected Component newAvailableHeader(final String componentId) { + return new Label(componentId, new ResourceModel("palette.available", availableLabel)); + } + + @Override + protected Component newSelectedHeader(final String componentId) { + return new Label(componentId, new ResourceModel("palette.selected", selectedLabel)); + } + }; } @Override @@ -66,4 +78,54 @@ public class AjaxPalettePanel<T> extends AbstractFieldPanel<List<T>> { public Collection<T> getModelCollection() { return palette.getModelCollection(); } + + public static class Builder<T extends Serializable> { + + private IChoiceRenderer<T> renderer; + + private boolean allowOrder; + + private boolean allowMoveAll; + + private String selectedLabel; + + private String availableLabel; + + public Builder() { + this.allowMoveAll = false; + this.allowOrder = false; + this.renderer = new SelectChoiceRenderer<>(); + } + + public Builder<T> setAllowOrder(final boolean allowOrder) { + this.allowOrder = allowOrder; + return this; + } + + public Builder<T> setAllowMoveAll(final boolean allowMoveAll) { + this.allowMoveAll = allowMoveAll; + return this; + } + + public Builder<T> setSelectedLabel(final String selectedLabel) { + this.selectedLabel = selectedLabel; + return this; + } + + public Builder<T> setAvailableLabel(final String availableLabel) { + this.availableLabel = availableLabel; + return this; + } + + public Builder<T> setRenderer(final IChoiceRenderer<T> renderer) { + this.renderer = renderer; + return this; + } + + public AjaxPalettePanel<T> build( + final String id, final IModel<List<T>> model, final ListModel<T> choices) { + return new AjaxPalettePanel<>(id, model, + choices, renderer, allowOrder, allowMoveAll, availableLabel, selectedLabel); + } + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/NonI18nPalette.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/NonI18nPalette.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/NonI18nPalette.java index 3a923d5..b705f59 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/NonI18nPalette.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/NonI18nPalette.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.wicket.markup.html.form; import java.util.Collection; +import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.form.palette.Palette; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.model.IModel; @@ -40,4 +41,14 @@ public class NonI18nPalette<T> extends Palette<T> { protected boolean localizeDisplayValues() { return false; } + + @Override + protected Component newAvailableHeader(final String componentId) { + return super.newAvailableHeader(componentId); + } + + @Override + protected Component newSelectedHeader(final String componentId) { + return super.newSelectedHeader(componentId); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java index e63a70e..6e612b6 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AuxClasses.java @@ -61,16 +61,17 @@ public class AuxClasses extends WizardStep { ? UserTO.class.cast(entityTO).getMemberships() : AnyObjectTO.class.cast(entityTO).getMemberships(); - fragment.add(new AjaxPalettePanel<>( - "groups", - new ListModel<String>(CollectionUtils.collect(memberships, + fragment.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true) + .build( + "groups", + new ListModel<String>(CollectionUtils.collect(memberships, new Transformer<MembershipTO, String>() { - @Override - public String transform(final MembershipTO input) { - return String.format("[%d] %s", input.getRightKey(), input.getGroupName()); - } - }, new ArrayList<String>())) { + @Override + public String transform(final MembershipTO input) { + return String.format("[%d] %s", input.getRightKey(), input.getGroupName()); + } + }, new ArrayList<String>())) { private static final long serialVersionUID = 1L; @@ -94,38 +95,37 @@ public class AuxClasses extends WizardStep { } return new MembershipTO.Builder().left(entityTO.getType(), entityTO.getKey()). - group(groupKey, groupName).build(); + group(groupKey, groupName).build(); } }, memberships); } }, - new ListModel<>(CollectionUtils.collect(groupRestClient.list( - entityTO.getRealm(), -1, -1, new SortParam<>("name", true), null), + new ListModel<>(CollectionUtils.collect(groupRestClient.list( + entityTO.getRealm(), -1, -1, new SortParam<>("name", true), null), new Transformer<GroupTO, String>() { - @Override - public String transform(final GroupTO input) { - return String.format("[%d] %s", input.getKey(), input.getName()); - } - }, new ArrayList<String>())), - true).setOutputMarkupId(true)); + @Override + public String transform(final GroupTO input) { + return String.format("[%d] %s", input.getKey(), input.getName()); + } + }, new ArrayList<String>()))).setOutputMarkupId(true)); } add(fragment); final List<String> current = Arrays.asList(anyTypeClass); - final List<String> choices = new ArrayList<String>(); + final List<String> choices = new ArrayList<>(); for (AnyTypeClassTO aux : AnyTypeRestClient.getAllAnyTypeClass()) { if (!current.contains(aux.getKey())) { choices.add(aux.getKey()); } } - add(new AjaxPalettePanel<>( - "auxClasses", - new PropertyModel<List<String>>(entityTO, "auxClasses"), - new ListModel<>(choices), - true).setOutputMarkupId(true)); + add(new AjaxPalettePanel.Builder<String>(). + setAllowOrder(true) + .build("auxClasses", + new PropertyModel<List<String>>(entityTO, "auxClasses"), + new ListModel<>(choices)).setOutputMarkupId(true)); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java index 8f9a362..86ad35f 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Resources.java @@ -37,30 +37,29 @@ public class Resources extends WizardStep { public <T extends AnyTO> Resources(final T entityTO) { this.setOutputMarkupId(true); - add(new AjaxPalettePanel<>("resources", + add(new AjaxPalettePanel.Builder<String>().build("resources", new PropertyModel<List<String>>(entityTO, "resources") { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - @Override - public List<String> getObject() { - return new ArrayList<>(entityTO.getResources()); - } + @Override + public List<String> getObject() { + return new ArrayList<>(entityTO.getResources()); + } + + @Override + public void setObject(final List<String> object) { + entityTO.getResources().clear(); + entityTO.getResources().addAll(object); + } + }, new ListModel<>(CollectionUtils.collect( + ResourceRestClient.getAll(), + new Transformer<ResourceTO, String>() { @Override - public void setObject(final List<String> object) { - entityTO.getResources().clear(); - entityTO.getResources().addAll(object); + public String transform(final ResourceTO input) { + return input.getKey(); } - }, - new ListModel<>(CollectionUtils.collect( - ResourceRestClient.getAll(), - new Transformer<ResourceTO, String>() { - - @Override - public String transform(final ResourceTO input) { - return input.getKey(); - } - }, new ArrayList<String>()))).setOutputMarkupId(true)); + }, new ArrayList<String>()))).setOutputMarkupId(true)); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java index 179783a..e5f500b 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java @@ -38,16 +38,17 @@ public class Roles extends WizardStep { public <T extends AnyTO> Roles(final UserTO entityTO) { this.setOutputMarkupId(true); - add(new AjaxPalettePanel<>("roles", - new PropertyModel<List<String>>(entityTO, "roles"), - new ListModel<>(CollectionUtils.collect( + add(new AjaxPalettePanel.Builder<String>() + .build("roles", + new PropertyModel<List<String>>(entityTO, "roles"), + new ListModel<>(CollectionUtils.collect( RoleRestClient.getAll(), new Transformer<RoleTO, String>() { - @Override - public String transform(final RoleTO input) { - return input.getKey(); - } - }, new ArrayList<String>()))).setOutputMarkupId(true)); + @Override + public String transform(final RoleTO input) { + return input.getKey(); + } + }, new ArrayList<String>()))).setOutputMarkupId(true)); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html index 755a846..243ee5f 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html @@ -116,7 +116,7 @@ under the License. <li wicket:id="workflowLI"><a href="#" wicket:id="workflow"><i class="fa fa-circle-o"></i>Workflow</a></li> <li><a href="#"><i class="fa fa-circle-o"></i>Logs</a></li> <li><a href="#"><i class="fa fa-circle-o"></i>Layouts</a></li> - <li wicket:id="schemasLI"><a href="#" wicket:id="schemas"><i class="fa fa-circle-o"></i><wicket:message key="types"/></a></li> + <li wicket:id="typesLI"><a href="#" wicket:id="types"><i class="fa fa-circle-o"></i><wicket:message key="types"/></a></li> <li><a href="#"><i class="fa fa-circle-o"></i>Notifications</a></li> </ul> </li> http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.html deleted file mode 100644 index d16dd64..0000000 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> - <wicket:extend> - <div class="wrapper"> - <div class="admin-content-page" wicket:id="content"> - <div class="box box-solid box-primary"> - <div class="box-header with-border"> - <h3 class="box-title"> - <span wicket:id="header"></span> - </h3> - <div class="box-tools pull-right"> - <ul class="nav navbar-nav actions"> - <li> - <a wicket:message="title:createAnyTypeClass"><!-- <a wicket:id="createAnyTypeClassLink">--> - <i class="glyphicon glyphicon-duplicate"></i> - </a> - </li> - <li> - <a wicket:message="title:createSchema" wicket:id="createSchemaLink"> - <i class="glyphicon glyphicon-list-alt"></i> - </a> - </li> - </ul> - </div> - </div> - <div class="box-body"> - <div class="realms"> - <div wicket:id="tabbedPanel"></div> - </div> - </div> - </div> - </div> - </div> - <div wicket:id="modal"></div> - </wicket:extend> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.properties deleted file mode 100644 index 9defe37..0000000 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas.properties +++ /dev/null @@ -1,18 +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. -createSchema=Create new schema -createAnyTypeClass=Create new AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_it.properties deleted file mode 100644 index e9994ec..0000000 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_it.properties +++ /dev/null @@ -1,18 +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. -createSchema=Crea un nuovo schema -createAnyTypeClass=Crea un nuovo AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_pt_BR.properties deleted file mode 100644 index 1d42eb5..0000000 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Schemas_pt_BR.properties +++ /dev/null @@ -1,18 +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. -createSchema=Cria um novo schema -createAnyTypeClass=Cria um novo AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html new file mode 100644 index 0000000..3dc2364 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> + <wicket:extend> + <div class="wrapper"> + <div class="admin-content-page" wicket:id="content"> + <div class="box box-solid box-primary"> + <div class="box-header with-border"> + <h3 class="box-title"> + <span wicket:id="header"></span> + </h3> + <div class="box-tools pull-right"> + <ul class="nav navbar-nav actions"> + <li> + <a wicket:message="title:createAnyTypeClass" wicket:id="createAnyTypeClass"> + <i class="glyphicon glyphicon-duplicate"></i> + </a> + </li> + <li> + <a wicket:message="title:createSchema" wicket:id="createSchema"> + <i class="glyphicon glyphicon-list-alt"></i> + </a> + </li> + </ul> + </div> + </div> + <div class="box-body"> + <div class="realms"> + <div wicket:id="tabbedPanel"></div> + </div> + </div> + </div> + </div> + </div> + <div wicket:id="schemaModal"></div> + <div wicket:id="anyTypeClassModal"></div> + <div wicket:id="anyTypeModal"></div> + </wicket:extend> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.properties new file mode 100644 index 0000000..9defe37 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +createSchema=Create new schema +createAnyTypeClass=Create new AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_it.properties new file mode 100644 index 0000000..e9994ec --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_it.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +createSchema=Crea un nuovo schema +createAnyTypeClass=Crea un nuovo AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_pt_BR.properties new file mode 100644 index 0000000..1d42eb5 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Types_pt_BR.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +createSchema=Cria um novo schema +createAnyTypeClass=Cria um novo AnyTypeClass http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.html new file mode 100644 index 0000000..cfa9d7e --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.html @@ -0,0 +1,57 @@ +<!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://wicket.apache.org"> + <wicket:panel> + <span wicket:id="container"> + <div class="box"> + <div class="box-header with-border"> + <h3 class="box-title"><wicket:message key="plainSchemas"/></h3> + </div> + <div class="box-body"> + <div id="group-forum"> + <span wicket:id="plainSchemas">[plainSchemas]</span> + </div> + </div> + </div> + <div class="box"> + <div class="box-header with-border"> + <h3 class="box-title"><wicket:message key="derSchemas"/></h3> + </div> + <div class="box-body"> + <div id="group-forum"> + <span wicket:id="derSchemas">[derSchemas]</span> + </div> + </div> + </div> + <div class="box"> + <div class="box-header with-border"> + <h3 class="box-title"><wicket:message key="virSchemas"/></h3> + </div> + <div class="box-body"> + <div id="group-forum"> + <span wicket:id="virSchemas">[virSchemas]</span> + </div> + </div> + </div> + </span> + </wicket:panel> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.properties new file mode 100644 index 0000000..835d123 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails.properties @@ -0,0 +1,20 @@ +# 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. + +plainSchemas=Plain Schemas +derSchemas=Derived Schemas +virSchemas=Virtual Schemas http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_it.properties new file mode 100644 index 0000000..835d123 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_it.properties @@ -0,0 +1,20 @@ +# 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. + +plainSchemas=Plain Schemas +derSchemas=Derived Schemas +virSchemas=Virtual Schemas http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_pt_BR.properties new file mode 100644 index 0000000..835d123 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassDetails_pt_BR.properties @@ -0,0 +1,20 @@ +# 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. + +plainSchemas=Plain Schemas +derSchemas=Derived Schemas +virSchemas=Virtual Schemas http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.html new file mode 100644 index 0000000..ea82eb3 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassModalPanel.html @@ -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. +--> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> + <wicket:panel> + <div class="form-group"> + <form wicket:id="form"> + <div class="form-group"> + <span wicket:id="key">[key]</span> + </div> + <div class="form-group"> + <span wicket:id="details">[details]</span> + </div> + </form> + </div> + </wicket:panel> +</html> http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.html new file mode 100644 index 0000000..0fec0c7 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.html @@ -0,0 +1,56 @@ +<!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> + <span wicket:id="container"> + <div class="col-md-4"> + <div class="box"> + <div class="box-header with-border"> + <h3 class="box-title"><wicket:message key="anyTypeClasses"/></h3> + </div> + <div class="box-body"> + <div class="row"> + <div class="col-md-8"> + <div class="form-group"> + <label><wicket:message key="select"/></label> + <select wicket:id="anyTypeClasses" class="form-control"></select> + </div> + </div> + <div class="col-md-1" style="padding-top: 20px"> + <div class="form-group"> + <div id="actionButtons" style="padding-top: 5px;"> + <span wicket:id="editRemove"/> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="col-md-8" style="float:right"> + <span wicket:id="anyTypeClassesDetails">[anyTypeClassesDetails]</span> + </div> + </span> + </wicket:panel> + </body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.properties new file mode 100644 index 0000000..6438ab9 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.properties @@ -0,0 +1,19 @@ +# 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. +select=Select + +anyTypeClasses=AnyTypeClasses http://git-wip-us.apache.org/repos/asf/syncope/blob/e6e2a471/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel_it.properties new file mode 100644 index 0000000..8b1b519 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/AnyTypeClassesPanel_it.properties @@ -0,0 +1,19 @@ +# 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. +select=Seleziona + +anyTypeClasses=AnyTypeClasses
