Rename /search to /import
This commit is contained in:
+11
-11
@@ -1,4 +1,4 @@
|
||||
defmodule MusicLibraryWeb.RecordLive.SearchComponent do
|
||||
defmodule MusicLibraryWeb.RecordLive.ImportComponent do
|
||||
use MusicLibraryWeb, :live_component
|
||||
|
||||
alias MusicLibrary.Records
|
||||
@@ -17,13 +17,13 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do
|
||||
<.input
|
||||
field={@form[:query]}
|
||||
type="text"
|
||||
label="Search"
|
||||
label="Search for a record on MusicBrainz"
|
||||
prompt="Search for records"
|
||||
phx-debounce="500"
|
||||
/>
|
||||
</.simple_form>
|
||||
<ul role="list" class="divide-y divide-gray-100">
|
||||
<.result :for={record <- @records} record={record} />
|
||||
<.result :for={release_group <- @release_groups} release_group={release_group} />
|
||||
</ul>
|
||||
</div>
|
||||
"""
|
||||
@@ -33,22 +33,22 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do
|
||||
~H"""
|
||||
<li
|
||||
class="flex justify-between gap-x-6 py-5 cursor-pointer hover:bg-gray-50"
|
||||
phx-click={JS.push("import", value: %{id: @record.id}, page_loading: true)}
|
||||
phx-click={JS.push("import", value: %{id: @release_group.id}, page_loading: true)}
|
||||
>
|
||||
<div class="flex min-w-0 gap-x-4">
|
||||
<div class="min-w-0 flex-auto">
|
||||
<p class="text-sm font-semibold leading-6 text-gray-900">
|
||||
<%= @record.title %>
|
||||
<%= @release_group.title %>
|
||||
|
||||
<span class="mt-1 text-xs leading-5 text-gray-500">
|
||||
<%= @record.year %>
|
||||
<%= @release_group.year %>
|
||||
</span>
|
||||
</p>
|
||||
<p class="mt-1 truncate text-xs leading-5 text-gray-500"><%= @record.artists %></p>
|
||||
<p class="mt-1 truncate text-xs leading-5 text-gray-500"><%= @release_group.artists %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden shrink-0 sm:flex sm:flex-col sm:items-end">
|
||||
<.type_badge type={@record.type} />
|
||||
<.type_badge type={@release_group.type} />
|
||||
</div>
|
||||
</li>
|
||||
"""
|
||||
@@ -68,17 +68,17 @@ defmodule MusicLibraryWeb.RecordLive.SearchComponent do
|
||||
def mount(socket) do
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:records, [])
|
||||
|> assign(:release_groups, [])
|
||||
|> assign(:form, to_form(%{"query" => ""}))}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("search", %{"query" => query}, socket) do
|
||||
{:ok, records} = search(query)
|
||||
{:ok, release_groups} = search(query)
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign(:records, records)
|
||||
|> assign(:release_groups, release_groups)
|
||||
|> assign(:form, to_form(%{"query" => query}))}
|
||||
end
|
||||
|
||||
@@ -23,9 +23,9 @@ defmodule MusicLibraryWeb.RecordLive.Index do
|
||||
{:noreply, apply_action(socket, socket.assigns.live_action, params)}
|
||||
end
|
||||
|
||||
defp apply_action(socket, :search, _params) do
|
||||
defp apply_action(socket, :import, _params) do
|
||||
socket
|
||||
|> assign(:page_title, "Search Records")
|
||||
|> assign(:page_title, "Import from MusicBrainz")
|
||||
|> assign(:record, nil)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<.header>
|
||||
Listing Records
|
||||
<:actions>
|
||||
<.link patch={~p"/records/search"}>
|
||||
<.button>Search Record</.button>
|
||||
<.link patch={~p"/records/import"}>
|
||||
<.button>Import from MusicBrainz</.button>
|
||||
</.link>
|
||||
</:actions>
|
||||
</.header>
|
||||
@@ -50,9 +50,9 @@
|
||||
/>
|
||||
</.modal>
|
||||
|
||||
<.modal :if={@live_action == :search} id="record-modal" show on_cancel={JS.patch(~p"/records")}>
|
||||
<.modal :if={@live_action == :import} id="record-modal" show on_cancel={JS.patch(~p"/records")}>
|
||||
<.live_component
|
||||
module={MusicLibraryWeb.RecordLive.SearchComponent}
|
||||
module={MusicLibraryWeb.RecordLive.ImportComponent}
|
||||
id={:search}
|
||||
title={@page_title}
|
||||
action={@live_action}
|
||||
|
||||
@@ -21,7 +21,7 @@ defmodule MusicLibraryWeb.Router do
|
||||
get "/images/:record_id", ImageController, :show
|
||||
|
||||
live "/records", RecordLive.Index, :index
|
||||
live "/records/search", RecordLive.Index, :search
|
||||
live "/records/import", RecordLive.Index, :import
|
||||
live "/records/:id/edit", RecordLive.Index, :edit
|
||||
|
||||
live "/records/:id", RecordLive.Show, :show
|
||||
|
||||
Reference in New Issue
Block a user