[Seaside] Different behavior from Pharo and Gemstone
dtrussardi at tiscali.it
dtrussardi at tiscali.it
Sun May 6 13:50:06 UTC 2018
Ciao Johan,
> Hi Dario,
>
> This sounds like a known bug in GemStone when using temporary variables in separate callbacks with the same lexical scope.
>
> What you can do to work around this is to not assign directly to the variable but wrap the value in a holder.
> For example:
>
> dialogId := ValueHolder new.
>
> and in your callback use:
>
> dialogId value: xxx
>
> and
>
> dialogId value
>
> to assign and retrieve the value.
>
> Does this work for you?
Yes.
But ValueHolder don't know: value and value: methods.
I need to use: contents and contents:
Do you agree?
Very thanks,
Dario
>
> cheers,
> Johan
>
>
>> On 6 May 2018, at 11:02, dtrussardi at tiscali.it wrote:
>>
>> Ciao,
>>
>> i have this code into Pharo 4.0 Seaside 3.1
>>
>> renderDbAnchorIncrementVoce: aVoceCompilata index: anIndexRow nominative: nominative on:html
>> " DataBase TableData row increment "
>> | flagDialog dialogId |
>> flagDialog:= false.
>> html anchor
>> onClick:( html jQuery script:[ :script |
>>
>> script << (JSStream on: 'this.onclick = function(){ return false; }').
>>
>> script << html jQuery ajax
>> callback:[ flagDialog := false.
>> [ masterView increaseVoce: aVoceCompilata ]
>> on: DTRError do:[:ex | masterView exception: ex.
>> flagDialog := true.
>> (ex isMemberOf: DTRStockError)
>> ifTrue:[ dialogId := #stockErrorDialogId ]
>> ifFalse:[ dialogId := #genericErrorDialogId]]];
>> onComplete: ( html jQuery ajax script: [ :s |
>> flagDialog
>> ifTrue:[ s << (s jQuery: dialogId ) dialog open ]
>> ifFalse:[ s << (s jQuery: #'idVoceAttiva') load
>> html: [ :h | self masterView renderVoceAttivaOn: h ].
>> self updateRow: anIndexRow with: aVoceCompilata on: html nominative: nominative script: s ]])]);
>> with: [ html image
>> url: DTRFileLibrary / #greenupGif ;
>> altText: 'Incrementa';
>> title:'Incrementa']
>>
>> It works fine into Pharo :
>>
>> the ajax callback update the data: [ masterView increaseVoce: aVoceCompilata ]
>>
>> and if error is detected setup some variables used into onComplete: code to display a relative dialog open.
>>
>> But this code run in GLASS ( Gemstone 3.3.6 ) Seaside 3.1 don't works.
>>
>> As if the variables used in the onComplete: code are not updated to what is done in the callback.
>>
>> So even if an error is detected, the relative dialog is not displayed.
>>
>> Considerations?
>>
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/seaside/attachments/20180506/9a6bc32f/attachment.html>
More information about the seaside
mailing list