feat: Activity message for label addition & deletion (#1291)

Fixes: #1022
This commit is contained in:
Abhishek
2020-10-02 19:03:59 +08:00
committed by GitHub
parent 98cb09104e
commit 70f08103aa
3 changed files with 76 additions and 1 deletions

View File

@@ -156,6 +156,7 @@ class Conversation < ApplicationRecord
create_status_change_message(user_name) if saved_change_to_status?
create_assignee_change(user_name) if saved_change_to_assignee_id?
create_label_change(user_name) if saved_change_to_label_list?
end
def activity_message_params(content)
@@ -216,6 +217,32 @@ class Conversation < ApplicationRecord
messages.create(activity_message_params(content))
end
def create_label_change(user_name)
previous_labels, current_labels = previous_changes[:label_list]
return unless (previous_labels.is_a? Array) && (current_labels.is_a? Array)
create_label_added(user_name, current_labels - previous_labels)
create_label_removed(user_name, previous_labels - current_labels)
end
def create_label_added(user_name, labels = [])
return unless labels.size.positive?
params = { user_name: user_name, labels: labels.join(', ') }
content = I18n.t('conversations.activity.labels.added', **params)
messages.create(activity_message_params(content))
end
def create_label_removed(user_name, labels = [])
return unless labels.size.positive?
params = { user_name: user_name, labels: labels.join(', ') }
content = I18n.t('conversations.activity.labels.removed', **params)
messages.create(activity_message_params(content))
end
def mute_key
format('CONVERSATION::%<id>d::MUTED', id: id)
end