2
0
mirror of https://github.com/moebooru/moebooru synced 2025-08-22 09:57:31 +00:00

Store forum read time in html instead of cookie

This commit is contained in:
nanaya 2025-01-04 13:11:01 +09:00
parent d89839d079
commit f766aae6eb
4 changed files with 11 additions and 10 deletions

View File

@ -247,12 +247,6 @@ class ApplicationController < ActionController::Base
return if params[:format] == "xml" || params[:format] == "json" return if params[:format] == "xml" || params[:format] == "json"
cookies["forum_post_last_read_at"] = if @current_user.is_anonymous?
Time.now
else
@current_user.last_forum_topic_read_at || Time.at(0)
end.to_json
if !@current_user.is_anonymous? if !@current_user.is_anonymous?
cookies["user_id"] = @current_user.id.to_s cookies["user_id"] = @current_user.id.to_s

View File

@ -95,7 +95,7 @@ export default class Menu
@forumMenuItems ?= JSON.parse(document.getElementById("forum-posts-latest").text) @forumMenuItems ?= JSON.parse(document.getElementById("forum-posts-latest").text)
last_read = JSON.parse(Cookies.get('forum_post_last_read_at')) last_read = JSON.parse(document.getElementById('forum-post-last-read-at').text)
forum_menu_items = @forumMenuItems forum_menu_items = @forumMenuItems
forum_submenu = $('li.forum ul.submenu', @menu) forum_submenu = $('li.forum ul.submenu', @menu)
forum_items_start = forum_submenu.find('.forum-items-start').show() forum_items_start = forum_submenu.find('.forum-items-start').show()

View File

@ -91,4 +91,8 @@ class AnonymousUser
def blacklisted_tags_array def blacklisted_tags_array
CONFIG["default_blacklists"] CONFIG["default_blacklists"]
end end
def last_forum_topic_read_at
Time.now
end
end end

View File

@ -204,7 +204,10 @@
</div> </div>
<script id="forum-posts-latest" type="application/json"> <script id="forum-posts-latest" type="application/json">
<%= Rails.cache.fetch "forum_posts_latest_v3" do <%= Rails.cache.fetch "forum_posts_latest_v4" do
ForumPost.latest.map { |p| p.slice(:id, :pages, :title, :updated_at) }.to_json ForumPost.latest.map { |p| p.slice(:id, :pages, :title, :updated_at) }.to_json.html_safe
end.html_safe %> end %>
</script>
<script id="forum-post-last-read-at" type="application/json">
<%= (@current_user.last_forum_topic_read_at || Time.at(0)).to_json.html_safe %>
</script> </script>