Commit Graph

56 Commits

Author SHA1 Message Date
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 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 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 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 247151012d refactor: renomme LogoutCountdown en SessionExpired 2025-07-23 08:45:15 +04:00
cedric 0860132763 Changement de couleur de la date de version en fonction du statut du vote 2024-12-17 19:04:10 +04:00
cedric 4cd303a910 typo: message explicite pour une erreur lors d'un vote 2024-12-17 12:36:56 +04:00
cedric 7902537df1 refactor: versionData > versionCompare + Ajout de la date de création d'une version et de l'utilisateur qui l'a créée 2024-12-17 05:45:16 +04:00
cedric aa02a51a1b feat: Implémentation du système de vote sur les versions
- Ajout des fonctions de vote dans directus.js (handleVote, getUserVote)
- Intégration des boutons de vote dans version-comparison.js
- Support de l'annulation de vote par double-clic
- Gestion des retours visuels (succès/erreur)
- Passage des props nécessaires dans list-versions.js
2024-12-16 09:14:02 +04:00
cedric 3105327735 Add vote icons to current version 2024-12-16 03:32:33 +04:00
cedric 00472914c7 Typo for VersionComparison component 2024-12-03 19:12:15 +04:00
cedric 619f2c566b Improve VersionComparison 2024-12-03 11:51:29 +04:00
cedric d5a363953b Remove unnecessary attributes 'item' in Grid component 2024-12-01 22:55:35 +04:00
cedric 317161750c Change VersionComparison spaces 2024-12-01 18:29:44 +04:00