Commit Graph

29 Commits

Author SHA1 Message Date
1bbf03d875 feat(web): accueil et profil — allègement du hero (textes descriptifs retirés), grilles de livres pleine largeur à 5 colonnes (auto-fit sans max-width), liste des bibliothèques scrollable (3 lignes visibles, partagée avec .continue-grid), et écran de profil clarifié (avatar, bloc identité, actions Modifier/Sortir — évolution #48) 2026-08-28 23:53:11 +02:00
c2cdb07f9a feat(web): bibliothèque et lecteur — grilles de livres bornées à 5 colonnes (max-width calc sur .book-grid et .home-book-grid), retrait du bandeau « API absente ou incomplete » de l'accueil, et véritables pages d'erreur « Livre introuvable » sur fiche et lecteur (suppression de getApiFallback, retour à l'accueil + réessayer — évolution #46) 2026-08-28 23:29:03 +02:00
11bb529322 feat(web): accueil — refonte sobre et moderne : hero resserré, cartes de livres simplifiées (renderHomeBook : couverture + titre + auteur, sans pill de métadonnées ni Meter) et liste des livres en cours limitée à 3 éléments visibles avant scroll (tuiles 112px — évolution #45) 2026-08-28 23:07:39 +02:00
1d0b389c1e feat(web): accueil — rendre scrollable la liste des livres en cours après 6 éléments visibles (hauteur de .continue-grid bornée à 6 tuiles de 118px, overflow-y auto, scrollbar-gutter stable, tuiles à block-size fixe — évolution #44) 2026-08-28 22:40:59 +02:00
c4fe4d9de6 fix(web): lecteur mobile — stabiliser le pinch-zoom (ancrage du point médian sous les doigts avec restauration du scroll par page, gel du commit vertical via data-reader-pinch-active pendant le pincement, preventDefault sur touchstart et touch-action: pan-x pan-y pour bloquer le zoom natif — correctif bug #43) 2026-08-28 19:08:34 +02:00
ab77d129d3 fix(web): lecteur mobile — étendre le fallback page-sized aux frames PDF verticales non rendues (même cellule grid que le canvas, fond papier stable) pour éliminer les black screens d'environ 1s au scroll vertical PDF (2e correctif bug #42) 2026-08-26 17:14:11 +02:00
5fc70d39b7 fix(web): lecteur mobile — couvrir les pages CBZ verticales non chargées par un fallback de la taille de la page (même cellule grid, fond papier stable) pour éliminer les flashs noirs pendant le scroll vertical (bug #42) 2026-08-26 13:46:17 +02:00
b26116fbe3 fix(web): lecteur mobile — compacter la barre du lecteur sur téléphone (wrap flex, libellés secondaires masqués, navigation/plein écran en icônes, select de mode réductible) pour éliminer le rognage à droite (bug #40) 2026-08-26 13:12:05 +02:00
b2e7dc5b16 fix(web): lecteur — ancrer le stage vertical en haut du contenu (align-items/align-self: start, height auto) et désactiver l'overflow-anchor du stage pour éviter le centrage overflow au milieu du livre spécifique à Firefox (7e correctif bug #39) 2026-08-26 12:39:53 +02:00
f7e88c6bc0 feat(web): mode de lecture vertical type webtoon — pages empilées, défilement souris/flèches, préférence persistée 2026-08-24 15:26:06 +02:00
7055372faf fix(web): plein écran lecteur — header overlay et masquage automatique après 2 s d'inactivité 2026-08-24 15:06:32 +02:00
de099dc9ca feat(web): plein écran du lecteur (natif + fallback) et navigation flèches clavier durcie 2026-08-24 14:40:23 +02:00
fcf1760031 feat(web): zoom du lecteur — contrôles +/−/reset (50–300 %) sur PDF et CBZ 2026-08-24 14:28:53 +02:00
50a0b392e1 fix(web): lecteur PDF — pages blanches après rendu et base minimale stable
Le canvas PDF restait vide après rendu (blank-detected): la détection d'encre
reposait sur un seuil de blanc trop sensible et un fond de canvas non maîtrisé.
Le rendu passe à un fond sentinel explicite avec classification
rendered-ok/blank-detected et un seuil de pixels visibles.

Le lecteur est par ailleurs ramené à une base minimale stable: layout plein
viewport (app-main-reader), suppression des modes de lecture et des préférences
par livre, helpers de pagination/viewport extraits dans readerLayout.ts. Shell,
lecteurs CBZ/EPUB et styles alignés sur cette base.

Refs #31

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 12:52:49 +02:00
93bb40a8cd feat(api,web): modélisation série + volume et parcours de série
- Table series + colonnes seriesId/volumeNumber/volumeLabel sur les livres,
  extraction souple des numéros (T03, 003, etc.) via extract-series-volume
- Contrôleur et page de série, badge volume sur les cartes de livre,
  styles associés (fond/clarté série, ajustements globaux)
- Statuts de scan/enrichissement et provenance des métadonnées en base

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:11:10 +02:00
18d73a4db6 fix(api,web): enrichissement métadonnées — hints locaux et scoring des correspondances
Recherche de fiches par nom peu fiable : sans ISBN, les providers
étaient interrogés avec des titres bruts peu discriminants.

- extraction de hints locaux (titre/auteur/année/isbn du fichier et du
  nom de fichier) persistés dans books.local_metadata_json
- nouveau use-case ScoreMetadataMatch : tri des résultats par score de
  correspondance avant sélection du meilleur candidat
- providers (google-books, open-library, bnf, local) durcis et nourris
  par les hints ; colonne + index local_metadata_json avec migrations
  idempotentes (création et rebuild legacy)
- web : nettoyage de la description de la fiche livre
  (cleanBookDescription, white-space pre-line)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 18:07:29 +02:00
5de46a6f6d fix(web,api): lecteur — worker pdf.js dédié, shell commun et préférences par livre
Régression worker PDF : le worker pdf.js est désormais instancié une
seule fois via un port dédié (?worker&url) et reconfiguré à chaque
montage, au lieu d'un workerSrc recalculé qui cassait le rendu.

- ReaderShell : chrome commun aux lecteurs (toolbar, zones de tap,
  statut) et contrat ReaderControls pour EPUB/PDF/CBZ
- préférences de lecture par livre (mode horizontal/vertical, fit) :
  table reader_preferences + migrations idempotentes, module API,
  DTO partagés, client web avec fallback localStorage hors-ligne

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 18:06:22 +02:00
4aacac12da fix(web): lecteurs EPUB/PDF — gestion d'erreurs, worker pdf.js local
Composant ReaderError avec diagnostic et actions de repli, worker
pdf.js servi localement (pdfWorker) pour éviter les CDN, typage du
view foliate, navigation retour vers la fiche livre et styles lecteur
associés.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 16:24:02 +02:00
62abf890e0 feat(web): page admin des sources de métadonnées et de l'automatisation
Configuration des providers (activation, priorité, clé API), réglages
d'automatisation (watch des bibliothèques, auto-enrichissement,
planifications scan/enrichissement) et déclenchement manuel, avec
client API, mocks et styles associés.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 13:10:50 +02:00
369fbb0e07 feat(api,web): support CBR — extraction RAR, scan et lecture d'albums
- api: cbr utilitaire (extraction RAR), scanner/métadonnées (+ tests), books, schéma
- web: ReaderPage/locators (+ tests), mockData, types partagés
- deps: pnpm-lock

Refs: #17
2026-08-23 12:08:05 +02:00
de29850c31 merge: feat/16-cbz-support dans develop (support CBZ) 2026-08-23 11:54:13 +02:00
e5513d81eb feat(api,web): support CBZ — scan, métadonnées, lecteur d'albums
- api: cbz utilitaire commun, scanner/métadonnées (+ tests), books, schéma et migrations
- web: CbzReader, ReaderPage/locators (+ tests), types et client API
- shared: types formats

Refs: #16
2026-08-23 11:52:40 +02:00
a30971f1e9 fix(web): admin bibliothèques — correctifs complémentaires client et AdminPage
- web: AdminPage, client API (+ tests), styles

Refs: #15
2026-08-23 11:36:17 +02:00
39dd130c47 fix(web): admin des bibliothèques — UX, gestion d'erreur, styles
- web: AdminPage (admin bibliothèques), client API, styles
- web: nginx

Refs: #15
2026-08-23 11:28:07 +02:00
4b7d4d45ce merge: feat/14-auth-first-run dans develop (auth + first-run) 2026-08-23 11:13:09 +02:00
8f7555cfe4 feat(api,web): auth et first-run — bootstrap admin, login, session, gardes
- api: auth controller/service, config env
- web: App/LoginPage/ProfilePage, garde d'auth, client API, styles
- shared: types/contrats auth
- compose: variables d'environnement first-run

Refs: #14
2026-08-23 11:01:00 +02:00
85b56ef3b2 fix(web,api): UI fiche livre et lecteur — progression, locators EPUB/PDF, styles
- web: BookPage/ReaderPage enrichis, sauvegarde de progression lecteur
- web: locators EPUB/PDF normalisés (+ tests), EpubReader/PdfReader ajustés
- web: nginx et service worker ajustés
- api: progress — corrections contrôleur/service

Refs: #13
2026-08-23 10:32:44 +02:00
e94524f119 fix(web,api): débloquer la boucle de chargement 'Inventaire en cours' (Recherche/Admin)
- web: gestion d'erreur et d'état vide sur SearchPage/AdminPage
- web: client API — traitement des réponses sans contenu/erreurs réseau
- api: jobs.service — éviter le statut de scan perpétuellement en cours
- tests: client.test.ts

Refs: #12 (QA non-GREEN faute d'exécution, pas d'échec réel)
2026-08-23 10:01:54 +02:00
8f1140127f chore: initial commit — monorepo ReadaBook (API NestJS, web PWA, Docker) 2026-08-23 09:56:53 +02:00