Add support for default mentions
Signed-off-by: Alessandro Grassi <alessandro.grassi@2ndquadrant.com>
This commit is contained in:
@@ -219,9 +219,12 @@ class Messenger
|
||||
result
|
||||
end
|
||||
|
||||
def self.mentions(text)
|
||||
return nil if text.nil?
|
||||
names = extract_usernames(text)
|
||||
def self.mentions(project, text)
|
||||
names = []
|
||||
Messenger.textfield_for_project(project, :default_mentions).split(',').each { |m|
|
||||
names.push m.strip
|
||||
}
|
||||
names += extract_usernames(text) unless text.nil?
|
||||
names.present? ? '\nTo: ' + names.join(', ') : nil
|
||||
end
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ class MessengerSetting < ActiveRecord::Base
|
||||
'messenger_username',
|
||||
'messenger_verify_ssl',
|
||||
'auto_mentions',
|
||||
'default_mentions',
|
||||
'display_watchers',
|
||||
'post_updates',
|
||||
'new_include_description',
|
||||
@@ -33,6 +34,7 @@ class MessengerSetting < ActiveRecord::Base
|
||||
:messenger_username,
|
||||
:messenger_verify_ssl,
|
||||
:auto_mentions,
|
||||
:default_mentions,
|
||||
:display_watchers,
|
||||
:post_updates,
|
||||
:new_include_description,
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
<div class="info"><%= t(:messenger_issue_intro) %></div><br />
|
||||
|
||||
<%= 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 } %>
|
||||
|
||||
@@ -40,6 +40,11 @@
|
||||
<%= check_box_tag 'settings[auto_mentions]', 1, @settings[:auto_mentions].to_i == 1 %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= content_tag(:label, l(:label_settings_default_mentions)) %>
|
||||
<%= text_field_tag('settings[default_mentions]', @settings[:default_mentions], size: 30) %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= content_tag(:label, l(:label_settings_display_watchers)) %>
|
||||
<%= check_box_tag 'settings[display_watchers]', 1, @settings[:display_watchers].to_i == 1 %>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
1
init.rb
1
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',
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user