Ah yes, I didn't even give flash persist a thought, I think I'd rather use that to minimize url tampering. Thanks Lance.
On Wed, Apr 24, 2013 at 1:53 PM, Lance Java <lance.j...@googlemail.com>wrote: > Something like this (not tested) > > @Inject > private ComponentResources resources; > > @Inject > private JavaScriptSupport jss; > > @Persist(PersistanceConstants.FLASH) > private String pdfUrl; > > @SetupRender > void setupRender() { > if (pdfUrl != null) { > jss.addScript("document.location.href = '%s';", pdfUrl); > } > } > > void onSuccessFromForm() { > long pdfId = doWorkPriorToPdfGeneration(...); > pdfUrl = resources.createEventLink("generatePdf", pdfId); > } > > StreamResponse generatePdf(long pdfId) { > // generate the PDF > } > > If you don't want to use flash persistence, you can use page activation > context or a request parameter etc. > > > On 24 April 2013 17:51, George Christman <gchrist...@cardaddy.com> wrote: > > > Hi Lance, I think I'm with you most of the way with the exception of > > generating a link to the pdf event. > > > > So I'm returning PurchaseRequest.class in my onSuccess method which would > > for the page to reload with context from onPassivate, this should resolve > > my sync issues. Where I'm lost is how to trigger the script to call the > > StreamResponse. I thought maybe this could be done in the url like so, > > http://domain/purchaserequest/958:generatepdf. I'm just not sure what > the > > appropriate way of doing this is, or how to do it at that. I'm assuming > you > > would need some sort of business logic to prevent people from just using > > that same URL over and over again. How would you tigger the script on > > return? > > > > Thanks Lance. > > > > > > On Wed, Apr 24, 2013 at 12:37 PM, Lance Java <lance.j...@googlemail.com > > >wrote: > > > > > Split it into 2 phases: > > > > > > Phase 1: Submit form > > > Do the work (webservice + version increment) > > > Generate a link to the generatePDF event > > > Return the page to be re-rendered > > > > > > Phase 2: Re-render the page > > > Use javascript to download the PDF once the page has loaded. > > > > > > -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York