summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-01-11 13:43:06 +0000
committerRémy Coutable <remy@rymai.me>2018-01-11 13:43:06 +0000
commit442fc4edebfc1c06dde5e3af0bb8fffbd1eb9916 (patch)
tree5c2655b717abcba85f96ce2151fa581e78eaff1e
parent2f585071cba37b2b85f3148460d98c415a1df2d8 (diff)
parent7034ef29edd853b3d18d3666a19826217990bfb1 (diff)
downloadgitlab-ce-442fc4edebfc1c06dde5e3af0bb8fffbd1eb9916.tar.gz
Merge branch '39988-hide-new-branch-tag-empty-repo' into 'master'
Resolve ""New branch" and "New tag" actions are pointless on an empty repository" Closes #39988 See merge request gitlab-org/gitlab-ce!16332
-rw-r--r--app/views/projects/buttons/_dropdown.html.haml13
-rw-r--r--changelogs/unreleased/39988-hide-new-branch-tag-empty-repo.yml5
-rw-r--r--spec/views/projects/buttons/_dropdown.html.haml_spec.rb39
3 files changed, 51 insertions, 6 deletions
diff --git a/app/views/projects/buttons/_dropdown.html.haml b/app/views/projects/buttons/_dropdown.html.haml
index 2589c53beae..8e8c911185a 100644
--- a/app/views/projects/buttons/_dropdown.html.haml
+++ b/app/views/projects/buttons/_dropdown.html.haml
@@ -30,12 +30,13 @@
%li
= link_to project_new_blob_path(@project, @project.default_branch || 'master') do
#{ _('New file') }
- %li
- = link_to new_project_branch_path(@project) do
- #{ _('New branch') }
- %li
- = link_to new_project_tag_path(@project) do
- #{ _('New tag') }
+ - unless @project.empty_repo?
+ %li
+ = link_to new_project_branch_path(@project) do
+ #{ _('New branch') }
+ %li
+ = link_to new_project_tag_path(@project) do
+ #{ _('New tag') }
- elsif current_user && current_user.already_forked?(@project)
%li
= link_to project_new_blob_path(@project, @project.default_branch || 'master') do
diff --git a/changelogs/unreleased/39988-hide-new-branch-tag-empty-repo.yml b/changelogs/unreleased/39988-hide-new-branch-tag-empty-repo.yml
new file mode 100644
index 00000000000..4f2c87c44b3
--- /dev/null
+++ b/changelogs/unreleased/39988-hide-new-branch-tag-empty-repo.yml
@@ -0,0 +1,5 @@
+---
+title: Hide new branch and tag links for projects with an empty repo
+merge_request:
+author:
+type: fixed
diff --git a/spec/views/projects/buttons/_dropdown.html.haml_spec.rb b/spec/views/projects/buttons/_dropdown.html.haml_spec.rb
new file mode 100644
index 00000000000..d0e692635b9
--- /dev/null
+++ b/spec/views/projects/buttons/_dropdown.html.haml_spec.rb
@@ -0,0 +1,39 @@
+require 'spec_helper'
+
+describe 'projects/buttons/_dropdown' do
+ let(:user) { create(:user) }
+
+ context 'user with all abilities' do
+ before do
+ assign(:project, project)
+
+ allow(view).to receive(:current_user).and_return(user)
+ allow(view).to receive(:can?).and_return(true)
+ end
+
+ context 'empty repository' do
+ let(:project) { create(:project, :empty_repo) }
+
+ it 'has a link to create a new file' do
+ render
+
+ expect(view).to render_template('projects/buttons/_dropdown')
+ expect(rendered).to have_link('New file')
+ end
+
+ it 'does not have a link to create a new branch' do
+ render
+
+ expect(view).to render_template('projects/buttons/_dropdown')
+ expect(rendered).not_to have_link('New branch')
+ end
+
+ it 'does not have a link to create a new tag' do
+ render
+
+ expect(view).to render_template('projects/buttons/_dropdown')
+ expect(rendered).not_to have_link('New tag')
+ end
+ end
+ end
+end