Commit Graph

118 Commits

Author SHA1 Message Date
cedric 43f1f6e9f2 a11y: corrections accessibilité WCAG 2.1 (critères 4.1.2, 4.1.3, 1.3.1)
sign.js :
- aria-label sur les 4 Fab (Se déconnecter, dashboard, Se connecter, S'enregistrer)
- Correction des guillemets typographiques U+2018/U+2019 en ASCII (empêchaient le parsing JSX)
- Suppression de useMemo inutilisé
- IIFE async ;() → startSubscription() nommée + .catch() explicite (semi-style + no-void)

auth-form/index.js :
- aria-label des IconButton visibility traduits en français avec état dynamique :
  'Afficher/Masquer le mot de passe' et 'Afficher/Masquer la vérification'

version-timeline.js :
- aria-label='Comparer les versions' sur IconButton Comparer
- aria-label dynamique + aria-expanded sur le bouton expand/collapse
- Correction object-curly-newline et jsx-closing-bracket-location (pré-existants)

version-search.js :
- inputProps aria-label='Rechercher dans les versions' (placeholder seul insuffisant)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:36:37 +04:00
cedric dc1f115bd6 security: sanitiser la sortie marked avec DOMPurify (XSS)
export-pdf-button et print-button injectaient marked(content) directement
dans innerHTML / document.write. Un lien Markdown javascript: passait le
filtre hasRestrictedChar et pouvait s'exécuter.

Ajout de DOMPurify.sanitize() via import dynamique (déjà présent en dep
transitive de jspdf) sur les deux composants, avec whitelist de tags
et d'attributs stricte. markdown-renderer n'est pas touché car
react-markdown-preview utilise rehype-sanitize en interne.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 21:48:26 +04:00
cedric 22130529f6 feat: récupère le total des votes 2026-01-24 23:35:48 +04:00
cedric b838f46b2b fix: change color & variant pour le total des votes 2026-01-24 22:25:53 +04:00
cedric c2f8a4fb19 feat: ajout du nombre de vote total 2026-01-24 22:14:49 +04:00
cedric a184665ed1 feat: simplifie la vue timeline 2026-01-24 21:34:02 +04:00
cedric 6f214f7468 feat: ajoute la possibilité de désactiver les websockets 2026-01-24 13:22:35 +04:00
cedric 8ec761b2c8 fix: ajout d'un cercle circulaire lors du chargement des commentaires 2026-01-24 12:23:04 +04:00
cedric 315c71baa4 feat: denier titre publié dans le select lors de la création d'article 2026-01-24 09:08:20 +04:00
cedric d19fbf990b feat: ajout de la timezone pour les exports 2026-01-24 00:40:38 +04:00
cedric 1cf621b752 chore: renomme domaine konstitisyon.la vers konstitisyon.nu 2026-01-10 23:41:57 +04:00
cedric 2701957af8 fix: ferme les votes sur les versions obsolètes dans PDF/Print 2026-01-04 13:14:09 +04:00
cedric e101f503d2 feat: améliorer la gestion de WebSocket Directus 2026-01-04 13:13:49 +04:00
cedric 47d58680b3 build: upgrade Mui & d'autres lib liées 2026-01-04 13:13:25 +04:00
cedric af7189dd6e fix: corrigé couleur texte markdown timeline
- Ajout useTheme pour accès aux couleurs Material-UI
- Utilisation theme.palette.text.secondary pour le markdown
- Compatible thèmes sombre et clair
- Texte markdown maintenant lisible sur tous fonds
2025-07-24 11:34:08 +04:00
cedric cd8fd59a7f fix: ajouté rendu markdown dans extraits timeline
- Import du composant MarkdownRenderer dans version-timeline.js
- Logique d'extrait améliorée préservant structure markdown
- Points de coupure intelligents (phrases, paragraphes, mots)
- Longueur d'extrait augmentée à 150 caractères
- Fallback vers Typography pour texte simple
2025-07-24 11:30:35 +04:00
cedric b6320806c1 fix: amélioré layout table versions avec boutons actions
- Augmenté largeur colonne Actions: 100px → 200px
- Optimisé largeurs: Version 200px→180px, Date 120px→140px
- Ajouté flexWrap et gap réduit (0.3) pour boutons
- Hauteur minimum cellules actions: 64px
- Style compact pour bouton Comparer (minWidth auto)
2025-07-24 08:17:33 +04:00
cedric c9cf8dcdff feat: ajouté impression optimisée pour versions
- Composant PrintButton avec fenêtre popup dédiée
- Styles CSS print-optimized pour A4 avec media queries
- Support markdown complet avec rendu approprié
- Interface print avec boutons Imprimer/Fermer
- Feedback snackbar cohérent avec autres composants
- Intégré dans VersionPage, ListVersions et VersionTimeline
2025-07-24 08:08:15 +04:00
cedric 89fd63c8d7 fix: corrigé affichage erreurs vote backend
- Extraction message d'erreur depuis objet Directus
- Gestion fallback pour différents formats d'erreur
- Affichage correct messages extension backend en français
2025-07-24 07:51:05 +04:00
cedric 06c037a76e fix: ajouté vérification délai vote dans VersionTimeline
- Calcul isVoteDisabled basé sur 3 jours après création
- Désactivation VoteButtons pour versions anciennes
- Chip visuel "Vote fermé" pour versions expirées
- Cohérence avec VersionPage et VersionComparison
2025-07-23 20:39:03 +04:00
cedric 55b41a906b feat: ajouté support markdown dans export PDF
- Parser markdown avec marked pour rendu HTML complet
- Styles CSS pour éléments markdown (headings, listes, code, etc.)
- Nettoyage automatique des styles temporaires
- Fallback texte brut si parsing markdown échoue
2025-07-23 20:35:41 +04:00
cedric 19941839a6 feat: ajouté export PDF pour versions
- Composant ExportPdfButton avec jsPDF + html2canvas
- Support multi-pages avec formatage professionnel
- Intégré dans VersionPage, ListVersions et VersionTimeline
- Métadonnées complètes: nom, auteur, date, statut vote
- Dynamic imports pour optimiser bundle size
2025-07-23 20:31:55 +04:00
cedric 0a1ab064d7 fix: ajouté feedback visuel pour bouton partage en-tête
- Notifications snackbar pour partage natif et copie presse-papier
- Gestion erreurs avec messages appropriés
- Fallback complet pour navigateurs plus anciens
2025-07-23 20:14:53 +04:00
cedric db8b5dd1c2 feat: synchronisé votes entre header et comparaison
- État voteRefreshKey partagé pour forcer refresh des VoteButtons
- Props onVoteResult passées à VersionComparison
- Clés uniques pour chaque VoteButtons (header/comparison)
- Snackbar local dans VersionComparison si pas de callback parent
2025-07-23 20:13:07 +04:00
cedric f00b7c827d fix: ajouté feedback visuel pour votes sur VersionPage
- Callback onVoteResult pour VoteButtons avec notifications
- Snackbar pour confirmer succès/erreur des votes
- État snackbar avec gestion des messages
2025-07-23 20:10:01 +04:00
cedric 4964938485 fix: ajouté variables NEXT_PUBLIC pour footer côté client
- Variables NEXT_PUBLIC_APP_FOOTER_TEXT/URL dans .env.sample
- Supprimé console.log debug dans Footer
2025-07-23 20:06:34 +04:00
cedric 6dc1bf5a6f fix: ajouté 'use client' au composant VersionPage 2025-07-23 19:59:51 +04:00
cedric 91332724a3 feat: intégré bouton partage dans ListVersions et VersionTimeline
- Ajout ShareButton dans colonnes Actions table et cards timeline
- Génération URLs partageables vers versions spécifiques
- Support partage natif avec fallback copie presse-papier
2025-07-23 19:54:20 +04:00
cedric 529452b0fb feat: créé route dynamique et page version individuelle
- Route app/dashboard/versions/[id]/ pour URLs spécifiques
- Composant VersionPage avec affichage et partage natif
- Support modes comparison/content via paramètre URL
2025-07-23 19:54:10 +04:00
cedric 2a9c0497d9 feat: intègre CopyButton dans VersionComparison 2025-07-23 19:45:38 +04:00
cedric 0c7b097cb0 feat: intègre CopyButton dans ListVersions 2025-07-23 19:45:30 +04:00
cedric ff8da3010d feat: intègre CopyButton dans VersionTimeline 2025-07-23 19:45:21 +04:00
cedric 7831ab473b feat: ajoute composant CopyButton 2025-07-23 19:45:06 +04:00
cedric 1ce038054e feat: intègre recherche et filtres dans ListVersions 2025-07-23 18:50:23 +04:00
cedric 65e6498802 feat: ajoute composant VersionFilters 2025-07-23 18:50:16 +04:00
cedric 502ac388af feat: ajoute composant VersionSearch 2025-07-23 18:50:07 +04:00
cedric 870f07669e refactor: utilise VoteButtons dans VersionComparison 2025-07-23 18:21:34 +04:00
cedric 1ef29e517c refactor: utilise VoteButtons dans VersionTimeline 2025-07-23 18:21:24 +04:00
cedric 5c3311ca5f feat: ajoute composant VoteButtons réutilisable 2025-07-23 18:21:12 +04:00
cedric 2cf7273f29 feat: améliore interface VersionDialog 2025-07-23 17:41:15 +04:00
cedric e5b2671289 feat: ajoute bascule table/timeline dans ListVersions 2025-07-23 17:41:00 +04:00
cedric 824408afa9 feat: ajoute composant VersionTimeline 2025-07-23 17:40:45 +04:00
cedric f7dcc837d2 feat: ajoute affichage auteur pour toutes les versions 2025-07-23 14:30:09 +04:00
cedric 3bb26c7239 feat: améliore label légende versions obsolètes 2025-07-23 14:04:34 +04:00
cedric 709128f881 feat: améliore design cartes et légende comparaison versions 2025-07-23 13:40:34 +04:00
cedric acabbae951 fix: corrige rendu markdown dans comparaison versions 2025-07-23 12:22:21 +04:00
cedric 09d17dafaa feat: ajoute rendu markdown aux articles 2025-07-23 12:21:57 +04:00
cedric f0e5e07386 feat: intègre éditeur riche pour articles uniquement 2025-07-23 12:21:43 +04:00
cedric 2d824175e2 feat: ajoute RichTextEditor avec compteur 2025-07-23 12:21:32 +04:00
cedric 715891e657 feat: ajoute MarkdownRenderer avec couleurs personnalisées 2025-07-23 12:21:10 +04:00