You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2017/05/09 16:48:41 UTC

syncope git commit: [SYNCOPE-1079] fixes missing action toggle panel

Repository: syncope
Updated Branches:
  refs/heads/2_0_X 89a600a61 -> 84822259a


[SYNCOPE-1079] fixes missing action toggle panel


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

Branch: refs/heads/2_0_X
Commit: 84822259af4156da5a57e70d0b5ab5abb3b652df
Parents: 89a600a
Author: fmartelli <fa...@gmail.com>
Authored: Tue May 9 18:48:20 2017 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Tue May 9 18:48:20 2017 +0200

----------------------------------------------------------------------
 .../client/console/panels/DirectoryPanel.java   |   6 +-
 .../client/console/panels/TogglePanel.java      |   4 +-
 .../html/form/ActionLinksTogglePanel.java       |   4 +
 .../client/console/widgets/JobActionPanel.java  | 141 ----------------
 .../client/console/widgets/JobWidget.java       | 160 ++++++++++++++++++-
 .../client/console/widgets/JobActionPanel.html  |   3 -
 .../client/console/widgets/JobWidget.html       |   1 +
 7 files changed, 169 insertions(+), 150 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index ec92a2e..e066088 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -105,7 +105,7 @@ public abstract class DirectoryPanel<
 
     protected final BaseModal<W> displayAttributeModal = new BaseModal<>("outer");
 
-    private final ActionLinksTogglePanel<T> actionTogglePanel;
+    private ActionLinksTogglePanel<T> actionTogglePanel;
 
     /**
      * Create simple unfiltered search result panel.
@@ -354,6 +354,10 @@ public abstract class DirectoryPanel<
         return actionTogglePanel;
     }
 
+    protected void setTogglePanel(final ActionLinksTogglePanel<T> actionTogglePanel) {
+        this.actionTogglePanel = actionTogglePanel;
+    }
+
     public static class EventDataWrapper {
 
         private AjaxRequestTarget target;

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/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 436d332..17573b6 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
@@ -114,7 +114,9 @@ public abstract class TogglePanel<T extends Serializable> extends WizardMgtPanel
     }
 
     protected void setHeader(final AjaxRequestTarget target, final String header) {
-        this.header.setDefaultModelObject(header.length() >= 40 ? (header.substring(0, 30) + " ... ") : header);
+        this.header.setDefaultModelObject(header == null
+                ? StringUtils.EMPTY
+                : header.length() >= 40 ? (header.substring(0, 30) + " ... ") : header);
         target.add(this.header);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
index 62b9de6..c387c32 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksTogglePanel.java
@@ -36,6 +36,7 @@ import org.apache.syncope.common.lib.to.SecurityQuestionTO;
 import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
 import org.apache.syncope.common.lib.to.AccessTokenTO;
 import org.apache.syncope.common.lib.to.ExecTO;
+import org.apache.syncope.common.lib.to.JobTO;
 import org.apache.syncope.common.lib.to.WorkflowDefinitionTO;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -98,6 +99,9 @@ public class ActionLinksTogglePanel<T extends Serializable> extends TogglePanel<
             header = ((PolicyRuleWrapper) modelObject).getName();
         } else if (modelObject instanceof ReportletWrapper) {
             header = ((ReportletWrapper) modelObject).getName();
+        } else if (modelObject instanceof JobTO) {
+            header = ((JobTO) modelObject).getRefKey() == null
+                    ? ((JobTO) modelObject).getRefDesc() : ((JobTO) modelObject).getRefKey();
         } else {
             header = new ResourceModel("actions", StringUtils.EMPTY).getObject();
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobActionPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobActionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobActionPanel.java
index 79e7997..82665f8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobActionPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobActionPanel.java
@@ -18,36 +18,22 @@
  */
 package org.apache.syncope.client.console.widgets;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import java.io.Serializable;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.pages.BasePage;
-import org.apache.syncope.client.console.reports.ReportWizardBuilder;
-import org.apache.syncope.client.console.reports.ReportletDirectoryPanel;
 import org.apache.syncope.client.console.rest.NotificationRestClient;
 import org.apache.syncope.client.console.rest.ReportRestClient;
 import org.apache.syncope.client.console.rest.TaskRestClient;
