Add item visibility toggle
This commit is contained in:
@@ -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 """
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
9
priv/repo/migrations/20231205232711_add_hidden_item.exs
Normal file
9
priv/repo/migrations/20231205232711_add_hidden_item.exs
Normal 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
|
||||
Reference in New Issue
Block a user