You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/03/13 09:24:10 UTC

[1/3] git commit: Adds onClick handler to support action: prefix

Repository: struts
Updated Branches:
  refs/heads/feature/use-js-to-support-multiple-buttons [created] 83bdfcb57


Adds onClick handler to support action: prefix


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

Branch: refs/heads/feature/use-js-to-support-multiple-buttons
Commit: ca911367280eb525461439be6ed17022c89b8169
Parents: bcd61a0
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 13 09:21:29 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 13 09:21:29 2014 +0100

----------------------------------------------------------------------
 .../org/apache/struts2/components/FormButton.java  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/ca911367/core/src/main/java/org/apache/struts2/components/FormButton.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/FormButton.java b/core/src/main/java/org/apache/struts2/components/FormButton.java
index 2bd66c3..0671862 100644
--- a/core/src/main/java/org/apache/struts2/components/FormButton.java
+++ b/core/src/main/java/org/apache/struts2/components/FormButton.java
@@ -24,6 +24,7 @@ package org.apache.struts2.components;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import org.apache.struts2.dispatcher.mapper.ActionMapper;
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
@@ -81,6 +82,7 @@ public abstract class FormButton extends ClosingUIBean {
                 }
                 mapping.setExtension("");
                 name = "action:" + actionMapper.getUriFromActionMapping(mapping);
+                applyOnClickHandler();
             } else {
                 name = "method:" + findString(method);
             }
@@ -92,6 +94,21 @@ public abstract class FormButton extends ClosingUIBean {
 
     }
 
+    protected void applyOnClickHandler() {
+        String onClick = (String) parameters.get("onclick");
+        String submitId = (String) parameters.get("id");
+        if (submitId == null) {
+            submitId = RandomStringUtils.randomAlphanumeric(12);
+        }
+        String clickHandler = "submitAction_" + submitId + "(this);";
+        if (onClick != null && !onClick.contains(clickHandler)) {
+            onClick = onClick + "; " + clickHandler;
+        } else {
+            onClick = clickHandler;
+        }
+        parameters.put("onclick", onClick);
+    }
+
     /**
      * Override UIBean's implementation, such that component Html id is determined
      * in the following order :-


[2/3] git commit: Extends Submit and Reset to use new approach of multiple submit buttons

Posted by lu...@apache.org.
Extends Submit and Reset to use new approach of multiple submit buttons


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/706b289a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/706b289a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/706b289a

Branch: refs/heads/feature/use-js-to-support-multiple-buttons
Commit: 706b289aaa1a64c8928e848b1b108f52a5981977
Parents: ca91136
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 13 09:22:14 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 13 09:22:14 2014 +0100

----------------------------------------------------------------------
 .../template/simple/action-handler.ftl          | 30 ++++++++++++++++++++
 .../main/resources/template/simple/reset.ftl    |  9 +++++-
 .../resources/template/simple/submit-close.ftl  |  1 +
 3 files changed, 39 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/706b289a/core/src/main/resources/template/simple/action-handler.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/action-handler.ftl b/core/src/main/resources/template/simple/action-handler.ftl
new file mode 100644
index 0000000..34517f9
--- /dev/null
+++ b/core/src/main/resources/template/simple/action-handler.ftl
@@ -0,0 +1,30 @@
+<#--
+/*
+ * $Id$
+ *
+ * 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.
+ */
+-->
+<#if parameters.name?? && parameters.name?contains("action:")>
+<script>
+  function submitAction_${parameters.id?html}(element) {
+    element.form.action = '${parameters.name?substring("action:"?length)}';
+    element.form.submit();
+  }
+</script>
+</#if>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/706b289a/core/src/main/resources/template/simple/reset.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/reset.ftl b/core/src/main/resources/template/simple/reset.ftl
index 0ddba57..635cee6 100644
--- a/core/src/main/resources/template/simple/reset.ftl
+++ b/core/src/main/resources/template/simple/reset.ftl
@@ -22,6 +22,9 @@
 -->
 <#if parameters.type?? && parameters.type=="button">
 <button type="reset"<#rt/>
+<#if parameters.id??>
+ id="${parameters.id?html}"<#rt/>
+</#if>
 <#if parameters.name??>
  name="${parameters.name?html}"<#rt/>
 </#if>
@@ -51,6 +54,9 @@
 /><#else><#if parameters.label??><@s.property value="parameters.label"/><#rt/></#if></#if></button>
 <#else>
 <input type="reset"<#rt/>
+<#if parameters.id??>
+ id="${parameters.id?html}"<#rt/>
+</#if>
 <#if parameters.name??>
  name="${parameters.name?html}"<#rt/>
 </#if>
@@ -73,4 +79,5 @@
 <#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
 <#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
 />
-</#if>
\ No newline at end of file
+</#if>
+<#include "/${parameters.templateDir}/${parameters.expandTheme}/action-handler.ftl"/>

http://git-wip-us.apache.org/repos/asf/struts/blob/706b289a/core/src/main/resources/template/simple/submit-close.ftl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/template/simple/submit-close.ftl b/core/src/main/resources/template/simple/submit-close.ftl
index 7f51958..3c4138b 100644
--- a/core/src/main/resources/template/simple/submit-close.ftl
+++ b/core/src/main/resources/template/simple/submit-close.ftl
@@ -4,3 +4,4 @@
 <#else>
 ${parameters.body}<#rt/>
 </#if>
