debian-mirror-gitlab/app/helpers/system_note_helper.rb
2023-06-20 00:43:36 +05:30

73 lines
2.1 KiB
Ruby

# frozen_string_literal: true
module SystemNoteHelper
ICON_NAMES_BY_ACTION = {
'approved' => 'check',
'unapproved' => 'unapproval',
'cherry_pick' => 'cherry-pick-commit',
'commit' => 'commit',
'description' => 'pencil',
'merge' => 'merge',
'merged' => 'merge',
'opened' => 'issues',
'closed' => 'issue-close',
'time_tracking' => 'timer',
'assignee' => 'user',
'reviewer' => 'user',
'title' => 'pencil',
'task' => 'task-done',
'label' => 'label',
'cross_reference' => 'comment-dots',
'branch' => 'fork',
'confidential' => 'eye-slash',
'visible' => 'eye',
'milestone' => 'clock',
'discussion' => 'comment',
'moved' => 'arrow-right',
'outdated' => 'pencil',
'pinned_embed' => 'thumbtack',
'duplicate' => 'duplicate',
'locked' => 'lock',
'unlocked' => 'lock-open',
'due_date' => 'calendar',
'start_date_or_due_date' => 'calendar',
'health_status' => 'status-health',
'designs_added' => 'doc-image',
'designs_modified' => 'doc-image',
'designs_removed' => 'doc-image',
'designs_discussion_added' => 'doc-image',
'status' => 'status',
'alert_issue_added' => 'issues',
'new_alert_added' => 'warning',
'severity' => 'information-o',
'cloned' => 'documents',
'issue_type' => 'pencil',
'contact' => 'users',
'timeline_event' => 'clock',
'relate_to_child' => 'link',
'unrelate_from_child' => 'link',
'relate_to_parent' => 'link',
'unrelate_from_parent' => 'link'
}.freeze
def system_note_icon_name(note)
if note.system_note_metadata&.action == 'closed' && note.for_merge_request?
'merge-request-close'
else
ICON_NAMES_BY_ACTION[note.system_note_metadata&.action]
end
end
def icon_for_system_note(note)
icon_name = system_note_icon_name(note)
sprite_icon(icon_name) if icon_name
end
extend self
end
SystemNoteHelper.prepend_mod_with('SystemNoteHelper')
# The methods in `EE::SystemNoteHelper` should be available as both instance and
# class methods.
SystemNoteHelper.extend_mod_with('SystemNoteHelper')