Sha256: e311ea7e6ee51459ea1a54f2880449a2480c49592801d3e323b8e783930549e6
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
$ -> $('.filter_ajax_select select').each (_, select) -> select = $(select) valueField = select.data('value-field') searchFields = select.data('search-fields').split(' ') loadOptions = (q, callback) -> $.ajax url: 'users/filter' type: 'GET' dataType: 'json' data: q: q limit: select.data('limit') error: -> callback() success: (res) -> callback(res) select.selectize valueField: valueField labelField: searchFields[0] searchField: searchFields options: [] create: false render: option: (item, escape) -> html = searchFields.map (field, index)-> value = escape(item[field]) if index == 0 klass = 'primary' else klass = 'secondary' "<span class='#{klass}'>#{value}</span>" "<div class='item'>#{html.join('')}</div>" load: (query, callback) -> if query.length q = {} q[select.data('ransack')] = query loadOptions(q, callback) else callback() onInitialize: -> selectize = this selectedValue = select.data('selected-value') selectedRansack = "#{valueField}_eq" if selectedValue q = {} q[selectedRansack] = selectedValue loadOptions(q, (res)-> if res.length selectize.addOption(res[0]) selectize.addItem(res[0][valueField]) )
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activeadmin-ajax_filter-0.1.1 | app/assets/javascripts/activeadmin-ajax_filter.js.coffee |