Re: Firing ajax request while returning a StreamResponse
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.
Re: Firing ajax request while returning a StreamResponse
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.comwrote: 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.
Re: Firing ajax request while returning a StreamResponse
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.
Re: Firing ajax request while returning a StreamResponse
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.comwrote: 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