From db738715c3ec85609f27e6f52b342e1829463ac6 Mon Sep 17 00:00:00 2001 From: kevin Date: Mon, 9 Mar 2026 10:50:41 +0100 Subject: [PATCH] feat : ajout download backup --- assets/LOGO_CARRE_BLANC.png | Bin 0 -> 5082 bytes components/BackupButtonSee.vue | 87 ++++++++++++++ components/BackupList.vue | 80 +++++++++++++ components/DiagramStorage.vue | 57 +++++---- components/MessageDiscord.vue | 19 +++ components/Speedtest.vue | 47 +++++--- components/StatusSite.vue | 61 +++++++--- components/skeleton/BlockSkeleton.vue | 14 +++ components/skeleton/ButtonSkeleton.vue | 17 +++ components/skeleton/CircleSkeleton.vue | 14 +++ components/skeleton/TextSkeleton.vue | 14 +++ pages/index.vue | 19 ++- server/api/backups.get.ts | 156 +++++++++++++++++++++++++ server/api/discord/messages.get.ts | 15 +++ server/api/download.get.ts | 147 ++++++++++++++++++++--- 15 files changed, 671 insertions(+), 76 deletions(-) create mode 100644 assets/LOGO_CARRE_BLANC.png create mode 100644 components/BackupButtonSee.vue create mode 100644 components/BackupList.vue create mode 100644 components/MessageDiscord.vue create mode 100644 components/skeleton/BlockSkeleton.vue create mode 100644 components/skeleton/ButtonSkeleton.vue create mode 100644 components/skeleton/CircleSkeleton.vue create mode 100644 components/skeleton/TextSkeleton.vue create mode 100644 server/api/backups.get.ts create mode 100644 server/api/discord/messages.get.ts diff --git a/assets/LOGO_CARRE_BLANC.png b/assets/LOGO_CARRE_BLANC.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a2eb658ece8465e2bd45eaf973d0143bb478dc GIT binary patch literal 5082 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 K<4S>R5&s2rKmN%8 literal 0 HcmV?d00001 diff --git a/components/BackupButtonSee.vue b/components/BackupButtonSee.vue new file mode 100644 index 0000000..f7d20cb --- /dev/null +++ b/components/BackupButtonSee.vue @@ -0,0 +1,87 @@ + + + + diff --git a/components/BackupList.vue b/components/BackupList.vue new file mode 100644 index 0000000..b1c4508 --- /dev/null +++ b/components/BackupList.vue @@ -0,0 +1,80 @@ + + diff --git a/components/DiagramStorage.vue b/components/DiagramStorage.vue index e2ab372..143ad17 100644 --- a/components/DiagramStorage.vue +++ b/components/DiagramStorage.vue @@ -1,33 +1,46 @@ + + \ No newline at end of file diff --git a/components/Speedtest.vue b/components/Speedtest.vue index 9fd6426..c5c766b 100644 --- a/components/Speedtest.vue +++ b/components/Speedtest.vue @@ -1,5 +1,5 @@ diff --git a/components/StatusSite.vue b/components/StatusSite.vue index 192a946..1d34571 100644 --- a/components/StatusSite.vue +++ b/components/StatusSite.vue @@ -1,30 +1,51 @@ + +
-

- {{ row.label }} -

-
- - - {{ statusLabel(row.status) }} - + > +

+ {{ row.label }} +

+
+ + + {{ statusLabel(row.status) }} + +
- diff --git a/components/skeleton/ButtonSkeleton.vue b/components/skeleton/ButtonSkeleton.vue new file mode 100644 index 0000000..c2fe465 --- /dev/null +++ b/components/skeleton/ButtonSkeleton.vue @@ -0,0 +1,17 @@ + + + diff --git a/components/skeleton/CircleSkeleton.vue b/components/skeleton/CircleSkeleton.vue new file mode 100644 index 0000000..1284894 --- /dev/null +++ b/components/skeleton/CircleSkeleton.vue @@ -0,0 +1,14 @@ + + + diff --git a/components/skeleton/TextSkeleton.vue b/components/skeleton/TextSkeleton.vue new file mode 100644 index 0000000..d957d8a --- /dev/null +++ b/components/skeleton/TextSkeleton.vue @@ -0,0 +1,14 @@ + + + diff --git a/pages/index.vue b/pages/index.vue index 20b8c67..d4955c1 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -1,10 +1,11 @@