<.header>
- <%= @title %>
+ {@title}
<:subtitle>Use this form to manage completed_task records in your database.
@@ -17,9 +17,12 @@ defmodule PutzplanWeb.CompletedTaskLive.FormComponent do
phx-change="validate"
phx-submit="save"
>
-
- <.input field={@form[:user]} type="text" label="User" /><.input field={@form[:task]} type="text" label="Task" />
-
+ <.input field={@form[:user]} type="text" label="User" /><.input
+ field={@form[:task]}
+ type="text"
+ label="Task"
+ />
+
<:actions>
<.button phx-disable-with="Saving...">Save Completed task
diff --git a/lib/putzplan_web/live/completed_task_live/index.ex b/lib/putzplan_web/live/completed_task_live/index.ex
index 5197afa..0db23d7 100644
--- a/lib/putzplan_web/live/completed_task_live/index.ex
+++ b/lib/putzplan_web/live/completed_task_live/index.ex
@@ -8,7 +8,7 @@ defmodule PutzplanWeb.CompletedTaskLive.Index do
Listing Completed tasks
<:actions>
<.link patch={~p"/completed_tasks/new"}>
- <.button>New Completed task
+ <.button>New Completed task
@@ -18,31 +18,31 @@ defmodule PutzplanWeb.CompletedTaskLive.Index do
rows={@streams.completed_tasks}
row_click={fn {_id, completed_task} -> JS.navigate(~p"/completed_tasks/#{completed_task}") end}
>
-
- <:col :let={{_id, completed_task}} label="Id"><%= completed_task.id %>
-
+ <:col :let={{_id, completed_task}} label="Id">{completed_task.id}
+
<:action :let={{_id, completed_task}}>
<.link navigate={~p"/completed_tasks/#{completed_task}"}>Show
-
-
-
- <.modal :if={@live_action == :new} id="completed_task-modal" show on_cancel={JS.patch(~p"/completed_tasks")}>
- <.live_component
- module={PutzplanWeb.CompletedTaskLive.FormComponent}
- current_user={@current_user}
- id={:new}
- title={@page_title}
- action={@live_action}
- completed_task={@completed_task}
- patch={~p"/completed_tasks"}
- />
-
-
+ <.modal
+ :if={@live_action == :new}
+ id="completed_task-modal"
+ show
+ on_cancel={JS.patch(~p"/completed_tasks")}
+ >
+ <.live_component
+ module={PutzplanWeb.CompletedTaskLive.FormComponent}
+ current_user={@current_user}
+ id={:new}
+ title={@page_title}
+ action={@live_action}
+ completed_task={@completed_task}
+ patch={~p"/completed_tasks"}
+ />
+
"""
end
diff --git a/lib/putzplan_web/live/completed_task_live/show.ex b/lib/putzplan_web/live/completed_task_live/show.ex
index f196e58..f8aa0d5 100644
--- a/lib/putzplan_web/live/completed_task_live/show.ex
+++ b/lib/putzplan_web/live/completed_task_live/show.ex
@@ -5,20 +5,15 @@ defmodule PutzplanWeb.CompletedTaskLive.Show do
def render(assigns) do
~H"""
<.header>
- Completed task <%= @completed_task.id %>
- <:subtitle>This is a completed_task record from your database.
-
+ Completed task {@completed_task.id}
+ <:subtitle>This is a completed_task record from your database.
<.list>
-
- <:item title="Id"><%= @completed_task.id %>
-
+ <:item title="Id">{@completed_task.id}
<.back navigate={~p"/completed_tasks"}>Back to completed_tasks
-
-
"""
end
diff --git a/lib/putzplan_web/live/task_live/form_component.ex b/lib/putzplan_web/live/task_live/form_component.ex
index 7fd3d2f..c0e212d 100644
--- a/lib/putzplan_web/live/task_live/form_component.ex
+++ b/lib/putzplan_web/live/task_live/form_component.ex
@@ -6,7 +6,7 @@ defmodule PutzplanWeb.TaskLive.FormComponent do
~H"""
<.header>
- <%= @title %>
+ {@title}
<:subtitle>Use this form to manage task records in your database.
@@ -17,10 +17,12 @@ defmodule PutzplanWeb.TaskLive.FormComponent do
phx-change="validate"
phx-submit="save"
>
-
- <.input field={@form[:description]} type="text" label="Description" /><.input field={@form[:repetition_days]} type="number" label="Repetition days" />
-
-
+ <.input field={@form[:description]} type="text" label="Description" /><.input
+ field={@form[:repetition_days]}
+ type="number"
+ label="Repetition days"
+ />
+
<:actions>
<.button phx-disable-with="Saving...">Save Task
diff --git a/lib/putzplan_web/live/task_live/index.ex b/lib/putzplan_web/live/task_live/index.ex
index efafbbb..bf1ead8 100644
--- a/lib/putzplan_web/live/task_live/index.ex
+++ b/lib/putzplan_web/live/task_live/index.ex
@@ -8,7 +8,7 @@ defmodule PutzplanWeb.TaskLive.Index do
Listing Tasks
<:actions>
<.link patch={~p"/tasks/new"}>
- <.button>New Task
+ <.button>New Task
@@ -18,21 +18,21 @@ defmodule PutzplanWeb.TaskLive.Index do
rows={@streams.tasks}
row_click={fn {_id, task} -> JS.navigate(~p"/tasks/#{task}") end}
>
+ <:col :let={{_id, task}} label="Description">{task.description}
- <:col :let={{_id, task}} label="Description"><%= task.description %>
-
- <:col :let={{_id, task}} label="Due"><%= task.due %>
+ <:col :let={{_id, task}} label="Due">{task.due}
<:action :let={{_id, task}}>
<.link navigate={~p"/tasks/#{task}"}>Show
-
- <.link patch={~p"/tasks/#{task}/edit"}>Edit
- <.link phx-click={JS.push("complete", value: %{id: task.id})}>Complete
-
-
+ <:action :let={{_id, task}}>
+ <.link patch={~p"/tasks/#{task}/edit"}>Edit
+
+ <:action :let={{_id, task}}>
+ <.link phx-click={JS.push("complete", value: %{id: task.id})}>Complete
+
<:action :let={{id, task}}>
<.link
phx-click={JS.push("delete", value: %{id: task.id}) |> hide("##{id}")}
@@ -41,19 +41,19 @@ defmodule PutzplanWeb.TaskLive.Index do
Delete
-
- <.modal :if={@live_action in [:new, :edit]} id="task-modal" show on_cancel={JS.patch(~p"/tasks")}>
- <.live_component
- module={PutzplanWeb.TaskLive.FormComponent}
- id={(@task && @task.id) || :new}
- title={@page_title}
- current_user={@current_user}
- action={@live_action}
- task={@task}
- patch={~p"/"}
- />
-
+
+ <.modal :if={@live_action in [:new, :edit]} id="task-modal" show on_cancel={JS.patch(~p"/tasks")}>
+ <.live_component
+ module={PutzplanWeb.TaskLive.FormComponent}
+ id={(@task && @task.id) || :new}
+ title={@page_title}
+ current_user={@current_user}
+ action={@live_action}
+ task={@task}
+ patch={~p"/"}
+ />
+
"""
end
@@ -76,7 +76,10 @@ defmodule PutzplanWeb.TaskLive.Index do
defp apply_action(socket, :edit, %{"id" => id}) do
socket
|> assign(:page_title, "Edit Task")
- |> assign(:task, Ash.get!(Putzplan.Tasks.Task, id, actor: socket.assigns.current_user))
+ |> assign(
+ :task,
+ Ash.get!(Putzplan.Tasks.Task, id, load: [:due], actor: socket.assigns.current_user)
+ )
end
defp apply_action(socket, :new, _params) do
@@ -109,7 +112,7 @@ defmodule PutzplanWeb.TaskLive.Index do
Putzplan.Tasks.CompletedTask
|> Ash.Changeset.for_create(:create, %{task: id, user: socket.assigns.current_user.id})
|> Ash.create!(actor: socket.assigns.current_user)
-
+
{:noreply, stream_insert(socket, :tasks, Ash.get!(Putzplan.Tasks.Task, id, load: [:due]))}
end
end
diff --git a/lib/putzplan_web/live/task_live/show.ex b/lib/putzplan_web/live/task_live/show.ex
index 0f04a92..4124072 100644
--- a/lib/putzplan_web/live/task_live/show.ex
+++ b/lib/putzplan_web/live/task_live/show.ex
@@ -6,26 +6,22 @@ defmodule PutzplanWeb.TaskLive.Show do
def render(assigns) do
~H"""
<.header>
- Task <%= @task.description %>
- <:actions>
- <.link patch={~p"/tasks/#{@task}/show/edit"} phx-click={JS.push_focus()}>
- <.button>Edit task
-
-
-
+ Task {@task.description}
+ <:actions>
+ <.link patch={~p"/tasks/#{@task}/show/edit"} phx-click={JS.push_focus()}>
+ <.button>Edit task
+
+
- <.table
- id="completed_tasks"
- rows={@streams.completed_tasks}
- >
- <:col :let={{_id, completed_task}} label="Completed by"><%= completed_task.users.name %>
- <:col :let={{_id, completed_task}} label="Date"><%= completed_task.completion %>
- <:action :let={{id, completed_task}}>
- <.link phx-click={JS.push("delete", value: %{id: completed_task.id}) |> hide("##{id}")}>
- Delete
-
-
+ <.table id="completed_tasks" rows={@streams.completed_tasks}>
+ <:col :let={{_id, completed_task}} label="Completed by">{completed_task.users.name}
+ <:col :let={{_id, completed_task}} label="Date">{completed_task.completion}
+ <:action :let={{id, completed_task}}>
+ <.link phx-click={JS.push("delete", value: %{id: completed_task.id}) |> hide("##{id}")}>
+ Delete
+
+
<.back navigate={~p"/"}>Back to tasks
@@ -58,7 +54,9 @@ defmodule PutzplanWeb.TaskLive.Show do
@impl true
def handle_event("delete", %{"id" => id}, socket) do
- completed_task = Ash.get!(Putzplan.Tasks.CompletedTask, id, actor: socket.assigns.current_user)
+ completed_task =
+ Ash.get!(Putzplan.Tasks.CompletedTask, id, actor: socket.assigns.current_user)
+
Ash.destroy!(completed_task, actor: socket.assigns.current_user)
{:noreply, stream_delete(socket, :completed_tasks, completed_task)}