diff options
| -rwxr-xr-x | bin/photoalbum | 14 | ||||
| -rw-r--r-- | share/templates/default/details.tmpl | 6 | ||||
| -rw-r--r-- | src/lib/album.source.sh | 14 | ||||
| -rwxr-xr-x | tests/cli.sh | 19 |
4 files changed, 47 insertions, 6 deletions
diff --git a/bin/photoalbum b/bin/photoalbum index 95e03c5..0fc3912 100755 --- a/bin/photoalbum +++ b/bin/photoalbum @@ -1780,18 +1780,30 @@ render_view_redirects() { template redirect "$prevredirect.html" \ html_dir "$html_dir" \ redirect_page "$(( page - 1 ))-${MAXPREVIEWS}" + template redirect "$prevredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page "$(( page - 1 ))-${MAXPREVIEWS}-details" if (( page == max_page )); then template redirect "0-$MAXPREVIEWS.html" \ html_dir "$html_dir" \ redirect_page "${page}-$lastview" + template redirect "0-$MAXPREVIEWS-details.html" \ + html_dir "$html_dir" \ + redirect_page "${page}-$lastview-details" template redirect "$nextredirect.html" \ html_dir "$html_dir" \ redirect_page '1-1' + template redirect "$nextredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page '1-1-details' else template redirect "$nextredirect.html" \ html_dir "$html_dir" \ redirect_page "$(( page + 1 ))-1" + template redirect "$nextredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page "$(( page + 1 ))-1-details" fi done } @@ -2236,7 +2248,7 @@ dry_run() { if (( image_count > 0 )); then details_count=$image_count page_count=$(( (image_count + MAXPREVIEWS - 1) / MAXPREVIEWS )) - redirect_count=$(( page_count * 2 + 1 )) + redirect_count=$(( page_count * 4 + 1 )) fi printf 'Dry run: no files will be written.\n' diff --git a/share/templates/default/details.tmpl b/share/templates/default/details.tmpl index be2c47d..f8e09d3 100644 --- a/share/templates/default/details.tmpl +++ b/share/templates/default/details.tmpl @@ -8,14 +8,14 @@ cat <<END <div class='view'> <div class="details-layout"> <div class="details-photo-column"> - <a class="details-photo-link" href="${render_page_num_html}-${render_preview_num_html}.html"> + <a class="details-photo-link" href="${render_page_num_html}-${render_view_next_html}-details.html"> <img class='view details-photo ${render_animation_class_html}' border='0' src='${render_backhref_html}/${render_photos_dir_html}/${render_photo_html}'${render_exif_tooltip_attr} /> </a> <div class="navigator details-navigator"> - <a href="${render_page_num_html}-${render_view_prev_html}.html" class="arrow">⇐</a> + <a href="${render_page_num_html}-${render_view_prev_html}-details.html" class="arrow">⇐</a> <a href="${render_page_num_html}-${render_preview_num_html}.html">Image view</a> | <a href ='${render_backhref_html}/${render_photos_dir_html}/${render_photo_html}'>Direct link</a> - <a href="${render_page_num_html}-${render_view_next_html}.html" class="arrow">⇒</a> + <a href="${render_page_num_html}-${render_view_next_html}-details.html" class="arrow">⇒</a> </div> </div> <div class="details-panel"> diff --git a/src/lib/album.source.sh b/src/lib/album.source.sh index 5652a5e..ee693e0 100644 --- a/src/lib/album.source.sh +++ b/src/lib/album.source.sh @@ -482,18 +482,30 @@ render_view_redirects() { template redirect "$prevredirect.html" \ html_dir "$html_dir" \ redirect_page "$(( page - 1 ))-${MAXPREVIEWS}" + template redirect "$prevredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page "$(( page - 1 ))-${MAXPREVIEWS}-details" if (( page == max_page )); then template redirect "0-$MAXPREVIEWS.html" \ html_dir "$html_dir" \ redirect_page "${page}-$lastview" + template redirect "0-$MAXPREVIEWS-details.html" \ + html_dir "$html_dir" \ + redirect_page "${page}-$lastview-details" template redirect "$nextredirect.html" \ html_dir "$html_dir" \ redirect_page '1-1' + template redirect "$nextredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page '1-1-details' else template redirect "$nextredirect.html" \ html_dir "$html_dir" \ redirect_page "$(( page + 1 ))-1" + template redirect "$nextredirect-details.html" \ + html_dir "$html_dir" \ + redirect_page "$(( page + 1 ))-1-details" fi done } @@ -938,7 +950,7 @@ dry_run() { if (( image_count > 0 )); then details_count=$image_count page_count=$(( (image_count + MAXPREVIEWS - 1) / MAXPREVIEWS )) - redirect_count=$(( page_count * 2 + 1 )) + redirect_count=$(( page_count * 4 + 1 )) fi printf 'Dry run: no files will be written.\n' diff --git a/tests/cli.sh b/tests/cli.sh index 82fff5c..540065b 100755 --- a/tests/cli.sh +++ b/tests/cli.sh @@ -1670,7 +1670,7 @@ test_dry_run_reports_cli_overrides_without_writes() { " $dist_dir/[page]-[image]-details.html (6 details pages)" \ "$output" test::assert_contains \ - " $dist_dir/[redirect].html (7 navigation redirects)" \ + " $dist_dir/[redirect].html (13 navigation redirects)" \ "$output" test::assert_not_contains "$dist_dir/html" "$output" test::assert_contains " $dist_dir/incoming-<timestamp>.tar" "$output" @@ -2146,7 +2146,15 @@ test_integration_generates_album_outputs_and_cleans() { test::assert_contains '<div class="navigator details-navigator">' \ "$details_html" test::assert_contains "class='view details-photo" "$details_html" + test::assert_contains 'class="details-photo-link" href="1-2-details.html"' \ + "$details_html" + test::assert_contains 'href="1-0-details.html" class="arrow">⇐</a>' \ + "$details_html" test::assert_contains 'href="1-1.html">Image view</a>' "$details_html" + test::assert_contains 'href="1-2-details.html" class="arrow">⇒</a>' \ + "$details_html" + test::assert_not_contains 'class="details-photo-link" href="1-2.html"' \ + "$details_html" test::assert_contains '<title>Integration album</title>' "$top_index_html" test::assert_contains 'Enter album' "$top_index_html" test::assert_contains 'href="page-1.html"' "$top_index_html" @@ -2233,8 +2241,11 @@ test_render_view_redirects_uses_numeric_last_view() { render_view_redirects "$html_dir" rendered_view_pages rendered_last_views test::assert_file_exists "$dist_dir/1-11.html" + test::assert_file_exists "$dist_dir/1-11-details.html" redirect_html=$(<"$dist_dir/1-11.html") test::assert_contains 'url=2-1.html' "$redirect_html" + redirect_html=$(<"$dist_dir/1-11-details.html") + test::assert_contains 'url=2-1-details.html' "$redirect_html" test "$(<"$dist_dir/1-10.html")" = '' test::teardown } @@ -2281,10 +2292,16 @@ test_render_view_redirects_wraps_when_last_page_full() { test::assert_file_exists "$dist_dir/0-2.html" test::assert_file_exists "$dist_dir/3-3.html" + test::assert_file_exists "$dist_dir/0-2-details.html" + test::assert_file_exists "$dist_dir/3-3-details.html" prev_redirect_html=$(<"$dist_dir/0-2.html") next_redirect_html=$(<"$dist_dir/3-3.html") test::assert_contains 'url=3-2.html' "$prev_redirect_html" test::assert_contains 'url=1-1.html' "$next_redirect_html" + prev_redirect_html=$(<"$dist_dir/0-2-details.html") + next_redirect_html=$(<"$dist_dir/3-3-details.html") + test::assert_contains 'url=3-2-details.html' "$prev_redirect_html" + test::assert_contains 'url=1-1-details.html' "$next_redirect_html" test::assert_path_absent "$dist_dir/4-1.html" test::teardown } |
