You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/01/20 17:33:31 UTC
[2/3] syncope git commit: [SYNCOPE-156] Modernizing workflow page
[SYNCOPE-156] Modernizing workflow page
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/de9c213b
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/de9c213b
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/de9c213b
Branch: refs/heads/master
Commit: de9c213baaf098e5ade455c6775e4ccc70f1495a
Parents: 77fa0f6
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Jan 20 17:31:40 2016 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Jan 20 17:31:40 2016 +0100
----------------------------------------------------------------------
.../syncope/client/console/pages/Workflow.java | 61 +----------
.../client/console/panels/TogglePanel.java | 8 +-
.../console/panels/WorkflowTogglePanel.java | 108 +++++++++++++++++++
.../client/console/topology/Topology.java | 2 +-
.../console/topology/TopologyTogglePanel.java | 6 +-
.../syncope/client/console/pages/Workflow.html | 26 +----
.../client/console/panels/TogglePanel.html | 2 +-
.../console/panels/WorkflowTogglePanel.html | 49 +++++++++
.../console/topology/TopologyTogglePanel.html | 2 +-
9 files changed, 170 insertions(+), 94 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
index 95fb238..01135ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java
@@ -18,24 +18,13 @@
*/
package org.apache.syncope.client.console.pages;
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-import org.apache.syncope.client.console.panels.XMLWorkflowEditorModalPanel;
-import java.io.File;
-import org.apache.syncope.client.console.SyncopeConsoleApplication;
+import org.apache.syncope.client.console.panels.WorkflowTogglePanel;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.PrimaryModalButton;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wicket.markup.html.link.VeilPopupSettings;
import org.apache.syncope.common.lib.types.StandardEntitlement;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.model.Model;
-import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.DynamicImageResource;
import org.apache.wicket.request.resource.IResource;
@@ -62,44 +51,6 @@ public class Workflow extends BasePage {
workflowDef.setVisible(false);
}
- BookmarkablePageLink<Void> activitiModeler =
- new BookmarkablePageLink<>("activitiModeler", ActivitiModelerPopupPage.class);
- activitiModeler.setPopupSettings(new VeilPopupSettings().setHeight(600).setWidth(800));
- MetaDataRoleAuthorizationStrategy.authorize(activitiModeler, ENABLE, StandardEntitlement.WORKFLOW_DEF_READ);
- workflowDef.add(activitiModeler);
- // Check if Activiti Modeler directory is found
- boolean activitiModelerEnabled = false;
- try {
- File baseDir = new File(SyncopeConsoleApplication.get().getActivitiModelerDirectory());
- activitiModelerEnabled = baseDir.exists() && baseDir.canRead() && baseDir.isDirectory();
- } catch (Exception e) {
- LOG.error("Could not check for Activiti Modeler directory", e);
- }
- activitiModeler.setEnabled(activitiModelerEnabled);
-
- final BaseModal<String> xmlEditorModal = new BaseModal<>("xmlEditorModal");
- PrimaryModalButton xmlEditorSubmit = xmlEditorModal.addSumbitButton();
- MetaDataRoleAuthorizationStrategy.authorize(xmlEditorSubmit, ENABLE, StandardEntitlement.WORKFLOW_DEF_UPDATE);
- xmlEditorModal.size(Modal.Size.Large);
- add(xmlEditorModal);
-
- AjaxLink<Void> xmlEditor = new AjaxLink<Void>("xmlEditor") {
-
- private static final long serialVersionUID = -1964967067512351526L;
-
- @Override
- public void onClick(final AjaxRequestTarget target) {
- target.add(xmlEditorModal.setContent(new XMLWorkflowEditorModalPanel(
- xmlEditorModal, wfRestClient, Workflow.this.getPageReference())));
-
- xmlEditorModal.header(new ResourceModel("xmlEditorTitle"));
-
- xmlEditorModal.show(true);
- }
- };
- MetaDataRoleAuthorizationStrategy.authorize(xmlEditor, ENABLE, StandardEntitlement.WORKFLOW_DEF_READ);
- workflowDef.add(xmlEditor);
-
final Image workflowDefDiagram = new Image("workflowDefDiagram", new Model<IResource>()) {
private static final long serialVersionUID = -8457850449086490660L;
@@ -122,15 +73,7 @@ public class Workflow extends BasePage {
workflowDefDiagram.setOutputMarkupId(true);
workflowDef.add(workflowDefDiagram);
- xmlEditorModal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
-
- private static final long serialVersionUID = 8804221891699487139L;
-
- @Override
- public void onClose(final AjaxRequestTarget target) {
- target.add(workflowDefDiagram);
- }
- });
+ add(new WorkflowTogglePanel("togglePanel", getPageReference(), workflowDefDiagram));
MetaDataRoleAuthorizationStrategy.authorize(workflowDef, ENABLE, StandardEntitlement.WORKFLOW_DEF_READ);
add(workflowDef);
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
index 208a802..23bd786 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/TogglePanel.java
@@ -28,8 +28,10 @@ import org.apache.wicket.markup.html.panel.Panel;
/**
* Toggle panel.
+ *
+ * @param <T>
*/
-public abstract class TogglePanel extends Panel {
+public abstract class TogglePanel<T extends Serializable> extends Panel {
private static final long serialVersionUID = -2025535531121434056L;
@@ -39,7 +41,7 @@ public abstract class TogglePanel extends Panel {
}
- protected final BaseModal<Serializable> modal;
+ protected final BaseModal<T> modal;
private Status status = Status.INACTIVE;
@@ -50,7 +52,7 @@ public abstract class TogglePanel extends Panel {
setRenderBodyOnly(true);
setOutputMarkupId(true);
- this.modal = new BaseModal<Serializable>("resource-modal");
+ this.modal = new BaseModal<>("resource-modal");
add(modal);
header = new Label("label", StringUtils.EMPTY);
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
new file mode 100644
index 0000000..7993076
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/WorkflowTogglePanel.java
@@ -0,0 +1,108 @@
+/*
+ * 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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import java.io.File;
+import org.apache.syncope.client.console.SyncopeConsoleApplication;
+import org.apache.syncope.client.console.pages.ActivitiModelerPopupPage;
+import org.apache.syncope.client.console.rest.WorkflowRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.buttons.PrimaryModalButton;
+import org.apache.syncope.client.console.wicket.markup.html.link.VeilPopupSettings;
+import org.apache.syncope.common.lib.types.StandardEntitlement;
+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.ajax.markup.html.modal.ModalWindow;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.model.ResourceModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class WorkflowTogglePanel extends TogglePanel<String> {
+
+ private static final long serialVersionUID = -2025535531121434056L;
+
+ private static final Logger LOG = LoggerFactory.getLogger(WorkflowTogglePanel.class);
+
+ private final WebMarkupContainer container;
+
+ private final PageReference pageRef;
+
+ private final Image workflowDefDiagram;
+
+ public WorkflowTogglePanel(final String id, final PageReference pageRef, final Image workflowDefDiagram) {
+ super(id);
+ this.pageRef = pageRef;
+ this.workflowDefDiagram = workflowDefDiagram;
+
+ modal.size(Modal.Size.Large);
+
+ container = new WebMarkupContainer("container");
+ container.setOutputMarkupPlaceholderTag(true);
+ add(container);
+
+ BookmarkablePageLink<Void> activitiModeler =
+ new BookmarkablePageLink<>("activitiModeler", ActivitiModelerPopupPage.class);
+ activitiModeler.setPopupSettings(new VeilPopupSettings().setHeight(600).setWidth(800));
+ MetaDataRoleAuthorizationStrategy.authorize(activitiModeler, ENABLE, StandardEntitlement.WORKFLOW_DEF_READ);
+ container.add(activitiModeler);
+ // Check if Activiti Modeler directory is found
+ boolean activitiModelerEnabled = false;
+ try {
+ File baseDir = new File(SyncopeConsoleApplication.get().getActivitiModelerDirectory());
+ activitiModelerEnabled = baseDir.exists() && baseDir.canRead() && baseDir.isDirectory();
+ } catch (Exception e) {
+ LOG.error("Could not check for Activiti Modeler directory", e);
+ }
+ activitiModeler.setEnabled(activitiModelerEnabled);
+
+ PrimaryModalButton xmlEditorSubmit = modal.addSumbitButton();
+ MetaDataRoleAuthorizationStrategy.authorize(xmlEditorSubmit, ENABLE, StandardEntitlement.WORKFLOW_DEF_UPDATE);
+ modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
+
+ private static final long serialVersionUID = 8804221891699487139L;
+
+ @Override
+ public void onClose(final AjaxRequestTarget target) {
+ target.add(workflowDefDiagram);
+ }
+ });
+
+ AjaxLink<Void> xmlEditor = new AjaxLink<Void>("xmlEditor") {
+
+ private static final long serialVersionUID = -1964967067512351526L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+ target.add(modal.setContent(new XMLWorkflowEditorModalPanel(modal, new WorkflowRestClient(), pageRef)));
+
+ modal.header(new ResourceModel("xmlEditorTitle"));
+
+ modal.show(true);
+ }
+ };
+ MetaDataRoleAuthorizationStrategy.authorize(xmlEditor, ENABLE, StandardEntitlement.WORKFLOW_DEF_READ);
+ container.add(xmlEditor);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index cc74ac8..1d4b1ab 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -325,7 +325,7 @@ public class Topology extends BasePage {
final ConnInstanceTO conn = item.getModelObject();
final TopologyNode topologynode = new TopologyNode(
- Long.valueOf(conn.getKey()), conn.getDisplayName(), TopologyNode.Kind.CONNECTOR);
+ conn.getKey(), conn.getDisplayName(), TopologyNode.Kind.CONNECTOR);
// Define the parent note
final TopologyNode parent = servers.get(conn.getLocation());
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index 68a111e..ad62deb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -19,6 +19,7 @@
package org.apache.syncope.client.console.topology;
import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import java.io.Serializable;
import java.text.MessageFormat;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.pages.BasePage;
@@ -46,10 +47,7 @@ import org.apache.wicket.model.ResourceModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * Toggle panel.
- */
-public class TopologyTogglePanel extends TogglePanel {
+public class TopologyTogglePanel extends TogglePanel<Serializable> {
private static final long serialVersionUID = -2025535531121434056L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Workflow.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Workflow.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Workflow.html
index 56bb31d..5a49ee8 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Workflow.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Workflow.html
@@ -24,35 +24,11 @@ under the License.
<div>
<span wicket:id="noActivitiEnabledForUsers"><i><wicket:message key="noActivitiEnabledForUsers"/></i></span>
<span wicket:id="workflowDefContainer">
- <div style="float: left;">
- <button wicket:id="activitiModeler" style="width: 122px">
- <div style="display: table-row;">
- <div style="display: table-cell">
- <i class="fa fa-file-image-o fa-4x"></i>
- </div>
- <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
- Activiti Modeler
- </div>
- </div>
- </button>
- </div>
- <div>
- <button wicket:id="xmlEditor" style="width: 122px">
- <div style="display: table-row;">
- <div style="display: table-cell">
- <i class="fa fa-file-text-o fa-4x"></i>
- </div>
- <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
- XML editor
- </div>
- </div>
- </button>
- </div>
<img wicket:id="workflowDefDiagram" style="width: 100%;"/>
</span>
</div>
</section>
- <div wicket:id="xmlEditorModal"/>
+ <span wicket:id="togglePanel"/>
</wicket:extend>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
index f42367b..326f697 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
@@ -45,7 +45,7 @@ under the License.
top: 130px;
width: auto;
min-width: 250px;
- z-index: 6000;
+ z-index: 999;
}
div.topology-menu ul.menu {
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/resources/org/apache/syncope/client/console/panels/WorkflowTogglePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/WorkflowTogglePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/WorkflowTogglePanel.html
new file mode 100644
index 0000000..9cbe6ba
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/WorkflowTogglePanel.html
@@ -0,0 +1,49 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+ <head><title>toggle menu</title></head>
+ <body>
+ <wicket:head>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $("div.inactive-topology-menu").toggle("slow");
+ $("div.inactive-topology-menu").attr("class", "topology-menu active-topology-menu");
+ });
+ </script>
+
+ <style type="text/css">
+ div.topology-menu {
+ top: 65px !important;
+ }
+
+ div.topology-menu div.header {
+ display: none !important;
+ }
+ </style>
+ </wicket:head>
+ <wicket:extend>
+ <div wicket:id="container">
+ <ul class="menu">
+ <li><i class="fa fa-file-image-o"></i><a href="#" wicket:id="activitiModeler">Activiti Modeler</a></li>
+ <li><i class="fa fa-file-text-o"></i><a href="#" wicket:id="xmlEditor">XML editor</a></li>
+ </ul>
+ </div>
+ </wicket:extend>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/de9c213b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
index fb861a4..5cd694b 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyTogglePanel.html
@@ -16,7 +16,7 @@ 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://xmlns.jcp.org/jsf/composite">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<head><title>toggle menu</title></head>
<body>
<wicket:extend>