Commit Graph
156 Commits
Author SHA1 Message Date
Claude b4e2c254ed Feature: Recherche et modèle par défaut dans l'assistant IA
Améliorations du chatbox IA:

Système de recherche:
- Ajout d'un champ de recherche pour filtrer les modèles par nom ou ID
- Filtre en temps réel pendant la saisie
- Interface avec liste scrollable des modèles (max-h-32)

Système de modèle par défaut:
- Possibilité de définir un modèle comme favori (étoile ★)
- Sauvegarde du modèle par défaut dans localStorage
- Chargement automatique du modèle par défaut à l'ouverture du chatbox
- Indication visuelle: étoile jaune pleine (★) pour le modèle par défaut, étoile vide (☆) pour les autres

Interface améliorée:
- Remplacement du select natif par une liste interactive
- Highlighting du modèle sélectionné (bg-accent)
- Hover effect sur les modèles
- Bouton étoile cliquable sans sélectionner le modèle (stopPropagation)

L'utilisateur peut maintenant facilement trouver et définir son modèle préféré qui sera automatiquement sélectionné à chaque ouverture.
2025-11-12 21:35:55 +00:00
Claude 2bbb75766c Feature: Flux RSS avec 14 articles et pagination
Corrections et améliorations du système RSS et de l'assistant IA:

RSS:
- Correction de la route backend /api/rss/articles pour respecter le paramètre limit
- Changement de LIMIT 5 fixe à LIMIT ? avec paramètre dynamique
- Support de 14 articles avec pagination de 7 par page
- Amélioration du cache pour supporter différentes limites

Assistant IA:
- Suppression de la vérification settings.openrouter_api_key côté frontend
- Les modèles se chargent maintenant automatiquement via le backend
- Retrait de la section "Modèle IA" dans l'administration OpenRouter
- Amélioration de la gestion des erreurs lors du chargement des modèles

Les utilisateurs peuvent maintenant voir tous les modèles OpenRouter disponibles dans le sélecteur du chatbox, sans configuration manuelle dans l'admin.
2025-11-12 21:26:32 +00:00
Claude 4864eae3ce Fix: Chargement automatique des modèles OpenRouter dans le chatbox
Corrections pour permettre le chargement automatique des modèles IA:
- Retrait de la restriction admin sur la route GET /api/openrouter/models
- Retrait de la condition is_admin dans loadOpenRouterModels()
- Ajout d'un useEffect pour charger les modèles à l'ouverture du chatbox
- Ajout d'un indicateur "Chargement des modèles..." dans le sélecteur
- Désactivation du sélecteur pendant le chargement

Les modèles se chargent maintenant automatiquement quand l'utilisateur ouvre le chatbox, et tous les utilisateurs authentifiés peuvent y accéder (pas seulement les admins).
2025-11-12 19:08:12 +00:00
Claude 2ebef22dd8 UX: Remplacement du bouton retour par un bouton enregistrer
Améliorations de l'interface utilisateur des notes:
- Suppression du bouton "Retour aux notes" en haut à gauche
- Ajout d'un bouton "Enregistrer" en bas à droite de la note
- Améliore l'ergonomie et la clarté de l'action de sauvegarde

Le bouton enregistrer permet de fermer la note et revenir à la liste, rendant l'action explicite pour l'utilisateur.
2025-11-12 16:43:03 +00:00
Claude 826a4fa999 Feature: Ajout en-têtes pour todos et fichiers dans les notes
Ajout d'en-têtes descriptifs dans les notes:
- "todo list:" au-dessus de la section des checkboxes (todos)
- "Fichiers divers : Fichier(s)" au-dessus de la section des fichiers joints

Améliore la lisibilité et l'organisation visuelle des notes contenant des todos et des fichiers.
2025-11-12 16:40:01 +00:00
Claude da548f7bc0 Feature: Chatbox IA avec OpenRouter et sélecteur de modèles
Ajout d'un chatbot interactif alimenté par OpenRouter API avec les fonctionnalités suivantes:
- Bouton flottant en bas à droite pour ouvrir le chat
- Sélecteur de modèles IA avec tous les modèles disponibles via l'API OpenRouter
- Interface de chat avec historique des messages (utilisateur/assistant)
- Indicateur de chargement avec animation
- Boutons pour effacer l'historique et fermer le chat
- Auto-scroll vers le dernier message
- Backend: route POST /api/openrouter/chat pour la communication avec l'API
- Service frontend: méthode sendMessage() dans OpenRouterService

