From 317a568521f1c9dea7324d529cbace9e1a8ddaa9 Mon Sep 17 00:00:00 2001 From: Luna D Date: Fri, 25 Mar 2022 17:02:19 +0100 Subject: [PATCH] fix navigation between images being borked --- lib/philomena_web/image_navigator.ex | 2 ++ lib/philomena_web/image_sorter.ex | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/philomena_web/image_navigator.ex b/lib/philomena_web/image_navigator.ex index a557ff3a..fce68944 100644 --- a/lib/philomena_web/image_navigator.ex +++ b/lib/philomena_web/image_navigator.ex @@ -9,6 +9,8 @@ defmodule PhilomenaWeb.ImageNavigator do } def find_consecutive(conn, image, compiled_query, compiled_filter) do + conn = update_in(conn.params, &Map.put_new(&1, "sf", "id")) + %{query: compiled_query, sorts: sorts} = ImageSorter.parse_sort(conn.params, compiled_query) sorts = diff --git a/lib/philomena_web/image_sorter.ex b/lib/philomena_web/image_sorter.ex index 83c78b80..ed422288 100644 --- a/lib/philomena_web/image_sorter.ex +++ b/lib/philomena_web/image_sorter.ex @@ -1,5 +1,6 @@ defmodule PhilomenaWeb.ImageSorter do @allowed_fields ~W( + id updated_at first_seen_at aspect_ratio @@ -26,6 +27,10 @@ defmodule PhilomenaWeb.ImageSorter do defp parse_sd(%{"sd" => sd}) when sd in ~W(asc desc), do: sd defp parse_sd(_params), do: "desc" + defp parse_sf(%{"sf" => sf}, sd, query) when sf == "id" do + %{query: query, sorts: [%{"id" => sd}]} + end + defp parse_sf(%{"sf" => sf}, sd, query) when sf in @allowed_fields do %{query: query, sorts: [%{sf => sd}, %{"id" => sd}]} end