Commit 0b981eb9b3fbef8f34b9be37a2484c96189ea417
1 parent
37f3d0f2
Exists in
master
and in
4 other branches
coffescript refactoring pt.1
Showing
12 changed files
with
158 additions
and
145 deletions
Show diff stats
app/assets/javascripts/commit.js.coffee
app/assets/javascripts/dashboard.js.coffee
1 | -window.dashboardPage = -> | ||
2 | - Pager.init 20, true | ||
3 | - initSidebarTab() | ||
4 | - $(".event_filter_link").bind "click", (event) -> | ||
5 | - event.preventDefault() | ||
6 | - toggleFilter $(this) | ||
7 | - reloadActivities() | ||
8 | - | ||
9 | -reloadActivities = -> | ||
10 | - $(".content_list").html '' | ||
11 | - Pager.init 20, true | ||
12 | - | ||
13 | -toggleFilter = (sender) -> | ||
14 | - sender.parent().toggleClass "inactive" | ||
15 | - event_filters = $.cookie("event_filter") | ||
16 | - filter = sender.attr("id").split("_")[0] | ||
17 | - if event_filters | ||
18 | - event_filters = event_filters.split(",") | ||
19 | - else | ||
20 | - event_filters = new Array() | ||
21 | - | ||
22 | - index = event_filters.indexOf(filter) | ||
23 | - if index is -1 | ||
24 | - event_filters.push filter | ||
25 | - else | ||
26 | - event_filters.splice index, 1 | ||
27 | - | ||
28 | - $.cookie "event_filter", event_filters.join(",") | ||
29 | - | ||
30 | -initSidebarTab = -> | ||
31 | - key = "dashboard_sidebar_filter" | ||
32 | - | ||
33 | - # store selection in cookie | ||
34 | - $('.dash-sidebar-tabs a').on 'click', (e) -> | ||
35 | - $.cookie(key, $(e.target).attr('id')) | ||
36 | - | ||
37 | - # show tab from cookie | ||
38 | - sidebar_filter = $.cookie(key) | ||
39 | - $("#" + sidebar_filter).tab('show') if sidebar_filter | 1 | +class Dashboard |
2 | + constructor: -> | ||
3 | + Pager.init 20, true | ||
4 | + @initSidebarTab() | ||
5 | + | ||
6 | + $(".event_filter_link").bind "click", (event) => | ||
7 | + event.preventDefault() | ||
8 | + @toggleFilter($(event.currentTarget)) | ||
9 | + @reloadActivities() | ||
10 | + | ||
11 | + reloadActivities: -> | ||
12 | + $(".content_list").html '' | ||
13 | + Pager.init 20, true | ||
14 | + | ||
15 | + toggleFilter: (sender) -> | ||
16 | + sender.parent().toggleClass "inactive" | ||
17 | + event_filters = $.cookie("event_filter") | ||
18 | + filter = sender.attr("id").split("_")[0] | ||
19 | + if event_filters | ||
20 | + event_filters = event_filters.split(",") | ||
21 | + else | ||
22 | + event_filters = new Array() | ||
23 | + | ||
24 | + index = event_filters.indexOf(filter) | ||
25 | + if index is -1 | ||
26 | + event_filters.push filter | ||
27 | + else | ||
28 | + event_filters.splice index, 1 | ||
29 | + | ||
30 | + $.cookie "event_filter", event_filters.join(",") | ||
31 | + | ||
32 | + initSidebarTab: -> | ||
33 | + key = "dashboard_sidebar_filter" | ||
34 | + | ||
35 | + # store selection in cookie | ||
36 | + $('.dash-sidebar-tabs a').on 'click', (e) -> | ||
37 | + $.cookie(key, $(e.target).attr('id')) | ||
38 | + | ||
39 | + # show tab from cookie | ||
40 | + sidebar_filter = $.cookie(key) | ||
41 | + $("#" + sidebar_filter).tab('show') if sidebar_filter | ||
42 | + | ||
43 | + | ||
44 | +@Dashboard = Dashboard |
app/assets/javascripts/dispatcher.js.coffee
@@ -4,16 +4,27 @@ $ -> | @@ -4,16 +4,27 @@ $ -> | ||
4 | class Dispatcher | 4 | class Dispatcher |
5 | constructor: () -> | 5 | constructor: () -> |
6 | page = $('body').attr('data-page') | 6 | page = $('body').attr('data-page') |
7 | + project_id = $('body').attr('data-project-id') | ||
7 | 8 | ||
8 | console.log(page) | 9 | console.log(page) |
10 | + | ||
11 | + path = page.split(':') | ||
9 | 12 | ||
10 | switch page | 13 | switch page |
11 | - when 'issues:index' then Issues.init() | ||
12 | - when 'dashboard:show' then dashboardPage() | ||
13 | - when 'commit:show' then Commit.init() | 14 | + when 'issues:index' |
15 | + Issues.init() | ||
16 | + when 'dashboard:show' | ||
17 | + new Dashboard() | ||
18 | + when 'commit:show' | ||
19 | + new Commit() | ||
14 | when 'groups:show', 'teams:show', 'projects:show' | 20 | when 'groups:show', 'teams:show', 'projects:show' |
15 | Pager.init(20, true) | 21 | Pager.init(20, true) |
16 | when 'projects:new', 'projects:edit' | 22 | when 'projects:new', 'projects:edit' |
17 | - new Projects() | ||
18 | - when 'admin:teams:show', 'admin:groups:show', 'admin:logs:show', 'admin:users:new' | ||
19 | - Admin.init() | 23 | + new Project() |
24 | + when 'walls:show' | ||
25 | + new Wall(project_id) | ||
26 | + | ||
27 | + switch path.first() | ||
28 | + when 'admin' then Admin.init() | ||
29 | + when 'wikis' then new Wikis() | ||
30 | + |
@@ -0,0 +1,37 @@ | @@ -0,0 +1,37 @@ | ||
1 | +class Project | ||
2 | + constructor: -> | ||
3 | + $('.new_project, .edit_project').on 'ajax:before', -> | ||
4 | + $('.project_new_holder, .project_edit_holder').hide() | ||
5 | + $('.save-project-loader').show() | ||
6 | + | ||
7 | + $('form #project_default_branch').chosen() | ||
8 | + disableButtonIfEmptyField '#project_name', '.project-submit' | ||
9 | + | ||
10 | + $('#project_issues_enabled').change -> | ||
11 | + if ($(this).is(':checked') == true) | ||
12 | + $('#project_issues_tracker').removeAttr('disabled') | ||
13 | + else | ||
14 | + $('#project_issues_tracker').attr('disabled', 'disabled') | ||
15 | + | ||
16 | + $('#project_issues_tracker').change() | ||
17 | + | ||
18 | + $('#project_issues_tracker').change -> | ||
19 | + if ($(this).val() == gon.default_issues_tracker || $(this).is(':disabled')) | ||
20 | + $('#project_issues_tracker_id').attr('disabled', 'disabled') | ||
21 | + else | ||
22 | + $('#project_issues_tracker_id').removeAttr('disabled') | ||
23 | + | ||
24 | +@Project = Project | ||
25 | + | ||
26 | +$ -> | ||
27 | + # Git clone panel switcher | ||
28 | + scope = $ '.project_clone_holder' | ||
29 | + if scope.length > 0 | ||
30 | + $('a, button', scope).click -> | ||
31 | + $('a, button', scope).removeClass 'active' | ||
32 | + $(@).addClass 'active' | ||
33 | + $('#project_clone', scope).val $(@).data 'clone' | ||
34 | + | ||
35 | + # Ref switcher | ||
36 | + $('.project-refs-select').on 'change', -> | ||
37 | + $(@).parents('form').submit() |
app/assets/javascripts/projects.js.coffee
@@ -1,35 +0,0 @@ | @@ -1,35 +0,0 @@ | ||
1 | -window.Projects = -> | ||
2 | - $('.new_project, .edit_project').on 'ajax:before', -> | ||
3 | - $('.project_new_holder, .project_edit_holder').hide() | ||
4 | - $('.save-project-loader').show() | ||
5 | - | ||
6 | - $('form #project_default_branch').chosen() | ||
7 | - disableButtonIfEmptyField '#project_name', '.project-submit' | ||
8 | - | ||
9 | -$ -> | ||
10 | - # Git clone panel switcher | ||
11 | - scope = $ '.project_clone_holder' | ||
12 | - if scope.length > 0 | ||
13 | - $('a, button', scope).click -> | ||
14 | - $('a, button', scope).removeClass 'active' | ||
15 | - $(@).addClass 'active' | ||
16 | - $('#project_clone', scope).val $(@).data 'clone' | ||
17 | - | ||
18 | - # Ref switcher | ||
19 | - $('.project-refs-select').on 'change', -> | ||
20 | - $(@).parents('form').submit() | ||
21 | - | ||
22 | - $('#project_issues_enabled').change -> | ||
23 | - if ($(this).is(':checked') == true) | ||
24 | - $('#project_issues_tracker').removeAttr('disabled') | ||
25 | - else | ||
26 | - $('#project_issues_tracker').attr('disabled', 'disabled') | ||
27 | - | ||
28 | - $('#project_issues_tracker').change() | ||
29 | - | ||
30 | - $('#project_issues_tracker').change -> | ||
31 | - if ($(this).val() == gon.default_issues_tracker || $(this).is(':disabled')) | ||
32 | - $('#project_issues_tracker_id').attr('disabled', 'disabled') | ||
33 | - else | ||
34 | - $('#project_issues_tracker_id').removeAttr('disabled') | ||
35 | - |
app/assets/javascripts/wall.js.coffee
1 | -@Wall = | ||
2 | - note_ids: [] | ||
3 | - project_id: null | ||
4 | - | ||
5 | - init: (project_id) -> | ||
6 | - Wall.project_id = project_id | ||
7 | - Wall.getContent() | ||
8 | - Wall.initRefresh() | ||
9 | - Wall.initForm() | 1 | +class Wall |
2 | + constructor: (project_id) -> | ||
3 | + @project_id = project_id | ||
4 | + @note_ids = [] | ||
5 | + @getContent() | ||
6 | + @initRefresh() | ||
7 | + @initForm() | ||
10 | 8 | ||
11 | # | 9 | # |
12 | # Gets an initial set of notes. | 10 | # Gets an initial set of notes. |
13 | # | 11 | # |
14 | getContent: -> | 12 | getContent: -> |
15 | - Api.notes Wall.project_id, (notes) -> | ||
16 | - $.each notes, (i, note) -> | 13 | + Api.notes @project_id, (notes) => |
14 | + $.each notes, (i, note) => | ||
17 | # render note if it not present in loaded list | 15 | # render note if it not present in loaded list |
18 | # or skip if rendered | 16 | # or skip if rendered |
19 | - if $.inArray(note.id, Wall.note_ids) == -1 | ||
20 | - Wall.note_ids.push(note.id) | ||
21 | - Wall.renderNote(note) | ||
22 | - Wall.scrollDown() | 17 | + if $.inArray(note.id, @note_ids) == -1 |
18 | + @note_ids.push(note.id) | ||
19 | + @renderNote(note) | ||
20 | + @scrollDown() | ||
23 | $("abbr.timeago").timeago() | 21 | $("abbr.timeago").timeago() |
24 | 22 | ||
25 | initRefresh: -> | 23 | initRefresh: -> |
26 | - setInterval("Wall.refresh()", 10000) | 24 | + setInterval => |
25 | + @refresh() | ||
26 | + , 10000 | ||
27 | 27 | ||
28 | refresh: -> | 28 | refresh: -> |
29 | - Wall.getContent() | 29 | + @getContent() |
30 | 30 | ||
31 | scrollDown: -> | 31 | scrollDown: -> |
32 | notes = $('ul.notes') | 32 | notes = $('ul.notes') |
@@ -36,8 +36,8 @@ | @@ -36,8 +36,8 @@ | ||
36 | form = $('.wall-note-form') | 36 | form = $('.wall-note-form') |
37 | form.find("#target_type").val('wall') | 37 | form.find("#target_type").val('wall') |
38 | 38 | ||
39 | - form.on 'ajax:success', -> | ||
40 | - Wall.refresh() | 39 | + form.on 'ajax:success', => |
40 | + @refresh() | ||
41 | form.find(".js-note-text").val("").trigger("input") | 41 | form.find(".js-note-text").val("").trigger("input") |
42 | 42 | ||
43 | form.on 'ajax:complete', -> | 43 | form.on 'ajax:complete', -> |
@@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
58 | form.show() | 58 | form.show() |
59 | 59 | ||
60 | renderNote: (note) -> | 60 | renderNote: (note) -> |
61 | - template = Wall.noteTemplate() | 61 | + template = @noteTemplate() |
62 | template = template.replace('{{author_name}}', note.author.name) | 62 | template = template.replace('{{author_name}}', note.author.name) |
63 | template = template.replace('{{created_at}}', note.created_at) | 63 | template = template.replace('{{created_at}}', note.created_at) |
64 | template = template.replace('{{text}}', linkify(sanitize(note.body))) | 64 | template = template.replace('{{text}}', linkify(sanitize(note.body))) |
@@ -81,3 +81,5 @@ | @@ -81,3 +81,5 @@ | ||
81 | </span> | 81 | </span> |
82 | <abbr class="timeago" title="{{created_at}}">{{created_at}}</abbr> | 82 | <abbr class="timeago" title="{{created_at}}">{{created_at}}</abbr> |
83 | </li>' | 83 | </li>' |
84 | + | ||
85 | +@Wall = Wall |
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +class Wikis | ||
2 | + constructor: -> | ||
3 | + modal = $('#modal-new-wiki').modal({modal: true, show:false}) | ||
4 | + | ||
5 | + $('.add-new-wiki').bind "click", -> | ||
6 | + modal.show() | ||
7 | + | ||
8 | + $('.build-new-wiki').bind "click", -> | ||
9 | + field = $('#new_wiki_path') | ||
10 | + slug = field.val() | ||
11 | + path = field.attr('data-wikis-path') | ||
12 | + | ||
13 | + if(slug.length > 0) | ||
14 | + location.href = path + "/" + slug | ||
15 | + | ||
16 | + $('.modal-header .close').bind "click", -> | ||
17 | + modal.hide() | ||
18 | + | ||
19 | +@Wikis = Wikis |
app/views/graph/show.html.haml
@@ -7,11 +7,10 @@ | @@ -7,11 +7,10 @@ | ||
7 | 7 | ||
8 | :javascript | 8 | :javascript |
9 | var branch_graph; | 9 | var branch_graph; |
10 | - $(function(){ | ||
11 | - branch_graph = new BranchGraph($("#holder"), { | ||
12 | - url: '#{project_graph_path(@project, @ref, q: @q, format: :json)}', | ||
13 | - commit_url: '#{project_commit_path(@project, 'ae45ca32').gsub("ae45ca32", "%s")}', | ||
14 | - ref: '#{@ref}', | ||
15 | - commit_id: '#{@commit.id}' | ||
16 | - }); | 10 | + |
11 | + branch_graph = new BranchGraph($("#holder"), { | ||
12 | + url: '#{project_graph_path(@project, @ref, q: @q, format: :json)}', | ||
13 | + commit_url: '#{project_commit_path(@project, 'ae45ca32').gsub("ae45ca32", "%s")}', | ||
14 | + ref: '#{@ref}', | ||
15 | + commit_id: '#{@commit.id}' | ||
17 | }); | 16 | }); |
app/views/layouts/project_resource.html.haml
1 | !!! 5 | 1 | !!! 5 |
2 | %html{ lang: "en"} | 2 | %html{ lang: "en"} |
3 | = render "layouts/head", title: @project.name_with_namespace | 3 | = render "layouts/head", title: @project.name_with_namespace |
4 | - %body{class: "#{app_theme} project", :'data-page' => body_data_page} | 4 | + %body{class: "#{app_theme} project", :'data-page' => body_data_page, :'data-project-id' => @project.id } |
5 | = render "layouts/head_panel", title: project_title(@project) | 5 | = render "layouts/head_panel", title: project_title(@project) |
6 | = render "layouts/flash" | 6 | = render "layouts/flash" |
7 | - if can?(current_user, :download_code, @project) | 7 | - if can?(current_user, :download_code, @project) |
app/views/merge_requests/_show.html.haml
@@ -26,14 +26,12 @@ | @@ -26,14 +26,12 @@ | ||
26 | 26 | ||
27 | :javascript | 27 | :javascript |
28 | var merge_request; | 28 | var merge_request; |
29 | - $(function(){ | ||
30 | - merge_request = new MergeRequest({ | ||
31 | - url_to_automerge_check: "#{automerge_check_project_merge_request_path(@project, @merge_request)}", | ||
32 | - check_enable: #{@merge_request.unchecked? ? "true" : "false"}, | ||
33 | - url_to_ci_check: "#{ci_status_project_merge_request_path(@project, @merge_request)}", | ||
34 | - ci_enable: #{@project.gitlab_ci? ? "true" : "false"}, | ||
35 | - current_status: "#{@merge_request.merge_status_name}", | ||
36 | - action: "#{controller.action_name}" | ||
37 | - }); | ||
38 | - }); | ||
39 | 29 | ||
30 | + merge_request = new MergeRequest({ | ||
31 | + url_to_automerge_check: "#{automerge_check_project_merge_request_path(@project, @merge_request)}", | ||
32 | + check_enable: #{@merge_request.unchecked? ? "true" : "false"}, | ||
33 | + url_to_ci_check: "#{ci_status_project_merge_request_path(@project, @merge_request)}", | ||
34 | + ci_enable: #{@project.gitlab_ci? ? "true" : "false"}, | ||
35 | + current_status: "#{@merge_request.merge_status_name}", | ||
36 | + action: "#{controller.action_name}" | ||
37 | + }); |
app/views/walls/show.html.haml
app/views/wikis/_new.html.haml
@@ -5,27 +5,8 @@ | @@ -5,27 +5,8 @@ | ||
5 | .modal-body | 5 | .modal-body |
6 | = label_tag :new_wiki_path do | 6 | = label_tag :new_wiki_path do |
7 | %span Page slug | 7 | %span Page slug |
8 | - = text_field_tag :new_wiki_path, nil, placeholder: 'how-to-setup', class: 'input-xlarge', required: true | 8 | + = text_field_tag :new_wiki_path, nil, placeholder: 'how-to-setup', class: 'input-xlarge', required: true, :'data-wikis-path' => project_wikis_path(@project) |
9 | %p.hint | 9 | %p.hint |
10 | Please dont use spaces and slashes | 10 | Please dont use spaces and slashes |
11 | .modal-footer | 11 | .modal-footer |
12 | = link_to 'Build', '#', class: 'build-new-wiki btn btn-create' | 12 | = link_to 'Build', '#', class: 'build-new-wiki btn btn-create' |
13 | - | ||
14 | -:javascript | ||
15 | - $(function(){ | ||
16 | - var modal = $('#modal-new-wiki').modal({modal: true, show:false}); | ||
17 | - $('.add-new-wiki').bind("click", function(){ | ||
18 | - modal.show(); | ||
19 | - }); | ||
20 | - $('.build-new-wiki').bind("click", function(){ | ||
21 | - var slug = $('#new_wiki_path').val(); | ||
22 | - | ||
23 | - if(slug.length > 0) { | ||
24 | - location.href = "#{project_wikis_path(@project)}/" + slug; | ||
25 | - } | ||
26 | - }); | ||
27 | - $('.modal-header .close').bind("click", function(){ | ||
28 | - modal.hide(); | ||
29 | - }) | ||
30 | - }) | ||
31 | - |