Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83b53220d0 | ||
|
|
62503fe309 | ||
|
|
16c789ef2c | ||
|
|
c1d3257ca2 | ||
|
|
aea93ffbff |
4
.github/workflows/linters.yml
vendored
4
.github/workflows/linters.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Gemfile
|
||||
run: |
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.6
|
||||
ruby-version: 3.1
|
||||
bundler-cache: true
|
||||
|
||||
- name: Setup gems
|
||||
|
||||
14
.github/workflows/tests.yml
vendored
14
.github/workflows/tests.yml
vendored
@@ -12,16 +12,14 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
ruby: ['2.7', '2.6', '3.0']
|
||||
redmine: ['4.1-stable', '4.2-stable', 'master']
|
||||
ruby: ['2.7', '3.0', '3.1']
|
||||
redmine: ['4.2-stable', '5.0-stable', 'master']
|
||||
db: ['postgres', 'mysql']
|
||||
exclude:
|
||||
- ruby: '2.7'
|
||||
redmine: 4.1-stable
|
||||
- ruby: '3.0'
|
||||
redmine: 4.1-stable
|
||||
- ruby: '3.0'
|
||||
redmine: 4.2-stable
|
||||
- ruby: '3.1'
|
||||
redmine: 4.2-stable
|
||||
fail-fast: false
|
||||
|
||||
services:
|
||||
@@ -59,14 +57,14 @@ jobs:
|
||||
if: matrix.db == 'mysql'
|
||||
|
||||
- name: Checkout Redmine
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: redmine/redmine
|
||||
ref: ${{ matrix.redmine }}
|
||||
path: redmine
|
||||
|
||||
- name: Checkout redmine_messenger
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: AlphaNodes/redmine_messenger
|
||||
path: redmine/plugins/redmine_messenger
|
||||
|
||||
@@ -4,7 +4,7 @@ require:
|
||||
- rubocop-minitest
|
||||
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.6
|
||||
TargetRubyVersion: 2.7
|
||||
TargetRailsVersion: 5.2
|
||||
NewCops: enable
|
||||
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
1.0.14
|
||||
------
|
||||
|
||||
- Fix i18n bug: switch back to used language after sending message
|
||||
- Ruby 2.7 or higher is required. Maintained ruby versions are supported only, see <https://www.ruby-lang.org/en/downloads/>
|
||||
- Redmine 4.2 is required. Use git tag 1.0.15, if you use an older version.
|
||||
|
||||
1.0.13
|
||||
------
|
||||
|
||||
|
||||
@@ -72,13 +72,14 @@ Go to Rocket.Chat documentation [Incoming WebHook Scripting](https://rocket.chat
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* Redmine version >= 4.1.0
|
||||
* Ruby version >= 2.6.0
|
||||
* Redmine version >= 4.2.0
|
||||
* Ruby version >= 2.7.0
|
||||
|
||||
### Older versions
|
||||
|
||||
* If you want to use it with Redmine 3.x, use git tag 1.0.5
|
||||
* If you want to use it with Redmine 4.0, use git tag 1.0.7
|
||||
* If you want to use it with Redmine 4.1, use git tag 1.0.13
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
@@ -12,7 +12,7 @@ class MessengerSettingsController < ApplicationController
|
||||
else
|
||||
flash[:error] = setting.errors.full_messages.flatten.join "\n"
|
||||
respond_to do |format|
|
||||
format.html { redirect_back_or_default(settings_project_path(@project, tab: 'messenger')) }
|
||||
format.html { redirect_to settings_project_path(@project, tab: 'messenger') }
|
||||
format.api { render_validation_errors setting }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,56 +22,56 @@
|
||||
| (
|
||||
= l :label_messenger_default_not_visible
|
||||
| )
|
||||
= render partial: 'messenger_settings/messenger_text', locals: { f: f, mf: :messenger_icon, size: 60 }
|
||||
= render partial: 'messenger_settings/messenger_text', locals: { f: f, mf: :messenger_channel, size: 30 }
|
||||
= render partial: 'messenger_settings/messenger_text', locals: { f: f, mf: :messenger_username, size: 30 }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :messenger_verify_ssl }
|
||||
= render 'messenger_settings/messenger_text', f: f, mf: :messenger_icon, size: 60
|
||||
= render 'messenger_settings/messenger_text', f: f, mf: :messenger_channel, size: 30
|
||||
= render 'messenger_settings/messenger_text', f: f, mf: :messenger_username, size: 30
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :messenger_verify_ssl
|
||||
|
||||
fieldset#messenger_settings.box.tabular
|
||||
legend = l :label_issue_plural
|
||||
.info = t :messenger_issue_intro
|
||||
br
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :auto_mentions }
|
||||
= render partial: 'messenger_settings/messenger_text', locals: { f: f, mf: :default_mentions, size: 30 }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :display_watchers }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_updates }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :new_include_description }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :updated_include_description }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_private_issues }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_private_notes }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :messenger_direct_users_messages }
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :auto_mentions
|
||||
= render 'messenger_settings/messenger_text', f: f, mf: :default_mentions, size: 30
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :display_watchers
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_updates
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :new_include_description
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :updated_include_description
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_private_issues
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_private_notes
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :messenger_direct_users_messages
|
||||
|
||||
fieldset#messenger_settings.box.tabular
|
||||
legend = l :label_wiki
|
||||
.info = t :messenger_wiki_intro
|
||||
br
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_wiki }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_wiki_updates }
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_wiki
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_wiki_updates
|
||||
|
||||
- if RedmineMessenger::REDMINE_DB_SUPPORT && User.current.allowed_to?(:view_db_entries, @project)
|
||||
fieldset#messenger_settings.box.tabular
|
||||
legend = l :field_db_entries
|
||||
.info = t :messenger_db_intro
|
||||
br
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_db }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_db_updates }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_private_db }
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_db
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_db_updates
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_private_db
|
||||
|
||||
- if RedmineMessenger::REDMINE_CONTACTS_SUPPORT && User.current.allowed_to?(:view_contacts, @project)
|
||||
fieldset#messenger_settings.box.tabular
|
||||
legend = l :label_contact_plural
|
||||
.info = t :messenger_contacts_intro
|
||||
br
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_contact }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_contact_updates }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_private_contacts }
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_contact
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_contact_updates
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_private_contacts
|
||||
|
||||
- if Redmine::Plugin.installed?('redmine_passwords') && User.current.allowed_to?(:view_passwords, @project)
|
||||
fieldset#messenger_settings.box.tabular
|
||||
legend = l :label_password_plural
|
||||
.info = t :messenger_passwords_intro
|
||||
br
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_password }
|
||||
= render partial: 'messenger_settings/messenger_select', locals: { f: f, mf: :post_password_updates }
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_password
|
||||
= render 'messenger_settings/messenger_select', f: f, mf: :post_password_updates
|
||||
|
||||
= submit_tag l(:button_save)
|
||||
|
||||
2
init.rb
2
init.rb
@@ -10,7 +10,7 @@ Redmine::Plugin.register :redmine_messenger do
|
||||
description 'Messenger integration for Slack, Discord, Rocketchat and Mattermost support'
|
||||
version RedmineMessenger::VERSION
|
||||
|
||||
requires_redmine version_or_higher: '4.1.0'
|
||||
requires_redmine version_or_higher: '4.2.0'
|
||||
|
||||
permission :manage_messenger, projects: :settings, messenger_settings: :update
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RedmineMessenger
|
||||
VERSION = '1.0.13'
|
||||
VERSION = '1.0.14'
|
||||
REDMINE_CONTACTS_SUPPORT = Redmine::Plugin.installed? 'redmine_contacts'
|
||||
REDMINE_DB_SUPPORT = Redmine::Plugin.installed? 'redmine_db'
|
||||
|
||||
|
||||
@@ -17,36 +17,46 @@ module RedmineMessenger
|
||||
return unless Messenger.setting_for_project project, :post_contact
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_contacts)
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_contact_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless Messenger.setting_for_project project, :post_contact_updates
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_contacts)
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_contact_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,36 +17,46 @@ module RedmineMessenger
|
||||
return unless Messenger.setting_for_project project, :post_db
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_db)
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_db_entry_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless Messenger.setting_for_project project, :post_db_updates
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_db)
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_db_entry_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -26,43 +26,48 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
return if is_private? && !Messenger.setting_for_project(project, :post_private_issues)
|
||||
|
||||
set_language_if_valid Setting.default_language
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
attachment = {}
|
||||
if description.present? && Messenger.setting_for_project(project, :new_include_description)
|
||||
attachment[:text] = Messenger.markup_format description
|
||||
end
|
||||
attachment[:fields] = [{ title: I18n.t(:field_status),
|
||||
value: Messenger.markup_format(status.to_s),
|
||||
short: true },
|
||||
{ title: I18n.t(:field_priority),
|
||||
value: Messenger.markup_format(priority.to_s),
|
||||
short: true }]
|
||||
if assigned_to.present?
|
||||
attachment[:fields] << { title: I18n.t(:field_assigned_to),
|
||||
value: Messenger.markup_format(assigned_to.to_s),
|
||||
short: true }
|
||||
end
|
||||
attachment = {}
|
||||
if description.present? && Messenger.setting_for_project(project, :new_include_description)
|
||||
attachment[:text] = Messenger.markup_format description
|
||||
end
|
||||
attachment[:fields] = [{ title: I18n.t(:field_status),
|
||||
value: Messenger.markup_format(status.to_s),
|
||||
short: true },
|
||||
{ title: I18n.t(:field_priority),
|
||||
value: Messenger.markup_format(priority.to_s),
|
||||
short: true }]
|
||||
if assigned_to.present?
|
||||
attachment[:fields] << { title: I18n.t(:field_assigned_to),
|
||||
value: Messenger.markup_format(assigned_to.to_s),
|
||||
short: true }
|
||||
end
|
||||
|
||||
attachments.each do |att|
|
||||
attachment[:fields] << { title: I18n.t(:label_attachment),
|
||||
value: "<#{Messenger.object_url att}|#{ERB::Util.html_escape att.filename}>",
|
||||
short: true }
|
||||
end
|
||||
attachments.each do |att|
|
||||
attachment[:fields] << { title: I18n.t(:label_attachment),
|
||||
value: "<#{Messenger.object_url att}|#{ERB::Util.html_escape att.filename}>",
|
||||
short: true }
|
||||
end
|
||||
|
||||
if RedmineMessenger.setting?(:display_watchers) && watcher_users.count.positive?
|
||||
attachment[:fields] << {
|
||||
title: I18n.t(:field_watcher),
|
||||
value: Messenger.markup_format(watcher_users.join(', ')),
|
||||
short: true
|
||||
}
|
||||
end
|
||||
if RedmineMessenger.setting?(:display_watchers) && watcher_users.count.positive?
|
||||
attachment[:fields] << {
|
||||
title: I18n.t(:field_watcher),
|
||||
value: Messenger.markup_format(watcher_users.join(', ')),
|
||||
short: true
|
||||
}
|
||||
end
|
||||
|
||||
Messenger.speak l(:label_messenger_issue_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: author),
|
||||
channels, url, attachment: attachment, project: project
|
||||
Messenger.speak l(:label_messenger_issue_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: author),
|
||||
channels, url, attachment: attachment, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
@@ -81,29 +86,34 @@ module RedmineMessenger
|
||||
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
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
attachment = {}
|
||||
if Messenger.setting_for_project project, :updated_include_description
|
||||
attachment_text = Messenger.attachment_text_from_journal current_journal
|
||||
attachment[:text] = attachment_text if attachment_text.present?
|
||||
attachment = {}
|
||||
if Messenger.setting_for_project project, :updated_include_description
|
||||
attachment_text = Messenger.attachment_text_from_journal current_journal
|
||||
attachment[:text] = attachment_text if attachment_text.present?
|
||||
end
|
||||
|
||||
fields = current_journal.details.map { |d| Messenger.detail_to_field d, project }
|
||||
if current_journal.notes.present?
|
||||
fields << { title: I18n.t(:label_comment),
|
||||
value: Messenger.markup_format(current_journal.notes),
|
||||
short: false }
|
||||
end
|
||||
fields << { title: I18n.t(:field_is_private), short: true } if current_journal.private_notes?
|
||||
fields.compact!
|
||||
attachment[:fields] = fields if fields.any?
|
||||
|
||||
Messenger.speak l(:label_messenger_issue_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: current_journal.user),
|
||||
channels, url, attachment: attachment, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
|
||||
fields = current_journal.details.map { |d| Messenger.detail_to_field d, project }
|
||||
if current_journal.notes.present?
|
||||
fields << { title: I18n.t(:label_comment),
|
||||
value: Messenger.markup_format(current_journal.notes),
|
||||
short: false }
|
||||
end
|
||||
fields << { title: I18n.t(:field_is_private), short: true } if current_journal.private_notes?
|
||||
fields.compact!
|
||||
attachment[:fields] = fields if fields.any?
|
||||
|
||||
Messenger.speak l(:label_messenger_issue_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: current_journal.user),
|
||||
channels, url, attachment: attachment, project: project
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -17,36 +17,46 @@ module RedmineMessenger
|
||||
return unless Messenger.setting_for_project project, :post_password
|
||||
return if is_private?
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_password_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless Messenger.setting_for_project project, :post_password_updates
|
||||
return if is_private?
|
||||
|
||||
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.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_password_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,41 +16,51 @@ module RedmineMessenger
|
||||
def send_messenger_create
|
||||
return unless Messenger.setting_for_project project, :post_wiki
|
||||
|
||||
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_wiki_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_wiki_created,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: User.current),
|
||||
channels, url, project: project
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
|
||||
def send_messenger_update
|
||||
return unless Messenger.setting_for_project project, :post_wiki_updates
|
||||
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
channels = Messenger.channels_for_project project
|
||||
url = Messenger.url_for_project project
|
||||
|
||||
return unless channels.present? && url
|
||||
|
||||
attachment = nil
|
||||
if !content.nil? && content.comments.present?
|
||||
attachment = {}
|
||||
attachment[:text] = Messenger.markup_format content.comments.to_s
|
||||
end
|
||||
initial_language = ::I18n.locale
|
||||
begin
|
||||
set_language_if_valid Setting.default_language
|
||||
|
||||
Messenger.speak l(:label_messenger_wiki_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: content.author),
|
||||
channels, url, project: project, attachment: attachment
|
||||
attachment = nil
|
||||
if !content.nil? && content.comments.present?
|
||||
attachment = {}
|
||||
attachment[:text] = Messenger.markup_format content.comments.to_s
|
||||
end
|
||||
|
||||
Messenger.speak l(:label_messenger_wiki_updated,
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: content.author),
|
||||
channels, url, project: project, attachment: attachment
|
||||
ensure
|
||||
::I18n.locale = initial_language
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user