diff --git a/CHANGELOG b/CHANGELOG index 340c8d7ae0d60e14296ea3e17bd44aa7f4612712..33b460345d5d07f5c2afc31d17a58333f32609fb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -17,6 +17,8 @@ v 7.12.0 (unreleased) - Add validation to wiki page creation (only [a-zA-Z0-9/_-] are allowed) (Jeroen van Baarsen) - Fix new/empty milestones showing 100% completion value (Jonah Bishop) - Add a note when an Issue or Merge Request's title changes + - Consistently refer to MRs as either Accepted or Rejected. + - Add Accepted and Rejected tabs to MR lists. v 7.11.2 - no changes @@ -1460,4 +1462,4 @@ v 0.8.0 - stability - security fixes - increased test coverage - - email notification \ No newline at end of file + - email notification diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index b8f367c63392e6878af33445b7fc151e64a2d713..e658e1411595442bae810fa34b58ead875ebb876 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -75,6 +75,10 @@ class IssuableFinder case params[:state] when 'closed' items.closed + when 'rejected' + items.respond_to?(:rejected) ? items.rejected : items.closed + when 'merged' + items.respond_to?(:merged) ? items.merged : items.closed when 'all' items when 'opened' diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bcd400b7e7bb1878eef7be80a287ac24d8cd7dad..89dcdf57798251e0b70a8c91b133ffaf04f3279a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -330,7 +330,12 @@ module ApplicationHelper end def state_filters_text_for(entity, project) - entity_title = entity.to_s.humanize + titles = { + opened: "Open", + merged: "Accepted" + } + + entity_title = titles[entity] || entity.to_s.humanize count = if project.nil? diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index c57016dd6a22f6cb88fc2a12a76090f5a47ac35c..5690c375b963aa1cab244bf94f5b0583799dacca 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -134,7 +134,7 @@ class MergeRequest < ActiveRecord::Base # Closed scope for merge request should return # both merged and closed mr's scope :closed, -> { with_states(:closed, :merged) } - scope :declined, -> { with_states(:closed) } + scope :rejected, -> { with_states(:closed) } def self.reference_prefix '!' diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml index dfdf0d68c8f426f4e04c12bec9d1ef22664e2419..0dd2edbb1bcb63f27374319615d306432dba4a63 100644 --- a/app/views/dashboard/issues.html.haml +++ b/app/views/dashboard/issues.html.haml @@ -17,5 +17,5 @@ = link_to issues_dashboard_url(format: :atom, private_token: current_user.private_token), class: 'btn' do %i.fa.fa-rss - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :issues = render 'shared/issues' diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml index a7e1b08a0a4e38a6d5065026a662e7ceab96d572..61d2fbe538cb3de33363c14e48bdaaefe74c9b83 100644 --- a/app/views/dashboard/merge_requests.html.haml +++ b/app/views/dashboard/merge_requests.html.haml @@ -7,5 +7,5 @@ List all merge requests from all projects you have access to. %hr .append-bottom-20 - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :merge_requests = render 'shared/merge_requests' diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml index 6a3da6adacf47bd0299dd6bc406bbff3b66fbcbd..e0756e909be14d682104b8e4c0c5ad689c8a4654 100644 --- a/app/views/groups/issues.html.haml +++ b/app/views/groups/issues.html.haml @@ -21,5 +21,5 @@ = link_to issues_group_url(@group, format: :atom, private_token: current_user.private_token), class: 'btn' do %i.fa.fa-rss - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :issues = render 'shared/issues' diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml index 268f33d57618a179b3cc9172a4a6ec97f5505b99..3d9e857cc5274a68e21d9dadf0b995d98493a50a 100644 --- a/app/views/groups/merge_requests.html.haml +++ b/app/views/groups/merge_requests.html.haml @@ -10,5 +10,5 @@ To see all merge requests you should visit #{link_to 'dashboard', merge_requests_dashboard_path} page. %hr .append-bottom-20 - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :merge_requests = render 'shared/merge_requests' diff --git a/app/views/projects/issues/index.html.haml b/app/views/projects/issues/index.html.haml index 709ea1f789739e114d07a036ff9166502d865e3a..a378b37f4a8a4b46fea182dd9f73f4559ae34fdf 100644 --- a/app/views/projects/issues/index.html.haml +++ b/app/views/projects/issues/index.html.haml @@ -18,7 +18,7 @@ %i.fa.fa-plus New Issue - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :issues .issues-holder = render "issues" diff --git a/app/views/projects/merge_requests/_merge_request.html.haml b/app/views/projects/merge_requests/_merge_request.html.haml index 073476b0d2749582143f1af43effd0ab4c68be2b..65f5c3d6a1994b616f310fb3629d3ef004e13a2f 100644 --- a/app/views/projects/merge_requests/_merge_request.html.haml +++ b/app/views/projects/merge_requests/_merge_request.html.haml @@ -9,11 +9,11 @@ - if merge_request.merged? %span %i.fa.fa-check - MERGED + ACCEPTED - elsif merge_request.closed? %span - %i.fa.fa-close - CLOSED + %i.fa.fa-ban + REJECTED - else %span.hidden-xs.hidden-sm %span.label-branch< diff --git a/app/views/projects/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml index ab845a7e719bf3d9a418ee555dd822fcc9def6a1..841d1e1cfe9531fb7dfbf2182c26fbb1be399c21 100644 --- a/app/views/projects/merge_requests/index.html.haml +++ b/app/views/projects/merge_requests/index.html.haml @@ -7,6 +7,6 @@ = link_to new_namespace_project_merge_request_path(@project.namespace, @project), class: "btn btn-new pull-left", title: "New Merge Request" do %i.fa.fa-plus New Merge Request - = render 'shared/issuable_filter' + = render 'shared/issuable_filter', type: :merge_requests .merge-requests-holder = render 'merge_requests' diff --git a/app/views/projects/merge_requests/show/_mr_title.html.haml b/app/views/projects/merge_requests/show/_mr_title.html.haml index 46e92a9c55845956ab4172ba1df1f0055b037317..0690fdb769f4fe2f97e95138309e3ae659d7c730 100644 --- a/app/views/projects/merge_requests/show/_mr_title.html.haml +++ b/app/views/projects/merge_requests/show/_mr_title.html.haml @@ -1,9 +1,9 @@ %h4.page-title .issue-box{ class: issue_box_class(@merge_request) } - if @merge_request.merged? - Merged + Accepted - elsif @merge_request.closed? - Closed + Rejected - else Open = "Merge Request ##{@merge_request.iid}" diff --git a/app/views/projects/merge_requests/show/_state_widget.html.haml b/app/views/projects/merge_requests/show/_state_widget.html.haml index 44bd9347f514568c34b31d9c8c6f7b85e0abd8d6..e4c71bfc1be38e0fcfa51d6b76874946f127e94f 100644 --- a/app/views/projects/merge_requests/show/_state_widget.html.haml +++ b/app/views/projects/merge_requests/show/_state_widget.html.haml @@ -11,7 +11,7 @@ - if @merge_request.closed? %h4 - Closed + Rejected - if @merge_request.closed_event by #{link_to_member(@project, @merge_request.closed_event.author, avatar: false)} #{time_ago_with_tooltip(@merge_request.closed_event.created_at)} @@ -19,7 +19,7 @@ - if @merge_request.merged? %h4 - Merged + Accepted - if @merge_request.merge_event by #{link_to_member(@project, @merge_request.merge_event.author, avatar: false)} #{time_ago_with_tooltip(@merge_request.merge_event.created_at)} diff --git a/app/views/projects/milestones/show.html.haml b/app/views/projects/milestones/show.html.haml index 5845fd744f47709d43feffe6386601fd931f9e01..ee2139e75f6a53f04f5c6016265726a88ce66bc2 100644 --- a/app/views/projects/milestones/show.html.haml +++ b/app/views/projects/milestones/show.html.haml @@ -86,10 +86,10 @@ .col-md-3 = render('merge_requests', title: 'Waiting for merge (open and assigned)', merge_requests: @merge_requests.opened.assigned, id: 'ongoing') .col-md-3 - = render('merge_requests', title: 'Declined (closed)', merge_requests: @merge_requests.declined, id: 'closed') + = render('merge_requests', title: 'Rejected (closed)', merge_requests: @merge_requests.rejected, id: 'closed') .col-md-3 .panel.panel-primary - .panel-heading Merged + .panel-heading Accepted %ul.well-list - @merge_requests.merged.each do |merge_request| = render 'merge_request', merge_request: merge_request diff --git a/app/views/search/results/_merge_request.html.haml b/app/views/search/results/_merge_request.html.haml index 2efa616d6644e453a53415d6fcf8fbdac5eb4c33..adfdd1c75066ebd5bd5678211efc3c781fa91358 100644 --- a/app/views/search/results/_merge_request.html.haml +++ b/app/views/search/results/_merge_request.html.haml @@ -11,6 +11,6 @@ #{merge_request.project.name_with_namespace} .pull-right - if merge_request.merged? - %span.label.label-primary Merged + %span.label.label-primary Accepted - elsif merge_request.closed? - %span.label.label-danger Closed + %span.label.label-danger Rejected diff --git a/app/views/shared/_issuable_filter.html.haml b/app/views/shared/_issuable_filter.html.haml index 4ab9421f0137e7258472277b37ed0f7f5a5528b1..a5187fa4ea75a28ed6f7aad43ed319f5fbc98005 100644 --- a/app/views/shared/_issuable_filter.html.haml +++ b/app/views/shared/_issuable_filter.html.haml @@ -3,15 +3,28 @@ %ul.nav.nav-tabs %li{class: ("active" if params[:state] == 'opened')} = link_to page_filter_path(state: 'opened') do - %i.fa.fa-exclamation-circle + = icon('exclamation-circle') #{state_filters_text_for(:opened, @project)} - %li{class: ("active" if params[:state] == 'closed')} - = link_to page_filter_path(state: 'closed') do - %i.fa.fa-check-circle - #{state_filters_text_for(:closed, @project)} + + - if defined?(type) && type == :merge_requests + %li{class: ("active" if params[:state] == 'merged')} + = link_to page_filter_path(state: 'merged') do + = icon('check-circle') + #{state_filters_text_for(:merged, @project)} + + %li{class: ("active" if params[:state] == 'rejected')} + = link_to page_filter_path(state: 'rejected') do + = icon('ban') + #{state_filters_text_for(:rejected, @project)} + - else + %li{class: ("active" if params[:state] == 'closed')} + = link_to page_filter_path(state: 'closed') do + = icon('check-circle') + #{state_filters_text_for(:closed, @project)} + %li{class: ("active" if params[:state] == 'all')} = link_to page_filter_path(state: 'all') do - %i.fa.fa-compass + = icon('compass') #{state_filters_text_for(:all, @project)} .issues-details-filters diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature index 60caf783fe42017747fb71119ec9431193d5e255..7a831901607bd31e6e7f47e5941c24025cc6ab7b 100644 --- a/features/project/merge_requests.feature +++ b/features/project/merge_requests.feature @@ -10,8 +10,8 @@ Feature: Project Merge Requests Then I should see "Bug NS-04" in merge requests And I should not see "Feature NS-03" in merge requests - Scenario: I should see closed merge requests - Given I click link "Closed" + Scenario: I should see rejected merge requests + Given I click link "Rejected" Then I should see "Feature NS-03" in merge requests And I should not see "Bug NS-04" in merge requests diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index f67e6e3d8ca240bdbc0e0f7196e73312a6553f76..92de94a75d35a9bd087a5ce93385bc3ae560421d 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -19,8 +19,8 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps click_link "All" end - step 'I click link "Closed"' do - click_link "Closed" + step 'I click link "Rejected"' do + click_link "Rejected" end step 'I should see merge request "Wiki Feature"' do @@ -32,7 +32,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should see closed merge request "Bug NS-04"' do merge_request = MergeRequest.find_by!(title: "Bug NS-04") merge_request.closed?.should be_true - page.should have_content "Closed by" + page.should have_content "Rejected by" end step 'I should see merge request "Bug NS-04"' do @@ -202,7 +202,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should see merged request' do within '.issue-box' do - page.should have_content "Merged" + page.should have_content "Accepted" end end