summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/photoalbum14
-rw-r--r--share/templates/default/details.tmpl6
-rw-r--r--src/lib/album.source.sh14
-rwxr-xr-xtests/cli.sh19
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">&lArr;</a>
+ <a href="${render_page_num_html}-${render_view_prev_html}-details.html" class="arrow">&lArr;</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">&rArr;</a>
+ <a href="${render_page_num_html}-${render_view_next_html}-details.html" class="arrow">&rArr;</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">&lArr;</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">&rArr;</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
}