Retrait du composant MadeWithDyad comme demandé.
2025-11-12 16:17:33 +00:00
Claude 98a11b9ddd Feature: Flux RSS avec 14 articles et pagination
Modification du système d'affichage des flux RSS :

Changements :
- Augmentation de 8 à 14 articles maximum
- Ajout d'un système de pagination (7 articles par page)
- Navigation avec flèches ‹ › comme pour les todos
- Format compact : "X/Y" pour l'indicateur de page
- Hauteur ajustée : max-h-[calc(100vh-500px)] pour inclure la pagination
- Réinitialisation automatique à la page 1 lors du rechargement des articles

Constantes modifiées :
- RSS_MAX_ARTICLES : 8 → 14
- RSS_PER_PAGE : nouveau à 7
- loadRssArticles : 15 → 14 articles chargés

États ajoutés :
- rssPage : pagination des articles RSS

Résultat :
- Page 1 : 7 articles
- Page 2 : 7 articles
- Total : 14 articles avec navigation intuitive
2025-11-12 15:47:38 +00:00
Claude a11ffaa94c Feature: Pagination pour Notes, Todos et limitation RSS
Ajout de systèmes de pagination pour améliorer l'affichage :

1. Notes - Pagination (5 par page) :
   - Affichage maximum de 5 notes par page
   - Boutons "Précédent" et "Suivant" avec indicateur de page
   - Réinitialisation automatique à la page 1 lors du changement de filtre (actives/archivées) ou de recherche
   - Format : "Page X sur Y"

2. Todo List - Pagination (10 par page) :
   - Affichage maximum de 10 tâches par page
   - Pagination séparée pour les tâches actives et complétées
   - Navigation compacte avec flèches ‹ ›
   - Format compact : "X/Y"
   - Réinitialisation automatique lors d'ajout/suppression de tâches
   - Hauteur ajustée : max-h-[calc(100vh-400px)] pour laisser place à la pagination

3. Flux RSS - Limitation (8 articles) :
   - Affichage limité aux 8 articles les plus récents (au lieu de 15)
   - Pas de pagination nécessaire
   - Hauteur cohérente avec les autres boxes

États ajoutés :
- notesPage : pagination des notes
- todosActivePage : pagination tâches actives
- todosCompletedPage : pagination tâches complétées
- Constantes : NOTES_PER_PAGE (5), TODOS_PER_PAGE (10), RSS_MAX_ARTICLES (8)

Avantages :
- Interface plus claire et organisée
- Meilleure performance avec moins d'éléments DOM
- Navigation intuitive entre les pages
- Cohérence visuelle entre les différentes sections
2025-11-12 15:36:53 +00:00
Claude 82cb5608c1 Fix: Correction modal ajout RDV et réorganisation layout
Corrections :

1. Bug modal ajout de rendez-vous :
   - Remplacement des composants Select par des éléments select natifs
   - Les composants shadcn/ui Select ne fonctionnaient pas avec FormData
   - Le modal affichait une page blanche à cause de ce problème
   - Maintenant le formulaire fonctionne correctement

