Implementing autocomplete for GFM milestone references
This commit is contained in:
parent
1ff896f2bf
commit
4cab66e3e2
3 changed files with 24 additions and 0 deletions
|
@ -18,6 +18,10 @@ GitLab.GfmAutoComplete =
|
||||||
Issues:
|
Issues:
|
||||||
template: '<li><small>${id}</small> ${title}</li>'
|
template: '<li><small>${id}</small> ${title}</li>'
|
||||||
|
|
||||||
|
# Milestones
|
||||||
|
Milestones:
|
||||||
|
template: '<li>${title}</li>'
|
||||||
|
|
||||||
# Add GFM auto-completion to all input fields, that accept GFM input.
|
# Add GFM auto-completion to all input fields, that accept GFM input.
|
||||||
setup: (wrap) ->
|
setup: (wrap) ->
|
||||||
@input = $('.js-gfm-input')
|
@input = $('.js-gfm-input')
|
||||||
|
@ -81,6 +85,19 @@ GitLab.GfmAutoComplete =
|
||||||
title: sanitize(i.title)
|
title: sanitize(i.title)
|
||||||
search: "#{i.iid} #{i.title}"
|
search: "#{i.iid} #{i.title}"
|
||||||
|
|
||||||
|
@input.atwho
|
||||||
|
at: '%'
|
||||||
|
alias: 'milestones'
|
||||||
|
searchKey: 'search'
|
||||||
|
displayTpl: @Milestones.template
|
||||||
|
insertTpl: '${atwho-at}${id}'
|
||||||
|
callbacks:
|
||||||
|
beforeSave: (milestones) ->
|
||||||
|
$.map milestones, (m) ->
|
||||||
|
id: m.iid
|
||||||
|
title: sanitize(m.title)
|
||||||
|
search: "#{m.title}"
|
||||||
|
|
||||||
@input.atwho
|
@input.atwho
|
||||||
at: '!'
|
at: '!'
|
||||||
alias: 'mergerequests'
|
alias: 'mergerequests'
|
||||||
|
@ -105,6 +122,8 @@ GitLab.GfmAutoComplete =
|
||||||
@input.atwho 'load', '@', data.members
|
@input.atwho 'load', '@', data.members
|
||||||
# load issues
|
# load issues
|
||||||
@input.atwho 'load', 'issues', data.issues
|
@input.atwho 'load', 'issues', data.issues
|
||||||
|
# load milestones
|
||||||
|
@input.atwho 'load', 'milestones', data.milestones
|
||||||
# load merge requests
|
# load merge requests
|
||||||
@input.atwho 'load', 'mergerequests', data.mergerequests
|
@input.atwho 'load', 'mergerequests', data.mergerequests
|
||||||
# load emojis
|
# load emojis
|
||||||
|
|
|
@ -147,6 +147,7 @@ class ProjectsController < Projects::ApplicationController
|
||||||
@suggestions = {
|
@suggestions = {
|
||||||
emojis: AwardEmoji.urls,
|
emojis: AwardEmoji.urls,
|
||||||
issues: autocomplete.issues,
|
issues: autocomplete.issues,
|
||||||
|
milestones: autocomplete.milestones,
|
||||||
mergerequests: autocomplete.merge_requests,
|
mergerequests: autocomplete.merge_requests,
|
||||||
members: participants
|
members: participants
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,10 @@ module Projects
|
||||||
@project.issues.visible_to_user(current_user).opened.select([:iid, :title])
|
@project.issues.visible_to_user(current_user).opened.select([:iid, :title])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def milestones
|
||||||
|
@project.milestones.active.select([:iid, :title])
|
||||||
|
end
|
||||||
|
|
||||||
def merge_requests
|
def merge_requests
|
||||||
@project.merge_requests.opened.select([:iid, :title])
|
@project.merge_requests.opened.select([:iid, :title])
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue