Converted the REDMINE_SUPPORTED_SCM constant to a class
Now SCMs can be added or removed using a simple API, instead of being hardcoded: Redmine::Scm::Base.add('ScmName') Redmine::Scm::Base.delete('ScmName') git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3440 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
b3330d3995
commit
9e22faa640
|
@ -46,7 +46,7 @@ class ApplicationController < ActionController::Base
|
||||||
include Redmine::MenuManager::MenuController
|
include Redmine::MenuManager::MenuController
|
||||||
helper Redmine::MenuManager::MenuHelper
|
helper Redmine::MenuManager::MenuHelper
|
||||||
|
|
||||||
REDMINE_SUPPORTED_SCM.each do |scm|
|
Redmine::Scm::Base.all.each do |scm|
|
||||||
require_dependency "repository/#{scm.underscore}"
|
require_dependency "repository/#{scm.underscore}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ module RepositoriesHelper
|
||||||
|
|
||||||
def scm_select_tag(repository)
|
def scm_select_tag(repository)
|
||||||
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
|
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
|
||||||
REDMINE_SUPPORTED_SCM.each do |scm|
|
Redmine::Scm::Base.all.each do |scm|
|
||||||
scm_options << ["Repository::#{scm}".constantize.scm_name, scm] if Setting.enabled_scm.include?(scm) || (repository && repository.class.name.demodulize == scm)
|
scm_options << ["Repository::#{scm}".constantize.scm_name, scm] if Setting.enabled_scm.include?(scm) || (repository && repository.class.name.demodulize == scm)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<%= link_to_function l(:label_generate_key), "if ($('settings_sys_api_key').disabled == false) { $('settings_sys_api_key').value = randomKey(20) }" %>
|
<%= link_to_function l(:label_generate_key), "if ($('settings_sys_api_key').disabled == false) { $('settings_sys_api_key').value = randomKey(20) }" %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p><%= setting_multiselect(:enabled_scm, REDMINE_SUPPORTED_SCM) %></p>
|
<p><%= setting_multiselect(:enabled_scm, Redmine::Scm::Base.all) %></p>
|
||||||
|
|
||||||
<p><%= setting_text_field :repositories_encodings, :size => 60 %><br />
|
<p><%= setting_text_field :repositories_encodings, :size => 60 %><br />
|
||||||
<em><%= l(:text_comma_separated) %></em></p>
|
<em><%= l(:text_comma_separated) %></em></p>
|
||||||
|
|
|
@ -7,6 +7,7 @@ require 'redmine/themes'
|
||||||
require 'redmine/hook'
|
require 'redmine/hook'
|
||||||
require 'redmine/plugin'
|
require 'redmine/plugin'
|
||||||
require 'redmine/wiki_formatting'
|
require 'redmine/wiki_formatting'
|
||||||
|
require 'redmine/scm/base'
|
||||||
|
|
||||||
begin
|
begin
|
||||||
require_library_or_gem 'RMagick' unless Object.const_defined?(:Magick)
|
require_library_or_gem 'RMagick' unless Object.const_defined?(:Magick)
|
||||||
|
@ -21,7 +22,13 @@ else
|
||||||
FCSV = CSV
|
FCSV = CSV
|
||||||
end
|
end
|
||||||
|
|
||||||
REDMINE_SUPPORTED_SCM = %w( Subversion Darcs Mercurial Cvs Bazaar Git Filesystem )
|
Redmine::Scm::Base.add "Subversion"
|
||||||
|
Redmine::Scm::Base.add "Darcs"
|
||||||
|
Redmine::Scm::Base.add "Mercurial"
|
||||||
|
Redmine::Scm::Base.add "Cvs"
|
||||||
|
Redmine::Scm::Base.add "Bazaar"
|
||||||
|
Redmine::Scm::Base.add "Git"
|
||||||
|
Redmine::Scm::Base.add "Filesystem"
|
||||||
|
|
||||||
# Permissions
|
# Permissions
|
||||||
Redmine::AccessControl.map do |map|
|
Redmine::AccessControl.map do |map|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
module Redmine
|
||||||
|
module Scm
|
||||||
|
class Base
|
||||||
|
class << self
|
||||||
|
|
||||||
|
def all
|
||||||
|
@scms
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a new SCM adapter and repository
|
||||||
|
def add(scm_name)
|
||||||
|
@scms ||= []
|
||||||
|
@scms << scm_name
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove a SCM adapter from Redmine's list of supported scms
|
||||||
|
def delete(scm_name)
|
||||||
|
@scms.delete(scm_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue