syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fmarte...@apache.org
Subject syncope git commit: [SYNCOPE-743] provides startAt integration feature. Still missing integration tests in order to close the issue
Date Thu, 04 Feb 2016 18:01:39 GMT
Repository: syncope
Updated Branches:
  refs/heads/master adebf7a48 -> 5cb879bab


[SYNCOPE-743] provides startAt integration feature. Still missing integration tests in order
to close the issue


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/5cb879ba
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/5cb879ba
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/5cb879ba

Branch: refs/heads/master
Commit: 5cb879bab2bacc3ebfcf906ebc8a3cf1b084a6c0
Parents: adebf7a
Author: fmartelli <fabio.martelli@gmail.com>
Authored: Thu Feb 4 19:01:01 2016 +0100
Committer: fmartelli <fabio.martelli@gmail.com>
Committed: Thu Feb 4 19:01:01 2016 +0100

----------------------------------------------------------------------
 .../client/console/panels/ResourceModal.java    |   1 -
 .../client/console/panels/TogglePanel.java      |  90 +++++++++++++---
 .../console/panels/WorkflowTogglePanel.java     |  15 +--
 .../tasks/SchedTaskSearchResultPanel.java       |  20 ++--
 .../console/tasks/StartAtTogglePanel.java       | 105 +++++++++++++++++++
 .../console/topology/TopologyTogglePanel.java   |  84 ++++++++-------
 .../META-INF/resources/css/syncopeConsole.css   |   4 +-
 .../client/console/panels/TogglePanel.html      |  24 ++---
 .../tasks/SchedTaskSearchResultPanel.html       |  24 +++++
 .../console/tasks/StartAtTogglePanel.html       |  60 +++++++++++
 .../console/tasks/StartAtTogglePanel.properties |  17 +++
 .../tasks/StartAtTogglePanel_it.properties      |  17 +++
 .../tasks/StartAtTogglePanel_pt_BR.properties   |  17 +++
 13 files changed, 390 insertions(+), 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
