scinote-web/app/helpers/notifications_helper.rb

52 lines
1.7 KiB
Ruby
Raw Normal View History

module NotificationsHelper
def create_system_notification(title, message)
2016-10-03 21:12:48 +08:00
notification = Notification.new
notification.title = title
notification.message = message
notification.type_of = :system_message
notification.transaction do
User.where.not(confirmed_at: nil).find_each do |u|
UserNotification
.new(user: u, notification: notification, checked: false)
.save!
end
notification.save!
end
end
2016-10-05 16:52:27 +08:00
def send_email_notification(user, notification)
AppMailer.delay.notification(user, notification)
end
2016-11-07 22:31:06 +08:00
def generate_notification(user, target_user, team, role, project)
if team
title = I18n.t('notifications.unassign_user_from_team',
2016-11-08 18:20:14 +08:00
unassigned_user: target_user.name,
team: team.name,
2016-11-08 18:20:14 +08:00
unassigned_by_user: user.name)
title = I18n.t('notifications.assign_user_to_team',
2016-11-08 18:20:14 +08:00
assigned_user: target_user.name,
role: role,
team: team.name,
2016-11-08 18:20:14 +08:00
assigned_by_user: user.name) if role
message = "#{I18n.t('search.index.team')} #{team.name}"
2016-11-07 22:31:06 +08:00
elsif project
title = I18n.t('activities.unassign_user_from_project',
2016-11-07 22:33:21 +08:00
unassigned_user: target_user.full_name,
project: project.name,
unassigned_by_user: user.full_name)
2016-11-07 22:31:06 +08:00
message = "#{I18n.t('search.index.project')} #{@project.name}"
end
notification = Notification.create(
type_of: :assignment,
title: sanitize_input(title),
message: sanitize_input(message)
2016-11-07 22:31:06 +08:00
)
if target_user.assignments_notification
UserNotification.create(notification: notification, user: target_user)
end
end
end