exmr/lib/exmr_web/live/exam_live/index.html.heex
Vladimir Rubin 094b0f0324
All checks were successful
Checks / check (pull_request) Successful in -6m20s
style: mix format
2024-12-11 22:22:40 +02:00

65 lines
1.8 KiB
Text

<.header>
<%= gettext("Listing Exams") %>
<div>
<button phx-click="sort" phx-value-by="subject" class="font-light">
<%= gettext("Sort by Subject") %>
</button>
<a>|</a>
<button phx-click="sort" phx-value-by="date" class="font-light">
<%= gettext("Sort by Date") %>
</button>
</div>
<:actions>
<.link patch={~p"/exams/new"}>
<.button class="dark:bg-sky-300 text-white dark:text-black/80 dark:hover:bg-sky-400">
<%= gettext("New Exam") %>
</.button>
</.link>
</:actions>
</.header>
<div class="divide-y">
<div :for={exam <- @exams} class="py-2 flex gap-2">
<div class="grow">
<div class="font-bold"><%= exam.subject %></div>
<div class="font-sm">
<!-- TODO: change to use ngettext -->
<%= exam.date %> |
<b>
<%= case Date.diff(exam.date, Date.utc_today()) do
0 -> gettext("Today")
1 -> gettext("Tomorrow")
x when x > 1 -> "#{x} #{gettext("days left")}"
x when x < 0 -> "#{x * -1} #{gettext("days passed")}"
end %>
</b>
</div>
</div>
<button
phx-click="edit"
phx-value-id={exam.id}
class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-3 rounded-md"
>
<%= gettext("Edit") %>
</button>
<button
phx-click="remove"
phx-value-id={exam.id}
class="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-3 rounded-md"
>
<%= gettext("Remove") %>
</button>
</div>
</div>
<.modal :if={@live_action in [:new, :edit]} id="exam-modal" show on_cancel={JS.patch(~p"/exams")}>
<.live_component
module={ExmrWeb.ExamLive.FormComponent}
id={@exam.id || :new}
title={@page_title}
action={@live_action}
exam={@exam}
patch={~p"/exams"}
/>
</.modal>