You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/04/12 07:37:07 UTC

git commit: ISIS-382: adding veil to avoid double submit.

Updated Branches:
  refs/heads/master 61f2e4cec -> 17a40716f


ISIS-382: adding veil to avoid double submit.


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

Branch: refs/heads/master
Commit: 17a40716f3a592c4b4ecff3ddd89bd63a18d927d
Parents: 61f2e4c
Author: Dan Haywood <da...@apache.org>
Authored: Fri Apr 12 06:36:25 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Apr 12 06:36:25 2013 +0100

----------------------------------------------------------------------
 .../wicket/ui/components/actions/ActionPanel.css   |    1 +
 .../actions/ActionParametersFormPanel.html         |   12 ++++++-
 .../actions/ActionParametersFormPanel.java         |   19 ++++++++--
 .../ui/components/actions/spinning-icon-blue.gif   |  Bin 0 -> 2693 bytes
 .../wicket/ui/components/actions/spinning-icon.gif |  Bin 0 -> 5266 bytes
 .../entity/properties/EntityPropertiesForm.java    |    4 ++
 .../entity/properties/EntityPropertiesPanel.html   |   22 ++++++++++++
 .../entity/properties/EntityPropertiesPanel.java   |    1 -
 .../components/entity/properties/spinning-icon.gif |  Bin 0 -> 2693 bytes
 .../isis/viewer/wicket/ui/pages/PageAbstract.css   |   27 +++++++++++++++
 .../isis/viewer/wicket/ui/pages/PageAbstract.html  |    1 -
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |    2 +
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |    5 +++
 13 files changed, 87 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.css
index 3869e29..5e9f6e5 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.css
@@ -17,6 +17,7 @@
  *  under the License.
  */
 
+
 .actionPanel {
 }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.html
index 87c6033..5684190 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.html
@@ -29,7 +29,14 @@
 				    	</div>
 	   	      			<span wicket:id="feedback"></span>
 				    	<div class="buttons">
-				    		<input type="submit" wicket:id="okButton" value="OK" class="okButton"/> 
+				    		<input type="submit" wicket:id="okButton" value="OK" class="okButton"/>
+                            <div id="veil"> 
+                                <div class="imgHolder">
+                                    <wicket:link>
+                                        <img src="./spinning-icon.gif"/>
+                                    </wicket:link>
+                                </div>
+                            </div>
 				    	</div>
 			    	</fieldset>
 				</form>
@@ -37,3 +44,6 @@
 		</wicket:panel>
 	</body>
 </html>
