Repository: syncope
Updated Branches:
  refs/heads/master 5d1a0f00e -> 67568240f


[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/67568240
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/67568240
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/67568240

Branch: refs/heads/master
Commit: 67568240f72b2bbadf151818f7aa20de24266d80
Parents: 5d1a0f0
Author: fmartelli <[email protected]>
Authored: Tue May 23 11:50:27 2017 +0200
Committer: fmartelli <[email protected]>
Committed: Tue May 23 11:50:58 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/67568240/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/67568240/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/67568240/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/67568240/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());
                         }
                     }

Reply via email to