Actions
Defect #33953
closedRepository tab is not displayed if no repository is set as the main repository
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Fixed
Affected version:
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
Related issues
Updated by Go MAEDA over 2 years ago
- Category changed from UI to SCM
- Status changed from New to Confirmed
Updated by Go MAEDA over 2 years ago
- Related to Defect #14506: Multiple repositories not visible if main repository is empty added
Updated by Yuichi HARADA over 2 years ago
- File fixed-33953.patch fixed-33953.patch 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
Updated by Go MAEDA over 2 years ago
- Target version set to Candidate for next major release
Updated by Marius BALTEANU 6 months ago
- Status changed from Closed to Reopened
There is a failing test: https://www.redmine.org/builds/logs/build_trunk_postgresql_ruby-3.0_2004.html
Updated by Marius BALTEANU 6 months ago
Updated by Go MAEDA 6 months ago
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})
Actions