mirror of
https://github.com/indentlabs/notebook.git
synced 2025-10-26 11:19:22 +00:00
24 lines
828 B
Ruby
24 lines
828 B
Ruby
class NotificationsController < ApplicationController
|
|
def index
|
|
@notifications = current_user.notifications.order('happened_at DESC').limit(100)
|
|
end
|
|
|
|
def show
|
|
notification = Notification.find_by(id: params[:id])
|
|
return redirect_to root_path unless notification.present?
|
|
return redirect_to root_path unless user_signed_in? && notification.user == current_user
|
|
|
|
# Mark this notification as read
|
|
notification.update(viewed_at: DateTime.current) unless notification.viewed_at?
|
|
|
|
# Redirect to the notification's link
|
|
redirect_to notification.passthrough_link
|
|
end
|
|
|
|
def mark_all_read
|
|
current_user.notifications.where(viewed_at: nil).update_all(viewed_at: DateTime.current)
|
|
|
|
redirect_back(fallback_location: root_path, notice: "Your notifications have all been marked read.")
|
|
end
|
|
end
|