feat: Activity message for label addition & deletion (#1291)
Fixes: #1022
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user