[Seaside] Suggested extension for WASelectTag

jtuchel at objektfabrik.de jtuchel at objektfabrik.de
Mon Jul 3 08:56:26 UTC 2017


Hi Johan,

so #dispatchCallback was my missing piece... Thanks!

I agree with your preference, for cases where you want to iterate over 
myItems. This sure would be a nicer API than what we have now.

Joachim




Am 03.07.17 um 09:19 schrieb Johan Brichau:
> Hi guys,
>
> I would prefer that Seaside is able to do this:
>
> html select
>        callback: …;
>        with:[
>            myItems do:[:anItem |
>          html option
>        attributeAt: … put: …;
> value: anItem ] ]
>
> Right now, you must do it like this (i.e. add a callback for each option):
>
> html select
>        dispatchCallback;
>        with:[
>            myItems do:[:anItem |
>          html option
>      attributeAt: … put: …;
>                         callback: [ …. ]
> value: anItem ] ]
>
> cheers,
> Johan
>
>> On 3 Jul 2017, at 02:23, Mariano Martinez Peck <marianopeck at gmail.com 
>> <mailto:marianopeck at gmail.com>> wrote:
>>
>>
>>
>> On Sat, Jul 1, 2017 at 2:24 AM,jtuchel at objektfabrik.de 
>> <mailto:jtuchel at objektfabrik.de><jtuchel at objektfabrik.de 
>> <mailto:jtuchel at objektfabrik.de>>wrote:
>>
>>     Hi,
>>
>>
>>     I needed a way to add an attribute of each option in a select
>>     list, because Seaside uses the value attribute for its server
>>     side callback.
>>
>>     The reason was I wanted to do something on the browser side
>>     onChange/onKeyUp based on some business values.
>>
>>
>>     Here is what I changed in WASelectTag:
>>
>>     * added inst var: itemConfigBlock with getter and setter
>>
>>     * changed #renderListItemLabelled: to
>>
>>
>>     renderListItem: anObject labelled: aString
>>
>>     | option |
>>
>>     option := canvas option.
>>     self hasCallback ifTrue: [option value: (self valueFor: anObject)].
>>     titleBlock isNil ifFalse: [option title: (self titleFor: anObject)].
>>     itemConfigBlock ifNotNil: [:block | block value: option value:
>>     anObject].
>>     option
>>     selected: (self isSelected: anObject);
>>     disabled: (self isEnabled: anObject) not;
>>     with: aString
>>
>>
>>     And this is how you can use it:
>>
>>
>>     html select
>>
>>     items: MyListOfItems;
>>
>>     callback: [];
>>
>>     itemConfigBlock: [:option :anObject| option attrbibuteAt:
>>     'data-value' put: anObject someValue asString].
>>
>>
>>     Was this available already and did I overlook it?
>>
>>     Does this sound reasonable? Worth adding to Seaside?
>>
>>
>>
>> Yes, I had to do exactly the same.
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org 
>> <mailto: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


-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          mailto:jtuchel at objektfabrik.de
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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/seaside/attachments/20170703/0b234b6f/attachment.html>


More information about the seaside mailing list