Commit 4e002a71670587e8b1e2a97833fef059441c8ca8
Exists in
spb-stable
and in
3 other branches
Merge branch 'improve-mr-widget' into 'master'
Restyle merge request accept and ci widget Fixes #1138
Showing
11 changed files
with
133 additions
and
103 deletions
Show diff stats
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. |