IMP: task card (#25)

This commit is contained in:
Matthew Ryan Dillon 2020-06-29 20:28:06 -07:00 committed by GitHub
parent 676de86157
commit a91f1924b2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 89 additions and 27 deletions

View file

@ -72,6 +72,17 @@ defmodule PlannerWeb.TaskController do
end
end
# this is a little bit of a hack, but it'll do for now:
# pattern match on the empty case, we will assume this
# is a "task finished" action
def update(conn, %{"id" => id}) do
{_, task} = Tasks.finish_task_by_id!(id)
conn
|> put_flash(:info, "task '#{task.value}' finished")
|> redirect(to: Routes.task_path(conn, :index))
end
def delete(conn, %{"id" => id}) do
{:ok, _task} = Tasks.delete_task_by_id!(id)

View file

@ -37,7 +37,7 @@ defmodule PlannerWeb.LandingLive do
{:noreply,
socket
|> clear_flash(:info)
|> put_flash(:info, "task '" <> task.value <> "' created")
|> put_flash(:info, "task '#{task.value}' created")
|> assign(:new_task_changeset, Tasks.change_task(%Task{}))}
{:error, %Ecto.Changeset{} = changeset} ->

View file

@ -1,29 +1,9 @@
<%= link "new", to: Routes.task_path(@conn, :new), class: "button is-dark" %>
<div class="table-container">
<table class="table is-striped is-hoverable is-fullwidth" style="table-layout: fixed;">
<thead>
<tr>
<th>task</th>
</tr>
</thead>
<tbody>
<%= for task <- @tasks do %>
<tr>
<td>
<%= if not is_nil(task.due_at) do %>
<div class="tags mb-0">
<span class="tag is-warning">
due: <%= task.due_at %>
</span>
</div>
<% end %>
<%= link to: Routes.task_path(@conn, :show, task.id), class: "has-text-black" do %>
<%= md_to_html task.value %>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>
<div class="content">
<ul class="tasks">
<%= for task <- @tasks do %>
<li><%= render "task.html", Map.put(assigns, :task, task) %></li>
<% end %>
</ul>
</div>

View file

@ -0,0 +1,19 @@
<div>
<div class="is-pulled-left">
<%= link(to: Routes.task_path(@conn, :update, @task.id), method: :patch) do %>
<button type="button" role="checkbox" class="doit"></button>
<% end %>
</div>
<div class="ml-5-5">
<div class="value" onclick="location.href='<%= Routes.task_path(@conn, :show, @task.id) %>'">
<%= md_to_html(@task.value) %>
</div>
<%= if not is_nil(@task.due_at) do %>
<div class="tags mb-0">
<span class="tag">
due: <%= @task.due_at %>
</span>
</div>
<% end %>
</div>
</div>