diff options
author | Greg Smethells <smethells@icloud.com> | 2015-12-04 13:00:07 -0600 |
---|---|---|
committer | Greg Smethells <smethells@icloud.com> | 2015-12-11 10:14:55 -0600 |
commit | 0272f27401d25faed97419611a78a968f801a42f (patch) | |
tree | 0141c7f7fbc2565fc3689bf84f60524ca8f02481 | |
parent | a2a68858c88151ce0d77f602dbae59d595495ac6 (diff) | |
download | gitlab-ce-gsmethells/gitlab-ce-mr-statuses.tar.gz |
display referenced merge requests in issue description with CI statusgsmethells/gitlab-ce-mr-statuses
-rw-r--r-- | app/assets/stylesheets/pages/issues.scss | 20 | ||||
-rw-r--r-- | app/controllers/projects/issues_controller.rb | 1 | ||||
-rw-r--r-- | app/helpers/ci_status_helper.rb | 2 | ||||
-rw-r--r-- | app/models/issue.rb | 8 | ||||
-rw-r--r-- | app/views/projects/issues/_merge_requests.html.haml | 25 | ||||
-rw-r--r-- | app/views/projects/issues/show.html.haml | 4 |
6 files changed, 59 insertions, 1 deletions
diff --git a/app/assets/stylesheets/pages/issues.scss b/app/assets/stylesheets/pages/issues.scss index f5548c5b88b..a652b65502f 100644 --- a/app/assets/stylesheets/pages/issues.scss +++ b/app/assets/stylesheets/pages/issues.scss @@ -60,6 +60,26 @@ form.edit-issue { margin: 0; } +.merge-requests-title { + font-size: 16px; + font-weight: 600; +} + +.merge-request-id { + display: inline-block; + width: 3em; +} + +.merge-request-info { + padding-left: 5px; +} + +.merge-request-status { + color: $gl-gray; + font-size: 15px; + font-weight: bold; +} + .merge-request, .issue { &.today { diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index ae474cf8d68..cf617d53ed6 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -62,6 +62,7 @@ class Projects::IssuesController < Projects::ApplicationController @note = @project.notes.new(noteable: @issue) @notes = @issue.notes.nonawards.with_associations.fresh @noteable = @issue + @merge_requests = @issue.referenced_merge_requests respond_with(@issue) end diff --git a/app/helpers/ci_status_helper.rb b/app/helpers/ci_status_helper.rb index 8e1f8f9ba6d..f8f2cbf1319 100644 --- a/app/helpers/ci_status_helper.rb +++ b/app/helpers/ci_status_helper.rb @@ -52,7 +52,7 @@ module CiStatusHelper 'circle' end - icon(icon_name) + icon(icon_name + ' fw') end def render_ci_status(ci_commit) diff --git a/app/models/issue.rb b/app/models/issue.rb index 187b6482b6c..e04035b3af8 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -83,6 +83,14 @@ class Issue < ActiveRecord::Base reference end + def referenced_merge_requests + references = [self, *notes].flat_map do |note| + note.all_references(load_lazy_references: false).merge_requests + end.uniq + + Gitlab::Markdown::ReferenceFilter::LazyReference.load(references).uniq.sort_by(&:iid) + end + # Reset issue events cache # # Since we do cache @event we need to reset cache in special cases: diff --git a/app/views/projects/issues/_merge_requests.html.haml b/app/views/projects/issues/_merge_requests.html.haml new file mode 100644 index 00000000000..fe856ac991e --- /dev/null +++ b/app/views/projects/issues/_merge_requests.html.haml @@ -0,0 +1,25 @@ +-if @merge_requests.any? + %h2.merge-requests-title + = pluralize(@merge_requests.count, 'Related Merge Request') + %ul.bordered-list + - has_any_ci = @merge_requests.any?(&:ci_commit) + - @merge_requests.each do |merge_request| + %li + %span.merge-request-ci-status + - if merge_request.ci_commit + = render_ci_status(merge_request.ci_commit) + - elsif has_any_ci + = icon('blank fw') + %span.merge-request-id + \##{merge_request.iid} + %span.merge-request-info + %strong + = link_to_gfm merge_request.title, merge_request_path(merge_request), class: "row_title" + in + - project = merge_request.target_project + = link_to project.name_with_namespace, namespace_project_path(project.namespace, project) + %span.merge-request-status.prepend-left-10 + - if merge_request.merged? + MERGED + - elsif merge_request.closed? + CLOSED diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index a78d20cc07e..38254403fa6 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -47,6 +47,10 @@ = markdown(@issue.description, cache_key: [@issue, "description"]) %textarea.hidden.js-task-list-field = @issue.description + + .merge-requests + = render 'merge_requests' + - if @closed_by_merge_requests.present? = render 'projects/issues/closed_by_box' .issue-discussion |