You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2013/03/19 22:16:11 UTC
[6/9] git commit: Making action link and button also work with
transient objects.
Making action link and button also work with transient objects.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d25e8062
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d25e8062
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d25e8062
Branch: refs/heads/master
Commit: d25e8062e68e846795cab79243d316d26d1b078c
Parents: 98bfcbc
Author: rmatthews <rm...@nakedobjects.org>
Authored: Sat Mar 16 23:26:42 2013 +0000
Committer: rmatthews <rm...@nakedobjects.org>
Committed: Tue Mar 19 19:38:09 2013 +0000
----------------------------------------------------------------------
.../dispatcher/view/action/ActionButton.java | 7 ++++---
.../scimpi/dispatcher/view/action/ActionLink.java | 4 ++--
.../scimpi/dispatcher/view/action/Methods.java | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/d25e8062/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionButton.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionButton.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionButton.java
index 0192724..cb0b886 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionButton.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionButton.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.action;
import org.apache.log4j.Logger;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.profiles.Localization;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -103,7 +104,7 @@ public class ActionButton extends AbstractElementProcessor {
if (MethodsUtils.isVisibleAndUsable(object, action, where) && MethodsUtils.canRunMethod(object, action, objectParameters).isAllowed()) {
// TODO use the form creation mechanism as used in ActionForm
- write(request, target, action, parameters, objectId, version, forwardResultTo, forwardVoidTo, forwardErrorTo, variable, scope, buttonTitle, completionMessage, resultOverride, idName, className);
+ write(request, target, action, parameters, version, forwardResultTo, forwardVoidTo, forwardErrorTo, variable, scope, buttonTitle, completionMessage, resultOverride, idName, className);
}
if (showMessage) {
@@ -144,7 +145,6 @@ public class ActionButton extends AbstractElementProcessor {
final ObjectAdapter object,
final ObjectAction action,
final String[] parameters,
- final String objectId,
final String version,
String forwardResultTo,
String forwardVoidTo,
@@ -181,13 +181,14 @@ public class ActionButton extends AbstractElementProcessor {
* Form.createForm(request, buttonTitle, fields, hiddenFields, false);
*/
+ final String objectId = context.mapObject(object, Scope.INTERACTION);
final String idSegment = idName == null ? "" : ("id=\"" + idName + "\" ");
final String classSegment = "class=\"" + (className == null ? "action in-line" : className) + "\"";
request.appendHtml("\n<form " + idSegment + classSegment + " action=\"action.app\" method=\"post\">\n");
if (objectId == null) {
request.appendHtml(" <input type=\"hidden\" name=\"" + "_" + OBJECT + "\" value=\"" + context.getVariable(RequestContext.RESULT) + "\" />\n");
} else {
- request.appendHtml(" <input type=\"hidden\" name=\"" + "_" + OBJECT + "\" value=\"" + objectId + "\" />\n");
+ request.appendHtml(" <input type=\"hidden\" name=\"" + "_" + OBJECT + "\" value=\"" + StringEscapeUtils.escapeHtml(objectId) + "\" />\n");
}
request.appendHtml(" <input type=\"hidden\" name=\"" + "_" + VERSION + "\" value=\"" + version + "\" />\n");
if (scope != null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/d25e8062/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionLink.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionLink.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionLink.java
index 403ff13..5fb1d3a 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionLink.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/ActionLink.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.scimpi.dispatcher.view.action;
import java.net.URLEncoder;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -63,7 +64,6 @@ public class ActionLink extends AbstractElementProcessor {
final ObjectAdapter object = MethodsUtils.findObject(context, objectId);
final String version = context.mapVersion(object);
final ObjectAction action = MethodsUtils.findAction(object, method);
- objectId = request.getContext().mapObject(object, Scope.REQUEST);
final ActionContent parameterBlock = new ActionContent(action);
request.setBlockContent(parameterBlock);
@@ -81,7 +81,7 @@ public class ActionLink extends AbstractElementProcessor {
resultOverride = parameters[0];
}
} else {
- target = objectId;
+ target = StringEscapeUtils.escapeHtml(request.getContext().mapObject(object, Scope.INTERACTION));
}
if (MethodsUtils.isVisibleAndUsable(object, action, where)) {
http://git-wip-us.apache.org/repos/asf/isis/blob/d25e8062/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java
index 37e5ba4..0b255f6 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/action/Methods.java
@@ -161,7 +161,7 @@ public class Methods extends AbstractElementProcessor {
} else {
final String version = request.getContext().mapVersion(adapter);
if (action.getParameterCount() == 0 || (action.isContributed() && action.getParameterCount() == 1)) {
- ActionButton.write(request, adapter, action, parameters, objectId, version, "_generic." + Dispatcher.EXTENSION, null, null, null, null, null, null, null, null, null);
+ ActionButton.write(request, adapter, action, parameters, version, "_generic." + Dispatcher.EXTENSION, null, null, null, null, null, null, null, null, null);
} else if (showForms) {
final CreateFormParameter params = new CreateFormParameter();
params.objectId = objectId;