Explorar el Código

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
tags/2.6.0
Jean-Baptiste Barth hace 9 años
padre
commit
1617ee7bd8
Se han modificado 2 ficheros con 17 adiciones y 0 borrados
  1. 11
    0
      lib/redmine/plugin.rb
  2. 6
    0
      test/unit/lib/redmine/plugin_test.rb

+ 11
- 0
lib/redmine/plugin.rb Ver fichero

@@ -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


+ 6
- 0
test/unit/lib/redmine/plugin_test.rb Ver fichero

@@ -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

Cargando…
Cancelar
Guardar