From bbd6a69f8d63b770b0e8f013d7c2f40126fcab1a Mon Sep 17 00:00:00 2001
From: Alessandro Grassi
+ <%= render partial: 'messenger_settings/messenger_text', locals: { f: f, mf: :default_mentions, size: 30 } %>
<%= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :auto_mentions } %>
<%= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :display_watchers } %>
<%= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_updates } %>
diff --git a/app/views/settings/_messenger_settings.html.erb b/app/views/settings/_messenger_settings.html.erb
index 1a231af..5c84d0a 100644
--- a/app/views/settings/_messenger_settings.html.erb
+++ b/app/views/settings/_messenger_settings.html.erb
@@ -40,6 +40,11 @@
<%= check_box_tag 'settings[auto_mentions]', 1, @settings[:auto_mentions].to_i == 1 %>
+ <%= content_tag(:label, l(:label_settings_default_mentions)) %> + <%= text_field_tag('settings[default_mentions]', @settings[:default_mentions], size: 30) %> +
+<%= content_tag(:label, l(:label_settings_display_watchers)) %> <%= check_box_tag 'settings[display_watchers]', 1, @settings[:display_watchers].to_i == 1 %> diff --git a/config/locales/en.yml b/config/locales/en.yml index ce6455d..9d96817 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -18,6 +18,7 @@ en: label_messenger_wiki_updated: "[%{project_url}] Wiki %{url} updated by *%{user}*" label_messenger: Messenger label_settings_auto_mentions: Convert names to mentions? + label_settings_default_mentions: Default people to notify, comma separated (e.g. @all, @here) label_settings_display_watchers: Display watchers? label_settings_messenger_channel: Messenger Channel label_settings_messenger_icon: Messenger Icon diff --git a/db/migrate/001_create_messenger_settings.rb b/db/migrate/001_create_messenger_settings.rb index ab0ef1f..b4af710 100644 --- a/db/migrate/001_create_messenger_settings.rb +++ b/db/migrate/001_create_messenger_settings.rb @@ -8,6 +8,7 @@ class CreateMessengerSettings < ActiveRecord::Migration t.string :messenger_icon t.string :messenger_channel t.string :messenger_username + t.string :default_mentions t.integer :messenger_verify_ssl, default: 0, null: false t.integer :auto_mentions, default: 0, null: false t.integer :display_watchers, default: 0, null: false diff --git a/init.rb b/init.rb index 9501d98..2ee2c65 100644 --- a/init.rb +++ b/init.rb @@ -22,6 +22,7 @@ Redmine::Plugin.register :redmine_messenger do messenger_username: 'robot', messenger_verify_ssl: '1', auto_mentions: '0', + default_mentions: '', display_watchers: '0', post_updates: '1', new_include_description: '1', diff --git a/lib/redmine_messenger/patches/issue_patch.rb b/lib/redmine_messenger/patches/issue_patch.rb index 113c4fb..ccf7c55 100644 --- a/lib/redmine_messenger/patches/issue_patch.rb +++ b/lib/redmine_messenger/patches/issue_patch.rb @@ -49,7 +49,7 @@ module RedmineMessenger Messenger.speak(l(:label_messenger_issue_created, project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>", - url: "<#{Messenger.object_url(self)}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions description if RedmineMessenger.settings[:auto_mentions] == '1'}", + url: "<#{Messenger.object_url(self)}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions(project, description) if Messenger.setting_for_project(project, :auto_mentions) or not Messenger.textfield_for_project(project, :default_mentions).empty? }", user: author), channels, url, attachment: attachment, project: project) end @@ -75,7 +75,7 @@ module RedmineMessenger Messenger.speak(l(:label_messenger_issue_updated, project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>", - url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions(current_journal.notes) if Messenger.setting_for_project(project, :auto_mentions)}", + url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions(project, current_journal.notes) if Messenger.setting_for_project(project, :auto_mentions) or not Messenger.textfield_for_project(project, :default_mentions).empty? }", user: current_journal.user), channels, url, attachment: attachment, project: project) end