Merge branch 'ce-10609-system-notes-scoped-labels' into 'master'
Port of "Create system notes for scoped labels" See merge request gitlab-org/gitlab-ce!30250
This commit is contained in:
commit
e396f0bacb
|
@ -62,19 +62,27 @@ class LabelNote < Note
|
|||
end
|
||||
|
||||
def note_text(html: false)
|
||||
added = labels_str('added', label_refs_by_action('add', html))
|
||||
removed = labels_str('removed', label_refs_by_action('remove', html))
|
||||
added = labels_str(label_refs_by_action('add', html), prefix: 'added', suffix: added_suffix)
|
||||
removed = labels_str(label_refs_by_action('remove', html), prefix: removed_prefix)
|
||||
|
||||
[added, removed].compact.join(' and ')
|
||||
end
|
||||
|
||||
def removed_prefix
|
||||
'removed'
|
||||
end
|
||||
|
||||
def added_suffix
|
||||
''
|
||||
end
|
||||
|
||||
# returns string containing added/removed labels including
|
||||
# count of deleted labels:
|
||||
#
|
||||
# added ~1 ~2 + 1 deleted label
|
||||
# added 3 deleted labels
|
||||
# added ~1 ~2 labels
|
||||
def labels_str(prefix, label_refs)
|
||||
def labels_str(label_refs, prefix: '', suffix: '')
|
||||
existing_refs = label_refs.select { |ref| ref.present? }.sort
|
||||
refs_str = existing_refs.empty? ? nil : existing_refs.join(' ')
|
||||
|
||||
|
@ -84,9 +92,9 @@ class LabelNote < Note
|
|||
return unless refs_str || deleted_str
|
||||
|
||||
label_list_str = [refs_str, deleted_str].compact.join(' + ')
|
||||
suffix = 'label'.pluralize(deleted > 0 ? deleted : existing_refs.count)
|
||||
suffix += ' label'.pluralize(deleted > 0 ? deleted : existing_refs.count)
|
||||
|
||||
"#{prefix} #{label_list_str} #{suffix}"
|
||||
"#{prefix} #{label_list_str} #{suffix.squish}"
|
||||
end
|
||||
|
||||
def label_refs_by_action(action, html)
|
||||
|
|
|
@ -36,10 +36,9 @@ class ResourceLabelEvent < ApplicationRecord
|
|||
issue || merge_request
|
||||
end
|
||||
|
||||
# create same discussion id for all actions with the same user and time
|
||||
def discussion_id(resource = nil)
|
||||
strong_memoize(:discussion_id) do
|
||||
Digest::SHA1.hexdigest([self.class.name, created_at, user_id].join("-"))
|
||||
Digest::SHA1.hexdigest(discussion_id_key.join("-"))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -121,4 +120,8 @@ class ResourceLabelEvent < ApplicationRecord
|
|||
def resource_parent
|
||||
issuable.project || issuable.group
|
||||
end
|
||||
|
||||
def discussion_id_key
|
||||
[self.class.name, created_at, user_id]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue