From d2cf62fd6ad809084622d363f11370e36d987b07 Mon Sep 17 00:00:00 2001 From: Akiko Takano Date: Sun, 10 Jun 2018 15:56:24 +0900 Subject: [PATCH] Add simple feature to disply viewhook points with plugin setting. --- .../settings/_redmine_issue_stamps.html.erb | 9 +++++++++ assets/stylesheets/redmine_issue_stamps.css | 4 ++++ init.rb | 10 ++++++++++ lib/issue_stamps/redmine_hook_patch.rb | 20 +++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 app/views/settings/_redmine_issue_stamps.html.erb create mode 100644 assets/stylesheets/redmine_issue_stamps.css create mode 100644 lib/issue_stamps/redmine_hook_patch.rb diff --git a/app/views/settings/_redmine_issue_stamps.html.erb b/app/views/settings/_redmine_issue_stamps.html.erb new file mode 100644 index 0000000..10ef9ad --- /dev/null +++ b/app/views/settings/_redmine_issue_stamps.html.erb @@ -0,0 +1,9 @@ +
+ <% unless Rails.env.production? %> +

+ Display View Hook points + <%= hidden_field_tag("settings[display_view_hook_points]", 0, :id => nil).html_safe %> + <%= check_box_tag 'settings[display_view_hook_points]', true, @settings['display_view_hook_points'] == 'true' %> +

+ <% end %> +
diff --git a/assets/stylesheets/redmine_issue_stamps.css b/assets/stylesheets/redmine_issue_stamps.css new file mode 100644 index 0000000..6270a7e --- /dev/null +++ b/assets/stylesheets/redmine_issue_stamps.css @@ -0,0 +1,4 @@ +.redmine-issue-stamps-viewhook { + background: #FFFFBF; + color: darkred; +} diff --git a/init.rb b/init.rb index 30f8b10..4524dc4 100644 --- a/init.rb +++ b/init.rb @@ -1,3 +1,6 @@ +require 'redmine' +require 'issue_stamps/redmine_hook_patch' + Redmine::Plugin.register :redmine_issue_stamps do name 'Redmine Issue Stamps plugin' author 'Akiko Takano' @@ -5,4 +8,11 @@ version '0.0.1-dev' url 'https://github.com/akiko-pusu/redmine_issue_stamps' author_url 'https://github.com/akiko-pusu' + + unless Rails.env.production? + settings partial: 'settings/redmine_issue_stamps', + default: { + 'display_view_hook_points' => false + } + end end diff --git a/lib/issue_stamps/redmine_hook_patch.rb b/lib/issue_stamps/redmine_hook_patch.rb new file mode 100644 index 0000000..0b08cc8 --- /dev/null +++ b/lib/issue_stamps/redmine_hook_patch.rb @@ -0,0 +1,20 @@ +module IssueStamps + class Hooks < Redmine::Hook::ViewListener + include IssuesHelper + + def view_layouts_base_html_head(context = {}) + stylesheet_link_tag('redmine_issue_stamps', plugin: 'redmine_issue_stamps') + end + end + + module RedmineHookPatch + def call_hook(hook, context = {}) + flag = Setting.plugin_redmine_issue_stamps['display_view_hook_points'] + result = super + return result unless flag == 'true' + result << "Hook point: #{hook}".html_safe + end + end +end + +ApplicationHelper.prepend IssueStamps::RedmineHookPatch unless Rails.env.production?