diff options
-rw-r--r-- | app/controllers/issues_controller.rb | 5 | ||||
-rw-r--r-- | app/helpers/issues_helper.rb | 2 | ||||
-rw-r--r-- | app/views/issues/_form.rhtml | 4 | ||||
-rw-r--r-- | app/views/issues/bulk_edit.rhtml | 4 | ||||
-rw-r--r-- | app/views/issues/show.rhtml | 4 | ||||
-rw-r--r-- | app/views/projects/settings/_members.rhtml | 8 | ||||
-rw-r--r-- | lib/redmine/plugin.rb | 77 |
7 files changed, 49 insertions, 55 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 75b0c7945..7d36ce88d 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -233,9 +233,8 @@ class IssuesController < ApplicationController issue.start_date = params[:start_date] unless params[:start_date].blank? issue.due_date = params[:due_date] unless params[:due_date].blank? issue.done_ratio = params[:done_ratio] unless params[:done_ratio].blank? - if Redmine::Plugin::Hook.hook_registered?(:issue_bulk_edit_save) - Redmine::Plugin::Hook.call_hook(:issue_bulk_edit_save, {:params => params, :issue => issue }) - end + + Redmine::Plugin::Hook::Manager.call_hook(:issue_bulk_edit_save, {:params => params, :issue => issue }) # Don't save any change to the issue if the user is not authorized to apply the requested status if (status.nil? || (issue.status.new_status_allowed_to?(status, current_role, issue.tracker) && issue.status = status)) && issue.save diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 5b1330b6e..009947424 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -87,7 +87,7 @@ module IssuesHelper label = l(:label_attachment) end - Redmine::Plugin::Hook.call_hook(:issues_helper_show_details, {:detail => detail, :label => label, :value => value, :old_value => old_value }) + Redmine::Plugin::Hook::Manager.call_hook(:issues_helper_show_details, {:detail => detail, :label => label, :value => value, :old_value => old_value }) label ||= detail.prop_key value ||= detail.value diff --git a/app/views/issues/_form.rhtml b/app/views/issues/_form.rhtml index f933a7c35..cdff2e45c 100644 --- a/app/views/issues/_form.rhtml +++ b/app/views/issues/_form.rhtml @@ -48,8 +48,6 @@ <p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p> <% end %> -<% if Redmine::Plugin::Hook.hook_registered?(:issue_edit) %> - <%= Redmine::Plugin::Hook.call_hook(:issue_edit, {:project => @project, :issue => @issue, :form => f }) %> -<% end %> +<%= Redmine::Plugin::Hook::Manager.call_hook(:issue_edit, {:project => @project, :issue => @issue, :form => f }) %> <%= wikitoolbar_for 'issue_description' %> diff --git a/app/views/issues/bulk_edit.rhtml b/app/views/issues/bulk_edit.rhtml index 92a340a93..e001e0d87 100644 --- a/app/views/issues/bulk_edit.rhtml +++ b/app/views/issues/bulk_edit.rhtml @@ -38,9 +38,7 @@ <label><%= l(:field_done_ratio) %>: <%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></label> </p> -<% if Redmine::Plugin::Hook.hook_registered?(:issue_bulk_edit) %> - <%= Redmine::Plugin::Hook.call_hook(:issue_bulk_edit, {:project => @project, :issue => @issues }) %> -<% end %> +<%= Redmine::Plugin::Hook::Manager.call_hook(:issue_bulk_edit, {:project => @project, :issue => @issues }) %> </fieldset> <fieldset><legend><%= l(:field_notes) %></legend> diff --git a/app/views/issues/show.rhtml b/app/views/issues/show.rhtml index f72ac6d24..88421862c 100644 --- a/app/views/issues/show.rhtml +++ b/app/views/issues/show.rhtml @@ -53,9 +53,7 @@ <%end end %> </tr> -<% if Redmine::Plugin::Hook.hook_registered?(:issue_show) %> - <%= Redmine::Plugin::Hook.call_hook(:issue_show, {:project => @project, :issue => @issue}) %> -<% end %> +<%= Redmine::Plugin::Hook::Manager.call_hook(:issue_show, {:project => @project, :issue => @issue}) %> </table> <hr /> diff --git a/app/views/projects/settings/_members.rhtml b/app/views/projects/settings/_members.rhtml index 0ebe3285f..7f894dfba 100644 --- a/app/views/projects/settings/_members.rhtml +++ b/app/views/projects/settings/_members.rhtml @@ -9,9 +9,7 @@ <thead> <th><%= l(:label_user) %></th> <th><%= l(:label_role) %></th> - <% if Redmine::Plugin::Hook.hook_registered?(:project_member_list_header) %> - <%= Redmine::Plugin::Hook.call_hook(:project_member_list_header, {:project => @project }) %> - <% end %> + <%= Redmine::Plugin::Hook::Manager.call_hook(:project_member_list_header, {:project => @project }) %> <th style="width:15%"></th> </thead> <tbody> @@ -27,9 +25,7 @@ <% end %> <% end %> </td> - <% if Redmine::Plugin::Hook.hook_registered?(:project_member_list_column_three) %> - <%= Redmine::Plugin::Hook.call_hook(:project_member_list_column_three, {:project => @project, :member => member }) %> - <% end %> + <%= Redmine::Plugin::Hook::Manager.call_hook(:project_member_list_column_three, {:project => @project, :member => member }) %> <td align="center"> <%= link_to_remote l(:button_delete), { :url => {:controller => 'members', :action => 'destroy', :id => member}, diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index 3a0375bb1..2366c49ff 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -118,7 +118,7 @@ module Redmine #:nodoc: end def add_hook(hook_name, method) - Redmine::Plugin::Hook.add_listener(hook_name, method) + Redmine::Plugin::Hook::Manager.add_listener(hook_name, method) end # Returns +true+ if the plugin can be configured. @@ -128,51 +128,56 @@ module Redmine #:nodoc: # TODO: Doc class Hook - - # Hooks and the procs added - @@hooks = { - :issue_show => [], - :issue_edit => [], - :issue_bulk_edit => [], - :issue_bulk_edit_save => [], - :issue_update => [], - :project_member_list_header => [], - :project_member_list_column_three => [], - :issues_helper_show_details => [] - } + class Manager + # Hooks and the procs added + @@hooks = { + :issue_show => [], + :issue_edit => [], + :issue_bulk_edit => [], + :issue_bulk_edit_save => [], + :issue_update => [], + :project_member_list_header => [], + :project_member_list_column_three => [], + :issues_helper_show_details => [] + } - cattr_reader :hooks + cattr_reader :hooks - class << self + class << self - # TODO: Doc - def valid_hook?(hook_name) - return @@hooks.has_key?(hook_name) - end + # TODO: Doc + def valid_hook?(hook_name) + return @@hooks.has_key?(hook_name) + end - # TODO: Doc - def add_listener(hook_name, method) - if valid_hook?(hook_name) - @@hooks[hook_name.to_sym] << method - puts "Listener added for #{hook_name.to_s}" + # TODO: Doc + def add_listener(hook_name, method) + if valid_hook?(hook_name) + @@hooks[hook_name.to_sym] << method + puts "Listener added for #{hook_name.to_s}" + end end - end - # TODO: Doc - def call_hook(hook_name, context = { }) - response = '' - @@hooks[hook_name.to_sym].each do |method| - response += method.call(context) + # TODO: Doc + def call_hook(hook_name, context = { }) + response = '' + @@hooks[hook_name.to_sym].each do |method| + response += method.call(context) + end + response end - response - end - # TODO: Doc - def hook_registered?(hook_name) - return @@hooks[hook_name.to_sym].size > 0 + # TODO: Doc + def hook_registered?(hook_name) + return @@hooks[hook_name.to_sym].size > 0 + end end end - + + # Default class for Hooks to subclass + class Base + + end end end end |