Compare commits

..

5 Commits

Author SHA1 Message Date
264af20dae Merge branch 'develop' into feature/ERP-41-mise-a-jour-malio-ui
# Conflicts:
#	config/reference.php
2026-05-13 10:36:28 +02:00
9fe3ce9f96 fix : .gitignore 2026-05-13 10:32:27 +02:00
c2996b21ae fix : icon des boutons d'ajout 2026-05-13 09:55:53 +02:00
cbcde54187 fix : validation du formulaire login avec la touche entrée 2026-05-13 09:29:22 +02:00
3123c5ff4d feat : mise à jour de la lib Malio UI 2026-05-13 09:28:41 +02:00
2 changed files with 20 additions and 18 deletions

View File

@@ -1,2 +1,2 @@
parameters: parameters:
app.version: '0.1.35' app.version: '0.1.34'

View File

@@ -9,8 +9,7 @@
<!-- Filtres --> <!-- Filtres -->
<section class="mt-4 rounded border border-gray-200 bg-white p-4"> <section class="mt-4 rounded border border-gray-200 bg-white p-4">
<!-- Labels uniformes au-dessus : les composants Malio sont utilises sans <!-- Labels uniformes au-dessus : les composants Malio sont utilises sans
leur `label` flottant interne pour ne pas mixer deux patterns de label. leur `label` flottant interne pour ne pas mixer deux patterns de label. -->
A revoir une fois le composant calendar Malio développé -->
<div class="grid grid-cols-1 items-start gap-3 md:grid-cols-5"> <div class="grid grid-cols-1 items-start gap-3 md:grid-cols-5">
<!-- TODO(malio-ui): remplacer par un composant Malio quand la lib <!-- TODO(malio-ui): remplacer par un composant Malio quand la lib
exposera un datetime picker. Cf. exception documentee dans exposera un datetime picker. Cf. exception documentee dans
@@ -60,20 +59,26 @@
v-model="performedByInput" v-model="performedByInput"
icon-name="mdi:account-search" icon-name="mdi:account-search"
input-class="text-sm" input-class="text-sm"
group-class="h-10"
/> />
</div> </div>
<!-- TODO(malio-ui): remplacer par MalioSelect quand la lib
supportera de maniere fiable des options a valeur string
(cf. note Lesstime CLAUDE.md). Exception documentee dans
CLAUDE.md (section "Composants formulaires"). -->
<div> <div>
<label class="mb-1 block text-xs font-medium text-gray-600"> <label class="mb-1 block text-xs font-medium text-gray-600">
{{ t('audit.filters.action') }} {{ t('audit.filters.action') }}
</label> </label>
<div class="[&>div>div]:!mt-0"> <select
<MalioSelect v-model="actionValue"
v-model="actionValue" class="h-[40px] w-full rounded-md border border-m-muted bg-white px-3 text-sm outline-none focus-visible:border-2 focus-visible:border-m-primary"
:options="actionOptions" >
text-field="text-sm" <option value="">{{ t('audit.filters.all_actions') }}</option>
text-value="text-sm" <option v-for="opt in actionOptions" :key="opt.value" :value="opt.value">
/> {{ opt.label }}
</div> </option>
</select>
</div> </div>
</div> </div>
@@ -199,14 +204,11 @@ const entityTypeOptions = computed(() =>
// pas binder directement un `string | undefined` reactive. // pas binder directement un `string | undefined` reactive.
const performedByInput = ref<string>('') const performedByInput = ref<string>('')
// Action : '' = "toutes les actions". On declare l'option dans `actionOptions` // Action : MalioSelect ne gere pas fiablement des options a valeur string (cf.
// plutot que via `emptyOptionLabel` (qui n'inclut pas l'option vide dans // note Lesstime CLAUDE.md). On utilise un `<select>` natif stylise comme les
// `props.options`, donc `selectedLabel` reste vide). On evite aussi `value: null` // inputs dates pour garder un look coherent. '' = "toutes les actions".
// car MalioSelect grise visuellement les options dont la valeur est `null`
// (Select.vue:137) — on utilise donc une chaine vide comme sentinelle.
const actionValue = ref<string>('') const actionValue = ref<string>('')
const actionOptions = [ const actionOptions = [
{ value: '', label: t('audit.filters.all_actions') },
{ value: 'create', label: t('audit.action.create') }, { value: 'create', label: t('audit.action.create') },
{ value: 'update', label: t('audit.action.update') }, { value: 'update', label: t('audit.action.update') },
{ value: 'delete', label: t('audit.action.delete') }, { value: 'delete', label: t('audit.action.delete') },
@@ -376,7 +378,7 @@ watch(selectedEntityTypes, values => {
loadEntries() loadEntries()
}) })
// Sync MalioSelect action -> filters.action. // Sync select action natif -> filters.action.
watch(actionValue, value => { watch(actionValue, value => {
if (watchersSuspended) return if (watchersSuspended) return
filters.action = value === '' ? undefined : value filters.action = value === '' ? undefined : value