2. Réorganisation du layout :
   - Box Todo et RSS maintenant côte à côte (au lieu d'empilées)
   - Largeur de la colonne droite passée de 380px à 760px
   - Grid à 2 colonnes dans la partie droite
   - Hauteur augmentée : max-h-[calc(100vh-300px)] pour les deux boxes
   - Plus d'espace pour afficher les tâches et articles

3. Amélioration affichage RSS :
   - Suppression de la rotation automatique toutes les 20s
   - Affichage de tous les articles (15) avec scroll
   - Suppression de l'état rssDisplayOffset inutile
   - Suppression du useEffect de rotation
   - Meilleure utilisation de l'espace vertical disponible
2025-11-12 15:07:43 +00:00
Claude 822e0761a7 Feature: Ajout de rendez-vous Google Calendar
Ajout d'un modal complet pour créer des événements directement dans Google Calendar avec toutes les fonctionnalités :

Backend (routes/calendar.routes.js) :
- Changement du scope de 'calendar.readonly' à 'calendar' pour permettre l'écriture
- Nouvelle route POST /api/calendar/events pour créer des événements
- Support complet des fonctionnalités Google Calendar :
  * Titre, description, dates de début/fin
  * Lieu
  * Participants (attendees) avec notifications automatiques
  * Rappels personnalisables (popup)
  * Récurrence (quotidienne, hebdomadaire, mensuelle, annuelle)
  * Visibilité (public, privé, par défaut)
  * Couleurs d'événement (11 couleurs disponibles)
  * Fuseau horaire Europe/Paris
- Synchronisation automatique après création pour mise à jour locale

Frontend :
- Service CalendarService.ts : nouvelle méthode createEvent()
- Bouton "Ajouter" dans la box Rendez-vous
- Modal complet avec formulaire de création d'événement
- Tous les champs Google Calendar disponibles :
  * Titre et description
  * Date/heure de début et fin (datetime-local)
  * Lieu
  * Participants (emails séparés par virgules)
  * Rappels (10min, 30min, 1h, 1 jour)
  * Récurrence (quotidienne, hebdomadaire, mensuelle, annuelle)
  * Visibilité (public/privé)
  * Couleur (11 options)
- Validation des champs obligatoires
- Messages de succès/erreur
- Rechargement automatique de la liste après création
2025-11-12 14:57:46 +00:00
Claude 1ae40ad84c Feature: Améliorations UI des boxes Todo, RSS et Calendrier
Modifications :

1. Box Flux RSS :
   - Correction du bug d'affichage de l'entête (boutons plus compacts)
   - Affichage de seulement 3 articles à la fois
   - Rotation automatique toutes les 20 secondes parmi les 15 derniers articles
   - Indicateurs de pagination (dots) pour visualiser la rotation
   - Taille de texte réduite pour plus de lisibilité

2. Box Todo List :
   - Interface plus compacte pour afficher plus de tâches
   - Padding réduit (p-2 au lieu de p-3)
   - Taille de texte réduite (text-sm)
   - Espacement vertical réduit (space-y-1.5 au lieu de space-y-3)
   - Hauteur maximale augmentée de 400px à 350px
   - Boutons et icônes plus petits

3. Box Calendrier :
   - Ajout d'une icône bleue animée (pulse) pour les RDV du jour
   - Meilleure identification visuelle des événements d'aujourd'hui
2025-11-12 14:53:10 +00:00
Claude 05955a949e Feature: Centrage de la date et l'heure dans le header
Modification :
- Layout header changé de flexbox à grid (3 colonnes)
- Logo et titre à gauche
- Date et heure centrées au milieu
- Menu utilisateur et boutons à droite
2025-11-12 14:40:43 +00:00
Claude d78823daf3 Feature: Refonte de l'interface des notes et limitation du calendrier
Modifications :
- Limitation du calendrier à 10 événements maximum
- Suppression des onglets dans l'éditeur de notes
- Tout intégré directement dans la note :
  * Boutons d'action en haut (Tâche, Image, Fichier, Tag)
  * Tags affichés directement sous les boutons
  * Todos affichés dans une card
  * Images en miniatures 4 par ligne, cliquables
  * Fichiers listés dans une card
  * Éditeur de texte riche ensuite
- Modal plein écran pour visualiser les images en grand
- Interface plus compacte et fluide
- Suppression des inputs de fichiers visibles
2025-11-12 14:38:08 +00:00
Claude b9630421a6 Feature: Amélioration de l'interface avec date/heure et alertes
Modifications majeures de l'interface :
- Ajout de la date et l'heure en temps réel dans le header
- Alerte rouge dans le header 30 minutes avant un rendez-vous
- Réorganisation du layout en 3 colonnes :
  * Calendrier à gauche (300px, sticky)
  * Notes au milieu (responsive)
  * Todo et RSS à droite (380px, sticky)
- Badge rouge "Dans moins de 30 min" sur les événements proches
- Amélioration de la compacité des cartes de notes
- Synchronisation optimisée de l'affichage du calendrier
2025-11-12 14:30:33 +00:00
Claude 062c419324 Fix: Route auth-url accessible à tous les utilisateurs authentifiés
La route /auth-url nécessitait requireAdmin mais devrait être accessible
à tous les utilisateurs authentifiés pour qu'ils puissent connecter
leur propre compte Google Calendar.
2025-11-12 14:21:59 +00:00
Claude 31d5ee24f5 Fix: Route oauth-callback accessible sans authentification
Les routes oauth-callback et force-oauth2 doivent être accessibles
sans authentification car elles sont appelées par Google ou publiquement.

- Suppression du router.use(authenticateToken) global
- Ajout de authenticateToken individuellement aux routes qui en ont besoin
- oauth-callback et force-oauth2 restent publiques
2025-11-12 14:16:19 +00:00
Claude a17a8a8799 Fix: Hardcode redirect URI pour OAuth2 2025-11-12 14:06:58 +00:00
Claude 5ebaa72136 Fix: Route force-oauth2 accessible sans authentification 2025-11-12 14:06:02 +00:00
Claude be8f95f413 Fix: Ajout d'une route de debug pour forcer OAuth2
Ajout de la route GET /api/calendar/force-oauth2 pour forcer
le changement du type d'authentification vers OAuth2 dans la BDD.

Cette route permet de contourner un problème où le bouton
"Enregistrer" ne sauvegarde pas correctement google_auth_type.
2025-11-12 14:03:58 +00:00
Claude 078f4b7054 Docs: Guide de configuration OAuth 2.0 pour Google Calendar
Ajout d'un guide détaillé pour configurer Google Calendar avec OAuth 2.0 :
- Explication de la différence entre OAuth 2.0, Service Account et API Key
- Instructions étape par étape pour extraire Client ID et Secret du JSON
- Dépannage des erreurs courantes
- Rappel que les API Keys ne fonctionnent pas pour les calendriers privés

Note: Exemples génériques utilisés pour éviter d'exposer les secrets
2025-11-12 13:55:58 +00:00
Claude e480d50bea Feature: Ajout du support d'API Key pour Google Calendar
Ajout d'une troisième méthode d'authentification pour Google Calendar :
- OAuth 2.0 (existant)
- Service Account (existant)
- API Key (nouveau)

Modifications :
- Interface d'administration avec sélection API Key
- Champs pour configurer la clé API et l'ID du calendrier
- Backend mis à jour pour gérer l'authentification par API Key
- Routes calendar adaptées pour supporter le nouveau type
- Affichage du statut de connexion mis à jour

L'utilisateur peut maintenant :
1. Sélectionner "API externe" dans les paramètres Google Calendar
2. Entrer sa clé API Google Calendar
3. Spécifier l'ID du calendrier (ou "primary")
4. Synchroniser directement avec Google Calendar
2025-11-12 13:22:34 +00:00
LogiFlow dc4f88d045 Merge pull request #41 from R0m1k3/claude/fix-redirect-uri-mismatch-011CV41yPYKHVkiwiBSZ2sd3
Fix: Correction des erreurs TypeScript de build
2025-11-12 14:12:14 +01:00
Claude 81f25a09d1 Fix: Correction des erreurs TypeScript de build
Corrections apportées pour résoudre l'échec de build :

1. **Index.tsx** :
   - Ajout du else manquant dans le ternaire conditionnel (ligne 1536)
   - Ajout du type explicite pour calendarAuthStatus (authType)
   - Cast de type pour google_auth_type dans onValueChange
   - Ajout d'un bouton "Synchroniser" pour Service Account

2. **SettingsService.ts** :
   - Ajout des nouvelles propriétés à l'interface Settings :
     - google_auth_type?: 'oauth2' | 'service_account'
     - google_service_account_key?: string
     - google_calendar_email?: string

Le build passe maintenant avec succès (✓ built in 8.72s).
2025-11-12 13:10:59 +00:00
LogiFlow ef0829f0ca Merge pull request #40 from R0m1k3/claude/fix-redirect-uri-mismatch-011CV41yPYKHVkiwiBSZ2sd3
Feature: Ajout du support OAuth2 et Service Account pour Google Calendar
2025-11-12 14:06:37 +01:00
Claude 3cb6c81489 Feature: Ajout du support OAuth2 et Service Account pour Google Calendar
Ajout de deux méthodes d'authentification au choix pour Google Calendar :

1. **OAuth 2.0** (méthode existante améliorée) :
   - ✅ Prompt de sélection de compte Google ('select_account consent')
   - ✅ Gestion dynamique du redirect_uri avec APP_URL
   - ✅ Idéal pour accès au calendrier personnel avec consentement

2. **Service Account** (nouvelle méthode) :
   - ✅ Authentification via clé JSON sans interaction utilisateur
   - ✅ Parfait pour calendriers partagés en entreprise
   - ✅ Synchronisation automatique en arrière-plan
   - ✅ Configuration de l'email du calendrier à synchroniser

## Backend (routes/calendar.routes.js) :
- Ajout des constantes AUTH_TYPES (oauth2, service_account)
- Fonction getAuthType() pour récupérer la méthode configurée
- Fonction getServiceAccountClient() pour Service Account
- Fonction getCalendarClient() unifiée qui choisit la bonne méthode
- Route /auth-status mise à jour pour retourner le type d'auth
- Route /sync adaptée pour supporter les deux méthodes
- Support du calendrier email personnalisé pour Service Account

## Frontend (src/pages/Index.tsx) :
- Menu déroulant pour choisir entre OAuth2 et Service Account
- Interface conditionnelle selon la méthode choisie
- Champ textarea pour la clé JSON du Service Account
- Champ email pour spécifier le calendrier à synchroniser
- Affichage du type d'authentification dans le statut
- Amélioration de l'UI avec descriptions claires

## Documentation :
- OAUTH_SETUP.md : Guide complet mis à jour avec les deux méthodes
  - Section dédiée au choix de la méthode
  - Guide pas à pas pour Service Account
  - Dépannage pour les deux méthodes
- README_GOOGLE_CALENDAR.md : Guide de démarrage rapide (nouveau)
  - Comparaison des deux méthodes
  - Configuration rapide pour chaque méthode
  - Liens vers la documentation complète

Cette implémentation offre une flexibilité maximale pour s'adapter
à différents cas d'usage : personnel (OAuth2) ou professionnel (Service Account).
2025-11-12 13:05:40 +00:00
LogiFlow efa051e477 Merge pull request #39 from R0m1k3/claude/fix-redirect-uri-mismatch-011CV41yPYKHVkiwiBSZ2sd3
Fix: Résolution des problèmes OAuth Google Calendar
2025-11-12 13:51:20 +01:00
Claude 95eba6ce63 Fix: Résolution des problèmes OAuth Google Calendar
Corrections apportées :

1. **redirect_uri_mismatch** :
   - Ajout de la variable APP_URL dans .env.example avec documentation
   - Amélioration de la fonction getOAuth2Client pour accepter une URI personnalisée
   - Gestion plus flexible du redirect_uri (APP_URL ou localhost par défaut)

2. **Choix du compte Google** :
   - Modification du prompt OAuth : 'consent' → 'select_account consent'
   - Force maintenant l'affichage du sélecteur de compte Google

3. **Interface utilisateur** :
   - Ajout d'un encadré d'avertissement visible avec l'URL de redirection exacte
   - Instructions claires pour la configuration dans Google Cloud Console
   - Indication pour configurer APP_URL si nécessaire

4. **Documentation** :
   - Création du fichier OAUTH_SETUP.md avec guide complet
   - Checklist de vérification pour le débogage
   - Exemples de configuration pour local et production

Ces modifications permettent de résoudre l'erreur 400 redirect_uri_mismatch
et d'offrir le choix du compte Google lors de la connexion.
2025-11-12 12:50:07 +00:00
LogiFlow 2307038ff0 Merge pull request #38 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Fix: Configuration trust proxy plus sécurisée
2025-11-12 13:39:58 +01:00
Claude 0f8c6ccc57 Fix: Configuration trust proxy plus sécurisée
Problème:
- trust proxy: true est trop permissif
- Permet à n'importe qui de contourner le rate limiting
- Erreur: ERR_ERL_PERMISSIVE_TRUST_PROXY

Solution:
- Utilisation de trust proxy: 1 au lieu de true
- Indique exactement 1 proxy devant l'application (nginx)
- Plus sécurisé: seul le premier proxy est considéré comme fiable
- Empêche les attaques par falsification de X-Forwarded-For

Configuration appropriée pour une architecture Docker avec nginx reverse proxy.
2025-11-12 12:37:12 +00:00
LogiFlow bcc975055a Merge pull request #37 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Fix: Routes settings et configuration proxy
2025-11-12 13:29:18 +01:00
Claude a99801747e Fix: Routes settings et configuration proxy
Corrections critiques:
1. Ajout de la route PUT /api/settings manquante
   - Permet la mise à jour de plusieurs paramètres en une fois
   - Utilisé par le frontend pour sauvegarder la configuration
   - Erreur 404 résolue

2. Configuration trust proxy dans Express
   - app.set('trust proxy', true)
   - Nécessaire car l'application est derrière nginx/proxy
   - Résout l'erreur express-rate-limit avec X-Forwarded-For
   - Permet d'obtenir la vraie IP du client

Routes settings maintenant complètes:
- GET /api/settings - Récupérer tous les paramètres
- PUT /api/settings - Mettre à jour plusieurs paramètres (NOUVEAU)
- GET /api/settings/:key - Récupérer un paramètre
- PUT /api/settings/:key - Mettre à jour un paramètre
- DELETE /api/settings/:key - Supprimer un paramètre
2025-11-12 12:27:11 +00:00
LogiFlow 03afe9610f Merge pull request #36 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Fix critique: Système de notes complètement refondu pour fonctionner
2025-11-12 12:44:18 +01:00
Claude 0e8b36e1d7 Fix critique: Système de notes complètement refondu pour fonctionner
Problème majeur résolu:
- L'éditeur de notes réinitialisait le contenu à chaque modification
- Causé par dangerouslySetInnerHTML qui forçait React à synchroniser
- Résultat: impossible d'éditer les notes correctement

Solution:
- Suppression de dangerouslySetInnerHTML du RichTextEditor
- Conservation du useEffect avec deps vides pour initialisation unique
- Utilisation du key prop pour forcer remount lors du changement de note
- Éditeur maintenant complètement "uncontrolled"

Migration complète Google Calendar vers OAuth 2.0:
- Remplacement de l'API Key simple par OAuth 2.0 (Client ID + Secret)
- Nouvelle table google_oauth_tokens pour stocker les tokens
- Routes OAuth:
  * GET /api/calendar/auth-url - Génère l'URL d'authentification
  * GET /api/calendar/oauth-callback - Callback OAuth avec échange de code
  * GET /api/calendar/auth-status - Vérifier le statut de connexion
  * POST /api/calendar/disconnect - Déconnecter Google
- Gestion automatique du rafraîchissement des tokens expirés
- Interface utilisateur mise à jour:
  * Champs Client ID et Client Secret
  * Indicateur de statut de connexion (connecté/non connecté)
  * Bouton "Se connecter avec Google" ouvrant popup OAuth
  * Bouton "Déconnecter"
  * URI de redirection affichée pour configuration Google Cloud Console
- Synchronisation maintenant avec calendrier principal de l'utilisateur
- Accès complet aux données privées du calendrier

Architecture:
- CalendarService.ts: Nouvelles méthodes getAuthUrl(), getAuthStatus(), disconnect()
- Settings: Ajout de google_client_id et google_client_secret
- Popup OAuth avec communication window.postMessage
- Gestion d'erreur avec re-authentification automatique si token expiré
2025-11-12 10:00:33 +00:00
LogiFlow 7e2b7ce32f Merge pull request #35 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Fix CRITIQUE: Écriture fluide dans les notes réparée
2025-11-12 10:56:07 +01:00
Claude fea31d31bf Fix CRITIQUE: Écriture fluide dans les notes réparée
Corrections:
- Correction de l'import des middlewares dans openrouter.routes.js
- Utilisation de authenticateToken au lieu de requireAuth
- Fix du bug qui empêchait le serveur de démarrer

Le serveur crashait avec l'erreur:
Error: Route.get() requires a callback function but got a [object Undefined]
Résolu en utilisant le bon nom de middleware.
2025-11-12 09:53:45 +00:00
LogiFlow e89e29e4b7 Merge pull request #34 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Claude/fix npm ci build error 011 cv3c2 k4 et hd brq us7tk jf
2025-11-12 10:49:06 +01:00
Claude 4425695b4f Feature: Système de tags et liste automatique des modèles OpenRouter
Ajouts majeurs:
- Système de tags complet pour les notes
  * Table note_tags en base de données avec indexes
  * API REST pour CRUD des tags (GET/POST/DELETE)
  * UI avec onglet Tags dans l'éditeur de notes
  * Badges cliquables avec icônes et suppression au survol
  * Modal pour ajouter des tags

- Liste automatique des modèles OpenRouter
  * Nouvelle route API /api/openrouter/models
  * Cache des modèles avec rafraîchissement automatique (1h)
  * Dropdown dans l'admin avec tous les modèles disponibles
  * Bouton "Actualiser" pour forcer le refresh
  * Affichage du nom et description de chaque modèle
  * Fallback sur input manuel si pas de clé API

Améliorations UI:
- Ajout de dates de création et modification dans les notes
- Affichage des dates dans les cartes et l'éditeur
- Format français pour toutes les dates
- Onglets passés de 4 à 5 colonnes pour inclure Tags
- Animation de chargement sur le bouton refresh des modèles

Architecture:
- Nouveau service TagsService.ts pour la gestion des tags
- Nouveau service OpenRouterService.ts pour l'API OpenRouter
- Nouvelles routes openrouter.routes.js
- Support Select component pour les dropdowns
- Modals InputModal utilisés pour les tags
2025-11-12 09:47:47 +00:00
Claude ece7232f0d Fix CRITIQUE: Écriture fluide dans les notes réparée 2025-11-12 09:37:00 +00:00
LogiFlow 7d307a2e1f Merge pull request #33 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Claude/fix npm ci build error 011 cv3c2 k4 et hd brq us7tk jf
2025-11-12 10:28:52 +01:00
Claude a36bb04c66 Fix critique: Système de notes complètement refondu pour fonctionner
Problèmes résolus :
1. **Écriture lente/bloquée** : Implémentation d'un système de debounce (1s) pour l'auto-save
   - onChange du RichTextEditor n'appelle plus l'API à chaque frappe
   - Mise à jour locale immédiate de l'état pour une interface réactive
   - Sauvegarde automatique après 1 seconde d'inactivité

2. **Images ne s'affichent pas** :
   - Fix extraction de result.image || result dans uploadImage
   - Mise à jour immédiate de l'état local avant l'API call
   - Reset du input file après upload
   - Ajout message de succès

3. **Fichiers ne s'affichent pas** :
   - Fix extraction de result.file || result dans handleFileUpload
   - Mise à jour immédiate de l'état local
   - Reset du input file après upload

4. **Architecture améliorée** :
   - handleUpdateNote avec useCallback pour performance
   - handleContentChange dédié avec debounce
   - Mise à jour optimiste de l'UI (local state update avant API)
   - Cleanup proper du timer sur unmount

Résultat :
- Écriture fluide et réactive dans les notes
- Upload d'images fonctionnel avec feedback immédiat
- Upload de fichiers fonctionnel
- Ajout de todos dans les notes fonctionnel
- Toutes les modifications sont auto-sauvegardées
2025-11-12 09:27:11 +00:00
Claude f8ec63b5ef Feature: Remplacement de tous les prompts par des modaux + Fix RSS refresh
Modaux :
- Création ConfirmModal pour confirmations avec variants (default/destructive)
- Création InputModal pour saisie de texte/URL/mot de passe
- Création AddUserModal pour création d'utilisateur avec admin checkbox
- Remplacement de tous les prompt() et confirm() par des modaux modernes
- Modaux pour : suppression note, ajout todo, ajout RSS, ajout utilisateur, suppression utilisateur, changement mot de passe, ajout todo dans note

Fix RSS :
- Ajout route POST /api/rss/refresh (alias de /api/rss/fetch)
- Fix uploadImage retour avec result.image || result

UX améliorée :
- Plus de popups navigateur natifs
- Interface cohérente et moderne
- Validation dans les modaux
- Support touche Entrée dans les InputModals
- Auto-focus sur le champ de saisie
2025-11-12 09:24:16 +00:00
LogiFlow e69103d8f4 Merge pull request #32 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Feature: Support multi-images, Google Calendar et correction RTL
2025-11-12 10:14:35 +01:00
Claude 702d0c2088 Feature: Support multi-images, Google Calendar et correction RTL
Images multiples :
- Ajout table note_images dans la base de données
- Routes POST/GET/DELETE /api/notes/:id/images
- Dossier uploads/images séparé pour les images
- Support de plusieurs images par note

Google Calendar :
- Ajout table calendar_events
- Routes /api/calendar pour sync et récupération des événements
- Box Rendez-vous dans l'interface avec affichage des événements à venir
- Configuration Google Calendar dans l'admin (API key et Calendar ID)
- Synchronisation manuelle avec Google Calendar API
- Installation package googleapis

Corrections :
- Fix RichTextEditor: ajout dir="ltr" pour empêcher l'écriture RTL
- Fix Image type conflict (lucide-react vs Note interface)
- Ajout original_name à l'interface Image pour compatibilité

Interface :
- Box Rendez-vous empilée avec Todos et RSS dans la colonne droite
- Nouvel onglet Google Calendar dans l'administration
- Bouton "Synchroniser" pour rafraîchir les événements
2025-11-12 09:11:11 +00:00
LogiFlow 2af06d41d1 Merge pull request #31 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Feature: Nouveau layout avec notes à gauche et boxes à droite
2025-11-12 09:47:23 +01:00
Claude 44e6f7bb5e Feature: Nouveau layout avec notes à gauche et boxes à droite
- Layout en 2 colonnes : notes à gauche (2 colonnes), boxes à droite
- Les notes s'ouvrent directement dans l'écran au lieu d'un modal
- Bouton "Retour aux notes" pour revenir à la grille
- Suppression du Dialog modal pour l'édition de notes
- Boxes Todos et RSS empilées verticalement dans la colonne de droite
- Résolution des conflits de types entre Image (lucide-react) et Image (Note)
- Ajout du champ original_name à l'interface Image
2025-11-12 08:46:38 +00:00
LogiFlow fffcd19c09 Merge pull request #30 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Feature: Redesign de l'interface sans sidebar pour écran 1920x1080
2025-11-12 09:34:05 +01:00
Claude 3ac2cc0810 Feature: Redesign de l'interface sans sidebar pour écran 1920x1080
- Suppression de la sidebar : les notes sont affichées en grille 4 colonnes
- Notes s'ouvrent en dialog plein écran au clic
- Boxes Todos et RSS élargies et côte à côte en haut de page
- Optimisation de l'affichage pour résolution 1920x1080
- Ajout du changement de mot de passe dans l'administration
- Ajout du filtre Actives/Archivées pour les notes
- Amélioration des transitions et effets hover sur les cards
2025-11-12 08:30:41 +00:00
LogiFlow f1890b78e6 Merge pull request #29 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Feature: Amélioration de l'interface Todos et RSS avec onglets
2025-11-12 09:21:22 +01:00
Claude f0c68b9db1 Feature: Amélioration de l'interface Todos et RSS avec onglets
Cette mise à jour améliore l'interface utilisateur des tâches et des flux RSS
avec une meilleure organisation et de nouvelles fonctionnalités.

Changements principaux:

1. **Layout Todos et RSS côte à côte**
   - Les deux boxes sont maintenant affichées côte à côte
   - Meilleure utilisation de l'espace disponible
   - Layout en grid responsive

2. **Système d'onglets pour les Todos**
   - Onglet "Actives" : affiche uniquement les tâches non complétées
   - Onglet "Complétées" : affiche les tâches terminées avec style barré
   - Séparation claire entre tâches en cours et terminées
   - Possibilité de re-activer une tâche complétée en cliquant dessus

3. **Endpoint PATCH /api/todos/:id/toggle ajouté**
   - Nouvelle route backend pour basculer l'état d'une tâche
   - Résout l'erreur 404 précédente
   - Logging des actions pour suivi

4. **Optimisations visuelles**
   - Tailles de texte réduites (text-xs) pour plus de contenu visible
   - Hauteurs de boutons optimisées
   - Espacements améliorés
   - Animations et transitions fluides

Fichiers modifiés:
- routes/todos.routes.js : ajout de la route toggle
- src/pages/Index.tsx : refonte de la sidebar droite avec onglets

Cette version améliore significativement l'expérience utilisateur pour
la gestion des tâches avec une séparation claire entre tâches actives
et complétées.
2025-11-12 08:17:40 +00:00
LogiFlow 68b8668968 Merge pull request #28 from R0m1k3/claude/fix-npm-ci-build-error-011CV3c2K4ETHdBRQUs7tkJf
Feature: Implémentation complète de NoteFlow avec toutes les fonction…
2025-11-12 09:10:26 +01:00