Parent project settings fix
This commit is contained in:
25
README.md
25
README.md
@@ -4,6 +4,21 @@ This plugin posts updates to issues in your Redmine installation to [Slack](http
|
||||
|
||||
[](https://gemnasium.com/github.com/AlphaNodes/redmine_messenger) 
|
||||
|
||||
## Features
|
||||
|
||||
* Post information to messenger channel
|
||||
* post issue updates
|
||||
* post private issue updates
|
||||
* display watchers
|
||||
* convert username to mentions
|
||||
* post wiki updates
|
||||
* post db entry (if redmine_db is installed) updates
|
||||
* post password (if redmine_passwords is installed) updates
|
||||
* post contact (if redmine_contacts is installed) updates
|
||||
* overwrite messenger settings at project level
|
||||
* parent project support (inherit messenger settings from parent project)
|
||||
* multiple channel support (define one or more channels to deliver note)
|
||||
|
||||
## Screenshot
|
||||
|
||||
Mattermost output:
|
||||
@@ -63,16 +78,6 @@ Uninstall ``redmine_messenger``
|
||||
Restart Redmine (application server)
|
||||
|
||||
|
||||
## Customized Routing
|
||||
|
||||
You can also route messages to different channels on a per-project basis. To
|
||||
do this, create a project custom field (Administration > Custom fields > Project)
|
||||
named `Messenger Channel`. If no custom channel is defined for a project, the parent
|
||||
project will be checked (or the default will be used). To prevent all notifications
|
||||
from being sent for a project, set the custom channel to `-`.
|
||||
|
||||
For more information, see [https://www.redmine.org/projects/redmine/wiki/Plugins](https://www.redmine.org/projects/redmine/wiki/Plugins) (see also next section for an easy configuration demonstration).
|
||||
|
||||
## Credits
|
||||
|
||||
The source code is forked from
|
||||
|
||||
@@ -98,13 +98,28 @@ class Messenger
|
||||
|
||||
def self.setting_for_project(proj, config)
|
||||
return false if proj.blank?
|
||||
@setting_found = 0
|
||||
# project based
|
||||
pm = MessengerSetting.find_by(project_id: proj.id)
|
||||
unless pm.nil?
|
||||
unless pm.nil? || pm.send(config).zero?
|
||||
@setting_found = 1
|
||||
return false if pm.send(config) == 1
|
||||
return true if pm.send(config) == 2
|
||||
# 0 = use system based settings
|
||||
end
|
||||
# parent project based
|
||||
parent_setting = setting_for_project(proj.parent, config)
|
||||
return parent_setting if @setting_found == 1
|
||||
# system based
|
||||
return true if RedmineMessenger.settings[config].present? && RedmineMessenger.settings[config] == '1'
|
||||
false
|
||||
end
|
||||
|
||||
def self.default_project_setting(proj, config)
|
||||
if proj.present? && proj.parent.present?
|
||||
parent_setting = setting_for_project(proj.parent, config)
|
||||
return parent_setting if @setting_found == 1
|
||||
end
|
||||
# system based
|
||||
return true if RedmineMessenger.settings[config].present? && RedmineMessenger.settings[config] == '1'
|
||||
false
|
||||
|
||||
@@ -10,7 +10,7 @@ de:
|
||||
label_messenger_issue_updated: "[%{project_url}] Ticket %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_password_created: "[%{project_url}] Kennwort %{url} erstellt von *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_project_text_field_info: Leer lassen für Systemstandard. Anwenden um ihn zu deaktivieren.
|
||||
label_messenger_project_text_field_info: Leer lassen für Systemstandard.
|
||||
label_messenger_settings_default: Standardeinstellung
|
||||
label_messenger_settings_disabled: Deaktiviert
|
||||
label_messenger_settings_enabled: Aktiviert
|
||||
|
||||
@@ -10,7 +10,7 @@ en:
|
||||
label_messenger_issue_updated: "[%{project_url}] Issue %{url} updated by *%{user}*"
|
||||
label_messenger_password_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated by *%{user}*"
|
||||
label_messenger_project_text_field_info: Leave it blank for system default. Use - to disable it.
|
||||
label_messenger_project_text_field_info: Leave it blank for system default.
|
||||
label_messenger_settings_default: System default
|
||||
label_messenger_settings_disabled: Disabled
|
||||
label_messenger_settings_enabled: Enabled
|
||||
|
||||
@@ -32,7 +32,7 @@ module RedmineMessenger
|
||||
end
|
||||
|
||||
def project_setting_messenger_default_value(value)
|
||||
if RedmineMessenger.settings[value] == '1'
|
||||
if Messenger.default_project_setting(@project, value)
|
||||
l(:label_messenger_settings_enabled)
|
||||
else
|
||||
l(:label_messenger_settings_disabled)
|
||||
|
||||
Reference in New Issue
Block a user