Repository: syncope Updated Branches: refs/heads/master 757608a7c -> 3c6fe5eef
http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/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 index 6790a21..e03f56e 100644 --- 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 @@ -20,8 +20,8 @@ package org.apache.syncope.client.console.tasks; import java.io.Serializable; import java.util.Date; +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.panels.TogglePanel; import org.apache.syncope.client.console.rest.TaskRestClient; import org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel; @@ -86,12 +86,12 @@ public class StartAtTogglePanel extends TogglePanel<Serializable> { error(getString(Constants.ERROR) + ": " + e.getMessage()); LOG.error("While running propagation task {}", taskTO.getKey(), e); } - ((BasePage) getPage()).getNotificationPanel().refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } @Override protected void onError(final AjaxRequestTarget target, final Form<?> form) { - ((BasePage) getPage()).getNotificationPanel().refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } }); http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskExecutions.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskExecutions.java b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskExecutions.java index 57fc870..f7bd09b 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskExecutions.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/tasks/TaskExecutions.java @@ -24,10 +24,10 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.commons.SearchableDataProvider; import org.apache.syncope.client.console.commons.SortableDataProviderComparator; -import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.panels.AbstractSearchResultPanel; import org.apache.syncope.client.console.panels.MultilevelPanel.SecondLevel; import org.apache.syncope.client.console.rest.TaskRestClient; @@ -116,9 +116,8 @@ public abstract class TaskExecutions } catch (SyncopeClientException scce) { error(scce.getMessage()); } - - BasePage.class.cast(pageRef.getPage()).getNotificationPanel().refresh(target); target.add(TaskExecutions.this); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } }, ActionLink.ActionType.DELETE, StandardEntitlement.TASK_DELETE); http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/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 efc77a6..695f868 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 @@ -33,7 +33,6 @@ 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.panels.AbstractResourceModal.CreateEvent; -import org.apache.syncope.client.console.panels.NotificationPanel; import org.apache.syncope.client.console.rest.BaseRestClient; import org.apache.syncope.client.console.rest.ConnectorRestClient; import org.apache.syncope.client.console.rest.ResourceRestClient; @@ -148,17 +147,9 @@ public class Topology extends BasePage { } public Topology() { - modal = new BaseModal<Serializable>("resource-modal") { - private static final long serialVersionUID = -5912673052161214766L; - - @Override - public NotificationPanel getNotificationPanel() { - return Topology.this.notificationPanel; - } - }; + modal = new BaseModal<Serializable>("resource-modal"); body.add(modal.size(Modal.Size.Large)); - modal.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { private static final long serialVersionUID = 8804221891699487139L; http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/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 a94dc5a..3a21e64 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 @@ -21,8 +21,8 @@ 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.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.panels.ConnectorModal; import org.apache.syncope.client.console.panels.ResourceModal; import org.apache.syncope.client.console.panels.TogglePanel; @@ -188,7 +188,7 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> { error(getString(Constants.ERROR) + ": " + e.getMessage()); LOG.error("While deleting resource {}", node.getKey(), e); } - ((BasePage) getPage()).getNotificationPanel().refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } }; @@ -269,7 +269,7 @@ public class TopologyTogglePanel extends TogglePanel<Serializable> { error(getString(Constants.ERROR) + ": " + e.getMessage()); LOG.error("While deleting resource {}", node.getKey(), e); } - ((BasePage) getPage()).getNotificationPanel().refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } }; fragment.add(delete); http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/markup/html/ClearIndicatingAjaxButton.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/markup/html/ClearIndicatingAjaxButton.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/markup/html/ClearIndicatingAjaxButton.java index 4682de8..449bcd3 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/markup/html/ClearIndicatingAjaxButton.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/markup/html/ClearIndicatingAjaxButton.java @@ -18,8 +18,6 @@ */ package org.apache.syncope.client.console.wicket.ajax.markup.html; -import org.apache.syncope.client.console.pages.BasePage; -import org.apache.wicket.Page; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton; @@ -32,8 +30,6 @@ public abstract class ClearIndicatingAjaxButton extends IndicatingAjaxButton { private final PageReference pageRef; - private boolean reloadFeebackPanel = true; - public ClearIndicatingAjaxButton(final String id, final PageReference pageRef) { super(id); this.pageRef = pageRef; @@ -59,18 +55,12 @@ public abstract class ClearIndicatingAjaxButton extends IndicatingAjaxButton { protected abstract void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form); public ClearIndicatingAjaxButton feedbackPanelAutomaticReload(final boolean reloadFeedbackPanel) { - this.reloadFeebackPanel = reloadFeedbackPanel; return this; } @Override protected final void onSubmit(final AjaxRequestTarget target, final Form<?> form) { super.onSubmit(target, form); - - Page page = pageRef.getPage(); - if (reloadFeebackPanel && page instanceof BasePage) { - target.add(((BasePage) page).getNotificationPanel()); - } onSubmitInternal(target, form); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java index 18e18f3..74d44bf 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java @@ -25,8 +25,6 @@ import de.agilecoders.wicket.extensions.markup.html.bootstrap.behavior.Resizable import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.commons.NotificationAwareComponent; import org.apache.syncope.client.console.panels.AbstractModalPanel; import org.apache.syncope.client.console.panels.ModalPanel; import org.apache.syncope.client.console.panels.NotificationPanel; @@ -47,7 +45,7 @@ import org.apache.wicket.model.IModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class BaseModal<T extends Serializable> extends Modal<T> implements NotificationAwareComponent { +public class BaseModal<T extends Serializable> extends Modal<T> { private static final long serialVersionUID = -6142277554912316095L; @@ -85,10 +83,6 @@ public class BaseModal<T extends Serializable> extends Modal<T> implements Notif }; - notificationPanel = new NotificationPanel(Constants.FEEDBACK); - notificationPanel.setOutputMarkupId(true); - addOrReplace(notificationPanel); - content.setOutputMarkupId(true); form.add(content); @@ -108,11 +102,6 @@ public class BaseModal<T extends Serializable> extends Modal<T> implements Notif setFadeIn(true); } - @Override - public NotificationPanel getNotificationPanel() { - return notificationPanel; - } - public Form<T> getForm() { return form; } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java index a43bba5..cae2e9a 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java @@ -38,6 +38,7 @@ import org.apache.syncope.common.lib.SyncopeConstants; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; +import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.OnDomReadyHeaderItem; @@ -47,7 +48,6 @@ import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.StatelessForm; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.form.upload.FileUpload; -import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; @@ -65,7 +65,7 @@ public class BinaryFieldPanel extends FieldPanel<String> { private final WebMarkupContainer container; - private final Link<Void> downloadLink; + private final AjaxLink<Void> downloadLink; private final Form<?> uploadForm; @@ -124,12 +124,12 @@ public class BinaryFieldPanel extends FieldPanel<String> { uploadForm.add(new Label("preview", StringUtils.isBlank(mimeType) ? StringUtils.EMPTY : "(" + mimeType + ")")); - downloadLink = new Link<Void>("downloadLink") { + downloadLink = new AjaxLink<Void>("downloadLink") { private static final long serialVersionUID = -4331619903296515985L; @Override - public void onClick() { + public void onClick(final AjaxRequestTarget target) { try { HttpResourceStream stream = new HttpResourceStream(buildResponse()); http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java index 07a1311..2611a2c 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java @@ -119,7 +119,7 @@ public abstract class MultiFieldPanel<E extends Serializable> extends AbstractFi }; final Fragment fragment = new Fragment("panelPlus", "fragmentPlus", MultiFieldPanel.this); - fragment.add(plus); + fragment.addOrReplace(plus); fragment.setRenderBodyOnly(true); return fragment; http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java index d8a8310..df4eaf6 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizard.java @@ -19,11 +19,12 @@ package org.apache.syncope.client.console.wizards; import java.io.Serializable; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.panels.ModalPanel; -import org.apache.syncope.client.console.panels.NotificationPanel; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.event.Broadcast; +import org.apache.wicket.extensions.wizard.IWizardModel; import org.apache.wicket.extensions.wizard.Wizard; import org.apache.wicket.extensions.wizard.WizardModel; import org.apache.wicket.markup.html.form.Form; @@ -42,8 +43,6 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen private final boolean edit; - private NotificationPanel feedbackPanel; - /** * Construct. * @@ -62,20 +61,14 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen } @Override - protected Component newButtonBar(final String id) { - return new AjaxWizardMgtButtonBar(id, this, edit); + protected void init(final IWizardModel wizardModel) { + super.init(wizardModel); + getForm().remove(FEEDBACK_ID); } @Override - protected Component newFeedbackPanel(final String id) { - if (feedbackPanel == null) { - feedbackPanel = new NotificationPanel(id); - } - return feedbackPanel; - } - - public NotificationPanel getFeedbackPanel() { - return feedbackPanel; + protected Component newButtonBar(final String id) { + return new AjaxWizardMgtButtonBar(id, this, edit); } protected abstract void onCancelInternal(); @@ -239,6 +232,6 @@ public abstract class AjaxWizard<T extends Serializable> extends Wizard implemen @Override public void onError(final AjaxRequestTarget target, final Form<?> form) { - feedbackPanel.refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java index c183910..a6e5af0 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardBuilder.java @@ -25,7 +25,7 @@ import org.apache.wicket.extensions.wizard.WizardModel; public abstract class AjaxWizardBuilder<T extends Serializable> extends AbstractModalPanelBuilder<T> { private static final long serialVersionUID = 5241745929825564456L; - + /** * Construct. * http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardButton.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardButton.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardButton.java deleted file mode 100644 index 886115e..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardButton.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.syncope.client.console.wizards; - -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.extensions.wizard.IWizard; -import org.apache.wicket.extensions.wizard.IWizardModel; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.ResourceModel; - -public abstract class AjaxWizardButton extends AjaxButton { - - private static final long serialVersionUID = -9147736051493629209L; - - private final IWizard wizard; - - public AjaxWizardButton( - final String id, - final IWizard wizard, - final Form<?> form, - final String labelResourceKey, - final boolean formprocessing) { - super(id, form); - this.setLabel(new ResourceModel(labelResourceKey, labelResourceKey)); - this.wizard = wizard; - setDefaultFormProcessing(formprocessing); - } - - public AjaxWizardButton(final String id, final IWizard wizard, final String labelResourceKey) { - this(id, wizard, null, labelResourceKey, true); - } - - public AjaxWizardButton( - final String id, final IWizard wizard, final String labelResourceKey, final boolean formprocessing) { - this(id, wizard, null, labelResourceKey, formprocessing); - } - - protected final IWizard getWizard() { - return wizard; - } - - protected final IWizardModel getWizardModel() { - return getWizard().getWizardModel(); - } - - @Override - protected final void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - onClick(target, form); - } - - protected abstract void onClick(final AjaxRequestTarget target, final Form<?> form); -} http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardMgtButtonBar.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardMgtButtonBar.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardMgtButtonBar.java index 45b6214..e183721 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardMgtButtonBar.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/AjaxWizardMgtButtonBar.java @@ -18,7 +18,7 @@ */ package org.apache.syncope.client.console.wizards; -import org.apache.syncope.client.console.panels.NotificationPanel; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -37,7 +37,7 @@ public class AjaxWizardMgtButtonBar extends WizardButtonBar { private static final long serialVersionUID = 7453943437344127136L; private final boolean edit; - + private final AjaxWizard wizard; public AjaxWizardMgtButtonBar(final String id, final AjaxWizard wizard, final boolean edit) { @@ -90,12 +90,11 @@ public class AjaxWizardMgtButtonBar extends WizardButtonBar { protected void onError(final AjaxRequestTarget target) { target.add(findParent(Wizard.class)); button.onError(); - NotificationPanel.class.cast(wizard.getFeedbackPanel()).refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } @Override protected void onComponentTag(final ComponentTag tag) { - // WICKET-5644 prevent non-Ajax submit (similar to AjaxButton WICKET-5594) tag.put("type", "button"); } }); @@ -113,7 +112,7 @@ public class AjaxWizardMgtButtonBar extends WizardButtonBar { public final boolean isEnabled() { if (edit) { return true; - } else { + } else { final IWizardStep activeStep = getWizardModel().getActiveStep(); return (activeStep != null) && getWizardModel().isLastStep(activeStep) && super.isEnabled(); } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java index fdb6fa6..c52593f 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.wizards; import java.io.Serializable; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.panels.ModalPanel; import org.apache.syncope.client.console.panels.NotificationPanel; @@ -85,7 +86,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple protected WizardMgtPanel(final String id, final boolean wizardInModal) { super(id); setOutputMarkupId(true); - + this.wizardInModal = wizardInModal; super.add(modal); @@ -109,7 +110,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple addAjaxLink.setEnabled(false); addAjaxLink.setVisible(false); - initialFragment.add(addAjaxLink); + initialFragment.addOrReplace(addAjaxLink); } @Override @@ -150,10 +151,8 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple container.addOrReplace(initialFragment); } } else if (event.getPayload() instanceof AjaxWizard.NewItemFinishEvent) { - if (notificationPanel != null) { - getSession().info(getString(Constants.OPERATION_SUCCEEDED)); - notificationPanel.refresh(target); - } + info(getString(Constants.OPERATION_SUCCEEDED)); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); if (wizardInModal && showResultPage) { modal.setContent(new ResultPage<T>( @@ -232,7 +231,7 @@ public abstract class WizardMgtPanel<T extends Serializable> extends Panel imple } protected WizardMgtPanel<T> addNotificationPanel(final NotificationPanel notificationPanel) { - this.notificationPanel = notificationPanel; + this.notificationPanel = SyncopeConsoleSession.get().getNotificationPanel(); return this; } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/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 f1f72e2..15fdc35 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 @@ -366,6 +366,12 @@ div.searchResult{ /** START - Notifications */ + +/*Temporany fix diagonal stacking*/ +.k-popup.k-notification { + box-shadow: none; +} + .k-notification-error.k-group { background: rgba(100% , 0% , 0% , .7); color: red; http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html index 95733b4..0f53a8a 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Login.html @@ -37,7 +37,8 @@ under the License. <div class="card card-container"> <img class="login-logo" src="img/logo-green.png" /> - <div wicket:id="feedback" role="alert"/> + <span wicket:id="feedback" role="alert"/> + <form class="form-signin" wicket:id="login"> <fieldset class="form-group input-group"> http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/resources/org/apache/syncope/client/console/panels/NotificationPanel.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/NotificationPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/NotificationPanel.html index 12c01ec..1b3aefc 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/NotificationPanel.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/NotificationPanel.html @@ -22,16 +22,18 @@ under the License. <span wicket:id="feedback"></span> <script id="errorTemplate" type="text/x-kendo-template"> - <div class="errorNotification"> - <div id="level" class="glyphicon glyphicon-remove-circle"></div> - <div id="message"><p>#= message #</p></div> + <div class="alert alert-danger alert-dismissible" style="margin-bottom: 0px; min-width: 370px"> + <button aria-hidden="true" data-dismiss="alert" class="close" type="button">Ã</button> + <h4><i class="icon fa fa-ban"></i> Error!</h4> + #= message # </div> </script> <script id="successTemplate" type="text/x-kendo-template"> - <div class="successNotification"> - <div id="level" class="glyphicon glyphicon-ok-circle"></div> - <div id="message"><p>#= message #</p></div> + <div class="alert alert-success alert-dismissible" style="margin-bottom: 0px; min-width: 370px"> + <button aria-hidden="true" data-dismiss="alert" class="close" type="button">Ã</button> + <h4><i class="icon fa fa-check"></i> Success!</h4> + #= message # </div> </script> </wicket:panel> http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html index dc18040..8c7cfb5 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.html @@ -35,7 +35,6 @@ under the License. <h4 wicket:id="header-label" class="modal-title">Modal header</h4> </div> <div class="modal-body"> - <div wicket:id="feedback"/> <form data-example-id="simple-input-groups" class="bs-example bs-example-form" wicket:id="form"> <span wicket:id="content">[modal content]</span> </form> http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/client/console/src/main/resources/org/apache/syncope/client/console/wizards/AjaxWizard.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/AjaxWizard.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/AjaxWizard.html new file mode 100644 index 0000000..bca42d8 --- /dev/null +++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/AjaxWizard.html @@ -0,0 +1,46 @@ +<!-- +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></title> + </head> + <body> + <wicket:panel> + <div class="wizard-form"> + <form wicket:id="form"> + <div class="wizard-overview"> + <div wicket:id="overview"></div> + </div> + <div class="wizard-header"> + <div wicket:id="header"></div> + </div> + <div class="wizard-view"> + <div wicket:id="view"></div> + </div> +<!-- <div class="wizard-feedback"> + <div wicket:id="feedback"></div> + </div>--> + <div class="wizard-buttons"> + <div wicket:id="buttons"></div> + </div> + </form> + </div> + </wicket:panel> + </body> +</html> http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesPanel.java ---------------------------------------------------------------------- diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesPanel.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesPanel.java index 07c717c..6725bfa 100644 --- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesPanel.java +++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutesPanel.java @@ -25,6 +25,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.commons.SearchableDataProvider; import org.apache.syncope.client.console.commons.SortableDataProviderComparator; @@ -100,7 +101,7 @@ public class CamelRoutesPanel extends AbstractSearchResultPanel< LOG.error("While creating or updating CamelRouteTO", e); error(getString(Constants.ERROR) + ": " + e.getMessage()); } - modal.getNotificationPanel().refresh(target); + SyncopeConsoleSession.get().getNotificationPanel().refresh(target); } }; } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java index b557bdd..d81e029 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java @@ -21,12 +21,15 @@ package org.apache.syncope.fit.console; import java.lang.reflect.InvocationTargetException; import javax.servlet.ServletContext; import org.apache.syncope.client.console.SyncopeConsoleApplication; +import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup; import org.apache.syncope.client.console.init.ConsoleInitializer; import org.apache.syncope.client.console.init.MIMETypesLoader; import org.apache.syncope.client.console.pages.Login; +import org.apache.syncope.client.console.panels.NotificationPanel; import org.apache.syncope.fit.AbstractITCase; import org.apache.wicket.Component; +import org.apache.wicket.Page; import org.apache.wicket.core.util.lang.PropertyResolver; import org.apache.wicket.markup.repeater.OddEvenItem; import org.apache.wicket.util.tester.FormTester; @@ -97,4 +100,37 @@ public abstract class AbstractConsoleITCase extends AbstractITCase { }); return result; } + + protected Component findSuccessNotification(final Page page, final String searchPath, final String key) { + Component result = + page.visitChildren(NotificationPanel.class, new IVisitor<NotificationPanel, Component>() { + + @Override + public void component(final NotificationPanel object, final IVisit<Component> visit) { + + if (object.getDefaultModelObjectAsString().equals(Constants.OPERATION_SUCCEEDED)) { + wicketTester.clickLink(object.getPageRelativePath()); + visit.stop(object); + } + } + }); + return result; + } + + protected Component findErrorNotification(final Page page, final String searchPath, final String key) { + Component result = + page.visitChildren(NotificationPanel.class, new IVisitor<NotificationPanel, Component>() { + + @Override + public void component(final NotificationPanel object, final IVisit<Component> visit) { + + if (!object.getDefaultModelObjectAsString().equals(Constants.OPERATION_SUCCEEDED)) { + wicketTester.clickLink(object.getPageRelativePath()); + visit.stop(object); + } + + } + }); + return result; + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/3c6fe5ee/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 602ad34..ea590b8 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 @@ -53,7 +53,7 @@ public class TopologyITCase extends AbstractConsoleITCase { wicketTester.assertComponent("body:toggle:togglePanelContainer:container:actions:push", AjaxLink.class); wicketTester.executeAjaxEvent("body:syncope", Constants.ON_CLICK); wicketTester.assertComponent("body:toggle:togglePanelContainer:container:actions:tasks", AjaxLink.class); - wicketTester.executeAjaxEvent("body:conns:0:conns:4:conn", Constants.ON_CLICK); + wicketTester.executeAjaxEvent("body:conns:0:conns:3:conn", Constants.ON_CLICK); wicketTester.assertComponent("body:toggle:togglePanelContainer:container:actions:create", AjaxLink.class); wicketTester.assertComponent("body:toggle:togglePanelContainer:container:actions:delete", AjaxLink.class); wicketTester.assertComponent("body:toggle:togglePanelContainer:container:actions:edit", AjaxLink.class); @@ -81,20 +81,16 @@ public class TopologyITCase extends AbstractConsoleITCase { wicketTester.clickLink("body:toggle:outherObjectsRepeater:1:outher:form:content:tasks:firstLevelContainer:" + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:" + "body:rows:1:cells:9:cell:panelEdit:editLink"); - + final FormTester formTester = wicketTester.newFormTester( "body:toggle:outherObjectsRepeater:1:outher:form:content:" + "tasks:firstLevelContainer:first:container:content:wizard:form"); formTester.setValue("view:description:textField", "test"); formTester.submit("buttons:finish"); - + + wicketTester.assertInfoMessages("Operation executed successfully"); wicketTester.cleanupFeedbackMessages(); - - wicketTester.assertLabel( - "body:toggle:outherObjectsRepeater:1:outher:form:content:tasks:firstLevelContainer:first:" - + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:body:rows:" - + "2:cells:4:cell", "test"); } @Test @@ -111,14 +107,14 @@ public class TopologyITCase extends AbstractConsoleITCase { + "container:content:wizard:form"); formTester.setValue("view:name:textField", "test"); formTester.select("view:jobDelegateClassName:dropDownChoiceField", 0); - + formTester.submit("buttons:next"); wicketTester.cleanupFeedbackMessages(); - + formTester = wicketTester.newFormTester( "body:toggle:outherObjectsRepeater:1:outher:form:content:tasks:firstLevelContainer:first:" + "container:content:wizard:form"); - + wicketTester.assertComponent( "body:toggle:outherObjectsRepeater:1:outher:form:content:tasks:firstLevelContainer:" + "first:container:content:wizard:form:view:schedule:seconds:textField", TextField.class);
