Commit 3a50b6cac992f86981ad43990ace6ea78b422476
Committed by
Dmitriy Zaporozhets
1 parent
e4bd6442
Exists in
master
and in
4 other branches
merge request show page refactored
Showing
9 changed files
with
105 additions
and
52 deletions
Show diff stats
app/assets/images/.directory
app/assets/javascripts/merge_requests.js
1 | 1 | var MergeRequest = { |
2 | - diff_loaded: false, | |
2 | + diffs_loaded: false, | |
3 | 3 | commits_loaded: false, |
4 | 4 | |
5 | 5 | init: |
... | ... | @@ -9,12 +9,25 @@ var MergeRequest = { |
9 | 9 | $(this).addClass("active"); |
10 | 10 | }); |
11 | 11 | |
12 | + $(".merge-tabs a.merge-notes-tab").live("click", function() { | |
13 | + $(".merge-request-commits, .merge-request-diffs").hide(); | |
14 | + $(".merge-request-notes").show(); | |
15 | + }); | |
16 | + | |
12 | 17 | $(".merge-tabs a.merge-commits-tab").live("click", function() { |
13 | - if(MergeRequest.commits_loaded) { | |
14 | - $(".merge-request-commits").show(); | |
15 | - } else { | |
18 | + if(!MergeRequest.commits_loaded) { | |
16 | 19 | MergeRequest.loadCommits(); |
17 | 20 | } |
21 | + $(".merge-request-notes, .merge-request-diffs").hide(); | |
22 | + $(".merge-request-commits").show(); | |
23 | + }); | |
24 | + | |
25 | + $(".merge-tabs a.merge-diffs-tab").live("click", function() { | |
26 | + if(!MergeRequest.diffs_loaded) { | |
27 | + MergeRequest.loadDiff(); | |
28 | + } | |
29 | + $(".merge-request-notes, .merge-request-commits").hide(); | |
30 | + $(".merge-request-diffs").show(); | |
18 | 31 | }); |
19 | 32 | }, |
20 | 33 | |
... | ... | @@ -23,14 +36,24 @@ var MergeRequest = { |
23 | 36 | $(".dashboard-loader").show(); |
24 | 37 | $.ajax({ |
25 | 38 | type: "GET", |
26 | - url: location.href + "/commits", | |
39 | + url: $(".merge-commits-tab").attr("data-url"), | |
27 | 40 | complete: function(){ |
28 | 41 | MergeRequest.commits_loaded = true; |
42 | + $(".merge-request-notes, .merge-request-diffs").hide(); | |
29 | 43 | $(".dashboard-loader").hide()}, |
30 | 44 | dataType: "script"}); |
31 | 45 | }, |
32 | 46 | |
33 | 47 | loadDiff: |
34 | 48 | function() { |
49 | + $(".dashboard-loader").show(); | |
50 | + $.ajax({ | |
51 | + type: "GET", | |
52 | + url: $(".merge-diffs-tab").attr("data-url"), | |
53 | + complete: function(){ | |
54 | + MergeRequest.diffs_loaded = true; | |
55 | + $(".merge-request-notes, .merge-request-commits").hide(); | |
56 | + $(".dashboard-loader").hide()}, | |
57 | + dataType: "script"}); | |
35 | 58 | } |
36 | 59 | } | ... | ... |
app/assets/stylesheets/projects.css.scss
... | ... | @@ -552,7 +552,7 @@ h4.middle-panel { |
552 | 552 | display:none; |
553 | 553 | } |
554 | 554 | |
555 | -ul.merge-tabs { | |
555 | +.merge-tabs { | |
556 | 556 | margin: 0; |
557 | 557 | border: 1px solid #ccc; |
558 | 558 | padding: 10px; |
... | ... | @@ -567,9 +567,32 @@ ul.merge-tabs { |
567 | 567 | border: 1px solid #ddd; |
568 | 568 | background:none; |
569 | 569 | padding: 4px 10px; |
570 | + width:160px; | |
570 | 571 | |
571 | 572 | &.active { |
572 | 573 | background: #eaeaea; |
573 | 574 | } |
574 | 575 | } |
575 | 576 | } |
577 | +.merge-tabs .reopen-request { | |
578 | + @include round-borders-all(4px); | |
579 | + padding:2px 4px; | |
580 | + border:1px solid #aaa; | |
581 | + text-shadow:none; | |
582 | + background: #D12F19; | |
583 | + color:white; | |
584 | +} | |
585 | + | |
586 | +.merge-tabs .close-request { | |
587 | + @include round-borders-all(4px); | |
588 | + padding:2px 4px; | |
589 | + border:1px solid #aaa; | |
590 | + text-shadow:none; | |
591 | + background: #44aa22; | |
592 | + color:white; | |
593 | +} | |
594 | + | |
595 | +.user-mention { | |
596 | + color: #2FA0BB; | |
597 | + font-weight: bold; | |
598 | +} | ... | ... |
app/controllers/merge_requests_controller.rb
... | ... | @@ -30,14 +30,11 @@ class MergeRequestsController < ApplicationController |
30 | 30 | |
31 | 31 | def commits |
32 | 32 | @commits = @project.repo.commits_between(@merge_request.target_branch, @merge_request.source_branch).map {|c| Commit.new(c)} |
33 | - render :template => "merge_requests/_commits", :layout => false | |
34 | 33 | end |
35 | 34 | |
36 | 35 | def diffs |
37 | 36 | @diffs = @merge_request.diffs |
38 | 37 | @commit = @merge_request.last_commit |
39 | - | |
40 | - render :template => "merge_requests/_diffs", :layout => false | |
41 | 38 | end |
42 | 39 | |
43 | 40 | def new | ... | ... |
app/views/merge_requests/_form.html.haml
... | ... | @@ -28,7 +28,12 @@ |
28 | 28 | %td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }) |
29 | 29 | .buttons |
30 | 30 | = f.submit 'Save', :class => "grey-button" |
31 | - .right= link_to 'Back', project_merge_requests_path(@project), :class => "grey-button" | |
31 | + | |
32 | + = link_to 'Back', project_merge_requests_path(@project), :class => "grey-button" | |
33 | + - unless @merge_request.new_record? | |
34 | + .right | |
35 | + = link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "grey-button" | |
36 | + | |
32 | 37 | |
33 | 38 | :javascript |
34 | 39 | $(function(){ | ... | ... |
app/views/merge_requests/_merge_request.html.haml
1 | 1 | %a.update-item{:href => project_merge_request_path(merge_request.project, merge_request)} |
2 | 2 | = image_tag gravatar_icon(merge_request.author_email), :class => "left", :width => 40 |
3 | 3 | %span.update-title |
4 | - = merge_request.title | |
4 | + = truncate(merge_request.title, :length => 60) | |
5 | 5 | %span.update-author |
6 | 6 | %strong= merge_request.author_name |
7 | 7 | authored | ... | ... |
app/views/merge_requests/show.html.haml
1 | -.merge-request-show-holder.ui-box.width-100p | |
2 | - %h3 | |
3 | - = "Merge Request ##{@merge_request.id}:" | |
4 | - | |
5 | - .tag.commit.inline= @merge_request.source_branch | |
6 | - → | |
7 | - .tag.commit.inline= @merge_request.target_branch | |
8 | - .right | |
9 | - - if @merge_request.closed | |
10 | - %span.tag.high Closed | |
11 | - - else | |
12 | - %span.tag.today Open | |
13 | - | |
14 | - .data | |
15 | - %p= @merge_request.title | |
16 | - | |
17 | - - if @merge_request.author == @merge_request.assignee | |
18 | - = image_tag gravatar_icon(@merge_request.assignee_email), :width => 20, :style => "padding:0 5px;" | |
19 | - = @merge_request.assignee_name | |
20 | - - else | |
21 | - = image_tag gravatar_icon(@merge_request.author_email), :width => 20, :style => "padding:0 5px;" | |
22 | - = @merge_request.author_name | |
1 | +%div | |
2 | + %span.entity-info | |
3 | + - if can?(current_user, :admin_project, @project) || @merge_request.author == current_user | |
4 | + = link_to edit_project_merge_request_path(@project, @merge_request) do | |
5 | + .entity-button | |
6 | + Edit Merge Request | |
7 | + %i | |
8 | + = image_tag gravatar_icon(@merge_request.author_email), :class => "left", :width => 40, :style => "padding-right:5px;" | |
9 | + %span.commit-title | |
10 | + %strong | |
11 | + = "Merge Request ##{@merge_request.id}:" | |
12 | + | |
13 | + .tag.commit.inline= @merge_request.source_branch | |
23 | 14 | → |
24 | - = image_tag gravatar_icon(@merge_request.assignee_email), :width => 20, :style => "padding:0 5px;" | |
25 | - = @merge_request.assignee_name | |
26 | - .right | |
27 | - %cite.cgray= @merge_request.created_at.stamp("21 Aug 2011, 11:15pm") | |
28 | - .clear | |
15 | + .tag.commit.inline= @merge_request.target_branch | |
16 | + %span.commit-author | |
17 | + %strong | |
18 | + = link_to project_team_member_path(@project, @project.users_projects.find(@merge_request.author.id)) do | |
19 | + = @merge_request.author_name | |
20 | + → | |
21 | + = link_to project_team_member_path(@project, @project.users_projects.find(@merge_request.assignee.id)) do | |
22 | + = @merge_request.assignee_name | |
29 | 23 | |
30 | - .buttons | |
31 | - - if can? current_user, :write_project, @project | |
32 | - - if @merge_request.closed | |
33 | - = link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "grey-button" | |
34 | - - else | |
35 | - = link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "grey-button" | |
36 | - .right | |
37 | - = link_to 'Edit', edit_project_merge_request_path(@project, @merge_request), :class => "grey-button positive" | |
24 | + | |
25 | + | |
26 | + = @merge_request.created_at.stamp("Aug 21, 2011 9:23pm") | |
27 | + | |
28 | + %hr | |
29 | + %h3= @merge_request.title | |
38 | 30 | |
39 | 31 | .clear |
40 | 32 | %br |
41 | 33 | %br |
42 | 34 | |
43 | -%ul.merge-tabs | |
44 | - = link_to "Notes", "#", :class => "merge-notes-tab" | |
45 | - = link_to "Commits","#", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab" | |
46 | - = link_to "Diff", diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab" | |
35 | +.merge-tabs | |
36 | + = link_to "Notes", "#notes", :class => "merge-notes-tab active" | |
37 | + = link_to "Commits","#commits", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab" | |
38 | + = link_to "Diff", "#diffs", "data-url" => diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab" | |
39 | + - if can?(current_user, :admin_project, @project) || @merge_request.author == current_user | |
40 | + .right | |
41 | + - if @merge_request.closed | |
42 | + = link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "reopen-request" | |
43 | + - else | |
44 | + = link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "close-request", :title => "Close merge request" | |
47 | 45 | %img{:src => "/assets/ajax-loader-facebook.gif", :class => "dashboard-loader"} |
48 | 46 | |
49 | 47 | .merge-request-notes |
... | ... | @@ -53,7 +51,6 @@ |
53 | 51 | .clear |
54 | 52 | |
55 | 53 | .merge-request-commits |
56 | - | |
57 | 54 | .merge-request-diffs |
58 | 55 | |
59 | 56 | ... | ... |