def build_query(buttons = [])
query = []
fields().each do |f|
query.push(*f.query_value)
end
checkboxes().each do |f|
query.push(*f.query_value) if f.checked
end
radio_groups = {}
radiobuttons().each do |f|
radio_groups[f.name] ||= []
radio_groups[f.name] << f
end
radio_groups.each_value do |g|
checked = g.select {|f| f.checked}
if checked.size == 1
f = checked.first
query.push(*f.query_value)
elsif checked.size > 1
raise "multiple radiobuttons are checked in the same group!"
end
end
@clicked_buttons.each { |b|
query.push(*b.query_value)
}
query
end