From 3adeaa68af3bac73450a4156edb51fd1ec88347a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 15 Jun 2026 12:47:25 +0300 Subject: Add EXIF mouse-over tooltip to the normal image view The details view already showed a title="" hover summary (camera, aperture, ISO, shutter, date) on its image; the normal image view did not. Wire the same tooltip into view.tmpl: - render_view_page now computes the EXIF tooltip via photo_exif_tooltip_text (reusing the shared identify cache, so no extra ImageMagick work) and passes it as the exif_tooltip context var. - exif_tooltip is now a required render field for the view template too. - view.tmpl adds the title="" attribute to its when the summary is non-empty, mirroring details.tmpl (no title when there is no EXIF). - Tests: extend the EXIF render test to assert the view image carries the same tooltip, and update the required-context-vars expectation for view. Co-Authored-By: Claude Opus 4.8 --- src/lib/album.source.sh | 10 +++++++++- src/lib/template.source.sh | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/album.source.sh b/src/lib/album.source.sh index 57727d3..4914642 100644 --- a/src/lib/album.source.sh +++ b/src/lib/album.source.sh @@ -91,6 +91,7 @@ render_view_page() { local -r preview_num="$1"; shift local -r photo_file="$1"; shift local animation_class + local exif_tooltip_text template header "$page_num-$preview_num.html" \ html_dir "$html_dir" \ @@ -100,6 +101,12 @@ render_view_page() { show_header_bar 'no' animation_class=$(random_animation_css_class fast "$photo_file") + # Reuse the same EXIF tooltip as the details page so hovering the image in + # the normal view shows the camera/exposure summary (reads the shared + # identify cache, so no extra ImageMagick work). + exif_tooltip_text=$( + photo_exif_tooltip_text "$photo_file" "$INCOMING_DIR/$photo_file" + ) template view "$page_num-$preview_num.html" \ html_dir "$html_dir" \ backhref "$backhref" \ @@ -107,7 +114,8 @@ render_view_page() { page_num "$page_num" \ preview_num "$preview_num" \ photo "$photo_file" \ - animation_class "$animation_class" + animation_class "$animation_class" \ + exif_tooltip "$exif_tooltip_text" template footer "$page_num-$preview_num.html" \ html_dir "$html_dir" \ backhref "$backhref" \ diff --git a/src/lib/template.source.sh b/src/lib/template.source.sh index 8e5b93e..026e3ce 100644 --- a/src/lib/template.source.sh +++ b/src/lib/template.source.sh @@ -152,7 +152,7 @@ declare -ra TEMPLATE_RENDER_FIELD_SPECS=( 'render_current_date_text|current_date_html|||' 'render_enter_page_html|context_html|enter_page|enter_page|splash' 'render_exif_details_html|context_raw|exif_details|exif_details|details' - 'render_exif_tooltip_html|context_html|exif_tooltip|exif_tooltip|details' + 'render_exif_tooltip_html|context_html|exif_tooltip|exif_tooltip|details view' 'render_height_html|config_html|HEIGHT||' 'render_html_dir_html|context_html|html_dir|html_dir|*' 'render_maxpreviews_html|config_html|MAXPREVIEWS||' -- cgit v1.2.3