Repository: syncope Updated Branches: refs/heads/master 7e5d38b71 -> a90672160
[SYNCOPE-1115] Now it is possible to display attributes for propagation tasks in Admin Console Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a9067216 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a9067216 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a9067216 Branch: refs/heads/master Commit: a9067216005f2daeec0d44e891a2c9f129febf5e Parents: 7e5d38b Author: skylark17 <matteo.alessandr...@tirasa.net> Authored: Fri Aug 4 15:40:57 2017 +0200 Committer: skylark17 <matteo.alessandr...@tirasa.net> Committed: Fri Aug 4 15:42:03 2017 +0200 ---------------------------------------------------------------------- .../console/tasks/AnyPropagationTasks.java | 11 ++- .../tasks/PropagationTaskDirectoryPanel.java | 16 +++- .../client/console/tasks/PropagationTasks.java | 10 +++ .../tasks/TaskAttributesDetailsView.java | 79 ++++++++++++++++++++ .../wicket/markup/html/form/ActionLink.java | 4 +- .../PropagationTaskDirectoryPanel.properties | 1 + .../PropagationTaskDirectoryPanel_it.properties | 1 + ...opagationTaskDirectoryPanel_pt_BR.properties | 1 + .../PropagationTaskDirectoryPanel_ru.properties | 1 + .../tasks/TaskAttributesDetailsView.html | 23 ++++++ .../markup/html/form/ActionPanel.properties | 8 ++ .../markup/html/form/ActionPanel_it.properties | 8 ++ .../html/form/ActionPanel_pt_BR.properties | 8 ++ .../markup/html/form/ActionPanel_ru.properties | 8 ++ .../syncope/fit/console/TopologyITCase.java | 2 +- 15 files changed, 177 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/java/org/apache/syncope/client/console/tasks/AnyPropagationTasks.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/AnyPropagationTasks.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/AnyPropagationTasks.java index 5193036..b3b004a 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/AnyPropagationTasks.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/AnyPropagationTasks.java @@ -32,7 +32,7 @@ import org.apache.wicket.model.StringResourceModel; public class AnyPropagationTasks extends AbstractPropagationTasks { private static final long serialVersionUID = -4013796607157549641L; - + public <T extends AnyTO> AnyPropagationTasks( final BaseModal<?> baseModal, final AnyTypeKind anyTypeKind, @@ -53,6 +53,15 @@ public class AnyPropagationTasks extends AbstractPropagationTasks { new TaskExecutionDetails<>(baseModal, taskTO, pageReference), target); } + + @Override + protected void viewTaskDetails(final PropagationTaskTO taskTO, final AjaxRequestTarget target) { + mlp.next( + new StringResourceModel("task.view.details", this, new Model<>(Pair.of(null, taskTO))). + getObject(), + new TaskAttributesDetailsView(baseModal, taskTO, pageReference), + target); + } }); add(mlp); } http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java index 614ebe3..0db71d5 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java @@ -127,7 +127,19 @@ public abstract class PropagationTaskDirectoryPanel PropagationTaskDirectoryPanel.this.getTogglePanel().close(target); viewTask(taskTO, target); } - }, ActionLink.ActionType.VIEW, StandardEntitlement.TASK_READ); + }, ActionLink.ActionType.VIEW_EXECUTIONS, StandardEntitlement.TASK_READ); + + // [SYNCOPE-1115] - Display attributes for propagation tasks + panel.add(new ActionLink<PropagationTaskTO>() { + + private static final long serialVersionUID = 9206257220553949594L; + + @Override + public void onClick(final AjaxRequestTarget target, final PropagationTaskTO modelObject) { + PropagationTaskDirectoryPanel.this.getTogglePanel().close(target); + viewTaskDetails(modelObject, target); + } + }, ActionLink.ActionType.VIEW_DETAILS, StandardEntitlement.TASK_READ); panel.add(new ActionLink<PropagationTaskTO>() { @@ -208,4 +220,6 @@ public abstract class PropagationTaskDirectoryPanel return tasks.iterator(); } } + + protected abstract void viewTaskDetails(PropagationTaskTO taskTO, AjaxRequestTarget target); } http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTasks.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTasks.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTasks.java index c4f3aeb..b1f4a20 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTasks.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTasks.java @@ -40,6 +40,7 @@ public class PropagationTasks extends AbstractPropagationTasks { super(BaseModal.CONTENT_ID); final MultilevelPanel tasks = new MultilevelPanel("tasks"); + tasks.setFirstLevel(new PropagationTaskDirectoryPanel(baseModal, tasks, resource, pageReference) { private static final long serialVersionUID = -2195387360323687302L; @@ -51,6 +52,15 @@ public class PropagationTasks extends AbstractPropagationTasks { new TaskExecutionDetails<>(baseModal, taskTO, pageReference), target); } + + @Override + protected void viewTaskDetails(final PropagationTaskTO taskTO, final AjaxRequestTarget target) { + tasks.next( + new StringResourceModel("task.view.details", this, new Model<>(Pair.of(null, taskTO))). + getObject(), + new TaskAttributesDetailsView(baseModal, taskTO, pageReference), + target); + } }); add(tasks); } http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java new file mode 100644 index 0000000..6ad4079 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java @@ -0,0 +1,79 @@ +/* + * 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.tasks; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.syncope.client.console.panels.MultilevelPanel; +import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; +import org.apache.syncope.client.console.wicket.markup.html.form.JsonEditorPanel; +import org.apache.syncope.common.lib.to.PropagationTaskTO; +import org.apache.wicket.PageReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.model.PropertyModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Task attributes details. + */ +public class TaskAttributesDetailsView extends MultilevelPanel.SecondLevel { + + private static final long serialVersionUID = -4110576026663173545L; + + private static final Logger LOG = LoggerFactory.getLogger(AnyPropagationTasks.class); + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + public TaskAttributesDetailsView(final BaseModal<?> baseModal, final PropagationTaskTO taskTO, + final PageReference pageRef) { + super(); + + Pair<String, String> info = Pair.of(taskTO.getEntityKey(), getJSONInfo(taskTO)); + JsonEditorPanel jsonPanel = + new JsonEditorPanel(null, new PropertyModel<String>(info, "value"), true, + null) { + + private static final long serialVersionUID = -8927036362466990179L; + + @Override + public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { + modal.close(target); + } + }; + + add(jsonPanel); + + } + + private String getJSONInfo(final PropagationTaskTO taskTO) { + String json = ""; + try { + JsonNode list = MAPPER.readTree(taskTO.getAttributes()); + json = MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(list); + } catch (IOException ex) { + LOG.error("Error converting objects to JSON", ex); + } + + return json; + } +} http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java index 3de74f8..9e55595 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLink.java @@ -95,7 +95,9 @@ public abstract class ActionLink<T extends Serializable> implements Serializable NOTIFICATION_TASKS("read"), ZOOM_IN("zoomin"), ZOOM_OUT("zoomout"), - WORKFLOW_MODELER("workflowModeler"); + WORKFLOW_MODELER("workflowModeler"), + VIEW_EXECUTIONS("read"), + VIEW_DETAILS("read"); private final String actionId; http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties index d06158d..aa8e1c3 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties @@ -19,4 +19,5 @@ anyTypeKind=Object Type entityKey=Local ID connObjectKey=Remote ID task.view=${right.operation} ${right.objectClassName} +task.view.details=Attributes detail resource=Resource http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties index 71a1e85..4f76954 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties @@ -19,4 +19,5 @@ anyTypeKind=Tipo Oggetto entityKey=ID Locale connObjectKey=ID Remoto task.view=${right.operation} ${right.objectClassName} +task.view.details=Dettaglio degli attributi resource=risorsa http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties index 4e2efd0..0d545e7 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties @@ -19,4 +19,5 @@ anyTypeKind=Object Type entityKey=Local ID connObjectKey=Remote ID task.view=${right.operation} ${right.objectClassName} +task.view.details=Detalhes dos atributos resource=Recurso http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_ru.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_ru.properties index 593eb12..baab4ad 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_ru.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_ru.properties @@ -20,4 +20,5 @@ anyTypeKind=\u041e\u0431\u044a\u0435\u043a\u0442 entityKey=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 connObjectKey=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0435 task.view=${right.operation} ${right.objectClassName} +task.view.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 resource=Pecypce http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.html b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.html new file mode 100644 index 0000000..f6f3a66 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.html @@ -0,0 +1,23 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> + <wicket:panel> + <div wicket:id="content"></div> + </wicket:panel> +</html> http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.properties index eaf9bda..994ab1c 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel.properties @@ -86,6 +86,14 @@ view.class=fa fa-eye view.title=view view.alt=view icon +view_executions.class=fa fa-eye +view_executions.title=view executions +view_executions.alt=view executions icon + +view_details.class=fa fa-info-circle +view_details.title=view details +view_details.alt=view details icon + members.class=fa fa-users members.title=members members.alt=members icon http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_it.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_it.properties index 0351275..70ca259 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_it.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_it.properties @@ -86,6 +86,14 @@ view.class=fa fa-eye view.title=view view.alt=view icon +view_executions.class=fa fa-eye +view_executions.title=view executions +view_executions.alt=view executions icon + +view_details.class=fa fa-info-circle +view_details.title=view details +view_details.alt=view details icon + members.class=fa fa-users members.title=members members.alt=members icon http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_pt_BR.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_pt_BR.properties index 0351275..70ca259 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_pt_BR.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_pt_BR.properties @@ -86,6 +86,14 @@ view.class=fa fa-eye view.title=view view.alt=view icon +view_executions.class=fa fa-eye +view_executions.title=view executions +view_executions.alt=view executions icon + +view_details.class=fa fa-info-circle +view_details.title=view details +view_details.alt=view details icon + members.class=fa fa-users members.title=members members.alt=members icon http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_ru.properties ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_ru.properties index 0351275..70ca259 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_ru.properties +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionPanel_ru.properties @@ -86,6 +86,14 @@ view.class=fa fa-eye view.title=view view.alt=view icon +view_executions.class=fa fa-eye +view_executions.title=view executions +view_executions.alt=view executions icon + +view_details.class=fa fa-info-circle +view_details.title=view details +view_details.alt=view details icon + members.class=fa fa-users members.title=members members.alt=members icon http://git-wip-us.apache.org/repos/asf/syncope/blob/a9067216/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java index d2da2e2..67afad7 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java @@ -356,7 +356,7 @@ public class TopologyITCase extends AbstractConsoleITCase { TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK); TESTER.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:" + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:" - + "actions:actions:actionRepeater:1:action:action"); + + "actions:actions:actionRepeater:2:action:action"); TESTER.clickLink("body:topologyLI:topology");