Defect #33953
closed
Repository tab is not displayed if no repository is set as the main repository
Added by Jethro Yu over 4 years ago.
Updated over 2 years ago.
Description
I suggest that:
- if there are any repositories in project, the "Repository Tab" button should show on main menu.
- if no repository is set with "Main repository" and there is only one repository, the page should show the only repository by default.
- if no repository is set with "Main repository" and there is multiple repositories, a blank page with Repositories sidebar should show.
Files
- Category changed from UI to SCM
- Status changed from New to Confirmed
- Related to Defect #14506: Multiple repositories not visible if main repository is empty added
This issue and #14506 need to be resolved together. I created the following patch.
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index b0108d531..4ceeaf014 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -321,7 +321,7 @@ class RepositoriesController < ApplicationController
if params[:repository_id].present?
@repository = @project.repositories.find_by_identifier_param(params[:repository_id])
else
- @repository = @project.repository
+ @repository = @project.repository || @project.repositories.first
end
(render_404; return false) unless @repository
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
diff --git a/lib/redmine.rb b/lib/redmine.rb
index de2993e13..470b5ae41 100644
--- a/lib/redmine.rb
+++ b/lib/redmine.rb
@@ -346,7 +346,7 @@ Redmine::MenuManager.map :project_menu do |menu|
menu.push :repository,
{:controller => 'repositories', :action => 'show',
:repository_id => nil, :path => nil, :rev => nil},
- :if => Proc.new {|p| p.repository && !p.repository.new_record?}
+ :if => Proc.new {|p| p.repositories.any?{|r| !r.new_record?}}
menu.push :settings, {:controller => 'projects', :action => 'settings'},
:last => true
end
- Target version set to Candidate for next major release
- Target version changed from Candidate for next major release to 5.1.0
Setting the target version to 5.1.0.
- Status changed from Confirmed to Resolved
- Assignee set to Go MAEDA
- Target version changed from 5.1.0 to 5.0.3
- Resolution set to Fixed
Committed the fix. Thank you for your contribution.
- Subject changed from Repository Tab will not showing if no repository is set as "Main repository" to Repository tab is not displayed if no repository is set as the main repository
- Status changed from Resolved to Closed
- Status changed from Closed to Reopened
I think the following change fixes the issue that test_show_without_main_repository_should_display_first_repository randomly fails.
The objects should be sorted in the same way as done when rendering the sidebar of the repository tab (source:trunk/app/views/repositories/show.html.erb@21852#L64).
diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb
index 9ba464e67..e79ddda4f 100644
--- a/test/functional/repositories_controller_test.rb
+++ b/test/functional/repositories_controller_test.rb
@@ -200,7 +200,7 @@ class RepositoriesControllerTest < Redmine::RepositoryControllerTest
repos.reload
assert_equal false, repos.exists?(:is_default => true)
- repository = repos.first
+ repository = repos.sort.first # rubocop:disable Style/RedundantSort
@request.session[:user_id] = 2
get(:show, :params => {:id => 1})
- Status changed from Reopened to Resolved
- Status changed from Resolved to Closed
Fixed random test failure in r21854 (trunk) and r21857 (5.0-stable).
Also available in: Atom
PDF