From c65757ee245d4a5c0baaef0244994cc0dd524b93 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 21 May 2026 16:23:40 +0200 Subject: [PATCH] =?UTF-8?q?feat(vue-ensemble)=20:=20tri=20alphab=C3=A9tiqu?= =?UTF-8?q?e=20des=20machines=20par=20d=C3=A9faut=20+=20select=20de=20tri?= =?UTF-8?q?=20(nom/date)=20+=20harmonisation=20tailles=20des=20champs=20de?= =?UTF-8?q?=20filtre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/app/pages/index.vue | 51 +++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/frontend/app/pages/index.vue b/frontend/app/pages/index.vue index 8106a59..e5f0ea8 100644 --- a/frontend/app/pages/index.vue +++ b/frontend/app/pages/index.vue @@ -58,7 +58,26 @@ -
+
+ + +
+
@@ -66,13 +85,13 @@ à
@@ -295,6 +314,7 @@ const showAddSiteModal = ref(false) const showAddMachineModal = ref(false) const searchTerm = ref('') const selectedSiteFilter = ref('') +const sortOrder = ref('name-asc') const dateFrom = ref('') const dateTo = ref('') const collapsedSites = ref([]) @@ -318,10 +338,33 @@ const machinesBySiteId = computed(() => { return map }) +const sortMachines = (machineList) => { + const list = [...machineList] + switch (sortOrder.value) { + case 'name-desc': + return list.sort((a, b) => + (b.name || '').localeCompare(a.name || '', 'fr', { sensitivity: 'base', numeric: true }) + ) + case 'date-desc': + return list.sort((a, b) => + new Date(b.createdAt || 0) - new Date(a.createdAt || 0) + ) + case 'date-asc': + return list.sort((a, b) => + new Date(a.createdAt || 0) - new Date(b.createdAt || 0) + ) + case 'name-asc': + default: + return list.sort((a, b) => + (a.name || '').localeCompare(b.name || '', 'fr', { sensitivity: 'base', numeric: true }) + ) + } +} + const sitesWithMachines = computed(() => { return sites.value.map((site) => ({ ...site, - machines: machinesBySiteId.value.get(site.id) || [] + machines: sortMachines(machinesBySiteId.value.get(site.id) || []) })) })