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) 
|
[](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
|
## Screenshot
|
||||||
|
|
||||||
Mattermost output:
|
Mattermost output:
|
||||||
@@ -63,16 +78,6 @@ Uninstall ``redmine_messenger``
|
|||||||
Restart Redmine (application server)
|
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
|
## Credits
|
||||||
|
|
||||||
The source code is forked from
|
The source code is forked from
|
||||||
|
|||||||
@@ -98,13 +98,28 @@ class Messenger
|
|||||||
|
|
||||||
def self.setting_for_project(proj, config)
|
def self.setting_for_project(proj, config)
|
||||||
return false if proj.blank?
|
return false if proj.blank?
|
||||||
|
@setting_found = 0
|
||||||
# project based
|
# project based
|
||||||
pm = MessengerSetting.find_by(project_id: proj.id)
|
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 false if pm.send(config) == 1
|
||||||
return true if pm.send(config) == 2
|
return true if pm.send(config) == 2
|
||||||
# 0 = use system based settings
|
# 0 = use system based settings
|
||||||
end
|
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
|
# system based
|
||||||
return true if RedmineMessenger.settings[config].present? && RedmineMessenger.settings[config] == '1'
|
return true if RedmineMessenger.settings[config].present? && RedmineMessenger.settings[config] == '1'
|
||||||
false
|
false
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ de:
|
|||||||
label_messenger_issue_updated: "[%{project_url}] Ticket %{url} aktualisiert von *%{user}*"
|
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_created: "[%{project_url}] Kennwort %{url} erstellt von *%{user}*"
|
||||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} aktualisiert 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_default: Standardeinstellung
|
||||||
label_messenger_settings_disabled: Deaktiviert
|
label_messenger_settings_disabled: Deaktiviert
|
||||||
label_messenger_settings_enabled: Aktiviert
|
label_messenger_settings_enabled: Aktiviert
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ en:
|
|||||||
label_messenger_issue_updated: "[%{project_url}] Issue %{url} updated by *%{user}*"
|
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_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
|
||||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated 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_default: System default
|
||||||
label_messenger_settings_disabled: Disabled
|
label_messenger_settings_disabled: Disabled
|
||||||
label_messenger_settings_enabled: Enabled
|
label_messenger_settings_enabled: Enabled
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ module RedmineMessenger
|
|||||||
end
|
end
|
||||||
|
|
||||||
def project_setting_messenger_default_value(value)
|
def project_setting_messenger_default_value(value)
|
||||||
if RedmineMessenger.settings[value] == '1'
|
if Messenger.default_project_setting(@project, value)
|
||||||
l(:label_messenger_settings_enabled)
|
l(:label_messenger_settings_enabled)
|
||||||
else
|
else
|
||||||
l(:label_messenger_settings_disabled)
|
l(:label_messenger_settings_disabled)
|
||||||
|
|||||||
Reference in New Issue
Block a user