c25d9ad843
feat: admin page — guard isAdmin, error handling, upload local, role assignment
...
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 32s
- AuthContext: roles: string[] ajouté au type User
- Header: lien /admin masqué si !roles.includes('admin')
- AdminPage: redirect / si non-admin (Navigate)
- AdminPage: fetchError sur les 3 tabs (load silencieux → message visible)
- AdminPage: actionError sur toutes les mutations (toggle/delete/assign)
- AdminPage: loading UsersTab → skeleton list 3 cartes (aligné Videos/Plans)
- AdminPage: upload local — file input mp4/webm, multipart POST /admin/videos/upload,
storageKey auto-rempli, Créer bloqué pendant upload
- AdminPage: assignation rôle — PATCH /admin/users/:id/roles, rafraîchit la liste
2026-03-14 15:25:11 +01:00
aa15dc0f54
feat: AuthContext, protected routes, admin page, fix VideoPlayer URL
2026-03-14 14:31:08 +01:00
324efcaa3d
feat: login email/password + proxy POST /api/auth/login → SuperOAuth
...
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 21s
- auth.routes : POST /api/auth/login proxie vers SuperOAuth, pose httpOnly cookie
- Factorisation upsertUser() partagé avec /session
- LoginPage : form email/password + séparateur + boutons OAuth provider
2026-03-14 10:26:25 +01:00
7e3ee29b13
fix: login page avec sélection provider → /api/v1/auth/oauth/:provider?redirectUrl
...
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 21s
SuperOAuth root page ignore ?redirectUrl, les boutons de sa UI pointent vers
ses propres URIs hardcodées. Fix : notre page /login construit les URLs API
directement avec redirectUrl=origins.tetardtek.com/callback.
Aussi : CORS_ORIGINS SuperOAuth mis à jour (origins.tetardtek.com ajouté).
2026-03-14 10:11:30 +01:00
34bab532be
fix: login → SuperOAuth root page (redirectUrl), drop LoginPage interne
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 21s
2026-03-14 10:04:20 +01:00
4265d21c8b
feat: login provider selection, logout, playlists pages
...
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 22s
- LoginPage : sélection Discord/GitHub/Google/Twitch via SuperOAuth
- Header : bouton Connexion → /login, logout ↩ quand connecté, nav Playlists conditionnelle
- useAuth : expose setUser pour logout côté Layout
- PlaylistsPage : liste owned/shared, création inline
- PlaylistPage : détail playlist + liste vidéos ordonnées
- Fix : Video.id number → string (UUID)
- Routes : /login, /playlists, /playlists/:id
2026-03-14 09:32:45 +01:00
9598cd8715
perf(frontend): drop react-player — YouTube iframe natif, HLS.js lazy seulement si .m3u8
CI/CD — Build & Deploy / Build (push) Failing after 35s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:39:01 +01:00
5eb0a43d7f
feat: lazy ReactPlayer, seed 11 vidéos YouTube (niveaux 0/1/2)
CI/CD — Build & Deploy / Build (push) Failing after 41s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:25:41 +01:00
87d076313c
feat(frontend): VideoPage react-player v3, fix data.videos, route /video/:id
CI/CD — Build & Deploy / Build (push) Has been cancelled
CI/CD — Build & Deploy / Deploy to VPS (push) Has been cancelled
2026-03-14 08:12:08 +01:00
0591cd4528
feat(frontend): useAuth /auth/me, videos list + locked flag, VITE_API_URL
CI/CD — Build & Deploy / Build (push) Failing after 40s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:06:51 +01:00
75aad8968f
fix(frontend): SuperOAuth flow — VITE_SUPEROAUTH_URL, redirect par provider, pas de client_id
CI/CD — Build & Deploy / Build (push) Failing after 29s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 07:39:51 +01:00
25733ee3db
feat(frontend): scaffold Tailwind design system + routing + auth callback
...
- Tailwind v3 + PostCSS + autoprefixer
- BrowserRouter with Layout shell (Header, theme toggle dark/light)
- Pages: HomePage, CallbackPage (SuperOAuth callback handler)
- hooks/useAuth.ts + lib/api.ts (API client base)
- styles/index.css (Tailwind directives)
- Theme persisted in localStorage (od-theme)
2026-03-14 07:15:19 +01:00
4a3be2a323
feat: initial project structure — Express/TS/TypeORM + React/TS + Docker + Gitea CI
CI/CD — Build & Deploy / Build (push) Failing after 1m47s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 04:13:58 +01:00