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>