✨ feat(EventsController): Affiche la liste des événements et les détails
Ajoute l'affichage des événements et de leurs détails. Ajoute aussi la gestion des affiches.
```
🎨 style(home.twig): Supprime commentaire inutile sur les dimensions des images.
♻️ refactor(base.twig): Déplace le script Chatwoot dans app.js pour centralisation.
✨ feat(ViteAssetExtension): Corrige le chargement des styles CSS.
🎨 style(app.scss): Supprime l'import de la police dans le fichier SCSS.
🔒 chore(caddy): Ajoute des en-têtes de sécurité manquants.
✨ feat(base.twig): Ajoute la prise en charge des polices Google Fonts.
```
✨ feat(sentry): Ajoute Sentry pour le suivi des erreurs
Ajoute Sentry pour le suivi des erreurs en production et améliore la
gestion des erreurs côté client et serveur.
```
✨ feat(assets/app.js): Ajoute gestion bandeau cookies et notifications en français.
Ajoute les messages, la logique et l'affichage des bandeaux de cookies et de notifications.
```
✨ feat(sw.js/app.js): Gère les notifications push et l'abonnement
Ajoute la gestion des notifications push avec abonnement via le
service worker et enregistre l'abonnement sur le serveur. Gère
l'affichage d'une bannière pour demander la permission.
```
✨ feat(dons): Ajoute la fonctionnalité de dons avec Stripe et reçus PDF.
Ajoute une page de dons avec formulaire, intégration Stripe, webhooks,
génération de reçus PDF et envoi de mails de confirmation. Ajoute aussi
gestion des erreurs 404/500.
```
Ajoute la gestion des menus utilisateur (desktop et mobile) avec des fonctions pour basculer la visibilité et ferme les menus au clic extérieur.
Ajoute aussi la gestion de la touche "Echap" pour fermer les menus.
✨ feat(translations/messages.en.yaml): Add security translations for login & password.
Ajoute les traductions anglaises pour la sécurité (connexion, mot de passe oublié).
✨ feat(translations/messages.fr.yaml): Ajoute les traductions pour la sécurité.
Ajoute les traductions françaises pour les formulaires de connexion et mot de passe oublié.
✨ feat(templates/security): Crée les templates pour login et mot de passe oublié.
Crée les templates login.twig, forgot_password.twig et forgot_password_success.twig.
✨ feat(src/Service/ResetPassword): Adapte ResetPasswordSubscriber pour E-Cosplay.
Adapte le service ResetPasswordSubscriber pour le projet E-Cosplay.
✨ feat(src/Controller/SecurityController): Crée le contrôleur de sécurité.
Crée le SecurityController avec les routes pour la connexion et la gestion du mot de passe oublié.
✨ feat(templates/base.twig): Ajoute le menu utilisateur desktop et mobile.
Ajoute le menu utilisateur (desktop et mobile) avec gestion de la connexion/déconnexion.
✨ feat(event): Ajoute la liste des événements et la gestion d'absence d'événements.
Ajoute la liste des événements avec affichage de date, lieu, organisateur et un lien vers les détails. Gère l'absence d'événements.
```
✨ feat(Website): Crée une clé API et DNS principal lors de la création.
🔒 fix(ApiSubscriber): Valide le header EsyWebDns pour l'accès API.
✨ feat(ServerCard): Met à jour l'affichage des métriques serveur.
✨ feat(StatusController): Ajoute un endpoint pour vérifier l'état du site.
🐛 fix(CustomerController): Corrige une faute de frappe dans un flash message.
✨ feat(customer): Ajoute l'entité CustomerWallet et la vue porte-monnaie.
♻️ refactor(template): Renomme external.twig en wallet.twig.
✨ feat(website): Ajoute une option pour afficher les options du site.
🐛 fix(serverCard): Affiche correctement le statut en temps réel via MQTT.
🌐 i18n: Corrige une faute de frappe dans la traduction de "Newsletter".
```
✨ feat(dashboard): Ajoute affichage des serveurs Google Compute et OVH.
Ajoute le script mqtt et la class ServerCard pour afficher le status serveur.
```
Ajoute une fonctionnalité de partage de fichiers temporaires avec suppression automatique après 30 minutes et génération de QR codes. Ajoute aussi une tâche cron pour supprimer ces fichiers.
Ce commit implémente l'ajout et la visualisation des sites internet.
Il inclut la gestion de formulaires, l'enregistrement en base de données,
et l'affichage des détails.
✨ feat(esyweb): Ajoute un contrôleur et une page pour les sites web
🐛 fix(register): Corrige l'enregistrement des paiements partiels et complets
✨ feat(Payment): Gère les paiements complets et partiels via Stancer
✨ feat(BillingEvent): Ajoute des listeners pour les paiements complétés
Crée une page pour lister et gérer les tutoriels ESY-WEB dans Artemis.
Ajoute un formulaire pour créer de nouveaux tutoriels.
Gère l'upload de fichiers mp4 pour les tutoriels.
✨ feat(RegisterPayment.js): Ajoute formulaire d'enregistrement de paiement.
✨ feat(sitemap): Ajoute les routes légales au sitemap.
✨ feat(payement_legal.twig): Ajoute la page des mentions légales.
✨ feat(PaymentController): Ajoute la route de la page mentions légales.
✨ feat(admin/base.twig): Ajoute la condition noIndex est définie.
🌐 i18n: Ajoute la traduction pour "En attends de virement".
🐛 fix(CustomerCommand): Corrige la suppression des données liées au client.
🎨 style(admin): Ajoute le style de la modale de confirmation.
➕ feat(CustomerCommand): Ajoute une commande pour purger les clients supprimés.
🛠️ chore(ansible): Ajoute une tâche cron pour purger les clients supprimés.
🗑️ feat(CustomerController): Ajoute une suppression forcée d'un client.
✨ feat(Customer): Ajoute la fonction de clonage d'entité Customer.
✨ feat(SignClient): Utilise Docuseal avec PDF pour la signature des devis.
✨ feat(AvatarController): Ajoute un endpoint pour le verrouillage de l'application.
✨ feat(IpWall): Ajoute un composant web pour bloquer l'accès basé sur l'IP.
🎨 style(admin.scss): Ajoute des styles pour le modal de paiement et les murs de sécurité.
✨ feat(RegisterPayment): Ajoute un composant pour enregistrer les paiements.
🐛 fix(DevisPdf): Corrige l'alignement des totaux dans le PDF du devis.
🔥 chore: Ajoute discord_bot/node_modules au .gitignore.
✨ feat(ExportComptable): Ajoute une commande pour exporter les données comptables.
✨ feat(LockdownWall): Ajoute un composant web pour le verrouillage de l'application.
🐛 fix(CustomerController): Corrige la copie des contacts lors du clonage du client.
✨ feat(SecurityWall): Ajoute un composant web pour activer/désactiver le filtre de confidentialité.