I upgraded to latest CVS yesterday, jdk 1.3.1, (East Coast noon) but this
did not solve the issue, do I have to submit to bugzilla ? :
Log doesn't really help since there are nested actions...
- I have a form validation with simple form transformer. When the form is
correctly filled an emal is sent. I wrote a custom action to send this
email. Sitemap parameters passed to the action are filled from http request.
- Assuming form validation occurs once and succeds, scenario :
I fill the "to" field, hit "send" and the email is sent along with files
(the path of files is of hidden input fields).
I click "back" on the browser (IE5.5), so that I see the form again.
When I hit "send", duplicate files are attached. the "to" field is
duplicated too. (the form was cached by the browser).
- After sending email, I write the url to the sending email form in the
browser's address bar, same issue. EVEN WITH ANOTHER "serialNumber" request
parameter, so that Cocoon regenerates a full html page.
Sometimes I see duplicated fields in the html form, other times : when
forcing reload with Control + F5, the code is ok but the parameters are sent
duplicated.
Pipeline below. I need the simple form transformer though.
The xsl which generates the html form ("sendlickeyform.xsl") has a main
template, in which I define the empty input fields, or the http request
filled ones. So it is rather simple... I attach it anyway.
Maybe I am completely wrong ?
Barbara
<!-- send license, req param : serialNumber -->
<map:match pattern="sendlicense">
<map:act type="request">
<map:parameter name="parameters" value="true"/>
<!-- authenticate as usual -->
<map:act type="auth-protect">
<map:parameter name="handler" value="baepp-handler"/>
<!-- form has been submitted once so validate it -->
<map:act type="request-exists">
<map:parameter name="parameters" value="submittedOnce"/>
<!-- form validation -->
<map:act type="form-validator">
<map:parameter name="descriptor" value="xml/sendlicense_desc.xml"/>
<map:parameter name="validate-set" value="default"/>
<!-- ok so send mail -->
<map:act type="sendmail">
<map:parameter name="smtpHost" value="10.41.20.3"/>
<map:parameter name="subject" value="{../../../subject}"/>
<!-- to be changeable (port) -->
<map:parameter name="body"
value="http://localhost:9090/baepp/licensekeys/{../../../licensekey}/htmlbod
y.html"/>
<map:parameter name="emailTo" value="{../../../emailTo}"/>
<map:parameter name="emailCc" value="{../../../emailCc}"/>
<map:parameter name="emailFrom" value="{../../../emailFrom}"/>
<map:parameter name="nameFrom" value="{../../../nameFrom}"/>
<map:parameter name="dataSources"
value="http://localhost:9090/baepp/images/links.gif;http://localhost:9090/ba
epp/images/leer.gif;http://localhost:9090/baepp/images/logo_www.gif"/>
<map:parameter name="dsHeaders" value="abc@abc;abd@abc;abe@abc"/>
<map:parameter name="file"
value="http://localhost:9090/baepp/licensekeys/{../../../licensekey}/{../../
../filename}.xml;http://localhost:9090/baepp/licensekeys/{../../../licenseke
y}/{../../../filename}lt.pdf"/>
<map:parameter name="fileName"
value="{../../../filename}.xml;{../../../filename}lt.pdf"/>
<map:redirect-to uri="menu"/>
</map:act>
<map:redirect-to uri="error?code=422303"/>
</map:act>
<!-- not ok : show input form -->
<map:aggregate element="page">
<map:part element="license"
src="xmldb:tamino://i3in0/tamino/BAEPP/BAEPP/#License_Info[@serialNumber='{.
./../serialNumber}']"/>
<map:part element="mlform" src="cocoon://mlform"/>
<map:part element="session" src="xml/getxml.xml"/>
</map:aggregate>
<map:transform type="session"/>
<map:transform src="xsl/sendlickeyform.xsl">
<map:parameter name="use-request-parameters" value="true"/>
<map:parameter name="taminoUri"
value="http://i3in0/tamino/BAEPP/BAEPP"/>
</map:transform>
<map:transform type="simple-form"/>
<map:serialize type="html"/>
</map:act>
<!-- no form validation ever occured, show input form -->
<map:aggregate element="page">
<map:part element="license"
src="xmldb:tamino://i3in0/tamino/BAEPP/BAEPP/#License_Info[@serialNumber='{.
./serialNumber}']"/>
<map:part element="mlform" src="cocoon://mlform"/>
<!-- write license on disk -->
<map:part element="write"
src="cocoon://writelicense?serialNumber={../serialNumber}"/>
<!-- write html body on disk -->
<map:part element="htmlbody"
src="cocoon://writehtmlbody?serialNumber={../serialNumber}"/>
<map:part element="session" src="xml/getxml.xml"/>
</map:aggregate>
<map:transform type="session"/>
<map:transform src="xsl/sendlickeyform.xsl">
<map:parameter name="taminoUri"
value="http://i3in0/tamino/BAEPP/BAEPP"/>
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
<map:transform type="simple-form"/>
<map:serialize type="html"/>
<map:transform src="xsl/copy.xsl"/>
<map:serialize type="xml"/>
</map:act>
</map:act>
</map:match>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xslt/java" xmlns:collection="http://apache.org/cocoon/xmldb/1.0" exclude-result-prefixes="java collection">
<!-- form to send license key -->
<xsl:import href="resources.xsl"/>
<xsl:param name="lang" select="/page/session/session_info/data/lang"/>
<xsl:variable name="title" select="'lkmlPageTitle'"/>
<xsl:param name="serialNumber"/>
<xsl:template match="/">
<html>
<head>
<xsl:call-template name="header">
<xsl:with-param name="title" select="$title"/>
<xsl:with-param name="lang" select="$lang"/>
</xsl:call-template>
</head>
<body>
<xsl:call-template name="topH">
<xsl:with-param name="title" select="$title"/>
<xsl:with-param name="lang" select="$lang"/>
</xsl:call-template>
<form name="form" id="form" method="post" action="">
<input type="hidden" name="submittedOnce" id="submittedOnce"/>
<input type="hidden" name="serialNumber" id="serialNumber" value="$serialNumber"/>
<!-- some things are required to be processed later :
file name, license key -->
<input type="hidden" name="filename" id="filename">
<xsl:attribute name="value">
<xsl:value-of select="/page/write/page/filename"/>
</xsl:attribute>
</input>
<input type="hidden" name="licensekey" id="licensekey">
<xsl:attribute name="value">
<xsl:value-of select="/page/write/page/licensekey"/>
</xsl:attribute>
</input>
<table border="0" cellpadding="5" cellspacing="5" width="60%">
<tr>
<td colspan="2" align="right">
<div style="font-size: 18pt; font-weight: bold;">
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlTitle']/desc[@lang=$lang]"/>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<hr color="#003399"/>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlFrom']/desc[@lang=$lang]"/>:</td>
<td align="left">
<input type="hidden" name="emailFrom" id="emailFrom">
<xsl:attribute name="value">
<xsl:value-of select="/page/session/session_info//email"/>
</xsl:attribute>
</input>
<input type="hidden" name="nameFrom" id="nameFrom">
<xsl:attribute name="value">
<xsl:value-of select="/page/session/session_info/data/fullname"/>
</xsl:attribute>
</input>
<xsl:value-of select="/page/session/session_info/data/fullname"/> 
(<xsl:value-of select="/page/session/session_info//email"/>)</td>
</tr>
<!-- error -->
<!-- if error element -->
<error>
<tr>
<td> </td>
<td>
<xsl:attribute name="name">emailTo</xsl:attribute>
<xsl:attribute name="when">no-match</xsl:attribute>
<font color="red">
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlJsToMissing']/desc[@lang=$lang]"/>
</font>
</td>
</tr>
</error>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlTo']/desc[@lang=$lang]"/> (...;...) :</td>
<td align="left">
<input type="text" name="emailTo" id="emailTo" size="50" value=""/>
</td>
</tr>
<!-- error -->
<!-- if error element -->
<error>
<tr>
<td> </td>
<td>
<xsl:attribute name="name">emailCc</xsl:attribute>
<xsl:attribute name="when">no-match</xsl:attribute>
<font color="red">
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlJsToMissing']/desc[@lang=$lang]"/>
</font>
</td>
</tr>
</error>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlCc']/desc[@lang=$lang]"/> (...;...) :</td>
<td align="left">
<input type="text" name="emailCc" id="emailCc" size="50"/>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlSubject']/desc[@lang=$lang]"/>:</td>
<td align="left">
<input type="text" name="subject" id="subject" size="50">
<xsl:attribute name="value">License Key <xsl:value-of select="$serialNumber"/></xsl:attribute>
</input>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlBody']/desc[@lang=$lang]"/>:</td>
<td align="left">
<img src="images/licKeyCard.gif"></img>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlEnclosedFile']/desc[@lang=$lang]"/>
</td>
<td align="left">
<img src="images/Webfile.gif" border="0">
<xsl:attribute name="alt">
<xsl:value-of select="/page/write/page/filename"/>.xml</xsl:attribute>
</img>
<xsl:value-of select="/page/write/page/filename"/>.xml  <img src="images/pdf.gif" border="0"><xsl:attribute name="alt"><xsl:value-of select="/page/write/page/filename"/>lt.pdf</xsl:attribute></img><xsl:value-of select="/page/write/page/filename"/>lt.pdf</td>
</tr>
<tr>
<td colspan="2">
<hr color="#003399"/>
</td>
</tr>
<tr>
<td colspan="2">
<table border="0" width="100%">
<tr>
<td align="center">
<a href="javascript:history.back()">
<b>
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlBack']/desc[@lang=$lang]"/>
</b>
</a>
</td>
<!-- license sending right ? -->
<xsl:choose>
<xsl:when test="/page/session/session_info/data/menu_rights[child::*='lkMailing_send']">
<td width="50%" align="center">
<a href="javascript:document.form.submit()">
<b>
<!-- send -->
<xsl:value-of select="//mlForm/label[@ident='lkmlSend']/desc[@lang=$lang]"/>
</b>
</a>
</td>
</xsl:when>
<xsl:otherwise>
<td width="50%" align="center">
<b>
<i>
<font color="SlateGray">
<xsl:value-of select="/page/mlform//mlForm/label[@ident='lkmlSend']/desc[@lang=$lang]"/>
</font>
</i>
</b>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</table>
</td>
</tr>
</table>
</form>
<xsl:call-template name="footer"/>
</body>
</html>
</xsl:template>
<xsl:template match="text()">
</xsl:template>
</xsl:stylesheet><!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
<metaInformation>
<scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
</metaInformation>
-->
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>