Commit 4e002a71670587e8b1e2a97833fef059441c8ca8

Authored by Dmitriy Zaporozhets
2 parents bc40efa1 8e7f80ee

Merge branch 'improve-mr-widget' into 'master'

 Restyle merge request accept and ci widget

Fixes #1138
app/assets/javascripts/merge_request.js.coffee
@@ -88,7 +88,21 @@ class MergeRequest @@ -88,7 +88,21 @@ class MergeRequest
88 88
89 showCiState: (state) -> 89 showCiState: (state) ->
90 $('.ci_widget').hide() 90 $('.ci_widget').hide()
91 - $('.ci_widget.ci-' + state).show() 91 + allowed_states = ["failed", "running", "pending", "success"]
  92 + if state in allowed_states
  93 + $('.ci_widget.ci-' + state).show()
  94 + else
  95 + $('.ci_widget.ci-error').show()
  96 +
  97 + switch state
  98 + when "success"
  99 + $('.mr-state-widget').addClass("panel-success")
  100 + when "failed"
  101 + $('.mr-state-widget').addClass("panel-danger")
  102 + when "running", "pending"
  103 + $('.mr-state-widget').addClass("panel-warning")
  104 +
  105 +
92 106
93 loadDiff: (event) -> 107 loadDiff: (event) ->
94 $.ajax 108 $.ajax
app/assets/stylesheets/gl_bootstrap.scss
@@ -45,6 +45,7 @@ $pagination-active-bg: $bg_style_color; @@ -45,6 +45,7 @@ $pagination-active-bg: $bg_style_color;
45 @import "bootstrap/list-group"; 45 @import "bootstrap/list-group";
46 @import "bootstrap/wells"; 46 @import "bootstrap/wells";
47 @import "bootstrap/close"; 47 @import "bootstrap/close";
  48 +@import "bootstrap/panels";
