diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee
index 203a5b6745aa7ddc29ce43febfd520b1ed017212..6c0c88861c5c7fc25ae307c628a463865a3904ff 100644
--- a/app/assets/javascripts/gfm_auto_complete.js.coffee
+++ b/app/assets/javascripts/gfm_auto_complete.js.coffee
@@ -1,57 +1,47 @@
+# Creates the variables for setting up GFM auto-completion
-###
- Creates the variables for setting up GFM auto-completion
-###
# Emoji
-window.autocompleteEmojiData = [];
-window.autocompleteEmojiTemplate = "
${name}
";
+data = []
+template = "${name}
"
+window.autocompleteEmoji = {data, template}
# Team Members
-window.autocompleteMembersUrl = "";
-window.autocompleteMembersParams =
- private_token: ""
- page: 1
-window.autocompleteMembersData = [];
+url = '';
+params = {private_token: '', page: 1}
+window.autocompleteMembers = {data, url, params}
+# Add GFM auto-completion to all input fields, that accept GFM input.
+window.setupGfmAutoComplete = ->
+ $input = $('.js-gfm-input')
+ # Emoji
+ $input.atWho ':',
+ data: autocompleteEmoji.data,
+ tpl: autocompleteEmoji.template
-###
- 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) ->
+ # Team Members
+ $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()
+ $.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()
# so the next request gets the next page
- autocompleteMembersParams.page += 1;
- ).call();
\ No newline at end of file
+ autocompleteMembers.params.page += 1
+ ).call()
diff --git a/app/assets/javascripts/graph.js.coffee b/app/assets/javascripts/graph.js.coffee
deleted file mode 100644
index 5fe8ae3f02021eaf90c1bb7ccbf6fce124e8c5ca..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/graph.js.coffee
+++ /dev/null
@@ -1,10 +0,0 @@
-initGraphNav = ->
- $('.graph svg').css 'position', 'relative'
-
- $('body').bind 'keyup', (e) ->
- if e.keyCode is 37 # left
- $('.graph svg').animate left: '+=400'
- else if e.keyCode is 39 # right
- $('.graph svg').animate left: '-=400'
-
-window.initGraphNav = initGraphNav
diff --git a/app/assets/javascripts/loader.js.coffee b/app/assets/javascripts/loader.js.coffee
deleted file mode 100644
index 66f8e8b1bb3a4caeaad8b0e9cd609efdc04bd3b1..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/loader.js.coffee
+++ /dev/null
@@ -1,5 +0,0 @@
-Loader =
- html: (width) ->
- $('
').attr src: '/assets/ajax-loader.gif', width: width
-
-window.Loader = Loader
diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee
index 86b191626b3780949cd0e55aa2ffe81415de862a..93b122d9b07c7b3c5021faf15a8acf8afbffdbbe 100644
--- a/app/assets/javascripts/main.js.coffee
+++ b/app/assets/javascripts/main.js.coffee
@@ -7,7 +7,7 @@ window.slugify = (text) ->
window.ajaxGet = (url) ->
$.ajax({type: "GET", url: url, dataType: "script"})
- # Disable button if text field is empty
+# Disable button if text field is empty
window.disableButtonIfEmptyField = (field_selector, button_selector) ->
field = $(field_selector)
closest_submit = field.closest("form").find(button_selector)
@@ -15,21 +15,21 @@ window.disableButtonIfEmptyField = (field_selector, button_selector) ->
closest_submit.disable() if field.val() is ""
field.on "keyup", ->
- if $(this).val() is ""
+ if $(@).val() is ""
closest_submit.disable()
else
closest_submit.enable()
$ ->
# Click a .one_click_select field, select the contents
- $(".one_click_select").live 'click', -> $(this).select()
+ $(".one_click_select").on 'click', -> $(@).select()
# Initialize chosen selects
$('select.chosen').chosen()
# Disable form buttons while a form is submitting
$('body').on 'ajax:complete, ajax:beforeSend, submit', 'form', (e) ->
- buttons = $('[type="submit"]', this)
+ buttons = $('[type="submit"]', @)
switch e.type
when 'ajax:beforeSend', 'submit'
@@ -38,7 +38,7 @@ $ ->
buttons.enable()
# Show/Hide the profile menu when hovering the account box
- $('.account-box').hover -> $(this).toggleClass('hover')
+ $('.account-box').hover -> $(@).toggleClass('hover')
# Focus search field by pressing 's' key
$(document).keypress (e) ->
@@ -52,22 +52,22 @@ $ ->
# Commit show suppressed diff
$(".supp_diff_link").bind "click", ->
- $(this).next('table').show()
- $(this).remove()
+ $(@).next('table').show()
+ $(@).remove()
# Note markdown preview
$(document).on 'click', '#preview-link', (e) ->
- $('#preview-note').text('Loading...')
+ $('#preview-note').text 'Loading...'
- previewLinkText = if $(this).text() == 'Preview' then 'Edit' else 'Preview'
- $(this).text(previewLinkText)
+ previewLinkText = if $(@).text() is 'Preview' then 'Edit' else 'Preview'
+ $(@).text previewLinkText
note = $('#note_note').val()
- if note.trim().length == 0
- $('#preview-note').text("Nothing to preview.")
+ if note.trim().length is 0
+ $('#preview-note').text 'Nothing to preview.'
else
- $.post $(this).attr('href'), {note: note}, (data) ->
+ $.post $(@).attr('href'), {note: note}, (data) ->
$('#preview-note').html(data)
$('#preview-note, #note_note').toggle()
@@ -79,14 +79,14 @@ $ ->
$.fn.extend chosen: (options) ->
default_options = search_contains: "true"
$.extend default_options, options
- _chosen.apply this, [default_options]
+ _chosen.apply @, [default_options]
# Disable an element and add the 'disabled' Bootstrap class
$.fn.extend disable: ->
- $(this).attr('disabled', 'disabled').addClass('disabled')
+ $(@).attr('disabled', 'disabled').addClass('disabled')
# Enable an element and remove the 'disabled' Bootstrap class
$.fn.extend enable: ->
- $(this).removeAttr('disabled').removeClass('disabled')
+ $(@).removeAttr('disabled').removeClass('disabled')
)(jQuery)
diff --git a/app/assets/javascripts/projects.js.coffee b/app/assets/javascripts/projects.js.coffee
index 008fa8e91164c65a0492015e49da21b35c9dc1ef..3059723dfa040b95ec79639698c0698b1112978f 100644
--- a/app/assets/javascripts/projects.js.coffee
+++ b/app/assets/javascripts/projects.js.coffee
@@ -22,3 +22,10 @@ $ ->
# Ref switcher
$('.project-refs-select').on 'change', ->
$(@).parents('form').submit()
+
+class @GraphNav
+ @init: ->
+ $('.graph svg').css 'position', 'relative'
+ $('body').bind 'keyup', (e) ->
+ $('.graph svg').animate(left: '+=400') if e.keyCode is 37 # left
+ $('.graph svg').animate(left: '-=400') if e.keyCode is 39 # right
diff --git a/app/assets/javascripts/snippets.js.coffee b/app/assets/javascripts/snippets.js.coffee
deleted file mode 100644
index af4385deb51d5045307ba23b16cab0bd23b5d457..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/snippets.js.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-$ ->
- $('#snippets-table .snippet').live 'click', (e) ->
- if e.target.nodeName isnt 'A' and e.target.nodeName isnt 'INPUT'
- location.href = $(@).attr 'url'
- e.stopPropagation()
- false
diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml
index ec3edce066a591f5e677975bb1b5a6d0c6f05fc5..3e2cacbb906b0a817a42e3e690a9ac8b8a0f75ee 100644
--- a/app/views/issues/_form.html.haml
+++ b/app/views/issues/_form.html.haml
@@ -12,7 +12,7 @@
= f.label :title do
%strong= "Subject *"
.input
- = f.text_field :title, maxlength: 255, class: "xxlarge gfm-input"
+ = f.text_field :title, maxlength: 255, class: "xxlarge js-gfm-input"
.issue_middle_block
.issue_assignee
= f.label :assignee_id do
@@ -37,7 +37,7 @@
.clearfix
= f.label :description, "Details"
.input
- = f.text_area :description, maxlength: 2000, class: "xxlarge gfm-input", rows: 14
+ = f.text_area :description, maxlength: 2000, class: "xxlarge js-gfm-input", rows: 14
%p.hint Issues are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
diff --git a/app/views/layouts/_init_auto_complete.html.haml b/app/views/layouts/_init_auto_complete.html.haml
index 87a746551286b6b61a8efeee5f9644e09e3bed31..9eadc18cbf8eddd7bc18e18b260607f9aed025f2 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() {
- autocompleteMembersUrl = "#{ "/api/v2/projects/#{@project.code}/members" if @project }";
- autocompleteMembersParams.private_token = "#{current_user.authentication_token}";
+ autocompleteMembers.url = "#{ "/api/v2/projects/#{@project.code}/members" if @project }";
+ autocompleteMembers.params.private_token = "#{current_user.private_token}";
- autocompleteEmojiData = #{raw emoji_autocomplete_source};
+ autocompleteEmoji.data = #{raw emoji_autocomplete_source};
// convert the list so that the items have the right format for completion
- autocompleteEmojiData = $.map(autocompleteEmojiData, function(value) {
+ autocompleteEmoji.data = $.map(autocompleteEmoji.data, function(value) {
return {
name: value,
insert: value+':',
diff --git a/app/views/merge_requests/_form.html.haml b/app/views/merge_requests/_form.html.haml
index 30f8810259c3e24a80e345199d546482da34ac5c..c420fac24b8addd9d7aaacf51539f4115f7269f2 100644
--- a/app/views/merge_requests/_form.html.haml
+++ b/app/views/merge_requests/_form.html.haml
@@ -30,12 +30,12 @@
.clearfix
.main_box
.top_box_content
- = f.label :title do
+ = f.label :title do
%strong= "Title *"
- .input= f.text_field :title, class: "input-xxlarge pad gfm-input", maxlength: 255, rows: 5
+ .input= f.text_field :title, class: "input-xxlarge pad js-gfm-input", maxlength: 255, rows: 5
.middle_box_content
- = f.label :assignee_id do
- %i.icon-user
+ = f.label :assignee_id do
+ %i.icon-user
Assign to
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, {class: 'chosen span3'})
diff --git a/app/views/notes/_common_form.html.haml b/app/views/notes/_common_form.html.haml
index a9f2907b05adf23bc994947caadce6cccc3f8409..0725082d504503d0e141a4a25753cf50cfa72f52 100644
--- a/app/views/notes/_common_form.html.haml
+++ b/app/views/notes/_common_form.html.haml
@@ -8,7 +8,7 @@
= f.hidden_field :noteable_id
= f.hidden_field :noteable_type
- = f.text_area :note, size: 255, class: 'note-text gfm-input'
+ = f.text_area :note, size: 255, class: 'note-text js-gfm-input'
#preview-note.preview_note.hide
.hint
.right Comments are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
diff --git a/app/views/notes/_per_line_form.html.haml b/app/views/notes/_per_line_form.html.haml
index ee0cde4bcf12149138dfc7aecc83dc10ea6ec930..c8d79850162c2340d1cf7b87f5e7e77910ad76e2 100644
--- a/app/views/notes/_per_line_form.html.haml
+++ b/app/views/notes/_per_line_form.html.haml
@@ -13,7 +13,7 @@
= f.hidden_field :noteable_id
= f.hidden_field :noteable_type
= f.hidden_field :line_code
- = f.text_area :note, size: 255, class: 'line-note-text gfm-input'
+ = f.text_area :note, size: 255, class: 'line-note-text js-gfm-input'
.note_actions
.buttons
= f.submit 'Add note', class: "btn save-btn submit_note submit_inline_note", id: "submit_note"
diff --git a/app/views/projects/graph.html.haml b/app/views/projects/graph.html.haml
index 76ada998389907d0900cd0564ef68ef928ac81a5..07f038d28a236bc2fb6795218a732f59c15944ea 100644
--- a/app/views/projects/graph.html.haml
+++ b/app/views/projects/graph.html.haml
@@ -10,5 +10,5 @@
initGraph();
$(function(){
branchGraph($("#holder")[0]);
- initGraphNav();
+ GraphNav.init();
});
diff --git a/app/views/wikis/_form.html.haml b/app/views/wikis/_form.html.haml
index 89bbe2ea960c9268786652a3f11e14a9b22a7a86..83b16b138d377d833df16da754239ca089923213 100644
--- a/app/views/wikis/_form.html.haml
+++ b/app/views/wikis/_form.html.haml
@@ -21,7 +21,7 @@
.bottom_box_content
= f.label :content
- .input= f.text_area :content, class: 'span8 gfm-input'
+ .input= f.text_area :content, class: 'span8 js-gfm-input'
.actions
= f.submit 'Save', class: "save-btn btn"
= link_to "Cancel", project_wiki_path(@project, :index), class: "btn cancel-btn"
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 51526f89fbad20f12721a3fd328f06a18d985d6d..88bd81969e489a36130be9ecf430a53d1683ec78 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -239,7 +239,7 @@ describe Gitlab::API do
end
describe "GET /projects/:id/snippets" do
- it "should return a project snippet" do
+ it "should return an array of project snippets" do
get api("/projects/#{project.code}/snippets", user)
response.status.should == 200
json_response.should be_an Array