Commit 3e800c3bb1b835cd17e32eedd8816bc17f6317e4
1 parent
1cda6246
Exists in
master
and in
4 other branches
Refactor GFM JS naming and access
Showing
4 changed files
with
20 additions
and
19 deletions
Show diff stats
app/assets/javascripts/gfm_auto_complete.js.coffee
| 1 | 1 | # Creates the variables for setting up GFM auto-completion |
| 2 | 2 | |
| 3 | 3 | window.GitLab ?= {} |
| 4 | -window.GitLab.AutoComplete ?= {} | |
| 4 | +GitLab.GfmAutoComplete ?= {} | |
| 5 | 5 | |
| 6 | 6 | # Emoji |
| 7 | 7 | data = [] |
| 8 | 8 | template = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>" |
| 9 | -window.GitLab.AutoComplete.Emoji = {data, template} | |
| 9 | +GitLab.GfmAutoComplete.Emoji = {data, template} | |
| 10 | 10 | |
| 11 | 11 | # Team Members |
| 12 | +data = [] | |
| 12 | 13 | url = ''; |
| 13 | 14 | params = {private_token: '', page: 1} |
| 14 | -window.GitLab.AutoComplete.Members = {data, url, params} | |
| 15 | +GitLab.GfmAutoComplete.Members = {data, url, params} | |
| 15 | 16 | |
| 16 | 17 | # Add GFM auto-completion to all input fields, that accept GFM input. |
| 17 | -window.setupGfmAutoComplete = -> | |
| 18 | +GitLab.GfmAutoComplete.setup = -> | |
| 18 | 19 | input = $('.js-gfm-input') |
| 19 | 20 | |
| 20 | 21 | # Emoji |
| 21 | 22 | input.atWho ':', |
| 22 | - data: GitLab.AutoComplete.Emoji.data, | |
| 23 | - tpl: GitLab.AutoComplete.Emoji.template | |
| 23 | + data: GitLab.GfmAutoComplete.Emoji.data, | |
| 24 | + tpl: GitLab.GfmAutoComplete.Emoji.template | |
| 24 | 25 | |
| 25 | 26 | # Team Members |
| 26 | 27 | input.atWho '@', (query, callback) -> |
| 27 | 28 | (getMoreMembers = -> |
| 28 | - $.getJSON(GitLab.AutoComplete.Members.url, GitLab.AutoComplete.Members.params) | |
| 29 | + $.getJSON(GitLab.GfmAutoComplete.Members.url, GitLab.GfmAutoComplete.Members.params) | |
| 29 | 30 | .success (members) -> |
| 30 | 31 | # pick the data we need |
| 31 | 32 | newMembersData = $.map(members, (m) -> m.name ) |
| 32 | 33 | |
| 33 | 34 | # add the new page of data to the rest |
| 34 | - $.merge(GitLab.AutoComplete.Members.data, newMembersData) | |
| 35 | + $.merge(GitLab.GfmAutoComplete.Members.data, newMembersData) | |
| 35 | 36 | |
| 36 | 37 | # show the pop-up with a copy of the current data |
| 37 | - callback(GitLab.AutoComplete.Members.data[..]) | |
| 38 | + callback(GitLab.GfmAutoComplete.Members.data[..]) | |
| 38 | 39 | |
| 39 | 40 | # are we past the last page? |
| 40 | 41 | if newMembersData.length is 0 |
| 41 | 42 | # set static data and stop callbacks |
| 42 | 43 | input.atWho '@', |
| 43 | - data: GitLab.AutoComplete.Members.data | |
| 44 | + data: GitLab.GfmAutoComplete.Members.data | |
| 44 | 45 | callback: null |
| 45 | 46 | else |
| 46 | 47 | # get next page |
| 47 | 48 | getMoreMembers() |
| 48 | 49 | |
| 49 | 50 | # so the next request gets the next page |
| 50 | - GitLab.AutoComplete.Members.params.page += 1 | |
| 51 | + GitLab.GfmAutoComplete.Members.params.page += 1 | |
| 51 | 52 | ).call() | ... | ... |
app/assets/javascripts/issues.js
| ... | ... | @@ -5,7 +5,7 @@ function switchToNewIssue(){ |
| 5 | 5 | $("#new_issue_dialog").show("fade", { direction: "right" }, 150); |
| 6 | 6 | $('.top-tabs .add_new').hide(); |
| 7 | 7 | disableButtonIfEmptyField("#issue_title", ".save-btn"); |
| 8 | - setupGfmAutoComplete(); | |
| 8 | + GitLab.GfmAutoComplete.setup(); | |
| 9 | 9 | }); |
| 10 | 10 | } |
| 11 | 11 | |
| ... | ... | @@ -16,7 +16,7 @@ function switchToEditIssue(){ |
| 16 | 16 | $("#edit_issue_dialog").show("fade", { direction: "right" }, 150); |
| 17 | 17 | $('.add_new').hide(); |
| 18 | 18 | disableButtonIfEmptyField("#issue_title", ".save-btn"); |
| 19 | - setupGfmAutoComplete(); | |
| 19 | + GitLab.GfmAutoComplete.setup(); | |
| 20 | 20 | }); |
| 21 | 21 | } |
| 22 | 22 | ... | ... |
app/views/layouts/_init_auto_complete.html.haml
| 1 | 1 | :javascript |
| 2 | 2 | $(function() { |
| 3 | - GitLab.AutoComplete.Members.url = "#{ "/api/v2/projects/#{@project.code}/members" if @project }"; | |
| 4 | - GitLab.AutoComplete.Members.params.private_token = "#{current_user.private_token}"; | |
| 3 | + GitLab.GfmAutoComplete.Members.url = "#{ "/api/v2/projects/#{@project.code}/members" if @project }"; | |
| 4 | + GitLab.GfmAutoComplete.Members.params.private_token = "#{current_user.private_token}"; | |
| 5 | 5 | |
| 6 | - GitLab.AutoComplete.Emoji.data = #{raw emoji_autocomplete_source}; | |
| 6 | + GitLab.GfmAutoComplete.Emoji.data = #{raw emoji_autocomplete_source}; | |
| 7 | 7 | // convert the list so that the items have the right format for completion |
| 8 | - GitLab.AutoComplete.Emoji.data = $.map(GitLab.AutoComplete.Emoji.data, function(value) { | |
| 8 | + GitLab.GfmAutoComplete.Emoji.data = $.map(GitLab.GfmAutoComplete.Emoji.data, function(value) { | |
| 9 | 9 | return { |
| 10 | 10 | name: value, |
| 11 | 11 | insert: value+':', |
| ... | ... | @@ -13,5 +13,5 @@ |
| 13 | 13 | } |
| 14 | 14 | }); |
| 15 | 15 | |
| 16 | - setupGfmAutoComplete(); | |
| 16 | + GitLab.GfmAutoComplete.setup(); | |
| 17 | 17 | }); | ... | ... |