diff --git a/app/assets/stylesheets/pages/milestone.scss b/app/assets/stylesheets/pages/milestone.scss
index d24adbf67e653db0025a26682b003e7d8f1466db..2c2a8e34d505d585a39e8b26cbb8d6986e7bf2c6 100644
--- a/app/assets/stylesheets/pages/milestone.scss
+++ b/app/assets/stylesheets/pages/milestone.scss
@@ -19,7 +19,7 @@ li.milestone {
     width: 105px;
   }
 
-  .issue-row {
+  .issue-row, .mr-row {
     .color-label {
       border-radius: 2px;
       padding: 3px !important;
@@ -44,11 +44,11 @@ li.milestone {
   }
 }
 
-.issues-sortable-list {
-  .issue-detail {
+.issues-sortable-list, .merge_requests-sortable-list {
+  .issue-detail, .merge-request-detail {
     display: block;
 
-    .issue-number{
+    .issue-number, .merge-request-number {
       color: rgba(0,0,0,0.44);
       margin-right: 5px;
     }
diff --git a/app/views/groups/milestones/_issue.html.haml b/app/views/groups/milestones/_issue.html.haml
deleted file mode 100644
index 9b85d83d6d854cc8e0f48ed78bfd39c3b7edfeb9..0000000000000000000000000000000000000000
--- a/app/views/groups/milestones/_issue.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-%li{ id: dom_id(issue, 'sortable'), class: 'issue-row', 'data-iid' => issue.iid }
-  %span.milestone-row
-    - project = issue.project
-    %strong #{project.name} ·
-    = link_to [project.namespace.becomes(Namespace), project, issue] do
-      %span.cgray ##{issue.iid}
-    = link_to_gfm issue.title, [project.namespace.becomes(Namespace), project, issue], title: issue.title
-  .pull-right.assignee-icon
-    - if issue.assignee
-      = image_tag avatar_icon(issue.assignee, 16), class: "avatar s16", alt: ''
diff --git a/app/views/groups/milestones/_issues.html.haml b/app/views/groups/milestones/_issues.html.haml
deleted file mode 100644
index 9f350b772bd90e324398e5981d32510384dc83d9..0000000000000000000000000000000000000000
--- a/app/views/groups/milestones/_issues.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-.panel.panel-default
-  .panel-heading= title
-  %ul{ class: "well-list issues-sortable-list" }
-    - if issues
-      - issues.each do |issue|
-        = render 'issue', issue: issue
diff --git a/app/views/groups/milestones/_merge_request.html.haml b/app/views/groups/milestones/_merge_request.html.haml
deleted file mode 100644
index e3aa4aad198f558929077e653dd482339f81fd29..0000000000000000000000000000000000000000
--- a/app/views/groups/milestones/_merge_request.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-%li{ id: dom_id(merge_request, 'sortable'),  class: 'mr-row', 'data-iid' => merge_request.iid }
-  %span.milestone-row
-    - project = merge_request.project
-    %strong #{project.name} ·
-    = link_to [project.namespace.becomes(Namespace), project, merge_request] do
-      %span.cgray ##{merge_request.iid}
-    = link_to_gfm merge_request.title, [project.namespace.becomes(Namespace), project, merge_request], title: merge_request.title
-  .pull-right.assignee-icon
-    - if merge_request.assignee
-      = image_tag avatar_icon(merge_request.assignee, 16), class: "avatar s16", alt: ''
diff --git a/app/views/groups/milestones/_merge_requests.html.haml b/app/views/groups/milestones/_merge_requests.html.haml
deleted file mode 100644
index 50057e2c636db5cb19c5dbf8184ed9a9d5547432..0000000000000000000000000000000000000000
--- a/app/views/groups/milestones/_merge_requests.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-.panel.panel-default
-  .panel-heading= title
-  %ul{ class: "well-list merge_requests-sortable-list" }
-    - if merge_requests
-      - merge_requests.each do |merge_request|
-        = render 'merge_request', merge_request: merge_request
diff --git a/app/views/shared/milestones/_merge_request.html.haml b/app/views/shared/milestones/_merge_request.html.haml
index 66e2a2955dae6d36bd3ea880d43f5b20c8563a80..7b6c66064602761cb9b6595771c45f16d3ba236a 100644
--- a/app/views/shared/milestones/_merge_request.html.haml
+++ b/app/views/shared/milestones/_merge_request.html.haml
@@ -2,10 +2,16 @@
 - project = @project || merge_request.project
 
 %li{ id: dom_id(merge_request, 'sortable'),  class: 'mr-row', 'data-iid' => merge_request.iid, 'data-url' => merge_request_path(merge_request) }
-  %span.str-truncated
-    = link_to [project.namespace.becomes(Namespace), project, merge_request] do
-      %span.cgray ##{merge_request.iid}
+  %span
+    - if show_project_name
+      %strong #{project.name} ·
+    - elsif show_full_project_name
+      %strong #{project.name_with_namespace} ·
     = link_to_gfm merge_request.title, [project.namespace.becomes(Namespace), project, merge_request], title: merge_request.title
-  .pull-right.assignee-icon
+  .merge-request-detail
+    = link_to [project.namespace.becomes(Namespace), project, merge_request] do
+      %span.merge-request-number ##{merge_request.iid}
+    - merge_request.labels.each do |label|
+      = render_colored_label(label)
     - if merge_request.assignee
       = image_tag avatar_icon(merge_request.assignee, 16), class: "avatar s16", alt: ''
diff --git a/app/views/shared/milestones/_merge_requests.html.haml b/app/views/shared/milestones/_merge_requests.html.haml
index c8df6c2e2805c408942449af07c1736065bc3e3e..71991516e90b12e6632ce059003fb87a86bcfda7 100644
--- a/app/views/shared/milestones/_merge_requests.html.haml
+++ b/app/views/shared/milestones/_merge_requests.html.haml
@@ -1,5 +1,8 @@
-.panel.panel-default
+- primary = local_assigns.fetch(:primary, false)
+- panel_class = primary ? 'panel-primary' : 'panel-default'
+
+.panel{ class: panel_class }
   .panel-heading= title
   %ul{ class: "well-list merge_requests-sortable-list", id: "merge_requests-list-#{id}", "data-state" => id }
     - merge_requests.sort_by(&:position).each do |merge_request|
-      = render 'shared/milestones/merge_request', merge_request: merge_request
+      = render 'shared/milestones/merge_request', merge_request: merge_request, show_project_name: show_project_name, show_full_project_name: show_full_project_name
diff --git a/app/views/shared/milestones/_merge_requests_tab.haml b/app/views/shared/milestones/_merge_requests_tab.haml
index 5797aeb82959b7fa6c8e11104acb0d40181ee272..d912e6079636c3697cb050b00122e22cc92e92dc 100644
--- a/app/views/shared/milestones/_merge_requests_tab.haml
+++ b/app/views/shared/milestones/_merge_requests_tab.haml
@@ -1,13 +1,12 @@
+- args = { show_project_name: local_assigns.fetch(:show_project_name, false),
+           show_full_project_name: local_assigns.fetch(:show_full_project_name, false) }
+
 .row.prepend-top-default
   .col-md-3
-    = render('shared/milestones/merge_requests', title: 'Work in progress (open and unassigned)', merge_requests: unassigned, id: 'unassigned')
+    = render 'shared/milestones/merge_requests', args.merge({ title: 'Work in progress (open and unassigned)', merge_requests: unassigned, id: 'unassigned' })
   .col-md-3
-    = render('shared/milestones/merge_requests', title: 'Waiting for merge (open and assigned)', merge_requests: assigned, id: 'ongoing')
+    = render 'shared/milestones/merge_requests', args.merge({ title: 'Waiting for merge (open and assigned)', merge_requests: assigned, id: 'ongoing' })
   .col-md-3
-    = render('shared/milestones/merge_requests', title: 'Rejected (closed)', merge_requests: closed, id: 'closed')
+    = render 'shared/milestones/merge_requests', args.merge({ title: 'Rejected (closed)', merge_requests: closed, id: 'closed' })
   .col-md-3
-    .panel.panel-primary
-      .panel-heading Merged
-      %ul.well-list
-        - merged.each do |merge_request|
-          = render 'shared/milestones/merge_request', merge_request: merge_request
+    = render 'shared/milestones/merge_requests', args.merge({ title: 'Merged', merge_requests: merged, id: 'merged', primary: true })