Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-10-10 02:16:52 +0400
committerRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-10-10 02:53:55 +0400
commite4aa5a5c8f9d8a4b556aeba003160017821ed9a3 (patch)
tree1bda639e1a82b4f1d5ef112719d4374241145242 /app/assets
parenteb92813757d8ec14819ddbab6efae7e7cdd403e6 (diff)
Extract and split GFM auto-completion setup JS
* static initialization and setup moved to assets * per request initialization moved to layout partial
Diffstat (limited to 'app/assets')
-rw-r--r--app/assets/javascripts/gfm_auto_complete.js.coffee57
1 files changed, 57 insertions, 0 deletions
diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee
new file mode 100644
index 00000000000..203a5b6745a
--- /dev/null
+++ b/app/assets/javascripts/gfm_auto_complete.js.coffee
@@ -0,0 +1,57 @@
+
+###
+ Creates the variables for setting up GFM auto-completion
+###
+# Emoji
+window.autocompleteEmojiData = [];
+window.autocompleteEmojiTemplate = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>";
+
+# Team Members
+window.autocompleteMembersUrl = "";
+window.autocompleteMembersParams =
+ private_token: ""
+ page: 1
+window.autocompleteMembersData = [];
+
+
+
+###
+ Add GFM auto-completion to all input fields, that accept GFM input.
+###
+window.setupGfmAutoComplete = ->
+ ###
+ Emoji
+ ###
+ $('.gfm-input').atWho ':',
+ data: autocompleteEmojiData,
+ tpl: autocompleteEmojiTemplate
+
+ ###
+ Team Members
+ ###
+ $('.gfm-input').atWho '@', (query, callback) ->
+ (getMoreMembers = ->
+ $.getJSON(autocompleteMembersUrl, autocompleteMembersParams)
+ .success (members) ->
+ # pick the data we need
+ newMembersData = $.map members, (m) -> m.name
+
+ # add the new page of data to the rest
+ $.merge autocompleteMembersData, newMembersData
+
+ # show the pop-up with a copy of the current data
+ callback autocompleteMembersData[..]
+
+ # are we past the last page?
+ if newMembersData.length == 0
+ # set static data and stop callbacks
+ $('.gfm-input').atWho '@',
+ data: autocompleteMembersData
+ callback: null
+ else
+ # get next page
+ getMoreMembers()
+
+ # so the next request gets the next page
+ autocompleteMembersParams.page += 1;
+ ).call(); \ No newline at end of file