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 88  
89 89 showCiState: (state) ->
90 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 107 loadDiff: (event) ->
94 108 $.ajax
... ...
app/assets/stylesheets/gl_bootstrap.scss
... ... @@ -45,6 +45,7 @@ $pagination-active-bg: $bg_style_color;
45 45 @import "bootstrap/list-group";
46 46 @import "bootstrap/wells";
47 47 @import "bootstrap/close";
  48 +@import "bootstrap/panels";
48 49  
49 50 // Components w/ JavaScript
50 51 @import "bootstrap/modals";
... ...
app/assets/stylesheets/sections/merge_requests.scss
... ... @@ -44,10 +44,9 @@
44 44  
45 45 .label-branch {
46 46 @include border-radius(4px);
47   - padding: 3px 4px;
  47 + padding: 2px 4px;
48 48 border: none;
49   - font-size: 14px;
50   - background: #474D57;
  49 + background: #555;
51 50 color: #fff;
52 51 font-family: $monospace_font;
53 52 font-weight: normal;
... ... @@ -95,3 +94,21 @@
95 94 .diff-file .reopen-mr-link {
96 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 2 = render "projects/merge_requests/show/mr_title"
3 3 = render "projects/merge_requests/show/how_to_merge"
4 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 6 = render "projects/merge_requests/show/commits"
14 7  
15 8 - if @commits.present?
... ...
app/views/projects/merge_requests/show/_commits.html.haml
... ... @@ -28,10 +28,3 @@
28 28 - @commits.each do |commit|
29 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 1 - unless @allowed_to_merge
2 2 - if @project.archived?
3   - .bs-callout.bs-callout-warning
  3 + %p
4 4 %strong Archived projects cannot be committed to!
5 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 12 - if @show_merge_controls
14 13 .automerge_widget.can_be_merged.hide
15   - .bs-callout.bs-callout-success.clearfix
  14 + .clearfix
16 15 = form_for [:automerge, @project, @merge_request], remote: true, method: :get do |f|
17 16 %h4
18 17 You can accept this request automatically.
19   - %p
  18 + %div
20 19 If you still want to do it manually -
21 20 %strong
22 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 46  
48 47  
49 48 .automerge_widget.no_satellite.hide
50   - .bs-callout.bs-callout-danger
  49 + %p
51 50 %span
52 51 %strong This repository does not have satellite. Ask an administrator to fix this issue
53 52  
54 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 61 .automerge_widget.unchecked
64   - .bs-callout.bs-callout-warning
  62 + %p
65 63 %strong
66 64 %i.icon-spinner.icon-spin
67 65 Checking for ability to automatically merge…
68 66  
69 67 .automerge_widget.already_cannot_be_merged.hide
70   - .bs-callout.bs-callout-info
  68 + %p
71 69 %strong This merge request can not be merged. Try to reload the page.
72 70  
73 71 .merge-in-progress.hide
74   - .bs-callout.bs-callout-success
  72 + %p
75 73 %i.icon-spinner.icon-spin
76 74  
77 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 .context
24 24 %cite.cgray
25 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 1 - if @commits.any?
2 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 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 15 - [:running, :pending].each do |status|
18 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 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 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 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 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 4 - elsif @allowed_to_remove_source_branch && @merge_request.merged?
6 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 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 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 @@
  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.
... ...