+
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index 90651ea..e4d8b9b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -27,10 +27,16 @@ import java.util.List;
 
 import com.google.common.collect.Lists;
 
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.IAjaxIndicatorAware;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.model.Model;
 
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -43,6 +49,7 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.model.util.Mementos;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
+import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
 /**
@@ -71,7 +78,7 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
         add(new ActionParameterForm("inputForm", getModel()));
     }
 
-    class ActionParameterForm extends Form<ObjectAdapter> {
+    class ActionParameterForm extends Form<ObjectAdapter>  {
 
         private static final long serialVersionUID = 1L;
 
@@ -80,6 +87,8 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
         public ActionParameterForm(final String id, final ActionModel actionModel) {
             super(id, actionModel);
 
+            setOutputMarkupId(true); // for ajax button
+            
             addParameters();
 
             FormFeedbackPanel formFeedback = new FormFeedbackPanel(ID_FEEDBACK);
@@ -114,17 +123,20 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
             }
         }
 
+
         private void addOkButton() {
-            add(new Button(ID_OK_BUTTON) {
+            Button okButton = new Button(ID_OK_BUTTON) {
                 private static final long serialVersionUID = 1L;
 
                 @Override
                 public void onSubmit() {
                     actionExecutor.executeActionAndProcessResults(ActionParameterForm.this);
                 };
-            });
+            };
+            add(okButton);
         }
 
+
         private List<ActionParameterMemento> buildParameterMementos(final List<ObjectActionParameter> parameters) {
             final List<ActionParameterMemento> parameterMementoList = Lists.transform(parameters, Mementos.fromActionParameter());
             // we copy into a new array list otherwise we get lazy evaluation =
@@ -132,5 +144,4 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
             return Lists.newArrayList(parameterMementoList);
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon-blue.gif
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon-blue.gif b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon-blue.gif
new file mode 100644
index 0000000..0e2b686
Binary files /dev/null and b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon-blue.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon.gif
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon.gif b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon.gif
new file mode 100644
index 0000000..75e3b1e
Binary files /dev/null and b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/spinning-icon.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 5d9414c..20c72ad 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -25,6 +25,8 @@ import org.apache.wicket.Component;
 import org.apache.wicket.Session;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Button;
@@ -189,6 +191,7 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
             protected void onError(final AjaxRequestTarget target, final Form<?> form) {
                 toEditMode(target);
             }
+            
         };
         add(editButton);
 
@@ -340,6 +343,7 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
         };
         add(cancelButton);
 
+        okButton.setOutputMarkupPlaceholderTag(true);
         editButton.setOutputMarkupPlaceholderTag(true);
         cancelButton.setOutputMarkupPlaceholderTag(true);
         

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index 322a526..00494eb 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -37,6 +37,28 @@
 				    	<input type="submit" class="edit" wicket:id="edit"/>
 				    	<input type="submit" class="ok" wicket:id="ok"/>
 				    	<input type="submit" class="cancel" wicket:id="cancel"/>
+
+                        <div id="veil" 
+                            style="display:none;
+                                   position:absolute;
+                                   top:0;
+                                   left:0;
+                                   z-index=99999;
+                                   height: 100%;
+                                   width: 100%;
+                                   background: rgb(0, 0, 0) transparent;
+                                   background-color:rgba(0,0,0,0.2);">
+                            <div style="display: relative;">
+                                <wicket:link>
+                                    <img style="margin-left: auto;
+                                                margin-right: auto;
+                                                display: block;
+                                                margin-top: 7em;" 
+                                        src="./spinning-icon.gif"/>
+                                </wicket:link>
+                            </div>
+                        </div>
+
 				    </div>
 				</form>
 			</div>

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
index ed2e440..81a2310 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
@@ -34,7 +34,6 @@ public class EntityPropertiesPanel extends PanelAbstract<EntityModel> {
     private static final long serialVersionUID = 1L;
 
     private static final String ID_ENTITY_PROPERTIES = "entityProperties";
-    
 
     private EntityPropertiesForm form;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/spinning-icon.gif
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/spinning-icon.gif b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/spinning-icon.gif
new file mode 100644
index 0000000..0e2b686
Binary files /dev/null and b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/spinning-icon.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
index 0566fb9..076b8ba 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
@@ -730,3 +730,30 @@ colors
 #00477F - dark blue
 #F0EFEA - bookmark background
 */
+
+
+
+/* veil */
+
+#veil {
+    display: none;
+	position:absolute;
+	top:0;
+	left:0;
+	z-index=99999;
+	height: 100%;
+	width: 100%;
+	background: rgb(210, 240, 243) transparent;
+	background-color:rgba(210, 240, 243,0.5);
+}
+
+#veil div.imgHolder {
+	display: relative;
+}
+
+#veil img {
+    margin-left: auto;
+    margin-right: auto;
+    display: block;
+    margin-top: 7em;
+} 

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index 69eaa02..556584f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -31,7 +31,6 @@
 		<title wicket:id="pageTitle"></title>
 	</wicket:head>
 	<body>
-		
 		<div id="container" class="page">
 			<div class="headerContainer">
 				<div>

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 66ffee4..d78544e 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -86,6 +86,7 @@ public abstract class PageAbstract extends WebPage {
     public static final String ID_ABOUT_LINK = "aboutLink";
 
     private static final JavaScriptResourceReference JQUERY_JGROWL_JS = new JavaScriptResourceReference(PageAbstract.class, "jquery.jgrowl.js");
+    private static final JavaScriptResourceReference JQUERY_ISIS_WICKET_VIEWER_JS = new JavaScriptResourceReference(PageAbstract.class, "jquery.isis.wicket.viewer.js");
 
     /**
      * This is a bit hacky, but best way I've found to pass an exception over to the WicketSignInPage
@@ -168,6 +169,7 @@ public abstract class PageAbstract extends WebPage {
         super.renderHead(response);
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
         response.render(new PriorityHeaderItem(JavaScriptReferenceHeaderItem.forReference(JQUERY_JGROWL_JS)));
+        response.render(new PriorityHeaderItem(JavaScriptReferenceHeaderItem.forReference(JQUERY_ISIS_WICKET_VIEWER_JS)));
         
         final String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
         if (!StringUtils.isEmpty(feedbackMsg)) {

http://git-wip-us.apache.org/repos/asf/isis/blob/17a40716/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
new file mode 100644
index 0000000..2f8c344
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -0,0 +1,5 @@
+$(document).ready(function() {
+    $('.buttons .okButton').click(function(){
+        $('#veil').show(); 
+    });
+});