[Seaside] Anchor double click problematic
dtrussardi at tiscali.it
dtrussardi at tiscali.it
Tue Mar 27 09:29:04 UTC 2018
Ciao, thanks.
> You should set the new onClick handler after the first one is triggered.
What do you mean?
> It is, once clicked, you set a new handler that basically is an dummy handler.
What should I do to set up a new handler?
> html anchor
> id: idAjaxAnchor;
> onClick:(html jQuery script: [:script |
> script << (JSStream on: ''this.onclick = function(){ return
> false; }').
> script << (html jQuery ajax callback: [
> flagDialog := false.
> [self setupVoceAttiva: each] on:
> DTRDataBaseLockError do: [:ex | flagDialog := true] ] ];
> onSuccess: ( html jQuery ajax
> script: [ :s |
> flagDialog ifTrue:[ s << (s jQuery: #'dialogId') dialog open ])
> ]);
> with: [ self render6Item: each on: html ].
>
> (code untested)
I render the anchor code following your code ( at least I think so )
but after the first click the anchor click is disabled for forever.
Many thanks for your help.
Dario
>
> This might prevent a double callback invocation, but keep in mind that
> protecting this from the client side is brittle, some mobile browsers
> might submit a request twice if it timeouts, so the robust way of
> achieving this is to have some sort of server side protection.
>
> I wonder if somebody already implemented a callback that can be
> activated only once or returns an error otherwise.
>
> Regards,
>
> Esteban A. Maringolo
>
>
> 2018-03-26 13:15 GMT-03:00 dtrussardi at tiscali.it <dtrussardi at tiscali.it>:
>> Ciao,
>>
>> in the seaside 3.1 application i have a classic anchor declaration:
>>
>>
>> html anchor callback:[ delta := self doSomethingWithJQDialogError ];
>> with: [html image url: DTRFileLibrary / #greenupGif ; altText: 'Incrementa';
>> title:'Incrementa' ]
>>
>> But if the user doubleClick on the anchor i have some problematic and the
>> dialog is not right display.
>>
>> The double click and the relative double callback generated some
>> problematic.
>>
>>
>> Double click isn't a problem you handle at the server, it's something you
>> handle at the client. Toss a touch of JavaScript on the onClick of the
>> anchor and your problem is solved. One click and the anchor is disabled from
>> future clicks while it's submitting.
>>
>> html anchor
>> callback:[ delta := self doSomethingWithJQDialogError ];
>> onClick: 'this.onclick = function(){ return false; }';
>> with: [html image url: DTRFileLibrary / #greenupGif ;
>> altText: 'Incrementa';
>> title:'Incrementa' ]
>>
>> --
>> Ramon Leon
>>
>>
>> Now as Leon suggested ( thanks ) i add the : onClick: 'this.onclick =
>> function(){ return false; }';
>>
>> and all work right with callback re-rendering.
>>
>>
>> But with the ajax callback as :
>>
>> html anchor
>> id: idAjaxAnchor;
>> onClick: 'this.onclick = function(){ return false; }';
>> onClick:( html jQuery ajax callback: [ flagDialog := false.
>> [self setupVoceAttiva: each] on: DTRDataBaseLockError do: [:ex | flagDialog
>> := true] ] ];
>> onSuccess:
>> ( html jQuery ajax
>> script: [ :s | flagDialog ifTrue:[ s << (s jQuery:
>> #'dialogId') dialog open ]);
>>
>> with: [ self render6Item: each on: html ].
>>
>> the anchor is not rendering after the first click and the click is disabled
>> for always.
>>
>> I can disabled the click only for some time ( one second )?
>>
>> Any trick to solve the problem?
>>
>> Thanks,
>>
>> Dario
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list