codn/adminpanel

View on GitHub
app/assets/javascripts/adminpanel/dom-filter.coffee

Summary

Maintainability
Test Coverage
$.fn.domFilter = (options) ->
  $input = $(options['input'])

  $elementsContainer = $(@)
  for selector in options['selector'].split(' ')
    $elementsContainer = $elementsContainer.children(selector)

  $(options['input']).on 'keyup change', ->
    inputVal = $input.val().toUpperCase()
    $elementsContainer.each ->
      filterString = String($(@).data('filter'))
      if typeof $(@).data('no-filter') isnt 'undefined' or filterString.toUpperCase().indexOf(inputVal) > -1
        $(@).show()
      else
        $(@).hide()