Commit 9cc7d936 authored by George Andrinopoulos's avatar George Andrinopoulos

Hide issue info when project issues are disabled

parent c5b29ed6
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
= preserve do = preserve do
= markdown_field(@milestone, :description) = 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 .alert.alert-success.prepend-top-default
%span Assign some issues to this milestone. %span Assign some issues to this milestone.
- elsif @milestone.complete?(current_user) && @milestone.active? - elsif @milestone.complete?(current_user) && @milestone.active?
......
...@@ -6,14 +6,15 @@ ...@@ -6,14 +6,15 @@
.milestone-stats-and-buttons .milestone-stats-and-buttons
.milestone-stats .milestone-stats
%span.milestone-stat.with-drilldown - if !project || can?(current_user, :read_issue, project)
%strong= milestone.issues_visible_to_user(current_user).size %span.milestone-stat.with-drilldown
issues: %strong= milestone.issues_visible_to_user(current_user).size
%span.milestone-stat issues:
%strong= milestone.issues_visible_to_user(current_user).opened.size %span.milestone-stat
open and %strong= milestone.issues_visible_to_user(current_user).opened.size
%strong= milestone.issues_visible_to_user(current_user).closed.size open and
closed %strong= milestone.issues_visible_to_user(current_user).closed.size
closed
%span.milestone-stat.with-drilldown %span.milestone-stat.with-drilldown
%strong= milestone.merge_requests.size %strong= milestone.merge_requests.size
merge requests: merge requests:
...@@ -32,10 +33,12 @@ ...@@ -32,10 +33,12 @@
.milestone-progress-buttons .milestone-progress-buttons
%span.tab-issues-buttons %span.tab-issues-buttons
- if project && can?(current_user, :create_issue, project) - if project
= link_to new_namespace_project_issue_path(project.namespace, project, issue: { milestone_id: milestone.id }), class: "btn", title: "New Issue" do - if can?(current_user, :create_issue, project)
New Issue = link_to new_namespace_project_issue_path(project.namespace, project, issue: { milestone_id: milestone.id }), class: "btn", title: "New Issue" do
= link_to 'Browse Issues', milestones_browse_issuables_path(milestone, type: :issues), class: "btn" 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 %span.tab-merge-requests-buttons.hidden
= link_to 'Browse Merge Requests', milestones_browse_issuables_path(milestone, type: :merge_requests), class: "btn" = link_to 'Browse Merge Requests', milestones_browse_issuables_path(milestone, type: :merge_requests), class: "btn"
......
%ul.nav-links.no-top.no-bottom %ul.nav-links.no-top.no-bottom
%li.active - if milestone.is_a?(GlobalMilestone) || can?(current_user, :read_issue, @project)
= link_to '#tab-issues', 'data-toggle' => 'tab', 'data-show' => '.tab-issues-buttons' do %li.active
Issues = link_to '#tab-issues', 'data-toggle' => 'tab', 'data-show' => '.tab-issues-buttons' do
%span.badge= milestone.issues_visible_to_user(current_user).size Issues
%li %span.badge= milestone.issues_visible_to_user(current_user).size
= link_to '#tab-merge-requests', 'data-toggle' => 'tab', 'data-show' => '.tab-merge-requests-buttons' do %li
Merge Requests = link_to '#tab-merge-requests', 'data-toggle' => 'tab', 'data-show' => '.tab-merge-requests-buttons' do
%span.badge= milestone.merge_requests.size 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 %li
= link_to '#tab-participants', 'data-toggle' => 'tab' do = link_to '#tab-participants', 'data-toggle' => 'tab' do
Participants Participants
...@@ -20,10 +26,14 @@ ...@@ -20,10 +26,14 @@
- show_full_project_name = local_assigns.fetch(:show_full_project_name, false) - show_full_project_name = local_assigns.fetch(:show_full_project_name, false)
.tab-content.milestone-content .tab-content.milestone-content
.tab-pane.active#tab-issues - if milestone.is_a?(GlobalMilestone) || can?(current_user, :read_issue, @project)
= 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.active#tab-issues
.tab-pane#tab-merge-requests = 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
= 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-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 .tab-pane#tab-participants
= render 'shared/milestones/participants_tab', users: milestone.participants = render 'shared/milestones/participants_tab', users: milestone.participants
.tab-pane#tab-labels .tab-pane#tab-labels
......
---
title: Hide issue info when project issues are disabled
merge_request:
author: George Andrinopoulos
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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment