From a7c16b99a4284826ac5ac0ace4ee0f760a548ff4 Mon Sep 17 00:00:00 2001 From: Ken D'Ambrosio Date: Sun, 10 May 2026 14:38:04 +0000 Subject: Add slideshow: root-level, shuffle, fullscreen, click-to-album MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Root slideshow: all_media_entries walks the full media tree so /slideshow/ shows every photo across all albums; Slideshow button always appears on the root album page - Shuffle and Full screen checkboxes sit next to the Slideshow button on the album page; options pass as ?shuffle=1&fullscreen=1 URL params - Fullscreen uses a tap-to-activate overlay (browsers block auto-entry on page load); webkit-prefixed for Safari; ⛶ button and F key for mid-session toggle - Fullscreen mode hides controls, counter, caption bar, and site header - Exiting fullscreen auto-pauses so the current photo stays visible - Click/tap anywhere in the stage navigates to the photo's album lightbox; reads the live src attribute instead of ssIdx to avoid a race where ssIdx advances during the cross-fade while the old photo is still on screen - layout.erb excluded from slideshow (layout: false) so the site header never appears there - CSS cache-busted with ?v=2 Co-Authored-By: Claude Sonnet 4.6 --- views/album.erb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'views/album.erb') diff --git a/views/album.erb b/views/album.erb index 961b26a..c99ec3c 100644 --- a/views/album.erb +++ b/views/album.erb @@ -11,8 +11,10 @@

<%= @title %>

<% if @desc %>

<%= @desc %>

<% end %>
- <% if @entries.any? { |e| %i[image video].include?(e[:type]) } %> - Slideshow + <% if @rel.empty? ? @albums.any? : @entries.any? { |e| %i[image video].include?(e[:type]) } %> + Slideshow + + <% end %>
@@ -103,4 +105,4 @@ const ENTRIES = <%= @entries.map { |e| e.merge(src: "/media/#{file_rel}") }.to_json %>; - + -- cgit v1.2.3