diff options
author | Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com> | 2014-08-13 04:56:44 +0000 |
---|---|---|
committer | Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com> | 2014-08-13 04:56:44 +0000 |
commit | 1617ee7bd8b0df0aaf13fcd8a66c07864182381d (patch) | |
tree | 20029ca82de4cafa9cb7ff87c751bcffb169a740 | |
parent | efc05bc73cf53e2c9d57147f7226f9b17a6350ce (diff) | |
download | redmine-1617ee7bd8b0df0aaf13fcd8a66c07864182381d.tar.gz redmine-1617ee7bd8b0df0aaf13fcd8a66c07864182381d.zip |
Add a warning if two plugins have the same settings partial name (#14008).
git-svn-id: http://svn.redmine.org/redmine/trunk@13336 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | lib/redmine/plugin.rb | 11 | ||||
-rw-r--r-- | test/unit/lib/redmine/plugin_test.rb | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index e26ea91b9..9c67399d9 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -50,6 +50,8 @@ module Redmine #:nodoc: self.public_directory = File.join(Rails.root, 'public', 'plugin_assets') @registered_plugins = {} + @used_partials = {} + class << self attr_reader :registered_plugins private :new @@ -93,6 +95,15 @@ module Redmine #:nodoc: ActiveSupport::Dependencies.autoload_paths += [dir] end + # Warn for potential settings[:partial] collisions + if p.configurable? + partial = p.settings[:partial] + if @used_partials[partial] + Rails.logger.warn "WARNING: settings partial '#{partial}' is declared in '#{p.id}' plugin but it is already used by plugin '#{@used_partials[partial]}'. Only one settings view will be used. You may want to contact those plugins authors to fix this." + end + @used_partials[partial] = p.id + end + registered_plugins[id] = p end diff --git a/test/unit/lib/redmine/plugin_test.rb b/test/unit/lib/redmine/plugin_test.rb index 1853b678e..dfce04060 100644 --- a/test/unit/lib/redmine/plugin_test.rb +++ b/test/unit/lib/redmine/plugin_test.rb @@ -173,4 +173,10 @@ class Redmine::PluginTest < ActiveSupport::TestCase end end end + + def test_settings_warns_about_possible_partial_collision + @klass.register(:foo) { settings :partial => 'foo/settings' } + Rails.logger.expects(:warn) + @klass.register(:bar) { settings :partial => 'foo/settings' } + end end |