-import org.apache.syncope.client.console.tasks.SchedTaskWizardBuilder;
 import org.apache.syncope.client.console.wicket.ajax.markup.html.IndicatorAjaxLink;
-import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wizards.AjaxWizard;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
 import org.apache.syncope.common.lib.to.JobTO;
-import org.apache.syncope.common.lib.to.ReportTO;
-import org.apache.syncope.common.lib.to.SchedTaskTO;
 import org.apache.syncope.common.lib.types.JobAction;
-import org.apache.syncope.common.lib.types.JobType;
-import org.apache.syncope.common.lib.types.StandardEntitlement;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
 import org.apache.wicket.event.Broadcast;
-import org.apache.wicket.event.IEvent;
 import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.StringResourceModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -57,10 +43,6 @@ public class JobActionPanel extends WizardMgtPanel<Serializable> {
 
     private static final Logger LOG = LoggerFactory.getLogger(JobActionPanel.class);
 
-    private final BaseModal<Serializable> jobModal;
-
-    private final BaseModal<ReportTO> reportModal;
-
     private final NotificationRestClient notificationRestClient = new NotificationRestClient();
 
     private final ReportRestClient reportRestClient = new ReportRestClient();
@@ -71,117 +53,9 @@ public class JobActionPanel extends WizardMgtPanel<Serializable> {
             final String id,
             final JobTO jobTO,
             final JobWidget widget,
-            final BaseModal<Serializable> jobModal,
-            final BaseModal<ReportTO> reportModal,
             final PageReference pageRef) {
         super(id, true);
-        this.jobModal = jobModal;
-        this.reportModal = reportModal;
         setOutputMarkupId(true);
-        setWindowClosedReloadCallback(jobModal);
-        jobModal.size(Modal.Size.Large);
-        setWindowClosedReloadCallback(reportModal);
-        this.reportModal.size(Modal.Size.Large);
-
-        IndicatorAjaxLink<Void> link = new IndicatorAjaxLink<Void>("edit") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-                switch (jobTO.getType()) {
-                    case NOTIFICATION:
-                        break;
-
-                    case REPORT:
-                        ReportTO reportTO = new ReportRestClient().read(jobTO.getRefKey());
-
-                        ReportWizardBuilder rwb = new ReportWizardBuilder(reportTO, pageRef);
-                        rwb.setEventSink(JobActionPanel.this);
-
-                        target.add(jobModal.setContent(rwb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
-
-                        jobModal.header(new StringResourceModel(
-                                "any.edit",
-                                this,
-                                new Model<>(reportTO)));
-
-                        jobModal.show(true);
-                        break;
-
-                    case TASK:
-                        SchedTaskTO schedTaskTO = new TaskRestClient().
-                                readSchedTask(SchedTaskTO.class, jobTO.getRefKey());
-
-                        SchedTaskWizardBuilder<SchedTaskTO> swb = new SchedTaskWizardBuilder<>(schedTaskTO, pageRef);
-                        swb.setEventSink(JobActionPanel.this);
-
-                        target.add(jobModal.setContent(swb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
-
-                        jobModal.header(new StringResourceModel(
-                                "any.edit",
-                                this,
-                                new Model<>(schedTaskTO)));
-
-                        jobModal.show(true);
-                        break;
-
-                    default:
-                        break;
-                }
-            }
-        };
-        link.setOutputMarkupPlaceholderTag(true);
-        link.setVisible(!(null != jobTO.getType() && JobType.NOTIFICATION.equals(jobTO.getType())));
-        addInnerObject(link);
-
-        IndicatorAjaxLink<Void> composeLink;
-        composeLink =
-                new IndicatorAjaxLink<Void>("compose") {
-
-            private static final long serialVersionUID = -7978723352517770644L;
-
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-
-                if (null != jobTO.getType()) {
-                    switch (jobTO.getType()) {
-
-                        case NOTIFICATION:
-                            break;
-
-                        case REPORT:
-
-                            final ReportTO reportTO = new ReportRestClient().read(jobTO.getRefKey());
-
-                            target.add(JobActionPanel.this.reportModal.setContent(
-                                    new ReportletDirectoryPanel(reportModal, jobTO.getRefKey(), pageRef)));
-
-                            MetaDataRoleAuthorizationStrategy.authorize(
-                                    reportModal.getForm(),
-                                    ENABLE, StandardEntitlement.REPORT_UPDATE);
-
-                            reportModal.header(new StringResourceModel(
-                                    "reportlet.conf", this, new Model<>(reportTO)
-                            ));
-
-                            reportModal.show(true);
-
-                            break;
-
-                        case TASK:
-                            break;
-
-                        default:
-                            break;
-                    }
-                }
-            }
-        };
-        composeLink.setOutputMarkupPlaceholderTag(true);
-        composeLink.setVisible(!(null != jobTO.getType() && (JobType.TASK.equals(jobTO.getType())
-                || JobType.NOTIFICATION.equals(jobTO.getType()))));
-        addInnerObject(composeLink);
 
         Fragment controls;
         if (jobTO.isRunning()) {
@@ -271,19 +145,4 @@ public class JobActionPanel extends WizardMgtPanel<Serializable> {
         }
 
     }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public void onEvent(final IEvent<?> event) {
-        if (event.getPayload() instanceof AjaxWizard.NewItemEvent) {
-            final AjaxRequestTarget target = AjaxWizard.NewItemEvent.class.cast(event.getPayload()).getTarget();
-
-            if (event.getPayload() instanceof AjaxWizard.NewItemCancelEvent
-                    || event.getPayload() instanceof AjaxWizard.NewItemFinishEvent) {
-                jobModal.close(target);
-            }
-        }
-
-        super.onEvent(event);
-    }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index 7eaac21..aadd49c 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.client.console.widgets;
 
+import static org.apache.wicket.Component.ENABLE;
+
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
 import java.io.Serializable;
@@ -32,20 +34,28 @@ import org.apache.syncope.client.console.commons.DirectoryDataProvider;
 import org.apache.syncope.client.console.commons.SortableDataProviderComparator;
 import org.apache.syncope.client.console.panels.DirectoryPanel;
 import org.apache.syncope.client.console.panels.ExecMessageModal;
+import org.apache.syncope.client.console.reports.ReportWizardBuilder;
+import org.apache.syncope.client.console.reports.ReportletDirectoryPanel;
 import org.apache.syncope.client.console.rest.BaseRestClient;
 import org.apache.syncope.client.console.rest.NotificationRestClient;
 import org.apache.syncope.client.console.rest.ReportRestClient;
 import org.apache.syncope.client.console.rest.TaskRestClient;
+import org.apache.syncope.client.console.tasks.SchedTaskWizardBuilder;
 import org.apache.syncope.client.console.wicket.ajax.IndicatorAjaxTimerBehavior;
 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.BooleanPropertyColumn;
 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
 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.ActionLink.ActionType;
+import org.apache.syncope.client.console.wicket.markup.html.form.ActionLinksTogglePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
+import org.apache.syncope.client.console.wizards.AjaxWizard;
 import org.apache.syncope.client.console.wizards.WizardMgtPanel;
 import org.apache.syncope.common.lib.to.ExecTO;
 import org.apache.syncope.common.lib.to.JobTO;
 import org.apache.syncope.common.lib.to.ReportTO;
+import org.apache.syncope.common.lib.to.SchedTaskTO;
+import org.apache.syncope.common.lib.types.JobType;
 import org.apache.syncope.common.lib.types.StandardEntitlement;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -76,6 +86,8 @@ public class JobWidget extends BaseWidget {
 
     private static final int ROWS = 5;
 
+    private final ActionLinksTogglePanel<JobTO> actionTogglePanel;
+
     private final BaseModal<Serializable> modal = new BaseModal<Serializable>("modal") {
 
         private static final long serialVersionUID = 389935548143327858L;
@@ -105,7 +117,7 @@ public class JobWidget extends BaseWidget {
         @Override
         protected void onConfigure() {
             super.onConfigure();
-            setFooterVisible(true);
+            setFooterVisible(false);
         }
     };
 
@@ -197,6 +209,9 @@ public class JobWidget extends BaseWidget {
         add(container);
 
         container.add(new AjaxBootstrapTabbedPanel<>("tabbedPanel", buildTabList(pageRef)));
+
+        actionTogglePanel = new ActionLinksTogglePanel<>("actionTogglePanel", pageRef);
+        add(actionTogglePanel);
     }
 
     private List<JobTO> getUpdatedAvailable() {
@@ -275,6 +290,10 @@ public class JobWidget extends BaseWidget {
 
         private static final long serialVersionUID = -8214546246301342868L;
 
+        private final BaseModal<ReportTO> reportModal;
+
+        private final BaseModal<Serializable> jobModal;
+
         AvailableJobsPanel(final String id, final PageReference pageRef) {
             super(id, new Builder<JobTO, JobTO, BaseRestClient>(null, pageRef) {
 
@@ -286,6 +305,14 @@ public class JobWidget extends BaseWidget {
                 }
             }.disableCheckBoxes().hidePaginator());
 
+            super.setTogglePanel(actionTogglePanel);
+
+            this.reportModal = JobWidget.this.reportModal;
+            setWindowClosedReloadCallback(reportModal);
+
+            this.jobModal = JobWidget.this.modal;
+            setWindowClosedReloadCallback(jobModal);
+
             rows = ROWS;
             initResultTable();
         }
@@ -326,8 +353,8 @@ public class JobWidget extends BaseWidget {
                         final IModel<JobTO> rowModel) {
 
                     JobTO jobTO = rowModel.getObject();
-                    JobActionPanel panel = new JobActionPanel(componentId, jobTO, JobWidget.this, JobWidget.this.modal,
-                            JobWidget.this.reportModal, pageRef);
+                    JobActionPanel panel
+                            = new JobActionPanel(componentId, jobTO, JobWidget.this, pageRef);
                     MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE,
                             String.format("%s,%s%s,%s",
                                     StandardEntitlement.TASK_EXECUTE,
@@ -341,12 +368,137 @@ public class JobWidget extends BaseWidget {
                 public String getCssClass() {
                     return "col-xs-1";
                 }
-
             });
 
             return columns;
         }
 
+        @Override
+        protected ActionsPanel<JobTO> getActions(final IModel<JobTO> model) {
+            final ActionsPanel<JobTO> panel = super.getActions(model);
+
+            final JobTO jobTO = model.getObject();
+
+            panel.add(new ActionLink<JobTO>() {
+
+                private static final long serialVersionUID = -7978723352517770644L;
+
+                @Override
+                public void onClick(final AjaxRequestTarget target, final JobTO ignore) {
+                    switch (jobTO.getType()) {
+                        case NOTIFICATION:
+                            break;
+
+                        case REPORT:
+                            ReportTO reportTO = new ReportRestClient().read(jobTO.getRefKey());
+
+                            ReportWizardBuilder rwb = new ReportWizardBuilder(reportTO, pageRef);
+                            rwb.setEventSink(AvailableJobsPanel.this);
+
+                            target.add(jobModal.setContent(rwb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
+
+                            jobModal.header(new StringResourceModel(
+                                    "any.edit",
+                                    AvailableJobsPanel.this,
+                                    new Model<>(reportTO)));
+
+                            jobModal.show(true);
+                            break;
+
+                        case TASK:
+                            SchedTaskTO schedTaskTO = new TaskRestClient().
+                                    readSchedTask(SchedTaskTO.class, jobTO.getRefKey());
+
+                            SchedTaskWizardBuilder<SchedTaskTO> swb
+                                    = new SchedTaskWizardBuilder<>(schedTaskTO, pageRef);
+                            swb.setEventSink(AvailableJobsPanel.this);
+
+                            target.add(jobModal.setContent(swb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
+
+                            jobModal.header(new StringResourceModel(
+                                    "any.edit",
+                                    AvailableJobsPanel.this,
+                                    new Model<>(schedTaskTO)));
+
+                            jobModal.show(true);
+                            break;
+
+                        default:
+                            break;
+                    }
+                }
+
+                @Override
+                protected boolean statusCondition(final JobTO modelObject) {
+                    return !(null != jobTO.getType() && JobType.NOTIFICATION.equals(jobTO.getType()));
+                }
+            }, ActionType.EDIT, StandardEntitlement.TASK_UPDATE);
+
+            panel.add(new ActionLink<JobTO>() {
+
+                private static final long serialVersionUID = -7978723352517770644L;
+
+                @Override
+                public void onClick(final AjaxRequestTarget target, final JobTO ignore) {
+
+                    if (null != jobTO.getType()) {
+                        switch (jobTO.getType()) {
+
+                            case NOTIFICATION:
+                                break;
+
+                            case REPORT:
+
+                                final ReportTO reportTO = new ReportRestClient().read(jobTO.getRefKey());
+
+                                target.add(AvailableJobsPanel.this.reportModal.setContent(
+                                        new ReportletDirectoryPanel(reportModal, jobTO.getRefKey(), pageRef)));
+
+                                MetaDataRoleAuthorizationStrategy.authorize(
+                                        reportModal.getForm(),
+                                        ENABLE, StandardEntitlement.REPORT_UPDATE);
+
+                                reportModal.header(new StringResourceModel(
+                                        "reportlet.conf", AvailableJobsPanel.this, new Model<>(reportTO)));
+
+                                reportModal.show(true);
+
+                                break;
+
+                            case TASK:
+                                break;
+
+                            default:
+                                break;
+                        }
+                    }
+                }
+
+                @Override
+                protected boolean statusCondition(final JobTO modelObject) {
+                    return !(null != jobTO.getType() && (JobType.TASK.equals(jobTO.getType())
+                            || JobType.NOTIFICATION.equals(jobTO.getType())));
+                }
+
+            }, ActionType.COMPOSE, StandardEntitlement.TASK_UPDATE);
+
+            return panel;
+        }
+
+        @Override
+        @SuppressWarnings("unchecked")
+        public void onEvent(final IEvent<?> event) {
+            if (event.getPayload() instanceof AjaxWizard.NewItemEvent) {
+                final AjaxRequestTarget target = AjaxWizard.NewItemEvent.class.cast(event.getPayload()).getTarget();
+
+                if (event.getPayload() instanceof AjaxWizard.NewItemCancelEvent
+                        || event.getPayload() instanceof AjaxWizard.NewItemFinishEvent) {
+                    jobModal.close(target);
+                }
+            }
+
+            super.onEvent(event);
+        }
     }
 
     protected final class AvailableJobsProvider extends DirectoryDataProvider<JobTO> {

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobActionPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobActionPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobActionPanel.html
index 1ca771a..e94f292 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobActionPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobActionPanel.html
@@ -27,8 +27,5 @@ under the License.
     <wicket:fragment wicket:id="notRunningFragment">
       <a href="#" wicket:id="start" class="fa fa-play-circle"></a>
     </wicket:fragment>
-    <!--<div wicket:id="modal"/>-->
-    <a href="#" wicket:id="edit" ><i id="actionLink" class="glyphicon glyphicon-pencil" alt="edit icon" title="Edit"></i></a> 
-    <a href="#" wicket:id="compose" ><i id="actionLink" class="fa fa-puzzle-piece" alt="compose icon" title="Compose"></i></a> 
   </wicket:extend>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/84822259/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobWidget.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobWidget.html b/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobWidget.html
index 3b359b6..7346aa1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobWidget.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/widgets/JobWidget.html
@@ -33,5 +33,6 @@ under the License.
     <div wicket:id="modal"/>
     <div wicket:id="detailModal"/>
     <div wicket:id="reportModal"/>
+    <div wicket:id="actionTogglePanel"/>
   </wicket:panel>
 </html>
\ No newline at end of file