Add item visibility toggle
This commit is contained in:
@@ -21,6 +21,10 @@ defmodule Wish.Wishlist do
|
|||||||
Repo.all(Item)
|
Repo.all(Item)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def list_visible_items do
|
||||||
|
Repo.all(from i in Item, where: i.visible)
|
||||||
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Returns the list of unreceived items.
|
Returns the list of unreceived items.
|
||||||
|
|
||||||
@@ -31,7 +35,7 @@ defmodule Wish.Wishlist do
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
def list_available_items 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
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ defmodule Wish.Wishlist.Item do
|
|||||||
field :desire, :integer
|
field :desire, :integer
|
||||||
field :image_url, :string
|
field :image_url, :string
|
||||||
field :price, :integer
|
field :price, :integer
|
||||||
|
field :visible, :boolean
|
||||||
|
|
||||||
timestamps(type: :utc_datetime)
|
timestamps(type: :utc_datetime)
|
||||||
end
|
end
|
||||||
@@ -17,7 +18,7 @@ defmodule Wish.Wishlist.Item do
|
|||||||
@doc false
|
@doc false
|
||||||
def changeset(item, attrs) do
|
def changeset(item, attrs) do
|
||||||
item
|
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])
|
|> validate_required([:url])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ defmodule WishWeb.HomeLive.Index do
|
|||||||
|
|
||||||
items =
|
items =
|
||||||
if socket.assigns.current_user do
|
if socket.assigns.current_user do
|
||||||
Wishlist.list_items()
|
Wishlist.list_visible_items()
|
||||||
else
|
else
|
||||||
Wishlist.list_available_items()
|
Wishlist.list_available_items()
|
||||||
end
|
end
|
||||||
@@ -33,7 +33,7 @@ defmodule WishWeb.HomeLive.Index do
|
|||||||
|
|
||||||
items =
|
items =
|
||||||
if new_state do
|
if new_state do
|
||||||
Wishlist.list_items()
|
Wishlist.list_visible_items()
|
||||||
else
|
else
|
||||||
Wishlist.list_available_items()
|
Wishlist.list_available_items()
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<.input field={@form[:url]} type="text" label="Url" />
|
<.input field={@form[:url]} type="text" label="Url" />
|
||||||
<.input field={@form[:image_url]} type="text" label="Image URL" />
|
<.input field={@form[:image_url]} type="text" label="Image URL" />
|
||||||
<.input field={@form[:desire]} type="number" label="Desire" />
|
<.input field={@form[:desire]} type="number" label="Desire" />
|
||||||
|
<.input field={@form[:visible]} type="checkbox" label="Visible?" />
|
||||||
<:actions>
|
<:actions>
|
||||||
<.button phx-disable-with="Saving...">Save Item</.button>
|
<.button phx-disable-with="Saving...">Save Item</.button>
|
||||||
</:actions>
|
</: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