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 @@
-
@@ -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) || [])
}))
})