debian-mirror-gitlab/app/helpers/notifications_helper.rb

87 lines
2.4 KiB
Ruby
Raw Normal View History

2014-09-02 18:07:02 +05:30
module NotificationsHelper
2015-09-11 14:41:01 +05:30
include IconsHelper
2016-06-02 11:05:42 +05:30
def notification_icon_class(level)
case level.to_sym
when :disabled
'microphone-slash'
when :participating
'volume-up'
when :watch
'eye'
when :mention
'at'
when :global
'globe'
2014-09-02 18:07:02 +05:30
end
end
2015-09-25 12:07:36 +05:30
2016-06-02 11:05:42 +05:30
def notification_icon(level, text = nil)
icon("#{notification_icon_class(level)} fw", text: text)
2015-09-25 12:07:36 +05:30
end
2016-06-02 11:05:42 +05:30
def notification_title(level)
case level.to_sym
when :participating
'Participate'
when :mention
'On mention'
else
level.to_s.titlecase
2015-11-26 14:37:03 +05:30
end
end
def notification_description(level)
case level.to_sym
when :participating
2016-06-22 15:30:34 +05:30
'You will only receive notifications for threads you have participated in'
when :mention
'You will receive notifications only for comments in which you were @mentioned'
when :watch
'You will receive notifications for any activity'
when :disabled
'You will not get any notifications via email'
when :global
'Use your global notification setting'
2016-06-22 15:30:34 +05:30
when :custom
'You will only receive notifications for the events you choose'
end
end
2016-06-02 11:05:42 +05:30
def notification_list_item(level, setting)
title = notification_title(level)
data = {
notification_level: level,
notification_title: title
}
2015-09-25 12:07:36 +05:30
content_tag(:li, role: "menuitem") do
link_to '#', class: "update-notification #{('is-active' if setting.level == level)}", data: data do
link_output = content_tag(:strong, title, class: 'dropdown-menu-inner-title')
link_output << content_tag(:span, notification_description(level), class: 'dropdown-menu-inner-content')
end
end
end
2016-06-22 15:30:34 +05:30
# Identifier to trigger individually dropdowns and custom settings modals in the same view
def notifications_menu_identifier(type, notification_setting)
"#{type}-#{notification_setting.user_id}-#{notification_setting.source_id}-#{notification_setting.source_type}"
end
2016-06-22 15:30:34 +05:30
# Create hidden field to send notification setting source to controller
def hidden_setting_source_input(notification_setting)
return unless notification_setting.source_type
2016-08-24 12:49:21 +05:30
hidden_field_tag "#{notification_setting.source_type.downcase}_id", notification_setting.source_id
2015-09-25 12:07:36 +05:30
end
2017-08-17 22:00:37 +05:30
def notification_event_name(event)
case event
when :success_pipeline
'Successful pipeline'
else
event.to_s.humanize
end
end
2014-09-02 18:07:02 +05:30
end