From bc90129af2e8bce2d227b7d3183c8e159c61808b Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Thu, 2 Oct 2025 15:45:09 +0200 Subject: [PATCH] Use frame based pagination for the users timeline too --- app/controllers/users_controller.rb | 10 +++++++++- app/views/events/event/_layout.html.erb | 2 +- app/views/users/_activity_timeline.html.erb | 11 +++++++++++ app/views/users/show.html.erb | 5 +---- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 app/views/users/_activity_timeline.html.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d066632bd..11b793b17 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -24,7 +24,7 @@ class UsersController < ApplicationController def show @filter = Current.user.filters.new(creator_ids: [ @user.id ]) - @day_timeline = Current.user.timeline_for(Time.current, filter: @filter) + @day_timeline = Current.user.timeline_for(day_param, filter: @filter) end def update @@ -50,6 +50,14 @@ class UsersController < ApplicationController head :forbidden unless Current.user.can_change?(@user) end + def day_param + if params[:day].present? + Time.zone.parse(params[:day]) + else + Time.current + end + end + def user_params params.expect(user: [ :name, :email_address, :password, :avatar ]) end diff --git a/app/views/events/event/_layout.html.erb b/app/views/events/event/_layout.html.erb index 48b25d0bd..63f8e696d 100644 --- a/app/views/events/event/_layout.html.erb +++ b/app/views/events/event/_layout.html.erb @@ -1,6 +1,6 @@ <%= link_to event.notifiable_target, class: "event event--#{ event.action } #{ "golden-effect" if event.card.golden? } center-block flex flex-column full-width align-start justify-start position-relative", - style: "--card-color: #{ card.closed? ? "var(--color-card-complete)" : card.color };", + style: "--card-color: #{ card.closed? ? "var(--color-card-complete)" : card.color };", target: "_top", data: { related_element_target: "related", related_element_group_value: card.id, action: "mouseover->related-element#highlight mouseout->related-element#unhighlight" } do %> diff --git a/app/views/users/_activity_timeline.html.erb b/app/views/users/_activity_timeline.html.erb new file mode 100644 index 000000000..4bb6890de --- /dev/null +++ b/app/views/users/_activity_timeline.html.erb @@ -0,0 +1,11 @@ +
+<%= day_timeline_pagination_frame_tag day_timeline do %> + <%= render "events/day", day_timeline: day_timeline %> + + <%= link_to "Load more...", user_path(user, day: day_timeline.next_day.strftime("%Y-%m-%d"), **filter.as_params), + data: { frame: day_timeline_pagination_frame_id_for(day_timeline.next_day), pagination_target: "paginationLink" } %> + <% end %> +
+ + + diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 6ae8f520c..9e27338c3 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -50,7 +50,4 @@

<%= "What #{ Current.user == @user ? "have you" : "has #{ @user.first_name }" } been up to?" %>

-
- <%= render "events/day", day_timeline: @day_timeline %> -
-<%= event_next_page_link(@day_timeline.next_day) %> +<%= render "users/activity_timeline", user: @user, day_timeline: @day_timeline, filter: @filter %>