diff --git a/lib/music_library/records.ex b/lib/music_library/records.ex index 1c347a13..602ffd8e 100644 --- a/lib/music_library/records.ex +++ b/lib/music_library/records.ex @@ -83,6 +83,13 @@ defmodule MusicLibrary.Records do {:desc, r.inserted_at}, order_alphabetically() ]) + + :release -> + initial_search + |> order_by([r], [ + {:desc, r.release_date}, + order_alphabetically() + ]) end Enum.reduce(parsed_query, search_with_order, fn diff --git a/lib/music_library_web/live/collection_live/index.ex b/lib/music_library_web/live/collection_live/index.ex index 7f7ae3e9..ebdb435e 100644 --- a/lib/music_library_web/live/collection_live/index.ex +++ b/lib/music_library_web/live/collection_live/index.ex @@ -184,6 +184,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do defp parse_order("alphabetical"), do: :alphabetical defp parse_order("purchase"), do: :purchase + defp parse_order("release"), do: :release defp order_path(record_list_params, order) do qs = 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 d8ddd1af..fb7a2c7a 100644 --- a/lib/music_library_web/live/collection_live/index.html.heex +++ b/lib/music_library_web/live/collection_live/index.html.heex @@ -51,6 +51,16 @@ <.icon name="hero-user-solid" class="icon" aria-hidden="true" data-slot="icon" /> + <.button + patch={order_path(@record_list_params, :release)} + size="sm" + class={[ + @record_list_params.order == :release && "bg-zinc-100! dark:bg-zinc-700!" + ]} + > + <.icon name="hero-calendar-days" class="icon" aria-hidden="true" data-slot="icon" /> + + <.button_group> diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index a1e9c729..561aac07 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -1641,3 +1641,8 @@ msgstr[1] "" #, elixir-autogen, elixir-format msgid "Never" msgstr "" + +#: lib/music_library_web/live/collection_live/index.html.heex +#, elixir-autogen, elixir-format +msgid "Release" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 6ae19934..9566f27e 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -1641,3 +1641,8 @@ msgstr[1] "" #, elixir-autogen, elixir-format msgid "Never" msgstr "" + +#: lib/music_library_web/live/collection_live/index.html.heex +#, elixir-autogen, elixir-format, fuzzy +msgid "Release" +msgstr ""