48 49
49 // Components w/ JavaScript 50 // Components w/ JavaScript
50 @import "bootstrap/modals"; 51 @import "bootstrap/modals";
app/assets/stylesheets/sections/merge_requests.scss
@@ -44,10 +44,9 @@ @@ -44,10 +44,9 @@
44 44
45 .label-branch { 45 .label-branch {
46 @include border-radius(4px); 46 @include border-radius(4px);
47 - padding: 3px 4px; 47 + padding: 2px 4px;
48 border: none; 48 border: none;
49 - font-size: 14px;  
50 - background: #474D57; 49 + background: #555;
51 color: #fff; 50 color: #fff;
52 font-family: $monospace_font; 51 font-family: $monospace_font;
53 font-weight: normal; 52 font-weight: normal;
@@ -95,3 +94,21 @@ @@ -95,3 +94,21 @@
95 .diff-file .reopen-mr-link { 94 .diff-file .reopen-mr-link {
96 display: none; 95 display: none;
97 } 96 }
  97 +
  98 +.mr-state-widget {
  99 + @include border-radius(0px);
  100 +
  101 + .panel-heading {
  102 + @include border-radius(0px);
  103 + }
  104 +
  105 + .panel-body {
  106 + h4 {
  107 + margin-top: 0px;
  108 + }
  109 +
  110 + p:last-child {
  111 + margin-bottom: 0;
  112 + }
  113 + }
  114 +}
app/views/projects/merge_requests/_show.html.haml
@@ -2,14 +2,7 @@ @@ -2,14 +2,7 @@
2 = render "projects/merge_requests/show/mr_title" 2 = render "projects/merge_requests/show/mr_title"
3 = render "projects/merge_requests/show/how_to_merge" 3 = render "projects/merge_requests/show/how_to_merge"
4 = render "projects/merge_requests/show/mr_box" 4 = render "projects/merge_requests/show/mr_box"
5 - - if @merge_request.open?  
6 - - if @merge_request.source_branch_exists? && @merge_request.target_branch_exists?  
7 - = render "projects/merge_requests/show/mr_accept"  
8 - - else  
9 - = render "projects/merge_requests/show/no_accept"  
10 - = render "projects/merge_requests/show/remove_source_branch"  
11 - - if @merge_request.source_project.gitlab_ci?  
12 - = render "projects/merge_requests/show/mr_ci" 5 + = render "projects/merge_requests/show/state_widget"
13 = render "projects/merge_requests/show/commits" 6 = render "projects/merge_requests/show/commits"
14 7
15 - if @commits.present? 8 - if @commits.present?
app/views/projects/merge_requests/show/_commits.html.haml
@@ -28,10 +28,3 @@ @@ -28,10 +28,3 @@
28 - @commits.each do |commit| 28 - @commits.each do |commit|
29 = render "projects/commits/commit", commit: commit, project: @merge_request.source_project 29 = render "projects/commits/commit", commit: commit, project: @merge_request.source_project
30 30
31 -- else  
32 - .nothing-here-block  
33 - Nothing to merge from  
34 - %span.label-branch #{@merge_request.source_branch}  
35 - to  
36 - %span.label-branch #{@merge_request.target_branch}  
37 - %br  
app/views/projects/merge_requests/show/_mr_accept.html.haml
1 - unless @allowed_to_merge 1 - unless @allowed_to_merge
2 - if @project.archived? 2 - if @project.archived?
3 - .bs-callout.bs-callout-warning 3 + %p
4 %strong Archived projects cannot be committed to! 4 %strong Archived projects cannot be committed to!
5 - else 5 - else
6 - .bs-callout  
7 - .automerge_widget.cannot_be_merged.hide  
8 - %strong This can't be merged automatically, even if it could be merged you don't have the permission to do so.  
9 - .automerge_widget.can_be_merged.hide  
10 - %strong This can be merged automatically but you don't have the permission to do so. 6 + .automerge_widget.cannot_be_merged.hide
  7 + %strong This can't be merged automatically, even if it could be merged you don't have the permission to do so.
  8 + .automerge_widget.can_be_merged.hide
  9 + %strong This can be merged automatically but you don't have the permission to do so.
11 10
12 11
13 - if @show_merge_controls 12 - if @show_merge_controls
14 .automerge_widget.can_be_merged.hide 13 .automerge_widget.can_be_merged.hide
15 - .bs-callout.bs-callout-success.clearfix 14 + .clearfix
16 = form_for [:automerge, @project, @merge_request], remote: true, method: :get do |f| 15 = form_for [:automerge, @project, @merge_request], remote: true, method: :get do |f|
17 %h4 16 %h4
18 You can accept this request automatically. 17 You can accept this request automatically.
19 - %p 18 + %div
20 If you still want to do it manually - 19 If you still want to do it manually -
21 %strong 20 %strong
22 = link_to "click here", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal" 21 = link_to "click here", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
@@ -47,31 +46,30 @@ @@ -47,31 +46,30 @@
47 46
48 47
49 .automerge_widget.no_satellite.hide 48 .automerge_widget.no_satellite.hide
50 - .bs-callout.bs-callout-danger 49 + %p
51 %span 50 %span
52 %strong This repository does not have satellite. Ask an administrator to fix this issue 51 %strong This repository does not have satellite. Ask an administrator to fix this issue
53 52
54 .automerge_widget.cannot_be_merged.hide 53 .automerge_widget.cannot_be_merged.hide
55 - .bs-callout.bs-callout-disabled  
56 - %h4  
57 - This request can't be merged with GitLab.  
58 - %span  
59 - You should do it manually with  
60 - %strong  
61 - = link_to "command line", "#modal_merge_info", class: "how_to_merge_link", title: "How To Merge", "data-toggle" => "modal" 54 + %h4
  55 + This request can't be merged with GitLab.
  56 + %p
  57 + You should do it manually with
  58 + %strong
  59 + = link_to "command line", "#modal_merge_info", class: "how_to_merge_link", title: "How To Merge", "data-toggle" => "modal"
62 60
63 .automerge_widget.unchecked 61 .automerge_widget.unchecked
64 - .bs-callout.bs-callout-warning 62 + %p
65 %strong 63 %strong
66 %i.icon-spinner.icon-spin 64 %i.icon-spinner.icon-spin
67 Checking for ability to automatically merge… 65 Checking for ability to automatically merge…
68 66
69 .automerge_widget.already_cannot_be_merged.hide 67 .automerge_widget.already_cannot_be_merged.hide
70 - .bs-callout.bs-callout-info 68 + %p
71 %strong This merge request can not be merged. Try to reload the page. 69 %strong This merge request can not be merged. Try to reload the page.
72 70
73 .merge-in-progress.hide 71 .merge-in-progress.hide
74 - .bs-callout.bs-callout-success 72 + %p
75 %i.icon-spinner.icon-spin 73 %i.icon-spinner.icon-spin
76   74  
77 Merge is in progress. Please wait. Page will be automatically reloaded.   75 Merge is in progress. Please wait. Page will be automatically reloaded.  
app/views/projects/merge_requests/show/_mr_box.html.haml
@@ -23,23 +23,3 @@ @@ -23,23 +23,3 @@
23 .context 23 .context
24 %cite.cgray 24 %cite.cgray
25 = render partial: 'projects/merge_requests/show/context', locals: { merge_request: @merge_request } 25 = render partial: 'projects/merge_requests/show/context', locals: { merge_request: @merge_request }
26 -  
27 -- if @merge_request.closed?  
28 - .alert.alert-info  
29 - %span  
30 - %i.icon-remove  
31 - Closed by #{link_to_member(@project, @merge_request.closed_event.author)}  
32 - #{time_ago_with_tooltip(@merge_request.closed_event.created_at)}  
33 -- if @merge_request.merged?  
34 - .alert.alert-info  
35 - %span  
36 - %i.icon-ok  
37 - Merged by #{link_to_member(@project, @merge_request.merge_event.author)}  
38 - #{time_ago_with_tooltip(@merge_request.merge_event.created_at)}  
39 -- if !@closes_issues.empty? && @merge_request.open?  
40 - .alert.alert-info.alert-info  
41 - %span  
42 - %i.icon-ok  
43 - Accepting this merge request will close #{@closes_issues.size == 1 ? 'issue' : 'issues'}  
44 - = succeed '.' do  
45 - != gfm(@closes_issues.map { |i| "##{i.iid}" }.to_sentence)  
app/views/projects/merge_requests/show/_mr_ci.html.haml
1 - if @commits.any? 1 - if @commits.any?
2 .ci_widget.ci-success{style: "display:none"} 2 .ci_widget.ci-success{style: "display:none"}
3 - .alert.alert-success  
4 - %i.icon-ok  
5 - %strong CI build passed  
6 - for #{@merge_request.last_commit_short_sha}.  
7 - = link_to "Build page", ci_build_details_path(@merge_request) 3 + %i.icon-ok
  4 + %strong CI build passed
  5 + for #{@merge_request.last_commit_short_sha}.
  6 + = link_to "Build page", ci_build_details_path(@merge_request)
8 7
9 8
10 .ci_widget.ci-failed{style: "display:none"} 9 .ci_widget.ci-failed{style: "display:none"}
11 - .alert.alert-danger  
12 - %i.icon-remove  
13 - %strong CI build failed  
14 - for #{@merge_request.last_commit_short_sha}.  
15 - = link_to "Build page", ci_build_details_path(@merge_request) 10 + %i.icon-remove
  11 + %strong CI build failed
  12 + for #{@merge_request.last_commit_short_sha}.
  13 + = link_to "Build page", ci_build_details_path(@merge_request)
16 14
17 - [:running, :pending].each do |status| 15 - [:running, :pending].each do |status|
18 .ci_widget{class: "ci-#{status}", style: "display:none"} 16 .ci_widget{class: "ci-#{status}", style: "display:none"}
19 - .alert.alert-warning  
20 - %i.icon-time  
21 - %strong CI build #{status}  
22 - for #{@merge_request.last_commit_short_sha}.  
23 - = link_to "Build page", ci_build_details_path(@merge_request) 17 + %i.icon-time
  18 + %strong CI build #{status}
  19 + for #{@merge_request.last_commit_short_sha}.
  20 + = link_to "Build page", ci_build_details_path(@merge_request)
24 21
25 .ci_widget 22 .ci_widget
26 - .alert.alert-warning  
27 - %strong  
28 - %i.icon-spinner  
29 - Checking for CI status for #{@merge_request.last_commit_short_sha} 23 + %strong
  24 + %i.icon-spinner
  25 + Checking for CI status for #{@merge_request.last_commit_short_sha}
30 26
31 .ci_widget.ci-error{style: "display:none"} 27 .ci_widget.ci-error{style: "display:none"}
32 - .alert.alert-danger  
33 - %i.icon-remove  
34 - %strong Cannot connect to CI server. Please check your setting  
35 - 28 + %i.icon-remove
  29 + %strong Cannot connect to CI server. Please check your setting
app/views/projects/merge_requests/show/_no_accept.html.haml
1 -.alert.alert-danger  
2 - %p  
3 - This merge request can not be accepted because branch  
4 - - unless @merge_request.source_branch_exists?  
5 - %span.label.label-inverse= @merge_request.source_branch  
6 - does not exist in  
7 - %span.label.label-info= @merge_request.source_project_path  
8 - - else  
9 - %span.label.label-inverse= @merge_request.target_branch  
10 - does not exist in  
11 - %span.label.label-info= @merge_request.target_project_path 1 +%h4
  2 + Can't be merged
  3 +%p
  4 + This merge request can not be accepted because branch
  5 + - unless @merge_request.source_branch_exists?
  6 + %span.label.label-inverse= @merge_request.source_branch
  7 + does not exist in
  8 + %span.label.label-info= @merge_request.source_project_path
  9 + - else
  10 + %span.label.label-inverse= @merge_request.target_branch
  11 + does not exist in
  12 + %span.label.label-info= @merge_request.target_project_path
  13 + %br
12 %strong Please close this merge request or change branches with existing one 14 %strong Please close this merge request or change branches with existing one
app/views/projects/merge_requests/show/_remove_source_branch.html.haml
1 - if @source_branch.blank? 1 - if @source_branch.blank?
2 - .bs-callout.bs-callout-info  
3 - Source branch has been removed 2 + Source branch has been removed
4 3
5 - elsif @allowed_to_remove_source_branch && @merge_request.merged? 4 - elsif @allowed_to_remove_source_branch && @merge_request.merged?
6 .remove_source_branch_widget 5 .remove_source_branch_widget
7 - .alert.alert-info  
8 - = link_to project_branch_path(@merge_request.source_project, @source_branch), remote: true, method: :delete, class: "btn btn-primary remove_source_branch" do  
9 - %i.icon-remove  
10 - Remove Source Branch 6 + %p Changes merged into #{@merge_request.target_branch}. You can remove source branch now
  7 + = link_to project_branch_path(@merge_request.source_project, @source_branch), remote: true, method: :delete, class: "btn btn-primary btn-small remove_source_branch" do
  8 + %i.icon-remove
  9 + Remove Source Branch
11 10
12 .remove_source_branch_widget.failed.hide 11 .remove_source_branch_widget.failed.hide
13 - .alert.alert-error Failed to remove source branch '#{@merge_request.source_branch}' 12 + Failed to remove source branch '#{@merge_request.source_branch}'
14 13
15 .remove_source_branch_in_progress.hide 14 .remove_source_branch_in_progress.hide
16 - .bs-callout.bs-callout-info  
17 - %i.icon-refresh.icon-spin  
18 -    
19 - Removing source branch '#{@merge_request.source_branch}'. Please wait. Page will be automatically reloaded.   15 + %i.icon-refresh.icon-spin
  16 +  
  17 + Removing source branch '#{@merge_request.source_branch}'. Please wait. Page will be automatically reloaded.  
app/views/projects/merge_requests/show/_state_widget.html.haml 0 → 100644
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
  1 +.panel.mr-state-widget.panel-default
  2 + - if @merge_request.source_project.gitlab_ci? && @commits.any?
  3 + .panel-heading
  4 + = render "projects/merge_requests/show/mr_ci"
  5 + .panel-body
  6 + - if @merge_request.open?
  7 + - if @merge_request.source_branch_exists? && @merge_request.target_branch_exists?
  8 + = render "projects/merge_requests/show/mr_accept"
  9 + - else
  10 + = render "projects/merge_requests/show/no_accept"
  11 +
  12 + - if @merge_request.closed?
  13 + %h4
  14 + Closed by #{link_to_member(@project, @merge_request.closed_event.author, avatar: false)}
  15 + #{time_ago_with_tooltip(@merge_request.closed_event.created_at)}
  16 + %p Changes was not merged into target branch
  17 +
  18 + - if @merge_request.merged?
  19 + %h4
  20 + Merged by #{link_to_member(@project, @merge_request.merge_event.author, avatar: false)}
  21 + #{time_ago_with_tooltip(@merge_request.merge_event.created_at)}
  22 + = render "projects/merge_requests/show/remove_source_branch"
  23 +
  24 + - if !@closes_issues.empty? && @merge_request.open?
  25 + .alert.alert-info.alert-info
  26 + %span
  27 + %i.icon-ok
  28 + Accepting this merge request will close #{@closes_issues.size == 1 ? 'issue' : 'issues'}
  29 + = succeed '.' do
  30 + != gfm(@closes_issues.map { |i| "##{i.iid}" }.to_sentence)
  31 +
  32 + - unless @commits.any?
  33 + %h4 Nothing to merge
  34 + %p
  35 + Nothing to merge from
  36 + %span.label-branch #{@merge_request.source_branch}
  37 + to
  38 + %span.label-branch #{@merge_request.target_branch}
  39 + %br
  40 + Try to use different branches or push new code.