add toggle featured button for images
This commit is contained in:
parent
14fd43faf2
commit
cd603ed773
1 changed files with 23 additions and 5 deletions
|
@ -60,13 +60,21 @@ defmodule ChiyaWeb.NoteShowLive do
|
||||||
<article>
|
<article>
|
||||||
<a href={"/admin/notes/#{@note.id}/image/#{image.id}"}>
|
<a href={"/admin/notes/#{@note.id}/image/#{image.id}"}>
|
||||||
<img
|
<img
|
||||||
class="rounded-lg border border-theme-dim w-28 mb-3"
|
class={[
|
||||||
|
"rounded-lg border border-theme-dim w-28 mb-3",
|
||||||
|
image.featured && "border-theme-primary"
|
||||||
|
]}
|
||||||
src={ChiyaWeb.Uploaders.NoteImage.url({image.path, image}, :thumb_dithered)}
|
src={ChiyaWeb.Uploaders.NoteImage.url({image.path, image}, :thumb_dithered)}
|
||||||
/>
|
/>
|
||||||
<.button phx-click="delete_image" phx-value-id={image.id} data-confirm="Are you sure?">
|
|
||||||
Delete Image
|
|
||||||
</.button>
|
|
||||||
</a>
|
</a>
|
||||||
|
<div class="flex justify-between">
|
||||||
|
<.button phx-click="delete_image" phx-value-id={image.id} data-confirm="Are you sure?">
|
||||||
|
<.icon name="hero-trash" />
|
||||||
|
</.button>
|
||||||
|
<.button phx-click="toggle_favorite" phx-value-id={image.id}>
|
||||||
|
<.icon name="hero-star-solid" />
|
||||||
|
</.button>
|
||||||
|
</div>
|
||||||
</article>
|
</article>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
@ -138,6 +146,7 @@ defmodule ChiyaWeb.NoteShowLive do
|
||||||
|> assign(:note, Notes.get_note_preloaded!(socket.assigns.note.id))}
|
|> assign(:note, Notes.get_note_preloaded!(socket.assigns.note.id))}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@impl Phoenix.LiveView
|
||||||
def handle_event("validate_edit_image", assigns, socket) do
|
def handle_event("validate_edit_image", assigns, socket) do
|
||||||
{:noreply,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
|
@ -147,6 +156,7 @@ defmodule ChiyaWeb.NoteShowLive do
|
||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@impl Phoenix.LiveView
|
||||||
def handle_event("update_edit_image", %{"id" => id} = assigns, socket) do
|
def handle_event("update_edit_image", %{"id" => id} = assigns, socket) do
|
||||||
id
|
id
|
||||||
|> Notes.get_note_image!()
|
|> Notes.get_note_image!()
|
||||||
|
@ -164,6 +174,14 @@ defmodule ChiyaWeb.NoteShowLive do
|
||||||
{:noreply, assign(socket, :note, Notes.get_note_preloaded!(socket.assigns.note.id))}
|
{:noreply, assign(socket, :note, Notes.get_note_preloaded!(socket.assigns.note.id))}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@impl Phoenix.LiveView
|
||||||
|
def handle_event("toggle_favorite", %{"id" => id}, socket) do
|
||||||
|
image = Notes.get_note_image!(id)
|
||||||
|
Notes.update_note_image(image, %{featured: !image.featured})
|
||||||
|
|
||||||
|
{:noreply, assign(socket, :note, Notes.get_note_preloaded!(socket.assigns.note.id))}
|
||||||
|
end
|
||||||
|
|
||||||
defp note_links(notes), do: Enum.map_join(notes, ", ", fn n -> n.name end)
|
defp note_links(notes), do: Enum.map_join(notes, ", ", fn n -> n.name end)
|
||||||
defp note_tags(tags), do: Enum.map_join(tags, ", ", fn t -> t.name end)
|
defp note_tags(tags), do: Enum.map_join(tags, ", ", fn t -> t.name end)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue