From dfa30c8a65be3130ef1c1433d22f0fad299d0e9c Mon Sep 17 00:00:00 2001 From: Paco Date: Fri, 7 Nov 2025 22:14:45 +0000 Subject: [PATCH] Admin home page #128 (#259) * First iteration on the new PieChart component * #128 Adds new admin home page * Fixes code after merging conflicts * Removes empty file * Uses real data for admin home page, and improves style * Reverts debugging code * Defines missing variable * Caches user stats data for admin home page * Typo * Styles improvements * Invalidates cache on signup/signin * Implements top 5 biggest games * Improves styling * Improves style * Using generateManifest to get the proper size * Reading data from cache * Removes unnecessary import * Improves caching mechanism for game sizes * Removes lint errors * Replaces piechart tooltip with colors in legend * Fixes caching * Fixes caching and slight improvement on pie chart colours * Fixes a few bugs related to caching * Fixes bug where app signin didn't refresh cache * feat: style improvements * fix: lint --------- Co-authored-by: DecDuck --- components/GameEditor/Metadata.vue | 1 - components/GameEditor/Version.vue | 18 +- components/Icons/GamepadIcon.vue | 19 ++ components/PieChart/PieChart.vue | 45 ++++ components/PieChart/PieSlice.vue | 35 +++ components/PieChart/types.d.ts | 19 ++ components/PieChart/utils.ts | 50 ++++ components/ProgressBar.vue | 31 +++ components/RankingList.vue | 43 ++++ components/SourceTable.vue | 193 ++++++++++++++ components/TileWithLink.vue | 52 ++++ i18n/locales/en_us.json | 32 ++- layouts/admin.vue | 9 +- pages/admin/index.vue | 168 ++++++++++++- pages/admin/library/sources/index.vue | 101 +------- pages/admin/task/[id]/index.vue | 13 +- pages/store/[id]/index.vue | 24 +- server/api/v1/admin/game/[id]/index.delete.ts | 8 +- server/api/v1/admin/game/[id]/index.get.ts | 15 +- .../api/v1/admin/game/version/index.delete.ts | 12 +- server/api/v1/admin/home/index.get.ts | 27 ++ .../api/v1/admin/library/sources/index.get.ts | 5 +- .../v1/admin/library/sources/index.patch.ts | 6 +- .../v1/admin/library/sources/index.post.ts | 5 +- .../api/v1/admin/users/[id]/index.delete.ts | 2 + server/api/v1/auth/signup/simple.post.ts | 2 + server/api/v1/client/game/version.get.ts | 6 +- server/api/v1/games/[id]/index.get.ts | 5 +- server/internal/clients/handler.ts | 5 +- server/internal/downloads/manifest.ts | 9 + server/internal/gamesize/index.ts | 236 ++++++++++++++++++ server/internal/library/index.ts | 84 ++++++- server/internal/library/provider.ts | 2 + .../internal/library/providers/filesystem.ts | 5 + server/internal/library/providers/flat.ts | 5 + server/internal/userstats/index.ts | 68 +++++ server/internal/utils/files.ts | 47 ++++ utils/array.ts | 6 + utils/colors.ts | 76 ++++++ utils/tuple.ts | 13 + 40 files changed, 1352 insertions(+), 150 deletions(-) create mode 100644 components/Icons/GamepadIcon.vue create mode 100644 components/PieChart/PieChart.vue create mode 100644 components/PieChart/PieSlice.vue create mode 100644 components/PieChart/types.d.ts create mode 100644 components/PieChart/utils.ts create mode 100644 components/ProgressBar.vue create mode 100644 components/RankingList.vue create mode 100644 components/SourceTable.vue create mode 100644 components/TileWithLink.vue create mode 100644 server/api/v1/admin/home/index.get.ts create mode 100644 server/internal/gamesize/index.ts create mode 100644 server/internal/userstats/index.ts create mode 100644 server/internal/utils/files.ts create mode 100644 utils/array.ts create mode 100644 utils/colors.ts create mode 100644 utils/tuple.ts diff --git a/components/GameEditor/Metadata.vue b/components/GameEditor/Metadata.vue index 3ac48ab..be224af 100644 --- a/components/GameEditor/Metadata.vue +++ b/components/GameEditor/Metadata.vue @@ -605,7 +605,6 @@ function coreMetadataUpdate_wrapper() { ); }) .then((newGame) => { - console.log(newGame); if (!newGame) return; Object.assign(game.value, newGame); coreMetadataIconUrl.value = useObject(newGame.mIconObjectId); diff --git a/components/GameEditor/Version.vue b/components/GameEditor/Version.vue index d2d38ad..59507ce 100644 --- a/components/GameEditor/Version.vue +++ b/components/GameEditor/Version.vue @@ -51,14 +51,19 @@ @update="() => updateVersionOrder()" >