mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-11 05:36:07 +10:00
66 lines
2.0 KiB
CoffeeScript
66 lines
2.0 KiB
CoffeeScript
class @MilestoneSelect
|
|
constructor: ->
|
|
$('.js-milestone-select').each (i, dropdown) ->
|
|
$dropdown = $(dropdown)
|
|
projectId = $dropdown.data('project-id')
|
|
milestonesUrl = $dropdown.data('milestones')
|
|
selectedMilestone = $dropdown.data('selected')
|
|
showNo = $dropdown.data('show-no')
|
|
showAny = $dropdown.data('show-any')
|
|
useId = $dropdown.data('use-id')
|
|
defaultLabel = $dropdown.data('default-label')
|
|
|
|
$dropdown.glDropdown(
|
|
data: (term, callback) ->
|
|
$.ajax(
|
|
url: milestonesUrl
|
|
).done (data) ->
|
|
if showNo
|
|
data.unshift(
|
|
id: '0'
|
|
title: 'No Milestone'
|
|
)
|
|
|
|
if showAny
|
|
data.unshift(
|
|
isAny: true
|
|
title: 'Any Milestone'
|
|
)
|
|
|
|
if data.length > 2
|
|
data.splice 2, 0, 'divider'
|
|
|
|
callback(data)
|
|
filterable: true
|
|
search:
|
|
fields: ['title']
|
|
selectable: true
|
|
toggleLabel: (selected) ->
|
|
if selected && 'id' of selected
|
|
selected.title
|
|
else
|
|
defaultLabel
|
|
fieldName: $dropdown.data('field-name')
|
|
text: (milestone) ->
|
|
milestone.title
|
|
id: (milestone) ->
|
|
if !useId
|
|
if !milestone.isAny?
|
|
milestone.title
|
|
else
|
|
''
|
|
else
|
|
milestone.id
|
|
isSelected: (milestone) ->
|
|
milestone.title is selectedMilestone
|
|
clicked: ->
|
|
page = $('body').data 'page'
|
|
isIssueIndex = page is 'projects:issues:index'
|
|
isMRIndex = page is page is 'projects:merge_requests:index'
|
|
|
|
if $dropdown.hasClass('js-filter-submit') and (isIssueIndex or isMRIndex)
|
|
Issues.filterResults $dropdown.closest('form')
|
|
else if $dropdown.hasClass 'js-filter-submit'
|
|
$dropdown.closest('form').submit()
|
|
)
|