Make collection ordered by purchase by default
This commit is contained in:
@@ -12,7 +12,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
|||||||
query: "",
|
query: "",
|
||||||
page: 1,
|
page: 1,
|
||||||
page_size: 20,
|
page_size: 20,
|
||||||
order: :alphabetical
|
order: :purchase
|
||||||
}
|
}
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
@@ -78,7 +78,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
|||||||
|
|
||||||
defp apply_action(socket, :index, params) do
|
defp apply_action(socket, :index, params) do
|
||||||
query = params["query"] || ""
|
query = params["query"] || ""
|
||||||
order = parse_order(params["order"] || "alphabetical")
|
order = parse_order(params["order"] || "purchase")
|
||||||
total_records = Collection.search_records_count(query)
|
total_records = Collection.search_records_count(query)
|
||||||
|
|
||||||
record_list_params =
|
record_list_params =
|
||||||
|
|||||||
@@ -37,23 +37,10 @@
|
|||||||
|
|
||||||
<div class="flex items-end justify-between gap-6 mt-8">
|
<div class="flex items-end justify-between gap-6 mt-8">
|
||||||
<span class="isolate inline-flex rounded-md shadow-xs">
|
<span class="isolate inline-flex rounded-md shadow-xs">
|
||||||
<.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>
|
|
||||||
<.link
|
<.link
|
||||||
patch={order_path(@record_list_params, :purchase)}
|
patch={order_path(@record_list_params, :purchase)}
|
||||||
class={[
|
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",
|
"px-3 py-2 text-xs sm:text-sm font-semibold",
|
||||||
"ring-1 ring-inset focus:z-10",
|
"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",
|
"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")}
|
{gettext("Purchase")}
|
||||||
</.link>
|
</.link>
|
||||||
|
<.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")}
|
||||||
|
</.link>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<p class="text-right text-sm max-sm:text-xs text-zinc-900 dark:text-zinc-400">
|
<p class="text-right text-sm max-sm:text-xs text-zinc-900 dark:text-zinc-400">
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ msgstr ""
|
|||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr ""
|
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
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Purchase"
|
msgid "Purchase"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -458,7 +458,7 @@ msgstr ""
|
|||||||
msgid "Error loading play count"
|
msgid "Error loading play count"
|
||||||
msgstr ""
|
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
|
#, elixir-autogen, elixir-format
|
||||||
msgid "A->Z"
|
msgid "A->Z"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|
|
||||||
{expected_present, expected_absent} = Enum.split(records, @default_records_page_size)
|
{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
|
for record <- expected_present do
|
||||||
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
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_records, rest_of_records} = Enum.split(rest_of_records, page_size)
|
||||||
|
|
||||||
page_2_session =
|
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
|
for record <- page_1_records do
|
||||||
refute_has(page_2_session, "#records-#{record.id}")
|
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_records, rest_of_records} = Enum.split(rest_of_records, page_size)
|
||||||
|
|
||||||
page_3_session =
|
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
|
for record <- page_3_records do
|
||||||
assert_has(page_3_session, "#records-#{record.id}")
|
assert_has(page_3_session, "#records-#{record.id}")
|
||||||
|
|||||||
Reference in New Issue
Block a user