Added sorting for all table attrs
This commit is contained in:
parent
771d2278d4
commit
e98c04727d
2 changed files with 7 additions and 13 deletions
|
|
@ -22,15 +22,6 @@ defmodule PinchflatWeb.Sources.SourceLive.IndexTableLive do
|
||||||
|> then(&{:ok, &1})
|
|> then(&{:ok, &1})
|
||||||
end
|
end
|
||||||
|
|
||||||
# def handle_event("formless-input", %{"event" => "toggle_enabled"} = params, socket) do
|
|
||||||
# source = Sources.get_source!(params["id"])
|
|
||||||
# should_enable = params["value"] == "true"
|
|
||||||
|
|
||||||
# {:ok, _} = Sources.update_source(source, %{enabled: should_enable})
|
|
||||||
|
|
||||||
# {:noreply, assign(socket, %{sources: get_sources(socket.assigns)})}
|
|
||||||
# end
|
|
||||||
|
|
||||||
def handle_event("sort_update", %{"sort_key" => sort_key}, %{assigns: assigns} = socket) do
|
def handle_event("sort_update", %{"sort_key" => sort_key}, %{assigns: assigns} = socket) do
|
||||||
new_sort_key = String.to_existing_atom(sort_key)
|
new_sort_key = String.to_existing_atom(sort_key)
|
||||||
|
|
||||||
|
|
@ -48,7 +39,7 @@ defmodule PinchflatWeb.Sources.SourceLive.IndexTableLive do
|
||||||
defp set_sources(%{assigns: assigns} = socket) do
|
defp set_sources(%{assigns: assigns} = socket) do
|
||||||
sources =
|
sources =
|
||||||
sources_query()
|
sources_query()
|
||||||
|> order_by(^[{assigns.sort_direction, sort_attr(assigns.sort_key)}])
|
|> order_by(^[{assigns.sort_direction, sort_attr(assigns.sort_key)}, asc: :id])
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
|
|
||||||
assign(socket, %{sources: sources})
|
assign(socket, %{sources: sources})
|
||||||
|
|
@ -56,7 +47,10 @@ defmodule PinchflatWeb.Sources.SourceLive.IndexTableLive do
|
||||||
|
|
||||||
defp sort_attr(:pending_count), do: dynamic([s, mp, dl, pe], field(pe, :pending_count))
|
defp sort_attr(:pending_count), do: dynamic([s, mp, dl, pe], field(pe, :pending_count))
|
||||||
defp sort_attr(:downloaded_count), do: dynamic([s, mp, dl], field(dl, :downloaded_count))
|
defp sort_attr(:downloaded_count), do: dynamic([s, mp, dl], field(dl, :downloaded_count))
|
||||||
|
defp sort_attr(:media_profile_name), do: dynamic([s, mp], field(mp, :name))
|
||||||
defp sort_attr(:custom_name), do: dynamic([s], field(s, :custom_name))
|
defp sort_attr(:custom_name), do: dynamic([s], field(s, :custom_name))
|
||||||
|
defp sort_attr(:enabled), do: dynamic([s], field(s, :enabled))
|
||||||
|
defp sort_attr(:retention_period_days), do: dynamic([s], field(s, :retention_period_days))
|
||||||
defp sort_attr(_), do: sort_attr(:custom_name)
|
defp sort_attr(_), do: sort_attr(:custom_name)
|
||||||
|
|
||||||
defp sources_query do
|
defp sources_query do
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<.localized_number number={source.downloaded_count} />
|
<.localized_number number={source.downloaded_count} />
|
||||||
</.subtle_link>
|
</.subtle_link>
|
||||||
</:col>
|
</:col>
|
||||||
<:col :let={source} label="Retention">
|
<:col :let={source} label="Retention" sort_key="retention_period_days">
|
||||||
<%= if source.retention_period_days && source.retention_period_days > 0 do %>
|
<%= if source.retention_period_days && source.retention_period_days > 0 do %>
|
||||||
<.localized_number number={source.retention_period_days} />
|
<.localized_number number={source.retention_period_days} />
|
||||||
<.pluralize count={source.retention_period_days} word="day" />
|
<.pluralize count={source.retention_period_days} word="day" />
|
||||||
|
|
@ -22,12 +22,12 @@
|
||||||
<span class="text-lg">∞</span>
|
<span class="text-lg">∞</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</:col>
|
</:col>
|
||||||
<:col :let={source} label="Media Profile">
|
<:col :let={source} label="Media Profile" sort_key="media_profile_name">
|
||||||
<.subtle_link href={~p"/media_profiles/#{source.media_profile_id}"}>
|
<.subtle_link href={~p"/media_profiles/#{source.media_profile_id}"}>
|
||||||
{source.media_profile.name}
|
{source.media_profile.name}
|
||||||
</.subtle_link>
|
</.subtle_link>
|
||||||
</:col>
|
</:col>
|
||||||
<:col :let={source} label="Enabled?">
|
<:col :let={source} label="Enabled?" sort_key="enabled">
|
||||||
<.live_component
|
<.live_component
|
||||||
module={PinchflatWeb.Sources.SourceLive.SourceEnableToggle}
|
module={PinchflatWeb.Sources.SourceLive.SourceEnableToggle}
|
||||||
source={source}
|
source={source}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue