Merge branch '19497-hide-relevant-info-when-project-issues-are-disabled' into 'master'
Hide issue info when project issues are disabled Closes #19497 See merge request !9083
This commit is contained in:
commit
86d1e42ab3
5 changed files with 106 additions and 25 deletions
|
@ -46,7 +46,7 @@
|
|||
= preserve do
|
||||
= markdown_field(@milestone, :description)
|
||||
|
||||
- if @milestone.total_items_count(current_user).zero?
|
||||
- if can?(current_user, :read_issue, @project) && @milestone.total_items_count(current_user).zero?
|
||||
.alert.alert-success.prepend-top-default
|
||||
%span Assign some issues to this milestone.
|
||||
- elsif @milestone.complete?(current_user) && @milestone.active?
|
||||
|
|
|
@ -6,14 +6,15 @@
|
|||
|
||||
.milestone-stats-and-buttons
|
||||
.milestone-stats
|
||||
%span.milestone-stat.with-drilldown
|
||||
%strong= milestone.issues_visible_to_user(current_user).size
|
||||
issues:
|
||||
%span.milestone-stat
|
||||
%strong= milestone.issues_visible_to_user(current_user).opened.size
|
||||
open and
|
||||
%strong= milestone.issues_visible_to_user(current_user).closed.size
|
||||
closed
|
||||
- if !project || can?(current_user, :read_issue, project)
|
||||
%span.milestone-stat.with-drilldown
|
||||
%strong= milestone.issues_visible_to_user(current_user).size
|
||||
issues:
|
||||
%span.milestone-stat
|
||||
%strong= milestone.issues_visible_to_user(current_user).opened.size
|
||||
open and
|
||||
%strong= milestone.issues_visible_to_user(current_user).closed.size
|
||||
closed
|
||||
%span.milestone-stat.with-drilldown
|
||||
%strong= milestone.merge_requests.size
|
||||
merge requests:
|
||||
|
@ -32,10 +33,12 @@
|
|||
|
||||
.milestone-progress-buttons
|
||||
%span.tab-issues-buttons
|
||||
- if project && can?(current_user, :create_issue, project)
|
||||
= link_to new_namespace_project_issue_path(project.namespace, project, issue: { milestone_id: milestone.id }), class: "btn", title: "New Issue" do
|
||||
New Issue
|
||||
= link_to 'Browse Issues', milestones_browse_issuables_path(milestone, type: :issues), class: "btn"
|
||||
- if project
|
||||
- if can?(current_user, :create_issue, project)
|
||||
= link_to new_namespace_project_issue_path(project.namespace, project, issue: { milestone_id: milestone.id }), class: "btn", title: "New Issue" do
|
||||
New Issue
|
||||
- if can?(current_user, :read_issue, project)
|
||||
= link_to 'Browse Issues', milestones_browse_issuables_path(milestone, type: :issues), class: "btn"
|
||||
%span.tab-merge-requests-buttons.hidden
|
||||
= link_to 'Browse Merge Requests', milestones_browse_issuables_path(milestone, type: :merge_requests), class: "btn"
|
||||
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
%ul.nav-links.no-top.no-bottom
|
||||
%li.active
|
||||
= link_to '#tab-issues', 'data-toggle' => 'tab', 'data-show' => '.tab-issues-buttons' do
|
||||
Issues
|
||||
%span.badge= milestone.issues_visible_to_user(current_user).size
|
||||
%li
|
||||
= link_to '#tab-merge-requests', 'data-toggle' => 'tab', 'data-show' => '.tab-merge-requests-buttons' do
|
||||
Merge Requests
|
||||
%span.badge= milestone.merge_requests.size
|
||||
- if milestone.is_a?(GlobalMilestone) || can?(current_user, :read_issue, @project)
|
||||
%li.active
|
||||
= link_to '#tab-issues', 'data-toggle' => 'tab', 'data-show' => '.tab-issues-buttons' do
|
||||
Issues
|
||||
%span.badge= milestone.issues_visible_to_user(current_user).size
|
||||
%li
|
||||
= link_to '#tab-merge-requests', 'data-toggle' => 'tab', 'data-show' => '.tab-merge-requests-buttons' do
|
||||
Merge Requests
|
||||
%span.badge= milestone.merge_requests.size
|
||||
- else
|
||||
%li.active
|
||||
= link_to '#tab-merge-requests', 'data-toggle' => 'tab', 'data-show' => '.tab-merge-requests-buttons' do
|
||||
Merge Requests
|
||||
%span.badge= milestone.merge_requests.size
|
||||
%li
|
||||
= link_to '#tab-participants', 'data-toggle' => 'tab' do
|
||||
Participants
|
||||
|
@ -20,10 +26,14 @@
|
|||
- show_full_project_name = local_assigns.fetch(:show_full_project_name, false)
|
||||
|
||||
.tab-content.milestone-content
|
||||
.tab-pane.active#tab-issues
|
||||
= render 'shared/milestones/issues_tab', issues: milestone.issues_visible_to_user(current_user).include_associations, show_project_name: show_project_name, show_full_project_name: show_full_project_name
|
||||
.tab-pane#tab-merge-requests
|
||||
= render 'shared/milestones/merge_requests_tab', merge_requests: milestone.merge_requests, show_project_name: show_project_name, show_full_project_name: show_full_project_name
|
||||
- if milestone.is_a?(GlobalMilestone) || can?(current_user, :read_issue, @project)
|
||||
.tab-pane.active#tab-issues
|
||||
= render 'shared/milestones/issues_tab', issues: milestone.issues_visible_to_user(current_user).include_associations, show_project_name: show_project_name, show_full_project_name: show_full_project_name
|
||||
.tab-pane#tab-merge-requests
|
||||
= render 'shared/milestones/merge_requests_tab', merge_requests: milestone.merge_requests, show_project_name: show_project_name, show_full_project_name: show_full_project_name
|
||||
- else
|
||||
.tab-pane.active#tab-merge-requests
|
||||
= render 'shared/milestones/merge_requests_tab', merge_requests: milestone.merge_requests, show_project_name: show_project_name, show_full_project_name: show_full_project_name
|
||||
.tab-pane#tab-participants
|
||||
= render 'shared/milestones/participants_tab', users: milestone.participants
|
||||
.tab-pane#tab-labels
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Hide issue info when project issues are disabled
|
||||
merge_request:
|
||||
author: George Andrinopoulos
|
64
spec/features/projects/milestones/milestone_spec.rb
Normal file
64
spec/features/projects/milestones/milestone_spec.rb
Normal file
|
@ -0,0 +1,64 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Project milestone', :feature do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:empty_project, name: 'test', namespace: user.namespace) }
|
||||
let(:milestone) { create(:milestone, project: project) }
|
||||
|
||||
before do
|
||||
login_as(user)
|
||||
end
|
||||
|
||||
context 'when project has enabled issues' do
|
||||
before do
|
||||
visit namespace_project_milestone_path(project.namespace, project, milestone)
|
||||
end
|
||||
|
||||
it 'shows issues tab' do
|
||||
within('#content-body') do
|
||||
expect(page).to have_link 'Issues', href: '#tab-issues'
|
||||
expect(page).to have_selector '.nav-links li.active', count: 1
|
||||
expect(find('.nav-links li.active')).to have_content 'Issues'
|
||||
end
|
||||
end
|
||||
|
||||
it 'shows issues stats' do
|
||||
expect(page).to have_content 'issues:'
|
||||
end
|
||||
|
||||
it 'shows Browse Issues button' do
|
||||
within('#content-body') do
|
||||
expect(page).to have_link 'Browse Issues'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when project has disabled issues' do
|
||||
before do
|
||||
project.project_feature.update_attribute(:issues_access_level, ProjectFeature::DISABLED)
|
||||
visit namespace_project_milestone_path(project.namespace, project, milestone)
|
||||
end
|
||||
|
||||
it 'hides issues tab' do
|
||||
within('#content-body') do
|
||||
expect(page).not_to have_link 'Issues', href: '#tab-issues'
|
||||
expect(page).to have_selector '.nav-links li.active', count: 1
|
||||
expect(find('.nav-links li.active')).to have_content 'Merge Requests'
|
||||
end
|
||||
end
|
||||
|
||||
it 'hides issues stats' do
|
||||
expect(page).to have_no_content 'issues:'
|
||||
end
|
||||
|
||||
it 'hides Browse Issues button' do
|
||||
within('#content-body') do
|
||||
expect(page).not_to have_link 'Browse Issues'
|
||||
end
|
||||
end
|
||||
|
||||
it 'does not show an informative message' do
|
||||
expect(page).not_to have_content('Assign some issues to this milestone.')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue