mirror of
https://github.com/redmine/redmine.git
synced 2025-11-08 14:26:04 +01:00
Repository tab is not displayed if no repository is set as the main repository (#33953).
Patch by Yuichi HARADA. git-svn-id: https://svn.redmine.org/redmine/trunk@21741 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -337,7 +337,7 @@ class RepositoriesController < ApplicationController
|
|||||||
if params[:repository_id].present?
|
if params[:repository_id].present?
|
||||||
@repository = @project.repositories.find_by_identifier_param(params[:repository_id])
|
@repository = @project.repositories.find_by_identifier_param(params[:repository_id])
|
||||||
else
|
else
|
||||||
@repository = @project.repository
|
@repository = @project.repository || @project.repositories.first
|
||||||
end
|
end
|
||||||
(render_404; return false) unless @repository
|
(render_404; return false) unless @repository
|
||||||
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
|
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ module Redmine
|
|||||||
menu.push :repository,
|
menu.push :repository,
|
||||||
{:controller => 'repositories', :action => 'show',
|
{:controller => 'repositories', :action => 'show',
|
||||||
:repository_id => nil, :path => nil, :rev => nil},
|
: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'},
|
menu.push :settings, {:controller => 'projects', :action => 'settings'},
|
||||||
:last => true
|
:last => true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -188,6 +188,26 @@ class RepositoriesControllerTest < Redmine::RepositoryControllerTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_without_main_repository_should_display_first_repository
|
||||||
|
project = Project.find(1)
|
||||||
|
repos = project.repositories
|
||||||
|
repos << Repository::Subversion.create(:identifier => 'test', :url => 'svn://valid')
|
||||||
|
assert_equal true, repos.exists?(:is_default => true)
|
||||||
|
|
||||||
|
repos.update_all(:is_default => false)
|
||||||
|
repos.reload
|
||||||
|
assert_equal false, repos.exists?(:is_default => true)
|
||||||
|
|
||||||
|
repository = repos.first
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
|
||||||
|
get(:show, :params => {:id => 1})
|
||||||
|
assert_response :success
|
||||||
|
assert_select '#sidebar' do
|
||||||
|
assert_select 'a.repository.selected[href=?]', "/projects/#{project.identifier}/repository/#{repository.identifier_param}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_should_show_diff_button_depending_on_browse_repository_permission
|
def test_show_should_show_diff_button_depending_on_browse_repository_permission
|
||||||
skip unless repository_configured?('subversion')
|
skip unless repository_configured?('subversion')
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ class MenuManagerTest < Redmine::IntegrationTest
|
|||||||
:roles,
|
:roles,
|
||||||
:member_roles,
|
:member_roles,
|
||||||
:members,
|
:members,
|
||||||
:enabled_modules
|
:enabled_modules,
|
||||||
|
:repositories
|
||||||
|
|
||||||
def test_project_menu_with_specific_locale
|
def test_project_menu_with_specific_locale
|
||||||
get '/projects/ecookbook/issues',
|
get '/projects/ecookbook/issues',
|
||||||
@@ -80,6 +81,34 @@ class MenuManagerTest < Redmine::IntegrationTest
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_project_menu_should_display_repository_tab_when_exists_repository
|
||||||
|
project = Project.find('ecookbook')
|
||||||
|
repos = project.repositories
|
||||||
|
assert_equal true, repos.exists?
|
||||||
|
|
||||||
|
log_user('jsmith', 'jsmith')
|
||||||
|
|
||||||
|
assert_equal true, repos.exists?(:is_default => true)
|
||||||
|
get '/projects/ecookbook'
|
||||||
|
assert_select '#main-menu' do
|
||||||
|
assert_select 'a.repository', :count => 1
|
||||||
|
end
|
||||||
|
|
||||||
|
repos.update_all(:is_default => false)
|
||||||
|
assert_equal false, repos.exists?(:is_default => true)
|
||||||
|
get '/projects/ecookbook'
|
||||||
|
assert_select '#main-menu' do
|
||||||
|
assert_select 'a.repository', :count => 1
|
||||||
|
end
|
||||||
|
|
||||||
|
repos.delete_all
|
||||||
|
assert_equal false, repos.exists?
|
||||||
|
get '/projects/ecookbook'
|
||||||
|
assert_select '#main-menu' do
|
||||||
|
assert_select 'a.repository', :count => 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_main_menu_should_select_projects_tab_on_project_list
|
def test_main_menu_should_select_projects_tab_on_project_list
|
||||||
get '/projects'
|
get '/projects'
|
||||||
assert_select '#main-menu' do
|
assert_select '#main-menu' do
|
||||||
|
|||||||
Reference in New Issue
Block a user