From 8b846298a714c20527a9917b45716d5eca2c41c3 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Fri, 4 Apr 2025 13:58:25 +0100 Subject: [PATCH] Make collection ordered by purchase by default --- .../live/collection_live/index.ex | 4 +-- .../live/collection_live/index.html.heex | 28 +++++++++---------- priv/gettext/default.pot | 4 +-- .../live/collection_live/index_test.exs | 6 ++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/music_library_web/live/collection_live/index.ex b/lib/music_library_web/live/collection_live/index.ex index a264a280..1b6b6791 100644 --- a/lib/music_library_web/live/collection_live/index.ex +++ b/lib/music_library_web/live/collection_live/index.ex @@ -12,7 +12,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do query: "", page: 1, page_size: 20, - order: :alphabetical + order: :purchase } @impl true @@ -78,7 +78,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do defp apply_action(socket, :index, params) do query = params["query"] || "" - order = parse_order(params["order"] || "alphabetical") + order = parse_order(params["order"] || "purchase") total_records = Collection.search_records_count(query) record_list_params = diff --git a/lib/music_library_web/live/collection_live/index.html.heex b/lib/music_library_web/live/collection_live/index.html.heex index 79dcf7b5..4fd5d5a9 100644 --- a/lib/music_library_web/live/collection_live/index.html.heex +++ b/lib/music_library_web/live/collection_live/index.html.heex @@ -37,23 +37,10 @@
- <.link - patch={order_path(@record_list_params, :alphabetical)} - class={[ - "relative inline-flex items-center rounded-l-md", - "px-3 py-2 text-xs sm:text-sm font-semibold", - "ring-1 ring-inset focus:z-10", - "bg-white dark:bg-zinc-900 text-zinc-900 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 ring-zinc-300", - @record_list_params.order == :alphabetical && "!bg-zinc-100 dark:!bg-zinc-700" - ]} - > - <.icon name="hero-user-solid" class="mr-1 h-4 w-4" aria-hidden="true" data-slot="icon" /> - {gettext("A->Z")} - <.link patch={order_path(@record_list_params, :purchase)} class={[ - "relative -ml-px inline-flex items-center rounded-r-md", + "relative inline-flex items-center rounded-l-md", "px-3 py-2 text-xs sm:text-sm font-semibold", "ring-1 ring-inset focus:z-10", "bg-white dark:bg-zinc-900 text-zinc-900 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 ring-zinc-300", @@ -68,6 +55,19 @@ /> {gettext("Purchase")} + <.link + patch={order_path(@record_list_params, :alphabetical)} + class={[ + "relative -ml-px inline-flex items-center rounded-r-md", + "px-3 py-2 text-xs sm:text-sm font-semibold", + "ring-1 ring-inset focus:z-10", + "bg-white dark:bg-zinc-900 text-zinc-900 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 ring-zinc-300", + @record_list_params.order == :alphabetical && "!bg-zinc-100 dark:!bg-zinc-700" + ]} + > + <.icon name="hero-user-solid" class="mr-1 h-4 w-4" aria-hidden="true" data-slot="icon" /> + {gettext("A->Z")} +

diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index bddd8d54..9405a85c 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -158,7 +158,7 @@ msgstr "" msgid "Previous" msgstr "" -#: lib/music_library_web/live/collection_live/index.html.heex:69 +#: lib/music_library_web/live/collection_live/index.html.heex:56 #, elixir-autogen, elixir-format msgid "Purchase" msgstr "" @@ -458,7 +458,7 @@ msgstr "" msgid "Error loading play count" msgstr "" -#: lib/music_library_web/live/collection_live/index.html.heex:51 +#: lib/music_library_web/live/collection_live/index.html.heex:69 #, elixir-autogen, elixir-format msgid "A->Z" msgstr "" diff --git a/test/music_library_web/live/collection_live/index_test.exs b/test/music_library_web/live/collection_live/index_test.exs index 98c02f05..6f43b50a 100644 --- a/test/music_library_web/live/collection_live/index_test.exs +++ b/test/music_library_web/live/collection_live/index_test.exs @@ -41,7 +41,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do {expected_present, expected_absent} = Enum.split(records, @default_records_page_size) - session = visit(conn, ~p"/collection") + session = visit(conn, ~p"/collection?order=alphabetical") for record <- expected_present do cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}" @@ -80,7 +80,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do {page_2_records, rest_of_records} = Enum.split(rest_of_records, page_size) page_2_session = - visit(conn, ~p"/collection?page=2&page_size=#{page_size}") + visit(conn, ~p"/collection?order=alphabetical&page=2&page_size=#{page_size}") for record <- page_1_records do refute_has(page_2_session, "#records-#{record.id}") @@ -102,7 +102,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do {page_3_records, rest_of_records} = Enum.split(rest_of_records, page_size) page_3_session = - visit(conn, ~p"/collection?page=3&page_size=#{page_size}") + visit(conn, ~p"/collection?order=alphabetical&page=3&page_size=#{page_size}") for record <- page_3_records do assert_has(page_3_session, "#records-#{record.id}")