mirror of
https://github.com/redmine/redmine.git
synced 2026-05-06 09:35:30 +02:00
Merged r9785 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.0-stable@9792 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -107,7 +107,13 @@ module Redmine
|
||||
#
|
||||
def self.render_on(hook, options={})
|
||||
define_method hook do |context|
|
||||
context[:controller].send(:render_to_string, {:locals => context}.merge(options))
|
||||
if context[:hook_caller].respond_to?(:render)
|
||||
context[:hook_caller].send(:render, {:locals => context}.merge(options))
|
||||
elsif context[:controller].is_a?(ActionController::Base)
|
||||
context[:controller].send(:render_to_string, {:locals => context}.merge(options))
|
||||
else
|
||||
raise "Cannot render #{self.name} hook from #{context[:hook_caller].class.name}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -138,14 +144,15 @@ module Redmine
|
||||
# * project => current project
|
||||
# * request => Request instance
|
||||
# * controller => current Controller instance
|
||||
# * hook_caller => object that called the hook
|
||||
#
|
||||
module Helper
|
||||
def call_hook(hook, context={})
|
||||
if is_a?(ActionController::Base)
|
||||
default_context = {:controller => self, :project => @project, :request => request}
|
||||
default_context = {:controller => self, :project => @project, :request => request, :hook_caller => self}
|
||||
Redmine::Hook.call_hook(hook, default_context.merge(context))
|
||||
else
|
||||
default_context = { :project => @project }
|
||||
default_context = { :project => @project, :hook_caller => self }
|
||||
default_context[:controller] = controller if respond_to?(:controller)
|
||||
default_context[:request] = request if respond_to?(:request)
|
||||
Redmine::Hook.call_hook(hook, default_context.merge(context)).join(' ').html_safe
|
||||
|
||||
Reference in New Issue
Block a user