diff --git a/init.rb b/init.rb index 71abf24..4e3777c 100644 --- a/init.rb +++ b/init.rb @@ -6,6 +6,7 @@ require_dependency 'query_patch' # Hooks require_dependency 'budget_issue_hook' +require_dependency 'budget_project_hook' RAILS_DEFAULT_LOGGER.info 'Starting Budget plugin for RedMine' @@ -28,14 +29,4 @@ Redmine::Plugin.register :budget_plugin do end menu :project_menu, :budget, :controller => "deliverables", :action => 'index' - - add_hook(:issue_show, Proc.new { |context| BudgetIssueHook.issue_show(context) }) - add_hook(:issue_edit, Proc.new { |context| BudgetIssueHook.issue_edit(context) }) - add_hook(:issue_bulk_edit, Proc.new { |context| BudgetIssueHook.issue_bulk_edit(context) }) - add_hook(:issue_bulk_edit_save, Proc.new { |context| BudgetIssueHook.issue_bulk_edit_save(context) }) - - add_hook(:project_member_list_header, Proc.new { |context| BudgetProjectHook.member_list_header(context) }) - add_hook(:project_member_list_column_three, Proc.new { |context| BudgetProjectHook.member_list_column_three(context) }) - - add_hook(:issues_helper_show_details, Proc.new { |context| BudgetIssueHook.issue_helper_show_details(context) }) end diff --git a/lib/budget_issue_hook.rb b/lib/budget_issue_hook.rb index 1d50d03..112286f 100644 --- a/lib/budget_issue_hook.rb +++ b/lib/budget_issue_hook.rb @@ -1,15 +1,14 @@ -# Hooks to attach to the Redmine Issues. They are attached in init.rb by the -# +add_hook+ method -class BudgetIssueHook < Redmine::Plugin::Hook::Base +# Hooks to attach to the Redmine Issues. +class BudgetIssueHook < Redmine::Hook::ViewListener # Renders the Deliverable subject # # Context: # * :issue => Issue being rendered # - def self.issue_show(context = { }) + def view_issues_show_details_bottom(context = { }) if context[:project].module_enabled?('budget_module') - data = "
#{select}
" @@ -36,14 +35,14 @@ class BudgetIssueHook < Redmine::Plugin::Hook::Base # Context: # * :project => Current project # - def self.issue_bulk_edit(context = { }) + def view_issues_bulk_edit_details_bottom(context = { }) if context[:project].module_enabled?('budget_module') - select = help.select_tag('deliverable_id', - help.content_tag('option', GLoc.l(:label_no_change_option), :value => '') + - help.content_tag('option', GLoc.l(:label_none), :value => 'none') + - help.options_from_collection_for_select(Deliverable.find_all_by_project_id(context[:project].id, :order => 'subject ASC'), :id, :subject)) + select = select_tag('deliverable_id', + content_tag('option', GLoc.l(:label_no_change_option), :value => '') + + content_tag('option', GLoc.l(:label_none), :value => 'none') + + options_from_collection_for_select(Deliverable.find_all_by_project_id(context[:project].id, :order => 'subject ASC'), :id, :subject)) - return help.content_tag(:p, "") + return content_tag(:p, "") else return '' end @@ -55,7 +54,7 @@ class BudgetIssueHook < Redmine::Plugin::Hook::Base # * :issue => Issue being saved # * :params => HTML parameters # - def self.issue_bulk_edit_save(context = { }) + def controller_issues_bulk_edit_before_save(context = { }) case true when context[:params][:deliverable_id].blank? @@ -76,7 +75,7 @@ class BudgetIssueHook < Redmine::Plugin::Hook::Base # Context: # * :detail => Detail about the journal change # - def self.issue_helper_show_details(context = { }) + def helper_issues_show_detail_after_setting(context = { }) # TODO Later: Overwritting the caller is bad juju if context[:detail].prop_key == 'deliverable_id' d = Deliverable.find_by_id(context[:detail].value) diff --git a/lib/budget_project_hook.rb b/lib/budget_project_hook.rb index 5a41e7f..b08fc81 100644 --- a/lib/budget_project_hook.rb +++ b/lib/budget_project_hook.rb @@ -1,11 +1,14 @@ -# Hooks to attach to the Redmine Projects. They are attached in init.rb by the -# +add_hook+ method -class BudgetProjectHook < Redmine::Plugin::Hook::Base +# Hooks to attach to the Redmine Projects. +class BudgetProjectHook < Redmine::Hook::ViewListener + def protect_against_forgery? + false + end + # Renders an additional table header to the membership setting # # Context: none - def self.member_list_header(context ={ }) + def view_projects_settings_members_table_header(context ={ }) if context[:project].module_enabled?('budget_module') return "