+<#include "/${parameters.templateDir}/${parameters.expandTheme}/action-handler.ftl"/>


[3/3] git commit: Updates expected test results to meet new requirements for action: prefix

Posted by lu...@apache.org.
Updates expected test results to meet new requirements for action: prefix


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/83bdfcb5
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/83bdfcb5
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/83bdfcb5

Branch: refs/heads/feature/use-js-to-support-multiple-buttons
Commit: 83bdfcb57bc28139012e711a2f542acf90bfad4a
Parents: 706b289
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 13 09:23:17 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 13 09:23:17 2014 +0100

----------------------------------------------------------------------
 .../org/apache/struts2/views/jsp/ui/Reset-1.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-2.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-3.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-4.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-5.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-6.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Reset-7.txt         | 11 ++++++++++-
 .../org/apache/struts2/views/jsp/ui/Reset-8.txt         | 11 ++++++++++-
 .../org/apache/struts2/views/jsp/ui/Reset-9.txt         |  2 +-
 .../org/apache/struts2/views/jsp/ui/Submit-7.txt        | 10 +++++++++-
 .../org/apache/struts2/views/jsp/ui/Submit-8.txt        | 12 ++++++++++--
 11 files changed, 46 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-1.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-1.txt
index c89899b..9a63734 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-1.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="left"><input type="reset" name="myname" value="bar"/></div></td>
+    <td colspan="2"><div align="left"><input type="reset" id="myname" name="myname" value="bar"/></div></td>
 </tr>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-2.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-2.txt
index 279c143..d3f3af0 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-2.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><input type="reset" name="myname" value="Reset" title="mytitle"/></div></td>
+    <td colspan="2"><div align="right"><input type="reset" id="myname" name="myname" value="Reset" title="mytitle"/></div></td>
 </tr>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-3.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-3.txt
index 9497bb6..3152859 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-3.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><button type="reset" name="myname" value="bar">bar</button></div></td>
+    <td colspan="2"><div align="right"><button type="reset" id="myname" name="myname" value="bar">bar</button></div></td>
 </tr>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-4.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-4.txt
index 3fa4c37..e0e0589 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-4.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="left"><button type="reset" name="myname" value="bar">mylabel</button></div></td>
+    <td colspan="2"><div align="left"><button type="reset" id="myname" name="myname" value="bar">mylabel</button></div></td>
 </tr>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-5.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-5.txt
index fbab3f6..67df7bd 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-5.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><button type="reset" name="myname" value="bar" disabled="disabled">bar</button></div></td>
+    <td colspan="2"><div align="right"><button type="reset" id="myname" name="myname" value="bar" disabled="disabled">bar</button></div></td>
 </tr>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-6.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-6.txt
index 39a2906..14038a0 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-6.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><button type="reset" name="myname" value="bar"><img alt="mylabel" src="some.gif"/></button></div></td>
+    <td colspan="2"><div align="right"><button type="reset" id="myname" name="myname" value="bar"><img alt="mylabel" src="some.gif"/></button></div></td>
 </tr>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-7.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-7.txt
index cfb2b02..6330bf1 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-7.txt
@@ -1 +1,10 @@
-<button type="reset" name="action:manager!update" value="Reset">mylabel</button>
\ No newline at end of file
+<button type="reset" id="myname" name="action:manager!update" value="Reset" onclick="submitAction_myname(this);">
+mylabel
+</button>
+
+<script>
+  function submitAction_myname(element) {
+    element.form.action = 'manager!update';
+    element.form.submit();
+  }
+</script>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-8.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-8.txt
index 33b28d0..405bae0 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-8.txt
@@ -1 +1,10 @@
-<button type="reset" name="action:manager" value="Reset">mylabel</button>
\ No newline at end of file
+<button type="reset" id="myname" name="action:manager" value="Reset" onclick="submitAction_myname(this);">
+mylabel
+</button>
+
+<script>
+  function submitAction_myname(element) {
+    element.form.action = 'manager';
+    element.form.submit();
+  }
+</script>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-9.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-9.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-9.txt
index bde52ac..6d90431 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-9.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Reset-9.txt
@@ -1 +1 @@
-<button type="reset" name="method:update" value="Reset">mylabel</button>
\ No newline at end of file
+<button type="reset" id="myname" name="method:update" value="Reset">mylabel</button>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-7.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-7.txt
index 1a10a6c..69fb404 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-7.txt
@@ -1,2 +1,10 @@
-<button type="submit" id="myname" name="action:manager!update" value="Submit">mylabel
+<button type="submit" id="myname" name="action:manager!update" value="Submit" onclick="submitAction_myname(this);">
+mylabel
 </button>
+
+<script>
+  function submitAction_myname(element) {
+    element.form.action = 'manager!update';
+    element.form.submit();
+  }
+</script>

http://git-wip-us.apache.org/repos/asf/struts/blob/83bdfcb5/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-8.txt
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-8.txt
index de4563c..f805181 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-8.txt
@@ -1,2 +1,10 @@
-<button type="submit" id="myname" name="action:manager" value="Submit">mylabel
-</button>
\ No newline at end of file
+<button type="submit" id="myname" name="action:manager" value="Submit" onclick="submitAction_myname(this);">
+mylabel
+</button>
+
+<script>
+  function submitAction_myname(element) {
+    element.form.action = 'manager';
+    element.form.submit();
+  }
+</script>