VRFS-2795 generate JSON from filter settings

This commit is contained in:
Jonathan Kolyer 2015-03-06 07:03:30 +00:00
parent 15559f593f
commit 2b9bebb438
3 changed files with 22 additions and 3 deletions

View File

@ -92,6 +92,8 @@ module JamRuby
KEY_AGES => [AGE_COUNTS[0]]
}
JSON_SCHEMA_KEYS = JSON_SCHEMA.keys
MULTI_VALUE_KEYS = JSON_SCHEMA.collect { |kk,vv| vv.is_a?(Array) ? kk : nil }.compact
SINGLE_VALUE_KEYS = JSON_SCHEMA.keys - MULTI_VALUE_KEYS
def self.user_search_filter(user)
unless ms = user.musician_search

View File

@ -149,8 +149,21 @@ context.JK.MusicianSearchFilter = class MusicianSearchFilter
elem = $ '#musician-search-filter-builder select[name='+identifier+']'
elem.val()
_selectedMultiValue: (identifier) =>
if 'instruments' == identifier
[]
else
elem = $ '#musician-search-filter-builder select[name='+identifier+'] input[type=checkbox]:checked'
vals = []
elem.each (idx) ->
vals.push($ this.val())
vals
performSearch: () =>
$.each gon.musician_search_filter['filter_keys'], (index, key) =>
@searchFilter[key] = this._selectedValue('sort_order')
$.each gon.musician_search_filter.filter_keys.single, (index, key) =>
@searchFilter[key] = this._selectedValue(key)
$.each gon.musician_search_filter.filter_keys.multi, (index, key) =>
@searchFilter[key] = this._selectedMultiValue(key)
@logger.debug("performSearch: "+JSON.stringify(@searchFilter))

View File

@ -63,7 +63,11 @@ class SpikesController < ApplicationController
def musician_search_filter
gon.musician_search_filter = {
filter_keys: MusicianSearch::JSON_SCHEMA_KEYS,
filter_keys: {
keys: MusicianSearch::JSON_SCHEMA_KEYS,
multi: MusicianSearch::MULTI_VALUE_KEYS,
single: MusicianSearch::SINGLE_VALUE_KEYS,
},
sort_order: {
keys: MusicianSearch::SORT_VALS,
map: MusicianSearch::SORT_ORDERS