summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/gfm_auto_complete.js.coffee61
-rw-r--r--app/assets/javascripts/issues.js4
-rw-r--r--app/views/layouts/_init_auto_complete.html.haml10
-rw-r--r--app/views/notes/_create_common_note.js.haml5
4 files changed, 42 insertions, 38 deletions
diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee
index 6c0c88861c5..ffc4c409b54 100644
--- a/app/assets/javascripts/gfm_auto_complete.js.coffee
+++ b/app/assets/javascripts/gfm_auto_complete.js.coffee
@@ -1,47 +1,52 @@
# Creates the variables for setting up GFM auto-completion
+window.GitLab ?= {}
+GitLab.GfmAutoComplete ?= {}
+
# Emoji
data = []
template = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>"
-window.autocompleteEmoji = {data, template}
+GitLab.GfmAutoComplete.Emoji = {data, template}
# Team Members
+data = []
url = '';
params = {private_token: '', page: 1}
-window.autocompleteMembers = {data, url, params}
+GitLab.GfmAutoComplete.Members = {data, url, params}
# Add GFM auto-completion to all input fields, that accept GFM input.
-window.setupGfmAutoComplete = ->
- $input = $('.js-gfm-input')
+GitLab.GfmAutoComplete.setup = ->
+ input = $('.js-gfm-input')
# Emoji
- $input.atWho ':',
- data: autocompleteEmoji.data,
- tpl: autocompleteEmoji.template
+ input.atWho ':',
+ data: GitLab.GfmAutoComplete.Emoji.data,
+ tpl: GitLab.GfmAutoComplete.Emoji.template
# Team Members
- $input.atWho '@', (query, callback) ->
+ input.atWho '@', (query, callback) ->
(getMoreMembers = ->
- $.getJSON(autocompleteMembers.url, autocompleteMembers.params).success (members) ->
- # pick the data we need
- newMembersData = $.map members, (m) -> m.name
-
- # add the new page of data to the rest
- $.merge autocompleteMembers.data, newMembersData
-
- # show the pop-up with a copy of the current data
- callback autocompleteMembers.data[..]
-
- # are we past the last page?
- if newMembersData.length is 0
- # set static data and stop callbacks
- $input.atWho '@',
- data: autocompleteMembers.data
- callback: null
- else
- # get next page
- getMoreMembers()
+ $.getJSON(GitLab.GfmAutoComplete.Members.url, GitLab.GfmAutoComplete.Members.params)
+ .success (members) ->
+ # pick the data we need
+ newMembersData = $.map(members, (m) -> m.name )
+
+ # add the new page of data to the rest
+ $.merge(GitLab.GfmAutoComplete.Members.data, newMembersData)
+
+ # show the pop-up with a copy of the current data
+ callback(GitLab.GfmAutoComplete.Members.data[..])
+
+ # are we past the last page?
+ if newMembersData.length is 0
+ # set static data and stop callbacks
+ input.atWho '@',
+ data: GitLab.GfmAutoComplete.Members.data
+ callback: null
+ else
+ # get next page
+ getMoreMembers()
# so the next request gets the next page
- autocompleteMembers.params.page += 1
+ GitLab.GfmAutoComplete.Members.params.page += 1
).call()
diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js
index 55db72c39f0..e2fe1075903 100644
--- a/app/assets/javascripts/issues.js
+++ b/app/assets/javascripts/issues.js
@@ -5,7 +5,7 @@ function switchToNewIssue(){
$("#new_issue_dialog").show("fade", { direction: "right" }, 150);
$('.top-tabs .add_new').hide();
disableButtonIfEmptyField("#issue_title", ".save-btn");
- setupGfmAutoComplete();
+ GitLab.GfmAutoComplete.setup();
});
}
@@ -16,7 +16,7 @@ function switchToEditIssue(){
$("#edit_issue_dialog").show("fade", { direction: "right" }, 150);
$('.add_new').hide();
disableButtonIfEmptyField("#issue_title", ".save-btn");
- setupGfmAutoComplete();
+ GitLab.GfmAutoComplete.setup();
});
}
diff --git a/app/views/layouts/_init_auto_complete.html.haml b/app/views/layouts/_init_auto_complete.html.haml
index 9eadc18cbf8..502f289ec05 100644
--- a/app/views/layouts/_init_auto_complete.html.haml
+++ b/app/views/layouts/_init_auto_complete.html.haml
@@ -1,11 +1,11 @@
:javascript
$(function() {
- autocompleteMembers.url = "#{ "/api/v2/projects/#{@project.code}/members" if @project }";
- autocompleteMembers.params.private_token = "#{current_user.private_token}";
+ GitLab.GfmAutoComplete.Members.url = "#{ "/api/v2/projects/#{@project.code}/members" if @project }";
+ GitLab.GfmAutoComplete.Members.params.private_token = "#{current_user.private_token}";
- autocompleteEmoji.data = #{raw emoji_autocomplete_source};
+ GitLab.GfmAutoComplete.Emoji.data = #{raw emoji_autocomplete_source};
// convert the list so that the items have the right format for completion
- autocompleteEmoji.data = $.map(autocompleteEmoji.data, function(value) {
+ GitLab.GfmAutoComplete.Emoji.data = $.map(GitLab.GfmAutoComplete.Emoji.data, function(value) {
return {
name: value,
insert: value+':',
@@ -13,5 +13,5 @@
}
});
- setupGfmAutoComplete();
+ GitLab.GfmAutoComplete.setup();
});
diff --git a/app/views/notes/_create_common_note.js.haml b/app/views/notes/_create_common_note.js.haml
index e7df64c4c1e..217c908064a 100644
--- a/app/views/notes/_create_common_note.js.haml
+++ b/app/views/notes/_create_common_note.js.haml
@@ -9,6 +9,5 @@
- else
:plain
- $(".note-form-holder").replaceWith("#{escape_javascript(render 'form')}");
- setupGfmAutoComplete();
-
+ $(".note-form-holder").replaceWith("#{escape_javascript(render 'notes/common_form')}");
+ GitLab.GfmAutoComplete.setup();