index f649ee0..ceaa322 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
@@ -68,7 +68,6 @@ public class ResourceModal<T extends Serializable> extends AbstractResourceModal
             final boolean createFlag) {
 
         super(modal, pageRef);
-
         this.createFlag = createFlag;
 
         //--------------------------------

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/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 23bd786..0df1e8b 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
@@ -19,12 +19,22 @@
 package org.apache.syncope.client.console.panels;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
+import org.apache.syncope.client.console.commons.Constants;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Toggle panel.
@@ -35,40 +45,93 @@ public abstract class TogglePanel<T extends Serializable> extends
Panel {
 
     private static final long serialVersionUID = -2025535531121434056L;
 
+    protected static final Logger LOG = LoggerFactory.getLogger(TogglePanel.class);
+
     private enum Status {
         INACTIVE,
         ACTIVE
 
     }
 
-    protected final BaseModal<T> modal;
+    private final WebMarkupContainer container;
 
     private Status status = Status.INACTIVE;
 
     private final Label header;
 
+    private List<Component> outherObjects = new ArrayList<>();
+
     public TogglePanel(final String id) {
         super(id);
         setRenderBodyOnly(true);
         setOutputMarkupId(true);
 
-        this.modal = new BaseModal<>("resource-modal");
-        add(modal);
+        container = new WebMarkupContainer("togglePanelContainer");
+        add(container.setMarkupId(id));
 
         header = new Label("label", StringUtils.EMPTY);
         header.setOutputMarkupId(true);
-        add(header);
+        container.add(header);
 
-        add(new AjaxLink<Void>("close") {
+        container.add(new AjaxLink<Void>("close") {
 
             private static final long serialVersionUID = 5538299138211283825L;
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                TogglePanel.this.toggle(target, false);
+                toggle(target, false);
+            }
+
+        }.add(new AjaxEventBehavior(Constants.ON_CLICK) {
+
+            private static final long serialVersionUID = -9027652037484739586L;
+
+            @Override
+            protected String findIndicatorId() {
+                return StringUtils.EMPTY;
+            }
+
+            @Override
+            protected void onEvent(final AjaxRequestTarget target) {
+                // do nothing
+            }
+        }));
+
+        add(new ListView<Component>("outherObjectsRepeater", outherObjects) {
+
+            private static final long serialVersionUID = -9180479401817023838L;
+
+            @Override
+            protected void populateItem(final ListItem<Component> item) {
+                item.add(item.getModelObject());
             }
 
-        }.setMarkupId("close"));
+        });
+
+    }
+
+    /**
+     * Add object outside the main container.
+     * Use this method just to be not influenced by specific inner object css'.
+     * Be sure to provide <tt>outher</tt> as id.
+     *
+     * @param childs components to be added.
+     * @return the current panel instance.
+     */
+    public TogglePanel<T> addOutherObject(final Component... childs) {
+        outherObjects.addAll(Arrays.asList(childs));
+        return this;
+    }
+
+    /**
+     * Add object inside the main container.
+     *
+     * @param childs components to be added.
+     * @return the current panel instance.
+     */
+    public TogglePanel<T> addInnerObject(final Component... childs) {
+        container.addOrReplace(childs);
+        return this;
     }
 
     protected void setHeader(final AjaxRequestTarget target, final String header) {
@@ -83,15 +146,18 @@ public abstract class TogglePanel<T extends Serializable> extends
Panel {
      * @param toggle toggle action.
      */
     public void toggle(final AjaxRequestTarget target, final boolean toggle) {
+        final String selector = String.format("$(\"div#%s\")", getId());
         if (toggle) {
             if (status == Status.INACTIVE) {
-                target.appendJavaScript("$(\"div.inactive-topology-menu\").toggle(\"slow\");"
-                        + "$(\"div.inactive-topology-menu\").attr(\"class\", \"topology-menu
active-topology-menu\");");
+                target.appendJavaScript(
+                        selector + ".toggle(\"slow\");"
+                        + selector + ".attr(\"class\", \"topology-menu active-topology-menu\");");
                 status = Status.ACTIVE;
             }
         } else if (status == Status.ACTIVE) {
-            target.appendJavaScript("$(\"div.active-topology-menu\").toggle(\"slow\");"
-                    + "$(\"div.active-topology-menu\").attr(\"class\", \"topology-menu inactive-topology-menu\");");
+            target.appendJavaScript(
+                    selector + ".toggle(\"slow\");"
+                    + selector + ".attr(\"class\", \"topology-menu inactive-topology-menu\");");
             status = Status.INACTIVE;
         }
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/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
index dc877f0..f7bdc96 100644
--- 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
@@ -24,6 +24,7 @@ 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.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.PageReference;
@@ -35,27 +36,27 @@ 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;
 
+    protected final BaseModal<String> modal;
+
     public WorkflowTogglePanel(final String id, final PageReference pageRef, final Image
workflowDefDiagram) {
         super(id);
+        modal = new BaseModal<>("outher");
+        addOutherObject(modal);
         modal.size(Modal.Size.Large);
 
         container = new WebMarkupContainer("container");
         container.setOutputMarkupPlaceholderTag(true);
-        add(container);
+        addInnerObject(container);
 
-        BookmarkablePageLink<Void> activitiModeler =
-                new BookmarkablePageLink<>("activitiModeler", ActivitiModelerPopupPage.class);
+        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);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.java
b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.java
index c253494..9661b17 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.java
@@ -66,6 +66,8 @@ public abstract class SchedTaskSearchResultPanel<T extends SchedTaskTO>
extends
 
     protected T schedTaskTO;
 
+    private final StartAtTogglePanel startAt;
+
     protected SchedTaskSearchResultPanel(final String id, final Class<T> reference,
final PageReference pageRef) {
         super(id, pageRef);
         this.reference = reference;
@@ -81,6 +83,9 @@ public abstract class SchedTaskSearchResultPanel<T extends SchedTaskTO>
extends
         MetaDataRoleAuthorizationStrategy.authorize(addAjaxLink, ENABLE, StandardEntitlement.TASK_CREATE);
 
         initResultTable();
+
+        startAt = new StartAtTogglePanel(container);
+        addInnerObject(startAt);
     }
 
     protected List<IColumn<T, String>> getFieldColumns() {
@@ -175,7 +180,7 @@ public abstract class SchedTaskSearchResultPanel<T extends SchedTaskTO>
extends
                                                 restClient.readSchedTask(reference, model.getObject().getKey()),
                                                 target));
                             }
-                        }, ActionLink.ActionType.EDIT, StandardEntitlement.TASK_READ).
+                        }, ActionLink.ActionType.EDIT, StandardEntitlement.TASK_UPDATE).
                         add(new ActionLink<T>() {
 
                             private static final long serialVersionUID = -3722207913631435501L;
@@ -187,22 +192,15 @@ public abstract class SchedTaskSearchResultPanel<T extends SchedTaskTO>
extends
                                 send(SchedTaskSearchResultPanel.this, Broadcast.EXACT,
                                         new AjaxWizard.EditItemActionEvent<>(clone,
target));
                             }
-                        }, ActionLink.ActionType.CLONE, StandardEntitlement.TASK_READ).
+                        }, ActionLink.ActionType.CLONE, StandardEntitlement.TASK_CREATE).
                         add(new ActionLink<T>() {
 
                             private static final long serialVersionUID = -3722207913631435501L;
 
                             @Override
                             public void onClick(final AjaxRequestTarget target, final T ignore)
{
-                                try {
-                                    restClient.startExecution(taskTO.getKey(), null);
-                                    info(getString(Constants.OPERATION_SUCCEEDED));
-                                    target.add(container);
-                                } catch (SyncopeClientException e) {
-                                    error(getString(Constants.ERROR) + ": " + e.getMessage());
-                                    LOG.error("While running propagation task {}", taskTO.getKey(),
e);
-                                }
-                                ((BasePage) getPage()).getNotificationPanel().refresh(target);
+                                startAt.setTaskTO(target, model.getObject());
+                                startAt.toggle(target, true);
                             }
                         }, ActionLink.ActionType.EXECUTE, StandardEntitlement.TASK_EXECUTE).
                         add(new ActionLink<T>() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/java/org/apache/syncope/client/console/tasks/StartAtTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/StartAtTogglePanel.java
b/client/console/src/main/java/org/apache/syncope/client/console/tasks/StartAtTogglePanel.java
new file mode 100644
index 0000000..6790a21
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/StartAtTogglePanel.java
@@ -0,0 +1,105 @@
+/*
+ * 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 java.io.Serializable;
+import java.util.Date;
+import org.apache.syncope.client.console.commons.Constants;
+import org.apache.syncope.client.console.pages.BasePage;
+import org.apache.syncope.client.console.panels.TogglePanel;
+import org.apache.syncope.client.console.rest.TaskRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateFieldPanel;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.SyncopeConstants;
+import org.apache.syncope.common.lib.to.SchedTaskTO;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.Model;
+
+public class StartAtTogglePanel extends TogglePanel<Serializable> {
+
+    private static final long serialVersionUID = -3195479265440591519L;
+
+    private SchedTaskTO taskTO;
+
+    public StartAtTogglePanel(final WebMarkupContainer container) {
+        super("startAt");
+
+        final Form<?> form = new Form<>("startAtForm");
+        addInnerObject(form);
+
+        final Model<Date> startAtDateModel = new Model<Date>();
+
+        final AjaxDateFieldPanel startAtDate = new AjaxDateFieldPanel(
+                "startAtDate", "startAtDate", startAtDateModel, SyncopeConstants.DATE_PATTERNS[3]);
+
+        startAtDate.setReadOnly(true).hideLabel();
+        form.add(startAtDate);
+
+        final AjaxCheckBoxPanel startAtCheck = new AjaxCheckBoxPanel(
+                "startAtCheck", "startAtCheck", new Model<Boolean>(false), false);
+
+        form.add(startAtCheck);
+
+        startAtCheck.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE)
{
+
+            private static final long serialVersionUID = -1107858522700306810L;
+
+            @Override
+            protected void onUpdate(final AjaxRequestTarget target) {
+                target.add(startAtDate.setModelObject(null).setReadOnly(!startAtCheck.getModelObject()));
+            }
+        });
+
+        form.add(new AjaxSubmitLink("startAt", form) {
+
+            private static final long serialVersionUID = -7978723352517770644L;
+
+            @Override
+            protected void onSubmit(final AjaxRequestTarget target, final Form<?> form)
{
+                try {
+                    new TaskRestClient().startExecution(taskTO.getKey(), startAtDateModel.getObject());
+                    info(getString(Constants.OPERATION_SUCCEEDED));
+                    toggle(target, false);
+                    target.add(container);
+                } catch (SyncopeClientException e) {
+                    error(getString(Constants.ERROR) + ": " + e.getMessage());
+                    LOG.error("While running propagation task {}", taskTO.getKey(), e);
+                }
+                ((BasePage) getPage()).getNotificationPanel().refresh(target);
+            }
+
+            @Override
+            protected void onError(final AjaxRequestTarget target, final Form<?> form)
{
+                ((BasePage) getPage()).getNotificationPanel().refresh(target);
+            }
+
+        });
+    }
+
+    public void setTaskTO(final AjaxRequestTarget target, final SchedTaskTO taskTO) {
+        this.taskTO = taskTO;
+        setHeader(target, taskTO.getName());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/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 544d2e8..a94dc5a 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
@@ -33,6 +33,7 @@ import org.apache.syncope.client.console.tasks.PushTasks;
 import org.apache.syncope.client.console.tasks.SchedTasks;
 import org.apache.syncope.client.console.tasks.SyncTasks;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.confirmation.ConfirmationModalBehavior;
+import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.ConnInstanceTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
@@ -48,15 +49,11 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class TopologyTogglePanel extends TogglePanel<Serializable> {
 
     private static final long serialVersionUID = -2025535531121434056L;
 
-    private static final Logger LOG = LoggerFactory.getLogger(TopologyTogglePanel.class);
-
     private final ResourceRestClient resourceRestClient = new ResourceRestClient();
 
     private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
@@ -65,15 +62,26 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
 
     private final PageReference pageRef;
 
+    protected final BaseModal<Serializable> resourceModal;
+
+    protected final BaseModal<Serializable> taskModal;
+
     public TopologyTogglePanel(final String id, final PageReference pageRef) {
         super(id);
         this.pageRef = pageRef;
 
-        modal.size(Modal.Size.Large);
+        resourceModal = new BaseModal<>("outher");
+        resourceModal.addSumbitButton();
+        resourceModal.size(Modal.Size.Large);
+        addOutherObject(resourceModal);
+
+        taskModal = new BaseModal<>("outher");
+        taskModal.size(Modal.Size.Large);
+        addOutherObject(taskModal);
 
         container = new WebMarkupContainer("container");
         container.setOutputMarkupPlaceholderTag(true);
-        add(container);
+        addInnerObject(container);
 
         container.add(getEmptyFragment());
     }
@@ -119,9 +127,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                target.add(modal.setContent(new SchedTasks(pageRef)));
-                modal.header(new ResourceModel("task.generic.list", "Scheduled tasks"));
-                modal.show(true);
+                target.add(taskModal.setContent(new SchedTasks(pageRef)));
+                taskModal.header(new ResourceModel("task.generic.list", "Scheduled tasks"));
+                taskModal.show(true);
             }
         };
         fragment.add(tasks);
@@ -144,16 +152,16 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
                 modelObject.setLocation(node.getKey().toString());
 
                 final IModel<ConnInstanceTO> model = new CompoundPropertyModel<>(modelObject);
-                modal.setFormModel(model);
+                resourceModal.setFormModel(model);
 
-                target.add(modal.setContent(new ConnectorModal(modal, pageRef, model)));
+                target.add(resourceModal.setContent(new ConnectorModal(resourceModal, pageRef,
model)));
 
-                modal.header(new Model<>(MessageFormat.format(getString("connector.new"),
node.getKey())));
+                resourceModal.header(new Model<>(MessageFormat.format(getString("connector.new"),
node.getKey())));
 
                 MetaDataRoleAuthorizationStrategy.
-                        authorize(modal.addSumbitButton(), ENABLE, StandardEntitlement.CONNECTOR_CREATE);
+                        authorize(resourceModal.addSumbitButton(), ENABLE, StandardEntitlement.CONNECTOR_CREATE);
 
-                modal.show(true);
+                resourceModal.show(true);
             }
         };
         fragment.add(create);
@@ -200,16 +208,16 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
                 modelObject.setConnectorDisplayName(node.getDisplayName());
 
                 final IModel<ResourceTO> model = new CompoundPropertyModel<>(modelObject);
-                modal.setFormModel(model);
+                resourceModal.setFormModel(model);
 
-                target.add(modal.setContent(new ResourceModal<>(modal, pageRef, model,
true)));
+                target.add(resourceModal.setContent(new ResourceModal<>(resourceModal,
pageRef, model, true)));
 
-                modal.header(new Model<>(MessageFormat.format(getString("resource.new"),
node.getKey())));
+                resourceModal.header(new Model<>(MessageFormat.format(getString("resource.new"),
node.getKey())));
 
                 MetaDataRoleAuthorizationStrategy.
-                        authorize(modal.addSumbitButton(), ENABLE, StandardEntitlement.RESOURCE_CREATE);
+                        authorize(resourceModal.addSumbitButton(), ENABLE, StandardEntitlement.RESOURCE_CREATE);
 
-                modal.show(true);
+                resourceModal.show(true);
             }
         };
         fragment.add(create);
@@ -225,16 +233,16 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
                 final ConnInstanceTO modelObject = connectorRestClient.read(Long.class.cast(node.getKey()));
 
                 final IModel<ConnInstanceTO> model = new CompoundPropertyModel<>(modelObject);
-                modal.setFormModel(model);
+                resourceModal.setFormModel(model);
 
-                target.add(modal.setContent(new ConnectorModal(modal, pageRef, model)));
+                target.add(resourceModal.setContent(new ConnectorModal(resourceModal, pageRef,
model)));
 
-                modal.header(new Model<>(MessageFormat.format(getString("connector.edit"),
node.getKey())));
+                resourceModal.header(new Model<>(MessageFormat.format(getString("connector.edit"),
node.getKey())));
 
                 MetaDataRoleAuthorizationStrategy.
-                        authorize(modal.addSumbitButton(), ENABLE, StandardEntitlement.CONNECTOR_UPDATE);
+                        authorize(resourceModal.addSumbitButton(), ENABLE, StandardEntitlement.CONNECTOR_UPDATE);
 
-                modal.show(true);
+                resourceModal.show(true);
             }
         };
         fragment.add(edit);
@@ -279,16 +287,16 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
                 final ResourceTO modelObject = resourceRestClient.read(node.getKey().toString());
 
                 final IModel<ResourceTO> model = new CompoundPropertyModel<>(modelObject);
-                modal.setFormModel(model);
+                resourceModal.setFormModel(model);
 
-                target.add(modal.setContent(new ResourceModal<>(modal, pageRef, model,
false)));
+                target.add(resourceModal.setContent(new ResourceModal<>(resourceModal,
pageRef, model, false)));
 
-                modal.header(new Model<>(MessageFormat.format(getString("resource.edit"),
node.getKey())));
+                resourceModal.header(new Model<>(MessageFormat.format(getString("resource.edit"),
node.getKey())));
 
                 MetaDataRoleAuthorizationStrategy.
-                        authorize(modal.addSumbitButton(), ENABLE, StandardEntitlement.RESOURCE_UPDATE);
+                        authorize(resourceModal.addSumbitButton(), ENABLE, StandardEntitlement.RESOURCE_UPDATE);
 
-                modal.show(true);
+                resourceModal.show(true);
             }
         };
         fragment.add(edit);
@@ -301,9 +309,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
             @Override
             @SuppressWarnings("unchecked")
             public void onClick(final AjaxRequestTarget target) {
-                target.add(modal.setContent(new PropagationTasks(pageRef, node.getKey().toString())));
-                modal.header(new ResourceModel("task.propagation.list", "Propagation tasks"));
-                modal.show(true);
+                target.add(taskModal.setContent(new PropagationTasks(pageRef, node.getKey().toString())));
+                taskModal.header(new ResourceModel("task.propagation.list", "Propagation
tasks"));
+                taskModal.show(true);
             }
         };
         fragment.add(propagation);
@@ -315,9 +323,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                target.add(modal.setContent(new SyncTasks(pageRef, node.getKey().toString())));
-                modal.header(new ResourceModel("task.synchronization.list", "Synchronization
tasks"));
-                modal.show(true);
+                target.add(taskModal.setContent(new SyncTasks(pageRef, node.getKey().toString())));
+                taskModal.header(new ResourceModel("task.synchronization.list", "Synchronization
tasks"));
+                taskModal.show(true);
             }
         };
         fragment.add(synchronization);
@@ -329,9 +337,9 @@ public class TopologyTogglePanel extends TogglePanel<Serializable>
{
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
-                target.add(modal.setContent(new PushTasks(pageRef, node.getKey().toString())));
-                modal.header(new ResourceModel("task.push.list", "Push tasks"));
-                modal.show(true);
+                target.add(taskModal.setContent(new PushTasks(pageRef, node.getKey().toString())));
+                taskModal.header(new ResourceModel("task.push.list", "Push tasks"));
+                taskModal.show(true);
             }
         };
         fragment.add(push);

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
index d0ff401..457760b 100644
--- a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
+++ b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css
@@ -258,7 +258,7 @@ span.overridable div.checkbox {
   padding: 0px;
 }
 
-div#resource-modal.modal-lg {
+div#outher.modal-lg {
   width: 1200px;
 }
 
@@ -494,4 +494,4 @@ span.highlight .attribute label {
 }
 /**
 END - Resukt page
-*/
\ No newline at end of file
+*/

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/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 326f697..0fcd2ed 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
@@ -20,20 +20,6 @@ under the License.
   <head><title>toggle menu</title></head>
   <body>
     <wicket:head>
-      <script type="text/javascript">
-        $(document).ready(function () {
-          $("div.defaultTogglePanel").click(function () {
-            $("div.inactive-topology-menu").toggle("slow");
-            $("div.inactive-topology-menu").attr("class", "topology-menu active-topology-menu");
-
-            $("div.active-topology-menu div a#close").click(function () {
-              $("div.active-topology-menu").toggle("slow");
-              $("div.active-topology-menu").attr("class", "topology-menu inactive-topology-menu");
-            });
-          });
-        });
-      </script>
-
       <style type="text/css">
         div.topology-menu {
           display: none;
@@ -102,18 +88,22 @@ under the License.
       </style>
     </wicket:head>
     <wicket:panel>
-      <div class="topology-menu inactive-topology-menu">
+      <div wicket:id="togglePanelContainer" class="topology-menu inactive-topology-menu">
         <div class="header">
           <div class="label">
             <label wicket:id="label"/>
           </div>
           <div class="close">
-            <a wicket:id="close" id="close" href="#"><i class="glyphicon glyphicon-remove"></i></a>
+            <a wicket:id="close" href="#"><i class="glyphicon glyphicon-remove"></i></a>
           </div>
         </div>
         <wicket:child/>
       </div>
-      <div wicket:id="resource-modal">[modal]</div>
+
+      <span wicket:id="outherObjectsRepeater">
+        <div wicket:id="outher"/>
+      </span>
+
     </wicket:panel>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.html
b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.html
new file mode 100644
index 0000000..f1b3b31
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/SchedTaskSearchResultPanel.html
@@ -0,0 +1,24 @@
+<!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>
+    <span wicket:id="startAt"/>
+  </wicket:extend>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.html
b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.html
new file mode 100644
index 0000000..5c1cdd1
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.html
@@ -0,0 +1,60 @@
+<!--
+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://xmlns.jcp.org/jsf/composite">
+  <head><title>toggle menu</title></head>
+  <body>
+    <wicket:head>
+      <style type="text/css">
+        div#startAt {
+          background-color: rgba(98, 98, 98, 0.98) !important;
+          color: #CCC;
+          right: 5px !important;
+          top: 100px !important;
+          min-width: 300px;
+          min-height: 130px !important;
+          z-index: 6000 !important;
+        }
+
+        div#startAtContainer {
+          padding: 15px;
+        }
+
+        div#startAtContainer input {
+          background-color: rgba(200, 200, 200, 0.60) !important;
+        }
+      </style>
+    </wicket:head>
+    <wicket:extend>
+      <div id="startAtContainer">
+        <form wicket:id="startAtForm">
+          <div class="form-group">
+            <span wicket:id="startAtCheck"/>
+          </div>
+          <div class="input-group">
+            <span wicket:id="startAtDate"/>
+
+            <div class="input-group-addon">
+              <a wicket:id="startAt"><i class="fa fa-gear"></i></a>
+            </div>
+          </div>
+        </form>
+      </div>
+    </wicket:extend>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.properties
b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.properties
new file mode 100644
index 0000000..3d5178b
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel.properties
@@ -0,0 +1,17 @@
+# 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.
+startAtCheck=Specify a starting date

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_it.properties
b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_it.properties
new file mode 100644
index 0000000..69c1c22
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_it.properties
@@ -0,0 +1,17 @@
+# 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.
+startAtCheck=Specifica una data di partenza

http://git-wip-us.apache.org/repos/asf/syncope/blob/5cb879ba/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_pt_BR.properties
b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_pt_BR.properties
new file mode 100644
index 0000000..3d5178b
--- /dev/null
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/StartAtTogglePanel_pt_BR.properties
@@ -0,0 +1,17 @@
+# 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.
+startAtCheck=Specify a starting date


Mime
View raw message