2 # If caller passes a list of possible filter_groups
3 # search all until we find some values
4 IF !filter_group.size; filter_group = [filter_group]; END;
6 FOR code IN filter_group;
7 group = ctx.search_filter_groups.$code;
8 LAST IF group AND group.entries.size;
10 name = name || "fg:" _ group.code;
11 id = id || group.code _ "_selector";
12 values = values || CGI.param(name);
15 <select id='[% id %]' name='[% name %]'[%
16 multiple ? ' multiple="multiple"' : '';
17 size ? (' size="' _ size _ '"') : ''; %]>
19 <option value=''>[% none_label ? none_label : l('-- Any --') %]</option>
21 # turn the list of objects into a list of hashes to
22 # leverage TT's array.sort('<hashkey>') behavior
24 FOR o IN group.entries;
25 sorter.push({id => o.id, label => o.query.label});
27 FOR o IN sorter.sort('label') %]
28 <option value='[% o.id %]'[% values.grep(o.id).size ? ' selected="selected"' : '' %]>[% o.label | html %]</option>