Added email notification on topic assignment (#9)
* Added email notification on topic assignment * Added config options for assign mailer * Add Russian translation * Update server.ru.yml * Create client.ru.yml * Update server.ru.yml * Update client.ru.yml * Update client.ru.yml * Update client.ru.yml * Update server.en.yml * Removed override option for muted topics
This commit is contained in:
parent
7fd0cd43bf
commit
5758486167
|
@ -0,0 +1,16 @@
|
||||||
|
require_dependency 'email/message_builder'
|
||||||
|
|
||||||
|
class AssignMailer < ActionMailer::Base
|
||||||
|
include Email::BuildEmailHelper
|
||||||
|
|
||||||
|
def send_assignment(to_address, topic, assigned_by)
|
||||||
|
opts = {
|
||||||
|
template: 'assign_mailer',
|
||||||
|
topic_title: topic.title,
|
||||||
|
assignee_name: assigned_by.username,
|
||||||
|
topic_excerpt: topic.excerpt,
|
||||||
|
topic_link: "#{Discourse.base_url}/t/#{topic.slug}"
|
||||||
|
}
|
||||||
|
build_email(to_address, opts)
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,23 @@
|
||||||
|
ru:
|
||||||
|
js:
|
||||||
|
action_codes:
|
||||||
|
assigned: "назначил(а) ответственного %{who} %{when}"
|
||||||
|
unassigned: "снял(а) ответственного %{who} %{when}"
|
||||||
|
discourse_assign:
|
||||||
|
cant_act: "Вы не можете управлять флагами в теме, которая назначена на другого сотрудника"
|
||||||
|
assigned: "Назначенные темы"
|
||||||
|
assigned_to: "Назначено на"
|
||||||
|
assign_notification: "<i title='назначено' class='fa fa-user-plus'></i><p><span>{{username}}</span> {{description}}</p>"
|
||||||
|
unassign:
|
||||||
|
title: "Снять отв."
|
||||||
|
help: "Снять ответственного с темы"
|
||||||
|
assign:
|
||||||
|
title: "Назначить отв."
|
||||||
|
help: "Назначить ответственного за тему"
|
||||||
|
assign_modal:
|
||||||
|
title: "Назначьте ответственного в теме"
|
||||||
|
description: "Введите имя сотрудника, ответственного за тему"
|
||||||
|
assign: "Назначить"
|
||||||
|
claim:
|
||||||
|
title: "Пожаловаться"
|
||||||
|
help: "Назначить на себя"
|
|
@ -10,8 +10,20 @@ en:
|
||||||
unassign_on_group_archive: "When a message is archived by a group, unassign message (reassign if moved back to inbox)"
|
unassign_on_group_archive: "When a message is archived by a group, unassign message (reassign if moved back to inbox)"
|
||||||
unassign_on_close: "When a topic is closed unassign topic"
|
unassign_on_close: "When a topic is closed unassign topic"
|
||||||
assign_locks_flags: "When a topic is assigned to a staff member, its flags can only be handled by that person"
|
assign_locks_flags: "When a topic is assigned to a staff member, its flags can only be handled by that person"
|
||||||
|
assign_mailer_enabled: "When enabled, the assigned user will receive a notification email on each assignment"
|
||||||
discourse_assign:
|
discourse_assign:
|
||||||
assigned_to: "Topic assigned to @%{username}"
|
assigned_to: "Topic assigned to @%{username}"
|
||||||
unassigned: "Topic was unassigned"
|
unassigned: "Topic was unassigned"
|
||||||
already_claimed: "That topic has already been claimed."
|
already_claimed: "That topic has already been claimed."
|
||||||
flag_assigned: "Sorry, flag's topic is assigned to another user"
|
flag_assigned: "Sorry, flag's topic is assigned to another user"
|
||||||
|
assign_mailer:
|
||||||
|
title: "Assign Mailer"
|
||||||
|
subject_template: "[%{email_prefix}] %{assignee_name} assigned you to '%{topic_title}'!"
|
||||||
|
text_body_template: |
|
||||||
|
Hey, %{assignee_name} **assigned** you to a discussion
|
||||||
|
> **%{topic_title}**
|
||||||
|
>
|
||||||
|
> %{topic_excerpt}
|
||||||
|
|
||||||
|
If you're interested, click the link below:
|
||||||
|
[%{topic_link}](%{topic_link})
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
ru:
|
||||||
|
site_settings:
|
||||||
|
assign_enabled: "Включить возможность назначить ответственного за топик"
|
||||||
|
assigns_public: "Разрешить обычным пользователям видеть, на кого назначена тема"
|
||||||
|
assigns_user_url_path: "Путь к назначенным темам (используйте: {username} для подстановки имени)"
|
||||||
|
assigns_by_staff_mention: "Когда кто-то из персонала упоминает другого сотрудника в теме, то она закрепляется за тем сотрудником"
|
||||||
|
unassign_creates_tracking_post: "Когда включено, то при снятии ответственного с темы создается whisper (скрытый пост), чтобы можно было отследить изменение в топике"
|
||||||
|
assign_self_regex: "Шаблон, по которому топик будет автоматически закрепляться за текущим пользователем. Например, 'мой список'"
|
||||||
|
assign_other_regex: "Шаблон, по которому назначение будет происходить автоматически на сотрудника через @упоминание. Например, 'твой список'"
|
||||||
|
unassign_on_group_archive: "When a message is archived by a group, unassign message (reassign if moved back to inbox)"
|
||||||
|
unassign_on_close: "Снимать ответственного с темы, когда она закрывается"
|
||||||
|
assign_locks_flags: "Когда топик назначен на сотрудника, то флаги топика может редактировать только ответственный"
|
||||||
|
assign_mailer_enabled: "Когда включено, то при назначении ответственного за тему сотрудник получит письмо"
|
||||||
|
discourse_assign:
|
||||||
|
assigned_to: "Тема назначена на @%{username}"
|
||||||
|
unassigned: "Ответственный снят"
|
||||||
|
already_claimed: "На эту тему уже жаловались."
|
||||||
|
flag_assigned: "Извините, эта тема уже назначена на другого сотрудника."
|
||||||
|
assign_mailer:
|
||||||
|
title: "Assign Mailer"
|
||||||
|
subject_template: "[%{email_prefix}] %{assignee_name} назначил(а) Вас ответственным в теме '%{topic_title}'!"
|
||||||
|
text_body_template: |
|
||||||
|
Хэй, %{assignee_name} **назначил(а)** Вас ответственным в теме
|
||||||
|
> **%{topic_title}**
|
||||||
|
>
|
||||||
|
> %{topic_excerpt}
|
||||||
|
|
||||||
|
Если Вам интересно, то перейдите по ссылке ниже:
|
||||||
|
[%{topic_link}](%{topic_link})
|
|
@ -15,3 +15,4 @@ plugins:
|
||||||
assign_locks_flags:
|
assign_locks_flags:
|
||||||
default: true
|
default: true
|
||||||
client: true
|
client: true
|
||||||
|
assign_mailer_enabled: false
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
require_dependency 'email/sender'
|
||||||
|
|
||||||
class ::TopicAssigner
|
class ::TopicAssigner
|
||||||
def self.backfill_auto_assign
|
def self.backfill_auto_assign
|
||||||
staff_mention = User.where('moderator OR admin')
|
staff_mention = User.where('moderator OR admin')
|
||||||
|
@ -110,6 +112,13 @@ SQL
|
||||||
user_ids: staff_ids
|
user_ids: staff_ids
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if SiteSetting.assign_mailer_enabled
|
||||||
|
if !@topic.muted?(assign_to)
|
||||||
|
message = AssignMailer.send_assignment(assign_to.email, @topic, @assigned_by)
|
||||||
|
Email::Sender.new(message, :assign_message).send
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
UserAction.log_action!(
|
UserAction.log_action!(
|
||||||
action_type: UserAction::ASSIGNED,
|
action_type: UserAction::ASSIGNED,
|
||||||
user_id: assign_to.id,
|
user_id: assign_to.id,
|
||||||
|
|
Loading…
Reference in New Issue