summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/milestone_select.js.coffee
blob: aa0d632561f0f1bdcb8ad6cddd2dbb2286b711aa (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
42
43
44
45
class @MilestoneSelect
  constructor: ->
    $('.js-milestone-select').each (i, dropdown) ->
      projectId = $(dropdown).data('project-id')
      selectedMilestone = $(dropdown).data('selected')
      showNo = $(dropdown).data('show-no')
      showAny = $(dropdown).data('show-any')

      $(dropdown).glDropdown(
        data: (term, callback) ->
          Api.milestones projectId, (data) ->
            data = $.map data, (milestone) ->
              return milestone if milestone.state isnt "closed"

            if showNo
              data.unshift(
                title: 'No milestone'
              )
              
            if showAny
              data.unshift(
                title: 'Any milestone'
              )

            if data.length > 2
              data.splice 2, 0, "divider"

            callback(data)
        filterable: true
        search:
          fields: ['title']
        selectable: true
        fieldName: $(dropdown).data('field-name')
        text: (milestone) ->
          milestone.title
        id: (milestone) ->
          if milestone.title isnt "Any milestone"
            milestone.title
          else
            ""
        isSelected: (milestone) ->
          milestone.title is selectedMilestone
        clicked: ->
          $(dropdown).parents('form').submit()
      )