diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee
index 203a5b67..6c0c8886 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.
-###
+# Add GFM auto-completion to all input fields, that accept GFM input.
window.setupGfmAutoComplete = ->
- ###
- Emoji
- ###
- $('.gfm-input').atWho ':',
- data: autocompleteEmojiData,
- tpl: autocompleteEmojiTemplate
+ $input = $('.js-gfm-input')
- ###
- Team Members
- ###
- $('.gfm-input').atWho '@', (query, callback) ->
+ # Emoji
+ $input.atWho ':',
+ data: autocompleteEmoji.data,
+ tpl: autocompleteEmoji.template
+
+ # Team Members
+ $input.atWho '@', (query, callback) ->
(getMoreMembers = ->
- $.getJSON(autocompleteMembersUrl, autocompleteMembersParams)
- .success (members) ->
- # pick the data we need
- newMembersData = $.map members, (m) -> m.name
+ $.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 autocompleteMembersData, newMembersData
+ # 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 autocompleteMembersData[..]
+ # show the pop-up with a copy of the current data
+ callback autocompleteMembers.data[..]
- # 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()
+ # 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 5fe8ae3f..00000000
--- 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 66f8e8b1..00000000
--- 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 86b19162..93b122d9 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 008fa8e9..3059723d 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 af4385de..00000000
--- 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 2ba72975..670b4e05 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", autofocus: true
+ = f.text_field :title, maxlength: 255, class: "xxlarge js-gfm-input", autofocus: true
.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 87a74655..9eadc18c 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 30f88102..c420fac2 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 a9f2907b..0725082d 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 ee0cde4b..c8d79850 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 76ada998..07f038d2 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 89bbe2ea..83b16b13 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 51526f89..88bd8196 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