Re: immediate display alert to user while Ajax request

Sabine Manaa <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.squeak.seaside
Message-ID <CA+UbgZa3jiHJvzk3hKEkEPA2n5G_oNCLfY1_bs7E8tiNq_NkXw@mail.gmail.com>
Hi Joachim,

you are right. This was the point.

I had another problem with getting the session in the forked process. I
asked in Discord and Max Leske helped.
To geht the session, I have to do the following in the Ajax request:

| requestContext |
 requestContext := WACurrentRequestContext value.
[ WACurrentRequestContext use: requestContext during: [ self session
dosomething ] ] fork.

Thank you for your help!
Sabine

2017-07-23 10:55 GMT+02:00 jtuchel [via Smalltalk] <
[email protected]>:

> Sabine,
>
> I think you need to fork  a new (background) process in order to have it
> run independently of the Ajax callbacks. The Ajax callbacks will be
> executed one after the other, there will never be any progress reporting.
>
> So I THINK what you absolutely have to do is to start the long running
> Ajax callback as another process.
>
> So start by putting your sequence of process steps in a
>
> [
>  ] fork.
>
> block and see if it improves things.
>
>
> I am using an inst var of the component instead of the session, but I
> guess that doesn't really matter. Using the session is probably a much
> better idea because you could then use this facility for a general solution
> that works for all ajax callbacks that run longer...
>
>
> HTH
>
> Joachim
>
>
>
> Am 21.07.17 um 17:31 schrieb Sabine Manaa:
>
> Hi Joachim, all,
>
> thanks a lot! I think I am very near to the solution but there is one
> problem remaining: within the Ajax block, the JQLoad   seems to be
> "blocked". I explain:
>
> * I have an attribute @directUserMessage: in my session initialized with
> an empty string.
>
> *In my main view I have >>renderLoadIntervalMessageOn: html
> html paragraph
> id: 'spf-direct-message';
> script:
> (html jQuery this load
> onComplete:
> (' javascript which shows the snackbar if spa-direct-message is set'));
> html: [ :r | self renderMessageOn: r ];
> interval: 1 seconds);
> with: [ self renderMessageOn: html ]
>
>  >>renderMessageOn: html
> self session directUserMessage isEmpty
> ifFalse: [ html render: self session directUserMessage ]
>
>
> I have my button invoking the report generation:
>
> onClick:
> (html jQuery ajax
> script: [ :script |
> self session generateReportFiles: script.
>  ...]);
> with: 'PDF'.
>
> in >>generateReportFiles:
> "i set the directUserMessages:"
> self session directUserMessage: 'Erstelle Reisekostenabrechnungen, bitte
> warten...'.
> RKAPDFWriter new createCostReports: self.
> self session directUserMessage: 'Erstelle Belege, bitte warten...'.
> RKAPDFWriter new createReceiptReports: self.
> self session directUserMessage: 'Erstelle Fahrten, bitte warten...'.
> RKAPDFWriter new createVehicleReports: self.
> self session directUserMessage: 'Erstelle Buchungen, bitte warten...'.
> RKAPDFWriter new createBookingReports: self.
> self session directUserMessage: ''
>
> I tried I with a test button:
> html mdlButton
> onClick:
>  (html jQuery ajax script: [ :script | self session directUserMessage:
> 'test' ]);
> with: 'set message'
>
> this works perfect - after clicking on the test button, the snackbar is
> showing every second again.
> So, I can say that the principle was clear and I have a possibility to
> show individual messages by setting the string in the session.
>
> BUT: while I am in the Ajax block, it does not work.
> I put a console.log() into the javascript code and AFTER finishing the
> Ajax, all the messages are put there.
> It seems to wait till the Ajax call is finished.
>
> I have put an output  into the transcript:
>
> renderMessageOn: html
> Transcript crShow: Time now printString , '-' , self session
> directUserMessage.
>
> and there I see, that while I am in the Ajax block, there is no output.
> While I am not in the Ajax block, it renders the time into it each second.
>
> What is wrong here, can anyone explain?
> Joachim, do you also set the instance variable with the text from an Ajax
> block?
>
> Regards
> Sabine
>
>
>
>
> ------------------------------
> View this message in context: Re: immediate display alert to user while
> Ajax request
> <http://forum.world.st/immediate-display-alert-to-user-while-Ajax-request-tp4956083p4956113.html>
> Sent from the Seaside General mailing list archive
> <http://forum.world.st/Seaside-General-f86180.html> at Nabble.com.
>
>
> _______________________________________________
> seaside mailing list[hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=0>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
>
> --
> -----------------------------------------------------------------------
> Objektfabrik Joachim Tuchel          [hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=1>
> Fliederweg 1                         http://www.objektfabrik.de
> D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
> Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1
>
>
>
> _______________________________________________
> seaside mailing list
> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=2>
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://forum.world.st/immediate-display-alert-to-user-while-Ajax-request-
> tp4956083p4956392.html
> To start a new topic under Seaside General, email ml+s1294792n86180h75@n4.
> nabble.com
> To unsubscribe from Seaside, click here
> <http://forum.world.st/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1310907&code=bWFuYWEuc2FiaW5lQGdtYWlsLmNvbXwxMzEwOTA3fC0xOTE3OTcxOTg5>
> .
> NAML
> <http://forum.world.st/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>
>




--
View this message in context: http://forum.world.st/immediate-display-alert-to-user-while-Ajax-request-tp4956083p4956534.html
Sent from the Seaside General mailing list archive at Nabble.com.

_______________________________________________
seaside mailing list
[email protected]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.