It looks better than mine, actually, since you're using JavaScriptSupport.
:)

On Mon, Sep 4, 2017 at 10:10 AM, Svein-Erik Løken <sv...@jacilla.no> wrote:

> Thanks!
>
> I was able to make this work. Do you think my solution is too complex
> Thiago?
>
>
> /external/TrackSegmentsExport (the form):
> ==========================================
>
> @Persist(PersistenceConstants.FLASH)
> boolean download;
>
> @AfterRender
> void afterRender() {
>     if (download) {
>         javaScriptSupport.require("util/util").invoke("
> windowLocation").with("/external/TrackSegmentsExportDownload");
>     }
> }
>
> Object onSuccessFromTrackExpForm() throws ParserConfigurationException,
> JAXBException, TransformerException, IOException {
>     download = true;
>     return null;
> }
>
>
>
> Utils.js:
> ==========================================
> Util.windowLocation = function (href) {
>     window.location = href;
> };
>
>
>
> /external/TrackSegmentsExportDownload:
> ==========================================
>
> StreamResponse onActivate() {
> ...
> return new AttachmentStreamResponse(stream, "TrackSegmentsExport.gpx");
>
>
>
>
>
>
> From: Thiago H de Paula Figueiredo [via Apache Tapestry Mailing List
> Archives] [mailto:ml+s1045711n5733608...@n5.nabble.com]
> Sent: mandag 4. september 2017 13:48
> To: Svein-Erik Løken <sv...@jacilla.no>
> Subject: Re: Cannot clear validation errors when form onSuccess returns a
> StreamResponse
>
> Hi!
>
> This is due to HTTP, not Tapestry itself: you cannot have two different
> responses to the same request. So, you either rerender the page to clear
> the errors (which calling form.clearErrors() is actually doing, even if you
> cannot see the results) or returns a binary download (StreamResponse), but
> not both.
>
> You'll need to write some JavaScript for that, so either the form
> submission or the file download request is done through JavaScript. Maybe
> the easiest solution, even if not pretty, is to return null in onSuccess(),
> rendering a <script> tag with a window.location = [URL which triggers the
> download] statement.
>
> On Mon, Sep 4, 2017 at 4:41 AM, Svein-Erik Løken 
> </user/SendEmail.jtp?type=node&node=5733608&i=0>
> wrote:
>
> > If I record an error for my <t:palette> I cannot find out how to clear
> > errors (tried form.clearErrors()).
> >
> > Because onSuccess returns a StreamResponse to download a file the form
> > need to have async="false"
> >
> > The form should stay open so user can download several files with
> > different parameters.
> >
> > Can anyone help!
> >
> > S-E
> >
>
>
>
> --
> Thiago
>
> ________________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://apache-tapestry-mailing-list-archives.1045711.
> n5.nabble.com/Cannot-clear-validation-errors-when-form-
> onSuccess-returns-a-StreamResponse-tp5733607p5733608.html
> To unsubscribe from mailto:users@tapestry.apache.org Mailing List
> Archives, http://apache-tapestry-mailing-list-archives.1045711.
> n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=
> 2375125&code=c3ZlaW5AamFjaWxsYS5ub3wyMzc1MTI1fC0xNTM4NzY2ODg4.
> http://apache-tapestry-mailing-list-archives.1045711.
> n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%
> 21nabble%3Aemail.naml&base=nabble.naml.namespaces.
> BasicNamespace-nabble.view.web.template.NabbleNamespace-
> nabble.view.web.template.NodeNamespace&breadcrumbs=
> notify_subscribers%21nabble%3Aemail.naml-instant_emails%
> 21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
>



-- 
Thiago

Reply via email to