60 lines
1.8 KiB
Plaintext
60 lines
1.8 KiB
Plaintext
<div>
|
|
<h2 class="mb-8 text-center title text-xl text-primary-600">
|
|
<%= gettext("Record shots") %>
|
|
</h2>
|
|
|
|
<.form
|
|
:let={f}
|
|
for={@changeset}
|
|
id="shot-group-form"
|
|
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
|
|
phx-target={@myself}
|
|
phx-change="validate"
|
|
phx-submit="save"
|
|
>
|
|
<div
|
|
:if={@changeset.action && not @changeset.valid?()}
|
|
class="invalid-feedback col-span-3 text-center"
|
|
>
|
|
<%= changeset_errors(@changeset) %>
|
|
</div>
|
|
|
|
<%= label(f, :ammo_left, gettext("Rounds left"), class: "title text-lg text-primary-600") %>
|
|
<%= number_input(f, :ammo_left,
|
|
min: 0,
|
|
max: @ammo_group.count - 1,
|
|
placeholder: gettext("Rounds left"),
|
|
class: "input input-primary"
|
|
) %>
|
|
<button
|
|
type="button"
|
|
class="mx-2 my-1 text-sm btn btn-primary"
|
|
phx-click={JS.dispatch("cannery:set-zero", to: "#shot-group-form_ammo_left")}
|
|
>
|
|
<%= gettext("Used up!") %>
|
|
</button>
|
|
<%= error_tag(f, :ammo_left, "col-span-3") %>
|
|
|
|
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>
|
|
<%= textarea(f, :notes,
|
|
class: "input input-primary col-span-2",
|
|
placeholder: "Really great weather",
|
|
phx_hook: "MaintainAttrs"
|
|
) %>
|
|
<%= error_tag(f, :notes, "col-span-3") %>
|
|
|
|
<%= label(f, :date, gettext("Date"), class: "title text-lg text-primary-600") %>
|
|
<%= date_input(f, :date,
|
|
class: "input input-primary col-span-2",
|
|
phx_update: "ignore",
|
|
value: Date.utc_today()
|
|
) %>
|
|
<%= error_tag(f, :notes, "col-span-3") %>
|
|
|
|
<%= submit(dgettext("actions", "Save"),
|
|
class: "mx-auto btn btn-primary col-span-3",
|
|
phx_disable_with: dgettext("prompts", "Saving...")
|
|
) %>
|
|
</.form>
|
|
</div>
|