Re: show spinner until something is done
Maarten Mostert <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Message-ID | <[email protected]> |
Hello Sabina, Don’t know how you do javascript and JQuery in Seaside (I use Appex) but can’t you build something like this: http://stackoverflow.com/questions/5525071/how-to-wait-until-an-element-exists <http://stackoverflow.com/questions/5525071/how-to-wait-until-an-element-exists> Maarten, > On 25 Jul 2016, at 11:52, Sabine Manaa <[email protected]> wrote: > > I create pdf reports which are converted to pngs for small previews (and > print/mail/export). > > When the user clicks at "report", there are several pdf reports and their > pngs generated in the background. > In this moment (When the user clicks at "report"), the application changes > to the reports page. > But in this moment, the repots possibly are not yet finished :-) > > So, I want to show a spinner/counter for each of the reports and update > each in the moment when the png is ready. > > I succeeded with all but the spinner/counter and the moment when the page > renders. Its to late. > > My problem is that the page is rendered only in the moment, when the code is > run. Not earlier. > I assume the onLoad is to late? I tried several things for several hours :-( > and now I want to ask the community. > > I reduced the problem to a very simple example: 2 methods with the question: > how to change this code to update the counter 1,2,3,4... > Very curious about a solution > > >>> renderContentOn: html > html div > id: 'image'; > with: [ html text: 'Waiting for the report' ]. > html div > id: 'counter'; > with: [ html text: 'This should count 1,2,3...' ]. > html document addLoadScript: (html jQuery ajax script: [ :script | self > loadScriptIndex: 1 script: script ]) > >>> loadScriptIndex: anIndex script: s > | theIndex | > (Delay forMilliseconds: 100) wait. > theIndex := anIndex. > "aPngFilename asFileReference exists" anIndex > 50 "simulate file is there > after some time" > ifTrue: [ > s << (s jQuery: #image) > replaceWith: [ :h | > h text: theIndex asString. > h image > altText: 'Report'; > width: '100%'; > url: 'http://localhost/reports/a.png' ] ] > ifFalse: [ theIndex := theIndex + 1. > s << (s jQuery: #counter) > replaceWith: [ :h | > h div > id: #counter; > with: [ h text: theIndex asString ] ]. > self > loadScriptIndex: theIndex > script: s > > > and possibly > registerTestApplication > | theApplication | > theApplication := WAAdmin register: RKATestView asApplicationAt: 'RKT'. > theApplication > addLibrary: JQDeploymentLibrary; > addLibrary: JQUiDeploymentLibrary. > ^ theApplication > > > > > > -- > View this message in context: http://forum.world.st/show-spinner-until-something-is-done-tp4907725.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 _______________________________________________ seaside mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside