You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by md...@apache.org on 2012/08/21 13:52:53 UTC

svn commit: r1375483 - in /incubator/syncope/trunk/console/src: main/java/org/apache/syncope/console/commons/ main/java/org/apache/syncope/console/pages/ main/resources/org/apache/syncope/console/pages/ test/java/org/apache/syncope/console/

Author: mdisabatino
Date: Tue Aug 21 11:52:51 2012
New Revision: 1375483

URL: http://svn.apache.org/viewvc?rev=1375483&view=rev
Log:
Fixes SYNCOPE-189 Close Modal Window on keypress ESC

Added:
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java   (with props)
Modified:
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BaseModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/PolicyModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportExecResultDownloadModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
    incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java
    incubator/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/BaseModalPage.html
    incubator/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java

Added: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java?rev=1375483&view=auto
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java (added)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java Tue Aug 21 11:52:51 2012
@@ -0,0 +1,68 @@
+/*
+ * 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.console.commons;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
+import org.apache.wicket.markup.html.IHeaderResponse;
+
+public class CloseOnESCBehavior extends AbstractDefaultAjaxBehavior {
+
+    private static final long serialVersionUID = 5826308247642534260L;
+
+    private ModalWindow modalWindow;
+
+    public CloseOnESCBehavior(ModalWindow modalWindow) {
+        this.modalWindow = modalWindow;
+    }
+    
+    private static final String PRE_JS = "$(document).ready(function() {\n"
+            + "$(document).bind('keyup', function(evt) {\n"
+            + "    if (evt.keyCode == 27){\n";
+
+    private static final String POST_JS = "\n evt.preventDefault();\n"
+            + "evt.stopPropagation();\n"
+            + "    }\n"
+            + "  });\n"
+            + "});";
+
+    @Override
+    protected void respond(final AjaxRequestTarget target) {
+        modalWindow.close(target);
+    }
+
+    @Override
+    protected String findIndicatorId() {
+        return null;
+    }
+
+    @Override
+    public void renderHead(final Component component, final IHeaderResponse response) {
+        response.renderJavaScript(new StringBuilder(PRE_JS).append(getCallbackScript())
+                .append(POST_JS).toString(),
+                "closeModalOnEsc");
+    }
+
+    public void setModalWindow(ModalWindow modalWindow) {
+        this.modalWindow = modalWindow;
+    }
+}
+

Propchange: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/CloseOnESCBehavior.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ApprovalModalPage.java Tue Aug 21 11:52:51 2012
@@ -30,6 +30,7 @@ import org.apache.commons.lang.StringUti
 import org.apache.syncope.client.to.WorkflowFormPropertyTO;
 import org.apache.syncope.client.to.WorkflowFormTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.commons.MapChoiceRenderer;
 import org.apache.syncope.console.rest.ApprovalRestClient;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
@@ -62,7 +63,7 @@ public class ApprovalModalPage extends B
 
     public ApprovalModalPage(final PageReference callerPageRef, final ModalWindow window, final WorkflowFormTO formTO) {
         super();
-
+                
         IModel<List<WorkflowFormPropertyTO>> formProps = new LoadableDetachableModel<List<WorkflowFormPropertyTO>>() {
             private static final long serialVersionUID = 3169142472626817508L;
 
@@ -220,5 +221,6 @@ public class ApprovalModalPage extends B
                 "submit"));
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BaseModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BaseModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BaseModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/BaseModalPage.java Tue Aug 21 11:52:51 2012
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.console.pages;
 
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
@@ -41,11 +42,13 @@ public abstract class BaseModalPage exte
     protected XMLRolesReader xmlRolesReader;
 
     protected FeedbackPanel feedbackPanel;
+    
+    protected CloseOnESCBehavior closeOnEscBehavior;
 
     public BaseModalPage() {
         feedbackPanel = new FeedbackPanel("feedback");
         feedbackPanel.setOutputMarkupId(true);
-        add(feedbackPanel);
+        add(feedbackPanel);     
     }
 
     public FeedbackPanel getFeedbackPanel() {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConfigurationModalPage.java Tue Aug 21 11:52:51 2012
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages
 
 import org.apache.syncope.client.to.ConfigurationTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.rest.ConfigurationRestClient;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
 import org.apache.wicket.PageReference;
@@ -128,5 +129,6 @@ public class ConfigurationModalPage exte
         form.add(submit);
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java Tue Aug 21 11:52:51 2012
@@ -54,6 +54,7 @@ import org.springframework.util.ClassUti
 import org.apache.syncope.client.to.ConnBundleTO;
 import org.apache.syncope.client.to.ConnInstanceTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.rest.ConnectorRestClient;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxCheckBoxPanel;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
@@ -399,6 +400,7 @@ public class ConnectorModalPage extends 
         connectorForm.add(cancel);
 
         add(connectorForm);
+        add(new CloseOnESCBehavior(window));
     }
 
     private ConnBundleTO getSelectedBundleTO(final List<ConnBundleTO> bundles, final ConnInstanceTO connTO) {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DerivedSchemaModalPage.java Tue Aug 21 11:52:51 2012
@@ -21,6 +21,7 @@ package org.apache.syncope.console.pages
 import org.apache.syncope.client.AbstractBaseBean;
 import org.apache.syncope.client.to.DerivedSchemaTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
 import org.apache.syncope.types.AttributableType;
 import org.apache.wicket.PageReference;
@@ -130,5 +131,6 @@ public class DerivedSchemaModalPage exte
         schemaForm.add(cancel);
 
         add(schemaForm);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/DisplayAttributesModalPage.java Tue Aug 21 11:52:51 2012
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.syncope.client.to.UserTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.commons.Constants;
 import org.apache.syncope.console.commons.PreferenceManager;
 import org.apache.syncope.console.rest.SchemaRestClient;
@@ -296,7 +297,7 @@ public class DisplayAttributesModalPage 
         };
 
         form.add(submit);
-
+        
         final IndicatingAjaxButton cancel = new IndicatingAjaxButton("cancel", new ResourceModel("cancel")) {
             private static final long serialVersionUID = -958724007591692537L;
 
@@ -314,5 +315,6 @@ public class DisplayAttributesModalPage 
         form.add(cancel);
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/MembershipModalPage.java Tue Aug 21 11:52:51 2012
@@ -28,6 +28,7 @@ import org.apache.wicket.model.CompoundP
 import org.apache.wicket.model.ResourceModel;
 import org.apache.syncope.client.to.MembershipTO;
 import org.apache.syncope.client.to.UserTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.DerivedAttributesPanel;
 import org.apache.syncope.console.pages.panels.VirtualAttributesPanel;
 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
@@ -72,7 +73,7 @@ public class MembershipModalPage extends
         };
 
         form.add(submit);
-
+        
         final IndicatingAjaxButton cancel = new IndicatingAjaxButton("cancel", new ResourceModel("cancel")) {
             private static final long serialVersionUID = -958724007591692537L;
 
@@ -108,5 +109,6 @@ public class MembershipModalPage extends
         //--------------------------------
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/NotificationModalPage.java Tue Aug 21 11:52:51 2012
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Set;
 import org.apache.syncope.client.to.NotificationTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.UserSearchPanel;
 import org.apache.syncope.console.rest.NotificationRestClient;
 import org.apache.syncope.console.rest.SchemaRestClient;
@@ -248,6 +249,7 @@ class NotificationModalPage extends Base
         form.add(cancel);
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 
     private List<String> getSchemaNames(final IntMappingType type) {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/PolicyModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/PolicyModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/PolicyModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/PolicyModalPage.java Tue Aug 21 11:52:51 2012
@@ -31,6 +31,7 @@ import org.apache.syncope.client.to.Acco
 import org.apache.syncope.client.to.PasswordPolicyTO;
 import org.apache.syncope.client.to.PolicyTO;
 import org.apache.syncope.client.to.SyncPolicyTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.PolicyBeanPanel;
 import org.apache.syncope.console.rest.PolicyRestClient;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
@@ -149,6 +150,7 @@ public class PolicyModalPage<T extends P
 
         cancel.setDefaultFormProcessing(false);
         form.add(cancel);
+        add(new CloseOnESCBehavior(window));
     }
 
     private AbstractPolicySpec getPolicySpecification(final PolicyTO policyTO) {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportExecResultDownloadModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportExecResultDownloadModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportExecResultDownloadModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportExecResultDownloadModalPage.java Tue Aug 21 11:52:51 2012
@@ -19,6 +19,7 @@
 package org.apache.syncope.console.pages;
 
 import java.util.Arrays;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -66,5 +67,6 @@ public class ReportExecResultDownloadMod
             }
         });
         add(format);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportModalPage.java Tue Aug 21 11:52:51 2012
@@ -26,6 +26,7 @@ import org.apache.syncope.client.report.
 import org.apache.syncope.client.to.ReportExecTO;
 import org.apache.syncope.client.to.ReportTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.types.ReportExecStatus;
 import org.apache.wicket.Page;
 import org.apache.wicket.PageReference;
@@ -113,6 +114,7 @@ public class ReportModalPage extends Bas
         form = new Form<ReportTO>("form");
         form.setModel(new CompoundPropertyModel(reportTO));
         add(form);
+        add(new CloseOnESCBehavior(window));
 
         setupProfile();
         setupExecutions();

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ReportletConfModalPage.java Tue Aug 21 11:52:51 2012
@@ -31,6 +31,7 @@ import org.apache.syncope.annotation.For
 import org.apache.syncope.client.SyncopeConstants;
 import org.apache.syncope.client.report.ReportletConf;
 import org.apache.syncope.client.search.NodeCond;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.types.AttributableType;
 import org.apache.wicket.Component;
 import org.apache.wicket.PageReference;
@@ -97,6 +98,7 @@ public class ReportletConfModalPage exte
 
         Form form = new Form("form");
         add(form);
+        add(new CloseOnESCBehavior(window));
 
         propertiesContainer = new WebMarkupContainer("container");
         propertiesContainer.setOutputMarkupId(true);

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResourceModalPage.java Tue Aug 21 11:52:51 2012
@@ -20,6 +20,7 @@ package org.apache.syncope.console.pages
 
 import org.apache.syncope.client.to.ResourceTO;
 import org.apache.syncope.client.to.SchemaMappingTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.ResourceConnConfPanel;
 import org.apache.syncope.console.pages.panels.ResourceDetailsPanel;
 import org.apache.syncope.console.pages.panels.ResourceMappingPanel;
@@ -143,6 +144,7 @@ public class ResourceModalPage extends B
         form.add(cancel);
 
         add(form);
+        add(new CloseOnESCBehavior(window));
 
         MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, xmlRolesReader.getAllAllowedRoles("Resources",
                 createFlag

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java Tue Aug 21 11:52:51 2012
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.syncope.client.mod.RoleMod;
 import org.apache.syncope.client.to.RoleTO;
 import org.apache.syncope.client.util.AttributableOperations;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.RoleAttributesPanel;
 import org.apache.syncope.console.rest.RoleRestClient;
 import org.apache.wicket.PageReference;
@@ -132,5 +133,6 @@ public class RoleModalPage extends BaseM
         form.add(cancel);
 
         add(form);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/SchemaModalPage.java Tue Aug 21 11:52:51 2012
@@ -28,6 +28,7 @@ import org.apache.commons.lang.StringUti
 import org.apache.syncope.client.AbstractBaseBean;
 import org.apache.syncope.client.to.SchemaTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxCheckBoxPanel;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
@@ -278,6 +279,7 @@ public class SchemaModalPage extends Abs
         schemaForm.add(cancel);
 
         add(schemaForm);
+        add(new CloseOnESCBehavior(window));
     }
 
     private String getEnumValuesAsString(final List<String> enumerationValues) {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java Tue Aug 21 11:52:51 2012
@@ -21,6 +21,7 @@ package org.apache.syncope.console.pages
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.syncope.client.to.UserTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.commons.StatusBean;
 import org.apache.syncope.console.pages.panels.StatusPanel;
 import org.apache.syncope.console.rest.UserRestClient;
@@ -46,6 +47,7 @@ public class StatusModalPage extends Bas
 
         final Form form = new Form("form");
         add(form);
+        add(new CloseOnESCBehavior(window));
 
         final List<StatusBean> statuses = new ArrayList<StatusBean>();
 

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java Tue Aug 21 11:52:51 2012
@@ -29,6 +29,7 @@ import org.apache.syncope.client.to.Sync
 import org.apache.syncope.client.to.TaskExecTO;
 import org.apache.syncope.client.to.TaskTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.commons.SortableDataProviderComparator;
 import org.apache.syncope.console.rest.TaskRestClient;
 import org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.table.DatePropertyColumn;
@@ -81,6 +82,7 @@ public abstract class TaskModalPage exte
         taskExecMessageWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
         taskExecMessageWin.setCookieName("task-exec-message-win-modal");
         add(taskExecMessageWin);
+        add(new CloseOnESCBehavior(taskExecMessageWin));
 
         form = new Form("form");
         form.setModel(new CompoundPropertyModel(taskTO));

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java Tue Aug 21 11:52:51 2012
@@ -19,6 +19,7 @@
 package org.apache.syncope.console.pages;
 
 import org.apache.syncope.client.to.UserTO;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.console.pages.panels.AttributesPanel;
 import org.apache.syncope.console.pages.panels.DerivedAttributesPanel;
 import org.apache.syncope.console.pages.panels.ResourcesPanel;
@@ -79,6 +80,7 @@ public abstract class UserModalPage exte
         fragment = new Fragment("userModalFrag", "userModalEditFrag", this);
         fragment.setOutputMarkupId(true);
         add(fragment);
+        add(new CloseOnESCBehavior(window));
     }
 
     public UserModalPage(final ModalWindow window, final UserTO userTO, final Mode mode) {
@@ -100,6 +102,7 @@ public abstract class UserModalPage exte
         result.setOutputMarkupId(true);
 
         fragment.add(result);
+        add(new CloseOnESCBehavior(window));
     }
 
     public UserTO getUserTO() {

Modified: incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java (original)
+++ incubator/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java Tue Aug 21 11:52:51 2012
@@ -21,6 +21,7 @@ package org.apache.syncope.console.pages
 import org.apache.syncope.client.AbstractBaseBean;
 import org.apache.syncope.client.to.VirtualSchemaTO;
 import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException;
+import org.apache.syncope.console.commons.CloseOnESCBehavior;
 import org.apache.syncope.types.AttributableType;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -94,6 +95,21 @@ public class VirtualSchemaModalPage exte
                 target.add(feedbackPanel);
             }
         };
+        
+        final IndicatingAjaxButton cancel = new IndicatingAjaxButton("cancel", new ResourceModel("cancel")) {
+            private static final long serialVersionUID = -958724007591692537L;
+
+            @Override
+            protected void onSubmit(final AjaxRequestTarget target, final Form form) {
+                window.close(target);
+            }
+
+            @Override
+            protected void onError(final AjaxRequestTarget target, final Form form) {
+            }
+        };
+        
+        cancel.setDefaultFormProcessing(false);
 
         String allowedRoles;
 
@@ -108,7 +124,9 @@ public class VirtualSchemaModalPage exte
         schemaForm.add(name);
 
         schemaForm.add(submit);
+        schemaForm.add(cancel);
 
         add(schemaForm);
+        add(new CloseOnESCBehavior(window));
     }
 }

Modified: incubator/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/BaseModalPage.html
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/BaseModalPage.html?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/BaseModalPage.html (original)
+++ incubator/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/BaseModalPage.html Tue Aug 21 11:52:51 2012
@@ -54,7 +54,7 @@
 
     </style>
   </head>
-  <body>
+  <body onload="window.focus()">
     <div wicket:id="feedback"/>
 
   <wicket:child />

Modified: incubator/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java
URL: http://svn.apache.org/viewvc/incubator/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java?rev=1375483&r1=1375482&r2=1375483&view=diff
==============================================================================
--- incubator/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java (original)
+++ incubator/syncope/trunk/console/src/test/java/org/apache/syncope/console/ConfigurationTestITCase.java Tue Aug 21 11:52:51 2012
@@ -171,7 +171,20 @@ public class ConfigurationTestITCase ext
 
         selenium.waitForCondition("selenium.isElementPresent("
                 + "\"//div[2]/form/div[2]/div[4]/div/div[2]/label\");", "30000");
-        
+
         selenium.click("//div[2]/form/div[3]/input");
     }
+
+    @Test
+    public void issueSYNCOPE189() {
+        selenium.click("css=img[alt=\"Configuration\"]");
+
+        selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
+
+        selenium.click("//a[contains(text(),'Create new configuration')]");
+
+        selenium.waitForCondition("selenium.isElementPresent(\"//input[@name='key:textField']\");", "30000");
+
+        selenium.keyPressNative("27");
+    }
 }