Repository: syncope Updated Branches: refs/heads/2_0_X 894d22695 -> 04f255360
[SYNCOPE-1081] fix the approval + close action link toggle panel when asking for bulk actions Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/04f25536 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/04f25536 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/04f25536 Branch: refs/heads/2_0_X Commit: 04f25536045877df65ed9ec35fc6203817cd4b5a Parents: 894d226 Author: fmartelli <[email protected]> Authored: Tue May 23 11:50:27 2017 +0200 Committer: fmartelli <[email protected]> Committed: Tue May 23 11:50:27 2017 +0200 ---------------------------------------------------------------------- .../approvals/ApprovalDirectoryPanel.java | 21 ++++++++++++++++++-- .../client/console/approvals/ApprovalModal.java | 16 ++++----------- .../console/panels/AjaxDataTablePanel.java | 5 +++++ .../data/table/AjaxFallbackDataTable.java | 4 +--- 4 files changed, 29 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/04f25536/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java index a3249cd..f40d7c6 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalDirectoryPanel.java @@ -45,6 +45,7 @@ import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; +import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; @@ -132,9 +133,25 @@ public class ApprovalDirectoryPanel final IModel<WorkflowFormTO> formModel = new CompoundPropertyModel<>(model.getObject()); modal.setFormModel(formModel); - target.add(modal.setContent(new ApprovalModal(modal, pageRef, model.getObject()))); - modal.header(new Model<>(getString("approval.edit", new Model<>(model.getObject())))); + target.add(modal.setContent(new ApprovalModal(modal, pageRef, model.getObject()) { + + private static final long serialVersionUID = 5546519445061007248L; + + @Override + public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { + try { + super.onSubmit(target, form); + ApprovalDirectoryPanel.this.getTogglePanel().close(target); + } catch (SyncopeClientException e) { + SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage()); + } + ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); + } + + })); + + modal.header(new Model<>(getString("approval.edit", new Model<>(model.getObject())))); modal.show(true); } http://git-wip-us.apache.org/repos/asf/syncope/blob/04f25536/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java index c42203a..4a75c06 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/approvals/ApprovalModal.java @@ -24,7 +24,6 @@ import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.panels.MultilevelPanel; import org.apache.syncope.client.console.rest.UserWorkflowRestClient; 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.WorkflowFormTO; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -65,17 +64,10 @@ public class ApprovalModal extends Panel implements SubmitableModalPanel, Wizard @Override public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - try { - new UserWorkflowRestClient().submitForm(formTO); - - this.modal.show(false); - this.modal.close(target); - - SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); - } catch (SyncopeClientException e) { - SyncopeConsoleSession.get().error(getString(Constants.ERROR) + ": " + e.getMessage()); - } - ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); + new UserWorkflowRestClient().submitForm(formTO); + this.modal.show(false); + this.modal.close(target); + SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED)); } @Override http://git-wip-us.apache.org/repos/asf/syncope/blob/04f25536/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java index fc2cb45..c2098b2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java @@ -238,6 +238,11 @@ public final class AjaxDataTablePanel<T extends Serializable, S> extends DataTab @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { + // send event to close eventually opened actions toggle panel + if (builder.getTogglePanel() != null) { + builder.getTogglePanel().close(target); + } + if (builder.multiLevelPanel == null) { bulkModal.header(new ResourceModel("bulk.action", "Bulk action")); bulkModal.changeCloseButtonLabel(getString("cancel", null, "Cancel"), target); http://git-wip-us.apache.org/repos/asf/syncope/blob/04f25536/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java index 4afa9ea..15c6a0d 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java @@ -129,9 +129,7 @@ public class AjaxFallbackDataTable<T extends Serializable, S> extends DataTable< @Override protected void onEvent(final AjaxRequestTarget target) { - if (target.getLastFocusedElementId() == null - || (!target.getLastFocusedElementId().startsWith("check") - && !target.getLastFocusedElementId().startsWith("groupselector"))) { + if (target.getLastFocusedElementId() == null) { togglePanel.toggleWithContent(target, getActions(model), model.getObject()); } }
