[Seaside] Suggested extension for WASelectTag

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


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?


Joachim








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