@@ -226,7 +226,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
|
||||
defp apply_action(socket, :index, params) do
|
||||
query = params["query"] || ""
|
||||
order = parse_order(params["order"] || "purchase")
|
||||
order = parse_order(params["order"] || "purchase", [:purchase, :alphabetical, :release])
|
||||
total_records = Collection.search_records_count(query)
|
||||
|
||||
record_list_params =
|
||||
@@ -293,9 +293,6 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
|> load_and_assign_records(socket.assigns.record_list_params)}
|
||||
end
|
||||
|
||||
defp parse_mode("grid"), do: :grid
|
||||
defp parse_mode("list"), do: :list
|
||||
|
||||
defp load_and_assign_records(socket, record_list_params) do
|
||||
offset = page_to_offset(record_list_params.page, record_list_params.page_size)
|
||||
|
||||
@@ -315,10 +312,6 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
|> stream(:records, records, reset: true)
|
||||
end
|
||||
|
||||
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 =
|
||||
record_list_params
|
||||
|
||||
@@ -196,7 +196,7 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
|
||||
defp apply_action(socket, :index, params) do
|
||||
query = params["query"] || ""
|
||||
order = parse_order(params["order"] || "insertion")
|
||||
order = parse_order(params["order"] || "insertion", [:insertion, :alphabetical, :release])
|
||||
total_records = Wishlist.search_records_count(query)
|
||||
|
||||
record_list_params =
|
||||
@@ -278,9 +278,6 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
|> load_and_assign_records(socket.assigns.record_list_params)}
|
||||
end
|
||||
|
||||
defp parse_mode("grid"), do: :grid
|
||||
defp parse_mode("list"), do: :list
|
||||
|
||||
defp load_and_assign_records(socket, record_list_params) do
|
||||
offset = page_to_offset(record_list_params.page, record_list_params.page_size)
|
||||
|
||||
@@ -298,10 +295,6 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
|> stream(:records, records, reset: true)
|
||||
end
|
||||
|
||||
defp parse_order("alphabetical"), do: :alphabetical
|
||||
defp parse_order("insertion"), do: :insertion
|
||||
defp parse_order("release"), do: :release
|
||||
|
||||
defp order_path(record_list_params, order) do
|
||||
qs =
|
||||
record_list_params
|
||||
|
||||
@@ -55,6 +55,17 @@ defmodule MusicLibraryWeb.LiveHelpers.Params do
|
||||
Map.put(params, :order, order)
|
||||
end
|
||||
|
||||
@spec parse_mode(String.t()) :: :grid | :list
|
||||
def parse_mode("grid"), do: :grid
|
||||
def parse_mode("list"), do: :list
|
||||
|
||||
@spec parse_order(String.t(), [atom(), ...]) :: atom()
|
||||
def parse_order(order, [_ | _] = allowed) when is_binary(order) do
|
||||
Enum.find(allowed, hd(allowed), fn a -> Atom.to_string(a) == order end)
|
||||
end
|
||||
|
||||
def parse_order(_, []), do: raise(ArgumentError, "allowed orders must not be empty")
|
||||
|
||||
@spec apply_fallback_index(Phoenix.LiveView.Socket.t(), map(), atom(), function()) ::
|
||||
Phoenix.LiveView.Socket.t()
|
||||
def apply_fallback_index(socket, params, stream_key, apply_action_fn) do
|
||||
|
||||
Reference in New Issue
Block a user