Sha256: 42215d38d3df5264cbaef767df1eed87b5854421afe27b6a1b5265acec228bf7

Contents?: true

Size: 1.53 KB

Versions: 11

Compression:

Stored size: 1.53 KB

Contents

class IuguUI.SearchFilter extends IuguUI.Base

  layout: "iugu-ui-search-filter"
  className: "search-filter"

  defaults:
    name: "age"
    filterNames: [ "age" ]
    fixedFilters: []
    multiSelection: false
    translateTerms: false
    translationPrefix: "translation."

  events:
    'click [data-action=search-filter-button]': 'searchCollection'

  searchCollection: (e) ->
    e.preventDefault()
    @handleEvent "facet:click"
    button = $(e.target)
    filter = button.data('filter')
    button.toggleClass('active')

    unless @options.multiSelection || (@selected.length > 0 && _.first(@selected) == filter)
      @selected = []

    unless _.indexOf(@selected, filter.toString()) == -1
      @selected = _.without(@selected, filter.toString())
    else
      @selected.push(filter.toString())

    if @selected.length > 0
      @collection.configureFilter @options.name + '_filter', @selected
    else
      @collection.removeFilter @options.name + '_filter'
    
    @collection.goTo(1)

  initialize: ->
    @selected = []
    _.bindAll @, 'searchCollection', 'render'
    @collection.on 'reset', @render, @
    @collection.on "removed-filter:#{@options.name}_filter", @removedFilter, @
    super
    @

  context: ->
    collection: @collection
    selected: @selected
    filterNames: @options.filterNames
    fixedFilters: @options.fixedFilters
    translateTerms: @options.translateTerms
    translationPrefix: @options.translationPrefix

  render: ->
    super

  removedFilter: ->
    @selected = []

@IuguUI.SearchFilter = IuguUI.SearchFilter

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
iugu-ux-1.0.13 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.12 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.11 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.10 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.9 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.8 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.7 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.6 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.5 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.4 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee
iugu-ux-1.0.3 vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee