VRFS-2795 generate JSON from filter settings
This commit is contained in:
parent
15559f593f
commit
2b9bebb438
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue