fix: traiter le premier lot de tickets

Refs #4 #5 #6 #9 #12 #16 #18 #20
This commit is contained in:
Alexandre NOEL 2026-09-07 23:31:29 +02:00
commit 04cbe54dd1
14 changed files with 87 additions and 12 deletions

View file

@ -186,6 +186,7 @@
function frenchMessage(field) {
if (field.validity.valueMissing) return <?= json_encode(t('auth.required'), JSON_UNESCAPED_UNICODE) ?> ;
if (field.validity.typeMismatch) return <?= json_encode(t('settings.invalid_email'), JSON_UNESCAPED_UNICODE) ?> ;
if (field.validity.tooShort) return <?= json_encode(t('auth.password_min', ['count' => '__COUNT__']),
JSON_UNESCAPED_UNICODE) ?> .replace('__COUNT__', field.minLength);
if (field.validity.patternMismatch) return <?= json_encode(t('auth.invalid_format'),

View file

@ -134,6 +134,17 @@ $fieldOptions = [
border-color: #206bc4
}
.care-treatment-choice:has(input:checked) {
color: #fff;
border-color: var(--tblr-primary);
background: var(--tblr-primary)
}
.care-treatment-choice.btn-outline-danger:has(input:checked) {
border-color: var(--tblr-danger);
background: var(--tblr-danger)
}
@media(max-width:800px) {
.care-box {
grid-column: span 6 !important
@ -341,12 +352,12 @@ $fieldOptions = [
class="card card-sm bg-purple-lt mb-2">
<div class="card-body py-2"><strong>💊 <?= h($t['medication_name']) ?></strong>
<div class="small mb-2"><?= h($t['dose_text']) ?></div>
<div class="btn-group w-100"><label class="btn btn-outline-success"><input
<div class="btn-group w-100"><label class="btn btn-outline-success care-treatment-choice"><input
type="radio" class="btn-check" name="treatments[<?= (int)$t['id'] ?>]"
value="given"
<?= ($administrations[(int)$t['id']] ?? '') === 'given' ? 'checked' : '' ?>>
<?= h(t('care.given')) ?></label><label
class="btn btn-outline-danger"><input type="radio" class="btn-check"
class="btn btn-outline-danger care-treatment-choice"><input type="radio" class="btn-check"
name="treatments[<?= (int)$t['id'] ?>]" value="skipped"
<?= ($administrations[(int)$t['id']] ?? '') === 'skipped' ? 'checked' : '' ?>>
<?= h(t('care.not_given')) ?></label></div>

View file

@ -31,10 +31,10 @@
<div class="col-lg-6">
<section class="card h-100">
<div class="card-body">
<span class="badge bg-blue-lt mb-2">1.0.0-rc.6</span>
<h3>Compatibilité des ressources</h3>
<p class="text-muted">Police emoji compatible avec les navigateurs et publication des médias
renforcée pour les installations YunoHost.</p>
<span class="badge bg-blue-lt mb-2">1.0.0-rc.7</span>
<h3>Premier lot de tickets</h3>
<p class="text-muted">Géocodage fiabilisé, doublons expliqués, tournées plus lisibles et animaux
adoptables publiés dans la démonstration.</p>
</div>
</section>
</div>

View file

@ -5,7 +5,7 @@
</div>
<?php if ($saved): ?><div class="alert alert-success">✅ <?= h(t('settings.saved')) ?></div><?php endif; ?>
<?php if ($error !== ''): ?><div class="alert alert-danger">⚠️ <?= h($error) ?></div><?php endif; ?>
<form method="post" action="/settings/general/save" enctype="multipart/form-data">
<form method="post" action="/settings/general/save" enctype="multipart/form-data" novalidate>
<div class="card mb-3 overflow-hidden">
<div class="card-status-top bg-primary"></div>
<div class="card-header">
@ -37,7 +37,9 @@
</div>
<div class="col-md-3"><label class="form-label"><?= h(t('settings.email')) ?></label><input
class="form-control" type="email" name="association_email"
value="<?= h($settings['association_email']) ?>"></div>
value="<?= h($settings['association_email']) ?>"
oninvalid="this.setCustomValidity(<?= h(json_encode(t('settings.invalid_email'))) ?>)"
oninput="this.setCustomValidity('')"></div>
<div class="col-12">
<hr class="my-1">
</div>