Add item visibility toggle

This commit is contained in:
2023-12-05 23:32:07 +00:00
parent 8d8c45703d
commit f2db361702
5 changed files with 19 additions and 4 deletions

View File

@@ -21,6 +21,10 @@ defmodule Wish.Wishlist do
Repo.all(Item)
end
def list_visible_items do
Repo.all(from i in Item, where: i.visible)
end
@doc """
Returns the list of unreceived items.
@@ -31,7 +35,7 @@ defmodule Wish.Wishlist do
"""
def list_available_items do
Repo.all(from i in Item, where: not i.received)
Repo.all(from i in Item, where: not i.received and i.visible)
end
@doc """

View File

@@ -10,6 +10,7 @@ defmodule Wish.Wishlist.Item do
field :desire, :integer
field :image_url, :string
field :price, :integer
field :visible, :boolean
timestamps(type: :utc_datetime)
end
@@ -17,7 +18,7 @@ defmodule Wish.Wishlist.Item do
@doc false
def changeset(item, attrs) do
item
|> cast(attrs, [:title, :description, :url, :price, :received, :desire, :image_url])
|> cast(attrs, [:title, :description, :url, :price, :received, :desire, :image_url, :visible])
|> validate_required([:url])
end

View File

@@ -14,7 +14,7 @@ defmodule WishWeb.HomeLive.Index do
items =
if socket.assigns.current_user do
Wishlist.list_items()
Wishlist.list_visible_items()
else
Wishlist.list_available_items()
end
@@ -33,7 +33,7 @@ defmodule WishWeb.HomeLive.Index do
items =
if new_state do
Wishlist.list_items()
Wishlist.list_visible_items()
else
Wishlist.list_available_items()
end

View File

@@ -10,6 +10,7 @@
<.input field={@form[:url]} type="text" label="Url" />
<.input field={@form[:image_url]} type="text" label="Image URL" />
<.input field={@form[:desire]} type="number" label="Desire" />
<.input field={@form[:visible]} type="checkbox" label="Visible?" />
<:actions>
<.button phx-disable-with="Saving...">Save Item</.button>
</:actions>

View File

@@ -0,0 +1,9 @@
defmodule Wish.Repo.Migrations.AddHiddenItem do
use Ecto.Migration
def change do
alter table(:items) do
add :visible, :boolean, default: true, null: false
end
end
end