summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/compare_autocomplete.js.coffee
blob: 7ad9fd9763702af7cef72080d1d0a89f9a51e9bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class @CompareAutocomplete
  constructor: ->
    @initDropdown()

  initDropdown: ->
    $('.js-compare-dropdown').each ->
      $dropdown = $(@)
      selected = $dropdown.data('selected')

      $dropdown.glDropdown(
        data: (term, callback) ->
          $.ajax(
            url: $dropdown.data('refs-url')
            data:
              ref: $dropdown.data('ref')
          ).done (refs) ->
            callback(refs)
        selectable: true
        filterable: true
        filterByText: true
        fieldName: $dropdown.attr('name')
        filterInput: 'input[type="text"]'
        renderRow: (ref) ->
          if ref.header?
            $('<li />')
              .addClass('dropdown-header')
              .text(ref.header)
          else
            link = $('<a />')
              .attr('href', '#')
              .addClass(if ref is selected then 'is-active' else '')
              .text(ref)
              .attr('data-ref', escape(ref))

            $('<li />')
              .append(link)
        id: (obj, $el) ->
          $el.attr('data-ref')
        toggleLabel: (obj, $el) ->
          $el.text().trim()
      )