Add changelog and db, passwords and contacts support

This commit is contained in:
Alexander Meindl
2017-05-10 16:57:33 +02:00
parent f1257faf83
commit 19dd1712db
13 changed files with 383 additions and 51 deletions

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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