Commit Graph
218 Commits
Author SHA1 Message Date
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
LogiFlow 6dc9e88a88 Merge pull request #55 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Claude/integrate google calendar api 011 cv44 nie9 hb7 u35 ar s un na
2025-11-12 18:04:37 +01: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
LogiFlow cb496f8745 Merge pull request #54 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Feature: Chatbox IA avec OpenRouter et sélecteur de modèles
2025-11-12 17:21:47 +01: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
LogiFlow 9fabe1ef8a Merge pull request #53 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Feature: Flux RSS avec 14 articles et pagination
2025-11-12 17:07:44 +01: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
LogiFlow 6855ca7342 Merge pull request #52 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Feature: Pagination pour Notes, Todos et limitation RSS
2025-11-12 16:38:30 +01: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
LogiFlow 0336c049ce Merge pull request #51 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Fix: Correction modal ajout RDV et réorganisation layout
2025-11-12 16:08:59 +01: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
LogiFlow e19656bae6 Merge pull request #50 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Claude/integrate google calendar api 011 cv44 nie9 hb7 u35 ar s un na
2025-11-12 15:59:08 +01: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
LogiFlow 91e3764b5c Merge pull request #49 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Claude/integrate google calendar api 011 cv44 nie9 hb7 u35 ar s un na
2025-11-12 15:41:39 +01: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
LogiFlow 6dc4b91acc Merge pull request #48 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Feature: Amélioration de l'interface avec date/heure et alertes
2025-11-12 15:32:25 +01: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
LogiFlow dee0848245 Merge pull request #47 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Fix: Route auth-url accessible à tous les utilisateurs authentifiés
2025-11-12 15:22:36 +01: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
LogiFlow 92fae63756 Merge pull request #46 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Fix: Route oauth-callback accessible sans authentification
2025-11-12 15:17:15 +01: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
LogiFlow 756a979240 Merge pull request #45 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Fix: Hardcode redirect URI pour OAuth2
2025-11-12 15:10:35 +01:00
Claude a17a8a8799 Fix: Hardcode redirect URI pour OAuth2 2025-11-12 14:06:58 +00:00
LogiFlow cf95c088a2 Merge pull request #44 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Claude/integrate google calendar api 011 cv44 nie9 hb7 u35 ar s un na
2025-11-12 15:06:52 +01: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
LogiFlow 8d3a6c5241 Merge pull request #43 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Docs: Guide de configuration OAuth 2.0 pour Google Calendar
2025-11-12 14:59:31 +01: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
LogiFlow 76d1837ebc Merge pull request #42 from R0m1k3/claude/integrate-google-calendar-api-011CV44Nie9HB7U35ArSUnNa
Feature: Ajout du support d'API Key pour Google Calendar
2025-11-12 14:24:00 +01: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