feat(system): page Status avec endpoint API Platform et composants Vue
- Nouveau domaine System/Domain/Model/SystemStatus (value object) - QueryHandler agrégeant métriques mangas, chapitres, jobs (global/24h/7j), stockage et sources - Endpoint GET /api/system/status via API Platform (singleton) - Calcul de l'espace disque par RecursiveDirectoryIterator sur public/images - Page Vue /system/status avec 6 cards (Mangas, Chapitres, Jobs, Stockage, Sources, Système) - Nettoyage du router : suppression des PlaceholderComponent et routes placeholder - Sidebar : suppression des entrées sans page réelle
This commit is contained in:
parent
c2b55e9018
commit
ca8791cc0d
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<StatusCard title="Informations système" :icon="ServerIcon">
|
||||
<dl class="space-y-2">
|
||||
<div class="flex justify-between text-sm">
|
||||
<dt class="text-gray-500">Version PHP</dt>
|
||||
<dd class="font-medium text-gray-900 dark:text-white">{{ status.phpVersion }}</dd>
|
||||
</div>
|
||||
<div class="flex justify-between text-sm">
|
||||
<dt class="text-gray-500">Généré le</dt>
|
||||
<dd class="font-medium text-gray-900 dark:text-white">{{ formattedDate }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</StatusCard>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
import { ServerIcon } from '@heroicons/vue/24/outline';
|
||||
import StatusCard from './StatusCard.vue';
|
||||
|
||||
const props = defineProps({
|
||||
status: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
|
||||
const formattedDate = computed(() => {
|
||||
if (!props.status.generatedAt) return '';
|
||||
return new Date(props.status.generatedAt).toLocaleString('fr-FR');
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user