From 6add43e7300b0b7fe56043abfe7bd63100adf8d8 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Fri, 2 Oct 2026 21:34:05 -0400 Subject: [PATCH] =?UTF-8?q?feat(ui):=20menu=20du=20compte=20refondu=20(ic?= =?UTF-8?q?=C3=B4ne=20+=20titre=20+=20sous-titre)=20et=20version=20officie?= =?UTF-8?q?lle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refonte du panneau du bouton avatar (haut à droite du header) : lignes « icône + titre gras + sous-titre gris » pour Thème (thème appliqué, pastilles dépliées au clic), Administration, API (openapi.json), Préférences, Guide d'utilisation, À propos (version + tagline + code source) et Sessions ; Déconnexion isolée après séparateur et pied de page « Version ». Ajout de src/app/version.ts (APP_VERSION, alignée sur le tag semver du registre : 1.0.59 pour cette livraison) affichée dans le menu. Clés i18n FR + EN ajoutées des deux côtés, ligne README « Menu du compte refondu » dans le roadmap. --- README.md | 1 + src/app/version.ts | 10 ++ src/components/header/header.component.html | 140 ++++++++++++++++++-- src/components/header/header.component.ts | 19 +++ src/services/i18n.service.ts | 26 ++++ 5 files changed, 187 insertions(+), 9 deletions(-) create mode 100644 src/app/version.ts diff --git a/README.md b/README.md index 6a70cf2..ec88e2d 100644 --- a/README.md +++ b/README.md @@ -274,6 +274,7 @@ Légende : **✅ livré** (câblé de bout en bout) · **🟡 partiellement livr * ✅ **Import/Export playlists (JSON)** — `GET /playlists/export` (dump complet + items, format `newtube-playlists-v1`), `POST /playlists/import` (création des listes manquantes, dédoublonnage par titre au réimport, compteurs détaillés ; bornes 200 listes / 5 000 vidéos par liste) ; boutons **[Exporter] [Importer]** sur `/#/library/playlists`. * ✅ **Page Administration** (`/#/admin`, entrée « Administration » de la section Informations dans la barre latérale) — `/healthz` + `/api/providers/metrics` rendus lisibles : statut API, mode YouTube, version et santé yt-dlp, clés actives / bannies (+ suffixes), anti-ban (cookies / PO token / proxy), cache de recherche par provider, compteurs 1 h par provider, quota YouTube du jour. Au passage : `healthz` servi aussi sous `/proxy/api/healthz` (le chemin que le front utilise en prod). *Journaux (logs) et exposition Prometheus restent à faire — voir Observabilité.* * ✅ **Cache TTL par provider** — `server/env-ttl.mjs` (`_` → `` → défaut, valeurs invalides ignorées, jamais de TTL nul) branché sur les caches **details** (`DETAILS_CACHE_TTL_MS_

`) et **transcripts** (`TRANSCRIPT_CACHE_TTL_

`) en plus de la recherche (`SEARCH_CACHE_TTL_MS_

`). Le cache **suggest** reste global par conception : sa clé agrégée couvre plusieurs providers d'un coup, un TTL par provider demanderait de scinder le cache. Tests : `npm run test:cache` +* ✅ **Menu du compte refondu** (bouton avatar, haut à droite du header) — panneau sombre à lignes « icône + titre gras + sous-titre gris » : **Thème** (thème réellement appliqué en sous-titre, pastilles dépliées au clic), **Administration** (`/#/admin`), **API** (`/proxy/api/openapi.json` dans un nouvel onglet), **Préférences** (`/#/account/preferences`), **Guide d'utilisation** (`/#/info/utilisation`), **À propos** (version, tagline, lien code source), **Sessions** (`/#/account/sessions`), **Déconnexion** ; pied de page **Version** = version officielle de l'application (`src/app/version.ts`, alignée sur le tag semver publié par `docker/deploy-img.sh`). Clés i18n déclarées des deux côtés (FR + EN) ### 🟡 Partiellement livré diff --git a/src/app/version.ts b/src/app/version.ts new file mode 100644 index 0000000..4fa35da --- /dev/null +++ b/src/app/version.ts @@ -0,0 +1,10 @@ +/** + * Version officielle de l'application NewTube, affichée dans le menu du compte + * (header) et le pied de page « À propos ». + * + * Source unique côté front : elle suit le tag semver publié par + * `docker/deploy-img.sh` (le registre incrémente le patch à chaque déploiement). + * Dernier tag publié avant cette livraison : 1.0.58 → cette livraison sort en + * 1.0.59. Bumper cette valeur à chaque livraison. + */ +export const APP_VERSION = '1.0.59'; diff --git a/src/components/header/header.component.html b/src/components/header/header.component.html index 1662788..64531a7 100644 --- a/src/components/header/header.component.html +++ b/src/components/header/header.component.html @@ -105,18 +105,140 @@ {{ avatarLetter() }} @if (userMenuOpen()) { +