Smoosh empty days together

This commit is contained in:
Kevin McConnell
2025-01-27 15:36:29 +00:00
parent 3f3b5f3a61
commit 1184ea8cf8
4 changed files with 45 additions and 16 deletions
+11 -3
View File
@@ -3,7 +3,7 @@ class EventsController < ApplicationController
def index
@events = unique_events_by_hour_and_column
@next_day = @activity_day.yesterday.strftime("%Y-%m-%d")
@next_day = latest_event_before_today&.created_at
end
private
@@ -12,11 +12,19 @@ class EventsController < ApplicationController
end
def events_by_hour_and_column
user_events.group_by { |event| [ event.created_at.hour, helpers.event_column(event) ] }
todays_events.group_by { |event| [ event.created_at.hour, helpers.event_column(event) ] }
end
def todays_events
user_events.where(created_at: @activity_day.all_day)
end
def latest_event_before_today
user_events.where(created_at: ...@activity_day.beginning_of_day).chronologically.last
end
def user_events
Event.where(bubble: user_bubbles).where(created_at: @activity_day.all_day)
Event.where(bubble: user_bubbles)
end
def user_bubbles
+4 -1
View File
@@ -29,7 +29,10 @@ module EventsHelper
end
def event_next_page_link(next_day)
tag.div id: "next_page", data: { controller: "fetch-on-visible", fetch_on_visible_url_value: events_path(day: next_day) }
if next_day
tag.div id: "next_page",
data: { controller: "fetch-on-visible", fetch_on_visible_url_value: events_path(day: next_day.strftime("%Y-%m-%d")) }
end
end
def render_event_grid_cells(day, columns: 4, rows: 24)
+15 -12
View File
@@ -1,18 +1,21 @@
<div class="events--day margin-block-end-double pad-block-end">
<h2 class="txt-x-large margin-block-end"><%= event_day_title(activity_day) %></h2>
<% if events.any? %>
<h2 class="txt-x-large margin-block-end"><%= event_day_title(activity_day) %></h2>
<div class="center events">
<%= render_column_headers %>
<%= render_event_grid_cells(activity_day) %>
<%= render_time_labels(activity_day) %>
<div class="center events">
<%= render_column_headers %>
<%= render_event_grid_cells(activity_day) %>
<%= render_time_labels(activity_day) %>
<% events.each do | hour_column, cluster| %>
<%= event_cluster_tag(*hour_column) do %>
<%= render cluster %>
<% events.each do | hour_column, cluster| %>
<%= event_cluster_tag(*hour_column) do %>
<%= render cluster %>
<% end %>
<% end %>
<% end %>
</div>
</div>
<p class="events--none txt-align-center">No activity for this day.</p>
<%= render "events/empty_days", earliest: next_day&.tomorrow&.beginning_of_day, latest: activity_day.yesterday.beginning_of_day %>
<% else %>
<%= render "events/empty_days", earliest: next_day&.tomorrow&.beginning_of_day, latest: activity_day.beginning_of_day %>
<% end %>
</div>
+15
View File
@@ -0,0 +1,15 @@
<% if earliest.present? %>
<% if earliest == latest %>
<div class="events--none txt-align-center">
<h2><%= event_day_title(earliest) %></h2>
<p>No activity</p>
</div>
<% elsif earliest < latest %>
<div class="events--none txt-align-center">
<h2><%= event_day_title(earliest) %> - <%= event_day_title(latest) %></h2>
<p>No activity for <%= (latest - earliest).seconds.in_days.round + 1 %> days</p>
</div>
<% end %>
<% else %>
<p class="events--none txt-align-center">No more activity.</p>
<% end %>