[%- # If caller passes a list of possible attribute types, # search all until we find some values IF !attr.size; attr = [attr]; END; all_values = []; attr_class = ''; FOR attr_class IN attr; all_values = ctx.search_ccvm('ctype', attr_class, 'opac_visible', 't'); IF all_values.size > 0; LAST; END; END; name = name || "fi:" _ attr_class; id = id || attr_class _ "_selector"; values = values || CGI.param(name); IF size AND size < 1; size = all_values.size; END; -%]
[% IF none_ok %]

[% none_label ? none_label : l('-- Any --') %]

[% END; # turn the list of objects into a list of hashes to # leverage TT's array.sort('') behavior simple_sorter = []; sorter = []; FOR o IN all_values; IF o.is_simple == 't'; simple_sorter.push({code => o.code, value => (o.search_label ? o.search_label : o.value)}); ELSE; sorter.push({code => o.code, value => (o.search_label ? o.search_label : o.value)}); END; END;%] [%IF simple_sorter.size && sorter.size %]

-----

[% END; %]