You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by mo...@apache.org on 2003/02/06 17:14:28 UTC
cvs commit: jakarta-jetspeed/xdocs changes.xml
morciuch 2003/02/06 08:14:28
Modified: docs/site changes.html
src/java/org/apache/jetspeed/modules/actions/portlets
JspPortletAction.java QuestionnaireAction.java
src/java/org/apache/jetspeed/portal/portlets JspPortlet.java
webapp/WEB-INF/templates/jsp/portlets/html
JetspeedQuestionnaire.jsp
JetspeedQuestionnaireConfirmation.jsp
xdocs changes.xml
Log:
Alternative implementation of JspPortletAction.setTemplate using session (see Bugzilla bug# 16443).
Revision Changes Path
1.104 +3 -0 jakarta-jetspeed/docs/site/changes.html
Index: changes.html
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/docs/site/changes.html,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- changes.html 28 Jan 2003 04:46:20 -0000 1.103
+++ changes.html 6 Feb 2003 16:14:26 -0000 1.104
@@ -133,6 +133,9 @@
</li>
-->
<li>
+ Fixed - Bug # 16443 - 2003/02/05 - Reimplemented setTemplate method in JspPortletAction to utilize session (MO)
+</li>
+<li>
Fixed - Bug # 16443 - 2003/01/27 - Corrected the setTemplate functionality in JspPortletAction (MO)
</li>
<li>
1.4 +80 -4 jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/JspPortletAction.java
Index: JspPortletAction.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/JspPortletAction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JspPortletAction.java 28 Jan 2003 04:46:21 -0000 1.3
+++ JspPortletAction.java 6 Feb 2003 16:14:26 -0000 1.4
@@ -87,9 +87,10 @@
/**
* This method is used when you want to short circuit an Action
* and change the template that will be executed next.
- *
- * @param data Turbine information.
+ *
+ * @param data Turbine information.
* @param template The template that will be executed next.
+ * @deprecated As of 1.4b4
*/
public void setTemplate(RunData data, String template)
{
@@ -97,6 +98,28 @@
}
/**
+ * This method is used when you want to short circuit an Action
+ * and change the template that will be executed next. The template
+ * will persist until session expires or setTemplate with null
+ * template name is called.
+ *
+ * @param data Turbine information.
+ * @param portlet Reference to portlet.
+ * @param template The template that will be executed next.
+ */
+ public void setTemplate(RunData data, Portlet portlet, String template)
+ {
+ if (template != null)
+ {
+ PortletSessionState.setAttribute(portlet, data, JspPortlet.TEMPLATE, template);
+ }
+ else
+ {
+ PortletSessionState.clearAttribute(portlet, data, JspPortlet.TEMPLATE);
+ }
+ }
+
+ /**
* Performs the action
*
* @param rundata
@@ -186,13 +209,66 @@
// Ignore submits from other instances of the same portlet
if (theButton == null || !PortletSessionState.isMyRequest(data, portlet))
{
- throw new NoSuchMethodException("JspActionEvent: The button was null or not my request");
+ throw new NoSuchMethodException("JspPortletAction: The button was null or not my request");
+ }
+
+ if (Log.getLogger().isDebugEnabled())
+ {
+ Log.debug("JspPortletAction: attempting to execute event handler: " + theButton);
}
Method method = getClass().getMethod(theButton, classes);
args[0] = data;
args[1] = portlet;
method.invoke(this, args);
+ }
+
+ /**
+ * This overrides the default Action.perform() to execute the
+ * doEvent() method. If that fails, then it will execute the
+ * doPerform() method instead.
+ *
+ * @param data A Turbine RunData object.
+ * @exception Exception, a generic exception.
+ */
+ protected void perform(RunData rundata)
+ throws Exception
+ {
+ if (rundata.getParameters().getString("action") != null)
+ {
+ // if context is already defined and Actions defined, events
+ // have already been processed, call doPerform
+ if (Log.getLogger().isDebugEnabled())
+ {
+ Log.debug("JspPortletAction: Action detected, calling doPerform");
+ }
+ doPerform(rundata);
+ }
+ else
+ {
+ try
+ {
+ // process implicit ActionEvent invocation
+ Log.debug("JspPortletAction: try executing events");
+
+ Portlet portlet = (Portlet) rundata.getRequest().getAttribute("portlet");
+
+ if (portlet != null)
+ {
+ executeEvents(rundata);
+ doPerform(rundata);
+ }
+ }
+ catch (NoSuchMethodException e)
+ {
+ // no event selected, process normal context generation
+ if (Log.getLogger().isDebugEnabled())
+ {
+ Log.debug("JspPortletAction: no events, calling doPerform");
+ }
+ doPerform(rundata);
+ }
+ }
}
/**
1.4 +23 -3 jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/QuestionnaireAction.java
Index: QuestionnaireAction.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/QuestionnaireAction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- QuestionnaireAction.java 28 Jan 2003 04:46:21 -0000 1.3
+++ QuestionnaireAction.java 6 Feb 2003 16:14:27 -0000 1.4
@@ -117,6 +117,25 @@
}
rundata.getRequest().setAttribute("questions", qa);
+
+ // After successful send, the user may or may not click the Continue button so
+ // reset to default template here
+ if (rundata.getRequest().getAttribute("email") == null)
+ {
+ this.setTemplate(rundata, portlet, null);
+ }
+
+ }
+
+ /**
+ * Continue event handler.
+ *
+ * @param portlet The jsp-based portlet that is being built.
+ * @param rundata The turbine rundata context for this request.
+ */
+ public void doContinue(RunData rundata, Portlet portlet)
+ {
+ this.setTemplate(rundata, portlet, null);
}
/**
@@ -215,7 +234,7 @@
rundata.getRequest().setAttribute("email", emailBody.toString());
String confirmTemplate = portlet.getPortletConfig().getInitParameter("confirm.template",
"JetspeedQuestionnaireConfirmation.jsp");
- this.setTemplate(rundata, confirmTemplate);
+ this.setTemplate(rundata, portlet, confirmTemplate);
rundata.setMessage("Email successfully sent");
}
@@ -225,9 +244,10 @@
rundata.setMessage("Error sending email: " + e);
}
- buildNormalContext(portlet, rundata);
+ //buildNormalContext(portlet, rundata);
}
+
}
1.8 +4 -2 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/portlets/JspPortlet.java
Index: JspPortlet.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/portlets/JspPortlet.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- JspPortlet.java 28 Jan 2003 04:46:21 -0000 1.7
+++ JspPortlet.java 6 Feb 2003 16:14:27 -0000 1.8
@@ -64,6 +64,7 @@
// Jetspeed portal
import org.apache.jetspeed.portal.PortletException;
import org.apache.jetspeed.services.template.TemplateLocatorService;
+import org.apache.jetspeed.util.PortletSessionState;
// Ecs
import org.apache.ecs.ConcreteElement;
@@ -130,9 +131,10 @@
// either the action selected the template, or use the default template
// defined in the registry
- if (rundata.getRequest().getAttribute(TEMPLATE) != null)
+ if (PortletSessionState.getAttribute(this, rundata, TEMPLATE) != null)
{
- template = (String) rundata.getRequest().getAttribute(TEMPLATE);
+ template = (String) PortletSessionState.getAttribute(this, rundata, TEMPLATE);
+ //PortletSessionState.clearAttribute(this, rundata, TEMPLATE);
if (Log.getLogger().isDebugEnabled())
{
Log.debug("JspPorlet: Template switched per request attribute to [" + template + "] for portlet [" +
1.3 +1 -0 jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JetspeedQuestionnaire.jsp
Index: JetspeedQuestionnaire.jsp
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JetspeedQuestionnaire.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JetspeedQuestionnaire.jsp 26 Jan 2003 05:04:03 -0000 1.2
+++ JetspeedQuestionnaire.jsp 6 Feb 2003 16:14:27 -0000 1.3
@@ -54,6 +54,7 @@
<TR>
<TD COLSPAN="2">
<FORM METHOD="POST">
+ <INPUT TYPE="hidden" NAME="js_peid" VALUE="<%=jspeid%>">
<p> File containing image of the site:
<INPUT TYPE="FILE" SIZE="30" NAME="emailAttachment" VALUE="">
<p>
1.2 +9 -1 jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JetspeedQuestionnaireConfirmation.jsp
Index: JetspeedQuestionnaireConfirmation.jsp
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JetspeedQuestionnaireConfirmation.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JetspeedQuestionnaireConfirmation.jsp 28 Jan 2003 04:46:21 -0000 1.1
+++ JetspeedQuestionnaireConfirmation.jsp 6 Feb 2003 16:14:27 -0000 1.2
@@ -1,6 +1,13 @@
<%@ taglib uri='/WEB-INF/templates/jsp/tld/template.tld' prefix='jetspeed' %>
+<%@ page import = "org.apache.turbine.util.RunData" %>
+
+<%@ page import = "java.util.Enumeration" %>
+<%@ page import = "java.util.Hashtable" %>
+
<%
+RunData data = (RunData) request.getAttribute("rundata");
+String jspeid = (String) request.getAttribute("js_peid");
String email = (String) request.getAttribute("email");
%>
@@ -10,7 +17,8 @@
<B><%=email%></B>
<P>
<FORM METHOD="POST">
- <INPUT TYPE="SUBMIT" VALUE="Continue">
+ <INPUT TYPE="hidden" NAME="js_peid" VALUE="<%=jspeid%>">
+ <INPUT TYPE="SUBMIT" NAME="eventSubmit_doContinue" VALUE="Continue">
</FORM>
<P>
Thank you again you for your contribution!
1.121 +4 -1 jakarta-jetspeed/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/xdocs/changes.xml,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -r1.120 -r1.121
--- changes.xml 28 Jan 2003 04:46:21 -0000 1.120
+++ changes.xml 6 Feb 2003 16:14:28 -0000 1.121
@@ -23,6 +23,9 @@
</li>
-->
<li>
+ Fixed - Bug # 16443 - 2003/02/05 - Reimplemented setTemplate method in JspPortletAction to utilize session (MO)
+</li>
+<li>
Fixed - Bug # 16443 - 2003/01/27 - Corrected the setTemplate functionality in JspPortletAction (MO)
</li>
<li>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org