@@ -202,14 +202,14 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
|
||||
defp apply_action(socket, :import, params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :records, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Add new Record · Collection"))
|
||||
|> assign(:record, nil)
|
||||
end
|
||||
|
||||
defp apply_action(socket, :barcode_scan, params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :records, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Scan barcodes · Collection"))
|
||||
|> assign(:record, nil)
|
||||
end
|
||||
@@ -218,7 +218,7 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
record = Records.get_record!(id)
|
||||
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :records, &apply_action/3)
|
||||
|> assign(:page_title, Show.page_title(socket.assigns.live_action, record))
|
||||
|> assign(:record, record)
|
||||
end
|
||||
@@ -237,15 +237,6 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|
||||
load_and_assign_records(socket, record_list_params)
|
||||
end
|
||||
|
||||
def apply_fallback_index(socket, params) do
|
||||
if get_in(socket.assigns, [:streams, :records]) == nil do
|
||||
socket
|
||||
|> apply_action(:index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_info({MusicLibraryWeb.Components.RecordForm, {:saved, _record}}, socket) do
|
||||
{:noreply, load_and_assign_records(socket, socket.assigns.record_list_params)}
|
||||
|
||||
@@ -306,21 +306,21 @@ defmodule MusicLibraryWeb.RecordSetLive.Index do
|
||||
|
||||
defp apply_action(socket, :edit, %{"id" => id} = params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :record_sets, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Edit Set"))
|
||||
|> assign(:record_set, RecordSets.get_record_set!(id))
|
||||
end
|
||||
|
||||
defp apply_action(socket, :new, params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :record_sets, &apply_action/3)
|
||||
|> assign(:page_title, gettext("New Set"))
|
||||
|> assign(:record_set, %RecordSet{})
|
||||
end
|
||||
|
||||
defp apply_action(socket, :add_record, %{"id" => id} = params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :record_sets, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Add Record"))
|
||||
|> assign(:record_set, RecordSets.get_record_set!(id))
|
||||
end
|
||||
@@ -339,15 +339,6 @@ defmodule MusicLibraryWeb.RecordSetLive.Index do
|
||||
load_and_assign_sets(socket, list_params)
|
||||
end
|
||||
|
||||
defp apply_fallback_index(socket, params) do
|
||||
if get_in(socket.assigns, [:streams, :record_sets]) == nil do
|
||||
socket
|
||||
|> apply_action(:index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
|
||||
defp load_and_assign_sets(socket, list_params) do
|
||||
offset = page_to_offset(list_params.page, list_params.page_size)
|
||||
|
||||
|
||||
@@ -163,14 +163,14 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
|
||||
|
||||
defp apply_action(socket, :edit, %{"id" => id} = params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :scrobble_rules, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Edit Scrobble Rule"))
|
||||
|> assign(:scrobble_rule, ScrobbleRules.get_scrobble_rule!(id))
|
||||
end
|
||||
|
||||
defp apply_action(socket, :new, params) do
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :scrobble_rules, &apply_action/3)
|
||||
|> assign(:page_title, gettext("New Scrobble Rule"))
|
||||
|> assign(:scrobble_rule, %ScrobbleRule{})
|
||||
end
|
||||
@@ -185,15 +185,6 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
|
||||
load_and_assign_rules(socket, list_params)
|
||||
end
|
||||
|
||||
def apply_fallback_index(socket, params) do
|
||||
if get_in(socket.assigns, [:streams, :scrobble_rules]) == nil do
|
||||
socket
|
||||
|> apply_action(:index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
|
||||
defp load_and_assign_rules(socket, list_params) do
|
||||
offset = page_to_offset(list_params.page, list_params.page_size)
|
||||
|
||||
|
||||
@@ -232,7 +232,7 @@ defmodule MusicLibraryWeb.ScrobbledTracksLive.Index do
|
||||
track = ScrobbleActivity.get_track!(id)
|
||||
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :tracks, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Edit Track"))
|
||||
|> assign(:track, track)
|
||||
|> assign(:form, to_form(Track.changeset(track, %{})))
|
||||
@@ -252,15 +252,6 @@ defmodule MusicLibraryWeb.ScrobbledTracksLive.Index do
|
||||
load_and_assign_tracks(socket, track_list_params)
|
||||
end
|
||||
|
||||
def apply_fallback_index(socket, params) do
|
||||
if get_in(socket.assigns, [:streams, :tracks]) == nil do
|
||||
socket
|
||||
|> apply_action(:index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_info({MusicLibraryWeb.ScrobbledTracksLive.Form, {:saved, _track}}, socket) do
|
||||
{:noreply, load_and_assign_tracks(socket, socket.assigns.track_list_params)}
|
||||
|
||||
@@ -179,7 +179,7 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
import_query = params["import_query"] || ""
|
||||
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :records, &apply_action/3)
|
||||
|> assign(:page_title, gettext("Add new Record · Wishlist"))
|
||||
|> assign(:import_query, import_query)
|
||||
|> assign(:record, nil)
|
||||
@@ -189,7 +189,7 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
record = Records.get_record!(id)
|
||||
|
||||
socket
|
||||
|> apply_fallback_index(params)
|
||||
|> apply_fallback_index(params, :records, &apply_action/3)
|
||||
|> assign(:page_title, Show.page_title(socket.assigns.live_action, record))
|
||||
|> assign(:record, record)
|
||||
end
|
||||
@@ -208,15 +208,6 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
|
||||
load_and_assign_records(socket, record_list_params)
|
||||
end
|
||||
|
||||
def apply_fallback_index(socket, params) do
|
||||
if get_in(socket.assigns, [:streams, :records]) == nil do
|
||||
socket
|
||||
|> apply_action(:index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_info({MusicLibraryWeb.Components.RecordForm, {:saved, _record}}, socket) do
|
||||
{:noreply, load_and_assign_records(socket, socket.assigns.record_list_params)}
|
||||
|
||||
@@ -46,4 +46,12 @@ defmodule MusicLibraryWeb.LiveHelpers.Params do
|
||||
def merge_order(params, order) do
|
||||
Map.put(params, :order, order)
|
||||
end
|
||||
|
||||
def apply_fallback_index(socket, params, stream_key, apply_action_fn) do
|
||||
if get_in(socket.assigns, [:streams, stream_key]) == nil do
|
||||
apply_action_fn.(socket, :index, params)
|
||||
else
|
||||
socket
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user