Switch from user defined project fields to project settings
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
Rails.configuration.to_prepare do
|
||||
require_dependency 'projects_helper'
|
||||
|
||||
# Patches
|
||||
require_dependency 'redmine_messenger/patches/issue_patch'
|
||||
require_dependency 'redmine_messenger/patches/wiki_page_patch'
|
||||
require_dependency 'redmine_messenger/patches/projects_helper_patch'
|
||||
|
||||
require 'redmine_messenger/patches/contact_patch' if RedmineMessenger::REDMINE_CONTACTS_SUPPORT
|
||||
require 'redmine_messenger/patches/db_entry_patch' if RedmineMessenger::REDMINE_DB_SUPPORT
|
||||
|
||||
@@ -9,10 +9,9 @@ module RedmineMessenger
|
||||
|
||||
channels = Messenger.channels_for_project issue.project
|
||||
url = Messenger.url_for_project issue.project
|
||||
post_private_issues = Messenger.post_private_issues_for_project(issue.project)
|
||||
|
||||
return unless channels.present? && url && issue.save
|
||||
return if issue.is_private? && post_private_issues != '1'
|
||||
return if issue.is_private? && !Messenger.setting_for_project(project, :post_private_issues)
|
||||
|
||||
msg = "[#{ERB::Util.html_escape(issue.project)}] #{ERB::Util.html_escape(journal.user.to_s)} updated <#{Messenger.object_url issue}|#{ERB::Util.html_escape(issue)}>"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ module RedmineMessenger
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_contact] == '1'
|
||||
return unless Messenger.setting_for_project(project, :post_contact)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -21,14 +21,14 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_contact_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{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'
|
||||
return unless Messenger.setting_for_project(project, :post_contact_updates)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -36,7 +36,7 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_contact_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
|
||||
@@ -13,7 +13,7 @@ module RedmineMessenger
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_db] == '1'
|
||||
return unless Messenger.setting_for_project(project, :post_db)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -21,14 +21,14 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_db_entry_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{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'
|
||||
return unless Messenger.setting_for_project(project, :post_db_updates)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -36,7 +36,7 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_db_entry_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
|
||||
@@ -15,15 +15,14 @@ module RedmineMessenger
|
||||
def send_messenger_create
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
post_private_issues = Messenger.post_private_issues_for_project(project)
|
||||
|
||||
return unless channels.present? && url
|
||||
return if is_private? && post_private_issues != '1'
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_issues)
|
||||
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
attachment = {}
|
||||
if description.present? && RedmineMessenger.settings[:new_include_description] == '1'
|
||||
if description.present? && Messenger.setting_for_project(project, :new_include_description)
|
||||
attachment[:text] = ERB::Util.html_escape(description)
|
||||
end
|
||||
attachment[:fields] = [{
|
||||
@@ -49,7 +48,7 @@ module RedmineMessenger
|
||||
end
|
||||
|
||||
Messenger.speak(l(:label_messenger_issue_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
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'}",
|
||||
user: author),
|
||||
channels, attachment, url)
|
||||
@@ -60,26 +59,23 @@ module RedmineMessenger
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
post_private_issues = Messenger.post_private_issues_for_project(project)
|
||||
post_private_notes = Messenger.post_private_notes_for_project(project)
|
||||
|
||||
return unless channels.present? && url && RedmineMessenger.settings[:post_updates] == '1'
|
||||
return if is_private? && post_private_issues != '1'
|
||||
return if current_journal.private_notes? && post_private_notes != '1'
|
||||
return unless channels.present? && url && Messenger.setting_for_project(project, :post_updates)
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_issues)
|
||||
return if current_journal.private_notes? && !Messenger.setting_for_project(project, :post_private_notes)
|
||||
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
attachment = {}
|
||||
if current_journal.notes.present? &&
|
||||
RedmineMessenger.settings[:updated_include_description] == '1'
|
||||
if current_journal.notes.present? && Messenger.setting_for_project(project, :updated_include_description)
|
||||
attachment[:text] = ERB::Util.html_escape(current_journal.notes)
|
||||
end
|
||||
fields = current_journal.details.map { |d| Messenger.detail_to_field d }
|
||||
attachment[:fields] = fields if fields.any?
|
||||
|
||||
Messenger.speak(l(:label_messenger_issue_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(self)}>#{Messenger.mentions current_journal.notes if RedmineMessenger.settings[:auto_mentions] == '1'}",
|
||||
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)}",
|
||||
user: current_journal.user),
|
||||
channels, attachment, url)
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ module RedmineMessenger
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_password] == '1'
|
||||
return unless Messenger.setting_for_project(project, :post_password)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -21,14 +21,14 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_password_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{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'
|
||||
return unless Messenger.setting_for_project(project, :post_password_updates)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -36,7 +36,7 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_password_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
|
||||
48
lib/redmine_messenger/patches/projects_helper_patch.rb
Normal file
48
lib/redmine_messenger/patches/projects_helper_patch.rb
Normal file
@@ -0,0 +1,48 @@
|
||||
# Redmine Messenger plugin for Redmine
|
||||
|
||||
require_dependency 'projects_helper'
|
||||
|
||||
module RedmineMessenger
|
||||
module Patches
|
||||
module ProjectsHelperPatch
|
||||
def self.included(base)
|
||||
base.send(:include, InstanceMethods)
|
||||
base.class_eval do
|
||||
alias_method_chain :project_settings_tabs, :messenger
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def project_messenger_options(active)
|
||||
options_for_select({ l(:label_messenger_settings_default) => 0,
|
||||
l(:label_messenger_settings_disabled) => 1,
|
||||
l(:label_messenger_settings_enabled) => 2 }, active)
|
||||
end
|
||||
|
||||
def project_settings_tabs_with_messenger
|
||||
tabs = project_settings_tabs_without_messenger
|
||||
action = { name: 'messenger',
|
||||
controller: 'messenger_settings',
|
||||
action: :show,
|
||||
partial: 'messenger_settings/show',
|
||||
label: :label_messenger }
|
||||
|
||||
tabs << action if User.current.allowed_to?(:manage_messenger, @project)
|
||||
tabs
|
||||
end
|
||||
|
||||
def project_setting_messenger_default_value(value)
|
||||
if RedmineMessenger.settings[value] == '1'
|
||||
l(:label_messenger_settings_enabled)
|
||||
else
|
||||
l(:label_messenger_settings_disabled)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
unless ProjectsHelper.included_modules.include?(RedmineMessenger::Patches::ProjectsHelperPatch)
|
||||
ProjectsHelper.send(:include, RedmineMessenger::Patches::ProjectsHelperPatch)
|
||||
end
|
||||
@@ -13,7 +13,7 @@ module RedmineMessenger
|
||||
|
||||
module InstanceMethods
|
||||
def send_messenger_create
|
||||
return unless RedmineMessenger.settings[:post_wiki] == '1'
|
||||
return unless Messenger.setting_for_project(project, :post_wiki)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -21,14 +21,14 @@ module RedmineMessenger
|
||||
|
||||
return unless channels.present? && url
|
||||
Messenger.speak(l(:label_messenger_wiki_created,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{title}>",
|
||||
user: User.current),
|
||||
channels, nil, url)
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless RedmineMessenger.settings[:post_wiki_updates] == '1'
|
||||
return unless Messenger.setting_for_project(project, :post_wiki_updates)
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
@@ -43,7 +43,7 @@ module RedmineMessenger
|
||||
end
|
||||
|
||||
Messenger.speak(l(:label_messenger_wiki_updated,
|
||||
project_url: "<#{Messenger.object_url self}|#{ERB::Util.html_escape(project)}>",
|
||||
project_url: "<#{Messenger.object_url project}|#{ERB::Util.html_escape(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{title}>",
|
||||
user: content.author),
|
||||
channels, attachment, url)
|
||||
|
||||
Reference in New Issue
Block a user