mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-14 21:24:54 +08:00
71 lines
1.8 KiB
Ruby
71 lines
1.8 KiB
Ruby
class UserNotificationsController < ApplicationController
|
|
layout 'main'
|
|
|
|
def index
|
|
@last_notification_id = params[:from].to_i || 0
|
|
@per_page = Constants::ACTIVITY_AND_NOTIF_SEARCH_LIMIT
|
|
|
|
@notifications =
|
|
UserNotification.last_notifications(@current_user,
|
|
@last_notification_id,
|
|
@per_page + 1)
|
|
|
|
@more_notifications_url = ''
|
|
|
|
@overflown = @notifications.length > @per_page
|
|
|
|
@notifications =
|
|
UserNotification.last_notifications(@current_user,
|
|
@last_notification_id,
|
|
@per_page)
|
|
|
|
if @notifications.count > 0
|
|
@more_notifications_url = url_for(
|
|
controller: 'user_notifications',
|
|
action: 'index',
|
|
format: :json,
|
|
from: @notifications.last.id
|
|
)
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html
|
|
format.json do
|
|
render json: {
|
|
per_page: @per_page,
|
|
results_number: @notifications.length,
|
|
more_notifications_url: @more_notifications_url,
|
|
html: render_to_string(partial: 'list.html.erb')
|
|
}
|
|
end
|
|
end
|
|
UserNotification.seen_by_user(current_user)
|
|
end
|
|
|
|
def recent_notifications
|
|
@recent_notifications = UserNotification.recent_notifications(current_user)
|
|
|
|
respond_to do |format|
|
|
format.json do
|
|
render json: {
|
|
html: render_to_string(
|
|
partial: 'recent_notifications.html.erb'
|
|
)
|
|
}
|
|
end
|
|
end
|
|
UserNotification.seen_by_user(current_user)
|
|
end
|
|
|
|
def unseen_notification
|
|
@number = UserNotification.unseen_notification_count(current_user)
|
|
|
|
respond_to do |format|
|
|
format.json do
|
|
render json: {
|
|
notificationNmber: @number
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|