Add changelog and db, passwords and contacts support
This commit is contained in:
@@ -49,30 +49,5 @@ module RedmineMessenger
|
||||
|
||||
Messenger.speak msg, channels, attachment, url
|
||||
end
|
||||
|
||||
def controller_wiki_edit_after_save(context = {})
|
||||
return unless RedmineMessenger.settings[:post_wiki_updates] == '1'
|
||||
|
||||
project = context[:project]
|
||||
page = context[:page]
|
||||
|
||||
user = page.content.author
|
||||
project_url = "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>"
|
||||
page_url = "<#{Messenger.object_url page}|#{page.title}>"
|
||||
comment = "[#{project_url}] #{page_url} updated by *#{user}*"
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
|
||||
attachment = nil
|
||||
unless page.content.comments.empty?
|
||||
attachment = {}
|
||||
attachment[:text] = "#{ERB::Util.html_escape(page.content.comments)}"
|
||||
end
|
||||
|
||||
Messenger.speak comment, channels, attachment, url
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
51
lib/redmine_messenger/patches/contact_patch.rb
Normal file
51
lib/redmine_messenger/patches/contact_patch.rb
Normal file
@@ -0,0 +1,51 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
module RedmineMessenger
|
||||
module Patches
|
||||
module ContactPatch
|
||||
def self.included(base)
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
after_create :send_messenger_create
|
||||
after_update :send_messenger_update
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_contact] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_contact_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless RedmineMessenger.settings[:post_contact_updates] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_contact_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless Contact.included_modules.include? RedmineMessenger::Patches::ContactPatch
|
||||
Contact.send(:include, RedmineMessenger::Patches::ContactPatch)
|
||||
end
|
||||
51
lib/redmine_messenger/patches/db_entry_patch.rb
Normal file
51
lib/redmine_messenger/patches/db_entry_patch.rb
Normal file
@@ -0,0 +1,51 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
module RedmineMessenger
|
||||
module Patches
|
||||
module DbEntryPatch
|
||||
def self.included(base)
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
after_create :send_messenger_create
|
||||
after_update :send_messenger_update
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_db] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_db_entry_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless RedmineMessenger.settings[:post_db_updates] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_db_entry_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless DbEntry.included_modules.include? RedmineMessenger::Patches::DbEntryPatch
|
||||
DbEntry.send(:include, RedmineMessenger::Patches::DbEntryPatch)
|
||||
end
|
||||
@@ -7,7 +7,7 @@ module RedmineMessenger
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
after_create :send_messenger_create
|
||||
after_save :send_messenger_save
|
||||
after_update :send_messenger_update
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,7 +23,9 @@ module RedmineMessenger
|
||||
msg = "[#{ERB::Util.html_escape(project)}] #{ERB::Util.html_escape(author)} created <#{Messenger.object_url(self)}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions description if RedmineMessenger.settings[:auto_mentions] == '1'}"
|
||||
|
||||
attachment = {}
|
||||
attachment[:text] = ERB::Util.html_escape(description) if description && RedmineMessenger.settings[:new_include_description] == '1'
|
||||
if description && RedmineMessenger.settings[:new_include_description] == '1'
|
||||
attachment[:text] = ERB::Util.html_escape(description)
|
||||
end
|
||||
attachment[:fields] = [{
|
||||
title: I18n.t(:field_status),
|
||||
value: ERB::Util.html_escape(status.to_s),
|
||||
@@ -49,7 +51,7 @@ module RedmineMessenger
|
||||
Messenger.speak msg, channels, attachment, url
|
||||
end
|
||||
|
||||
def send_messenger_save
|
||||
def send_messenger_update
|
||||
return if current_journal.nil?
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -67,7 +69,8 @@ module RedmineMessenger
|
||||
if current_journal.notes && RedmineMessenger.settings[:updated_include_description] == '1'
|
||||
attachment[:text] = ERB::Util.html_escape(current_journal.notes)
|
||||
end
|
||||
attachment[:fields] = current_journal.details.map { |d| Messenger.detail_to_field d }
|
||||
fields = current_journal.details.map { |d| Messenger.detail_to_field d }
|
||||
attachment[:fields] = fields if fields.any?
|
||||
|
||||
Messenger.speak msg, channels, attachment, url
|
||||
end
|
||||
@@ -76,6 +79,6 @@ module RedmineMessenger
|
||||
end
|
||||
end
|
||||
|
||||
unless Issue.included_modules.include? RedmineMessenger::Patches::IssuePatch
|
||||
Issue.send(:include, RedmineMessenger::Patches::IssuePatch)
|
||||
unless WikiPage.included_modules.include? RedmineMessenger::Patches::WikiPagePatch
|
||||
WikiPage.send(:include, RedmineMessenger::Patches::WikiPagePatch)
|
||||
end
|
||||
|
||||
51
lib/redmine_messenger/patches/password_patch.rb
Normal file
51
lib/redmine_messenger/patches/password_patch.rb
Normal file
@@ -0,0 +1,51 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
module RedmineMessenger
|
||||
module Patches
|
||||
module PasswordPatch
|
||||
def self.included(base)
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
after_create :send_messenger_create
|
||||
after_update :send_messenger_update
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_password] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_password_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless RedmineMessenger.settings[:post_password_updates] == '1'
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_password_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless Password.included_modules.include? RedmineMessenger::Patches::PasswordPatch
|
||||
Password.send(:include, RedmineMessenger::Patches::PasswordPatch)
|
||||
end
|
||||
58
lib/redmine_messenger/patches/wiki_page_patch.rb
Normal file
58
lib/redmine_messenger/patches/wiki_page_patch.rb
Normal file
@@ -0,0 +1,58 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
module RedmineMessenger
|
||||
module Patches
|
||||
module WikiPagePatch
|
||||
def self.included(base)
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
after_create :send_messenger_create
|
||||
after_update :send_messenger_update
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_wiki] == '1'
|
||||
|
||||
user = User.current
|
||||
project_url = "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>"
|
||||
page_url = "<#{Messenger.object_url self}|#{title}>"
|
||||
comment = "[#{project_url}] #{page_url} created by *#{user}*"
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak comment, channels, nil, url
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless RedmineMessenger.settings[:post_wiki_updates] == '1'
|
||||
|
||||
user = content.author
|
||||
project_url = "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>"
|
||||
page_url = "<#{Messenger.object_url self}|#{title}>"
|
||||
comment = "[#{project_url}] #{page_url} updated by *#{user}*"
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
|
||||
attachment = nil
|
||||
unless content.comments.empty?
|
||||
attachment = {}
|
||||
attachment[:text] = ERB::Util.html_escape(content.comments.to_s)
|
||||
end
|
||||
|
||||
Messenger.speak comment, channels, attachment, url
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless Issue.included_modules.include? RedmineMessenger::Patches::IssuePatch
|
||||
Issue.send(:include, RedmineMessenger::Patches::IssuePatch)
|
||||
end
|
||||
Reference in New Issue
Block a user