[Seaside] Suggested extension for WASelectTag

jtuchel at objektfabrik.de jtuchel at objektfabrik.de
Sat Jul 1 05:24:55 UTC 2017


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: 
         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?


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

More information about the seaside mailing list