gfm_auto_complete.js.coffee
1.02 KB
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
# Creates the variables for setting up GFM auto-completion
window.GitLab ?= {}
GitLab.GfmAutoComplete =
  # Emoji
  Emoji:
    data: []
    template: '<li data-value="${insert}">${name} <img alt="${name}" height="20" src="${image}" width="20" /></li>'
  # Team Members
  Members:
    data: []
    url: ''
    params:
      private_token: ''
    template: '<li data-value="${username}">${username} <small>${name}</small></li>'
  # Add GFM auto-completion to all input fields, that accept GFM input.
  setup: ->
    input = $('.js-gfm-input')
    # Emoji
    input.atWho '(?:^|\\s):',
      data: @Emoji.data
      tpl: @Emoji.template
    # Team Members
    input.atWho '@',
      tpl: @Members.template
      callback: (query, callback) =>
        request_params = $.extend({}, @Members.params, query: query)
        $.getJSON(@Members.url, request_params).done (members) =>
          new_members_data = $.map(members, (m) ->
            username: m.username,
            name: m.name
          )
          callback(new_members_data)