Commit Graph
386 Commits
Author SHA1 Message Date
LogiFlow 60bae3f9fc Merge pull request #147 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
Claude/statistics modal popup 01 p7c6z7 g5 k xo9 tk6 bw ea4ew
2025-11-28 23:19:24 +01:00
Claude 486634386e fix: synchroniser les instances du Pomodoro Timer en temps réel
- Ajouter un événement custom 'pomodoroStateChange' lors des modifications
- Chaque instance écoute cet événement et se synchronise avec localStorage
- Quand on met le timer sur pause dans le modal, l'instance cachée se met aussi en pause
- Les deux instances restent parfaitement synchronisées
2025-11-28 22:12:11 +00:00
Claude 631d31dd1b fix: réduire le z-index du bouton QuickCapture pour passer derrière les modals
- Changer z-50 en z-40 pour le bouton de capture rapide
- Les modals (Dialog) avec z-50 passent maintenant devant
- Le bouton QuickCapture n'est plus visible quand un modal est ouvert
2025-11-28 22:10:55 +00:00
LogiFlow 4bc6a98b61 Merge pull request #146 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
Claude/statistics modal popup 01 p7c6z7 g5 k xo9 tk6 bw ea4ew
2025-11-28 23:05:33 +01:00
Claude aa90d9811d feat: déplacer l'aide des raccourcis vers une icône dans le header
- Retirer le raccourci '?' pour ouvrir l'aide
- Ajouter une icône HelpCircle dans le header à côté du ModeToggle
- L'aide est maintenant accessible via l'icône au lieu du raccourci clavier
2025-11-28 22:04:51 +00:00
Claude cee242e455 fix: garder le Pomodoro Timer actif même quand le modal est fermé
- Rendre le PomodoroTimer dans une div cachée toujours montée
- Cette instance continue de faire tourner le timer en arrière-plan
- Le modal affiche une seconde instance pour les contrôles
- Les deux instances partagent l'état via localStorage
- Le timer continue maintenant de décompter même modal fermé
2025-11-28 22:02:39 +00:00
LogiFlow 914fc85fe5 Merge pull request #145 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
Claude/statistics modal popup 01 p7c6z7 g5 k xo9 tk6 bw ea4ew
2025-11-28 22:57:14 +01:00
Claude ca0c60a13b feat: améliorer l'assistant IA avec modal agrandi et z-index
- Ajouter z-50 à la Card du chat pour qu'elle passe devant le bouton QuickCapture
- Ajouter un bouton 'Agrandir' avec l'icône LayoutGrid
- Créer un modal agrandi (max-w-4xl, h-80vh) pour l'assistant IA
- Améliorer l'affichage des messages avec whitespace-pre-wrap
- Ajouter des tooltips sur les boutons du chat
2025-11-28 21:56:24 +00:00
Claude 08bdbc389a fix: maintenir le timer Pomodoro actif quand le modal se ferme
- Utiliser useCallback pour mémoriser handleTimerComplete
- Retirer timeLeft des dépendances du useEffect qui gère l'intervalle
- Le useEffect ne dépend plus que de isRunning et handleTimerComplete
- L'intervalle continue de tourner même après démontage/remontage du composant
- Nettoyage propre de l'intervalle avec intervalRef.current = null
2025-11-28 21:54:07 +00:00
Claude 7825f5d07b fix: uniformiser la taille et l'alignement des boutons flottants
- Retirer size="lg" du bouton QuickCapture
- Aligner les deux boutons sur right-4 (au lieu de right-6 pour QuickCapture)
- Ajouter les mêmes effets hover et transition aux deux boutons
- Les boutons ont maintenant exactement la même taille (h-14 w-14)
- Les icônes ont la même taille (h-6 w-6)
2025-11-28 21:49:25 +00:00
LogiFlow 49c95c72f9 Merge pull request #144 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
fix: espacer les boutons flottants en bas à droite
2025-11-28 22:45:12 +01:00
Claude b533b98e5a fix: espacer les boutons flottants en bas à droite
- Déplacer le bouton de capture rapide plus haut (bottom-24 au lieu de bottom-6)
- Le bouton QuickCapture est maintenant au-dessus du bouton de chat IA
- Plus de superposition des boutons
2025-11-28 21:42:08 +00:00
LogiFlow cf8428291c Merge pull request #143 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
fix: persister l'état du Pomodoro Timer avec localStorage
2025-11-28 22:39:56 +01:00
Claude 8d4a2d5e50 fix: persister l'état du Pomodoro Timer avec localStorage
- Sauvegarder l'état du timer (mode, temps restant, état running, sessions) dans localStorage
- Restaurer l'état au montage du composant
- Le timer ne se réinitialise plus quand le modal se ferme et se rouvre
- Simplifier le PomodoroModal pour utiliser children directement
2025-11-28 20:49:55 +00:00
LogiFlow 8015f694f4 Merge pull request #142 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
fix: ajouter l'import de l'icône Clock manquant
2025-11-28 21:41:22 +01:00
Claude d1f7f985b3 fix: ajouter l'import de l'icône Clock manquant 2025-11-28 20:40:24 +00:00
LogiFlow 6dd83c947e Merge pull request #141 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
Claude/statistics modal popup 01 p7c6z7 g5 k xo9 tk6 bw ea4ew
2025-11-28 21:35:42 +01:00
Claude 2b84ac0e97 feat: transformer le Pomodoro Timer en modal avec icône dans le header
- Créer un composant PomodoroModal pour afficher le timer
- Ajouter une icône Clock dans le header qui affiche le temps restant quand le timer est actif
- Modifier PomodoroTimer pour accepter une callback onStateChange
- Retirer la box Pomodoro de la page principale
- L'icône change de style quand le timer est en cours et affiche le décompte
2025-11-28 20:34:32 +00:00
Claude c66e5adc4a fix: corriger l'erreur CSP et le nettoyage HTML des notes
- Remplacer l'audio base64 par Web Audio API dans PomodoroTimer pour éviter les erreurs CSP
- Ajouter une fonction cleanHtmlContent pour correctement décoder les entités HTML
- Corriger l'affichage des notes pour supprimer les caractères parasites (&nb-, etc.)
2025-11-28 20:29:59 +00:00
Claude 3b8644bc4c feat: déplacer les statistiques dans un modal popup
- Créer un nouveau composant StatsModal pour afficher les statistiques
- Ajouter une icône BarChart3 dans le header à côté du bouton de thème
- Retirer le StatsDashboard de sa position sous le calendrier
- Afficher les statistiques dans un modal au clic sur l'icône
2025-11-28 20:25:33 +00:00
LogiFlow 0264f5e2f3 Merge pull request #140 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
Claude/fix notes sync issue 01 a me edr kq ers m7bvh kkq eef
2025-11-28 17:53:45 +01:00
Claude 44c120e853 docs: update deployment instructions with root cause 2025-11-28 16:52:43 +00:00
Claude b21ec4fec8 fix: add missing parent_id and level columns for subtasks support
ROOT CAUSE: During phases 1-5, subtask support was added which requires
parent_id and level columns in note_todos and global_todos tables.
However, the auto-migrate script did not include this migration,
causing 500 errors when the API tried to SELECT these non-existent columns.

Changes:
- scripts/auto-migrate.js: Added Migration 4 to create parent_id and
  level columns if they don't exist

- config/database.js: Updated CREATE TABLE statements to include
  parent_id and level columns in the initial schema

This fixes the 500 error on GET /api/notes that occurred because the
code was trying to SELECT columns that didn't exist in production.

The migration will run automatically on next Docker startup and add
the missing columns without data loss.

Fixes: "je n ai plus aucune note qui s affichent" - notes not displaying
2025-11-28 16:52:04 +00:00
LogiFlow f8444f5172 Merge pull request #139 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
Claude/fix notes sync issue 01 a me edr kq ers m7bvh kkq eef
2025-11-28 17:45:58 +01:00
Claude e59c68d77a docs: update deployment instructions for automatic boolean fix 2025-11-28 16:43:11 +00:00
Claude b661f7f2f6 fix: auto-correct PostgreSQL boolean types at Docker startup
Automatically fixes INTEGER->BOOLEAN type mismatches when Docker starts.
This resolves the 500 error on /api/notes without manual intervention.

Changes:
- scripts/fix-postgres-boolean-types.sql: Idempotent SQL script that
  detects INTEGER columns that should be BOOLEAN and converts them
  (0→FALSE, 1→TRUE) for all affected tables

- docker-entrypoint.sh: Executes the boolean correction script
  automatically after migrations and before starting the server

The script corrects these columns:
  • users.is_admin
  • notes.archived
  • note_todos.completed, note_todos.priority
  • global_todos.completed, global_todos.priority
  • rss_feeds.enabled
  • calendar_events.all_day

The correction is idempotent and runs on every container restart,
ensuring data integrity even after database migrations.

Fixes: Notes not displaying due to boolean type mismatch
2025-11-28 16:42:31 +00:00
LogiFlow bea18f5aa5 Merge pull request #138 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
docs: add deployment instructions for fixing notes display issue
2025-11-28 17:37:17 +01:00
Claude 1687f1fa2c docs: add deployment instructions for fixing notes display issue 2025-11-28 16:36:24 +00:00
LogiFlow c938eb5331 Merge pull request #137 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
feat: add scripts to fix PostgreSQL boolean data type issues
2025-11-28 17:28:34 +01:00
Claude a8ebca6481 feat: add scripts to fix PostgreSQL boolean data type issues
Added tools to resolve the 500 error when notes don't display due to
boolean type mismatches between SQLite (0/1) and PostgreSQL (TRUE/FALSE).

New files:
- scripts/fix-boolean-data.js: Converts INTEGER columns to BOOLEAN type
  and migrates existing 0/1 data to FALSE/TRUE
- scripts/README-FIXES.md: Instructions for running the fix script

Improved:
- scripts/migrate-sqlite-to-postgres.js: Now automatically converts 0/1
  to FALSE/TRUE for known boolean columns during migration

This resolves issues where:
- Migrated data contains INTEGER values (0/1) instead of BOOLEAN
- SQL queries using "completed = TRUE" fail to match rows
- API endpoints return 500 errors

To fix an existing database, run: node scripts/fix-boolean-data.js
2025-11-28 16:26:26 +00:00
LogiFlow fb8a463d1b Merge pull request #136 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
fix: revert INTEGER fields to use 0/1 instead of boolean
2025-11-28 17:17:02 +01:00
Claude 6f2f3669a3 fix: revert INTEGER fields to use 0/1 instead of boolean
Corrected previous commit - some fields in the schema are INTEGER, not BOOLEAN:
- notes.priority is INTEGER (not BOOLEAN) - needs 0/1
- global_todos.in_progress is INTEGER (not BOOLEAN) - needs 0/1

All other fields (archived, completed, etc.) correctly use BOOLEAN and were
properly fixed in the previous commit.

This resolves the 500 error when trying to set INTEGER fields with boolean values.
2025-11-28 16:16:10 +00:00
LogiFlow d28de3d3e5 Merge pull request #135 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
fix: correct PostgreSQL boolean type handling across all routes
2025-11-28 17:08:21 +01:00
Claude 616e257b07 fix: correct PostgreSQL boolean type handling across all routes
Fixed issue where notes and todos were not displaying due to boolean
type mismatch between SQLite (uses 0/1) and PostgreSQL (uses TRUE/FALSE).

Changes:
- routes/notes.routes.js: Fixed archived, completed, and priority fields
- routes/todos.routes.js: Fixed completed, priority, and in_progress fields
- routes/calendar.routes.js: Fixed all_day field
- routes/rss.routes.js: Fixed enabled field
- routes/rss.routes-v2.js: Fixed enabled field
- routes/users.routes.js: Fixed is_admin field

All boolean parameters now use native boolean values instead of converting
to 0/1, ensuring compatibility with PostgreSQL BOOLEAN columns.

This resolves the issue where notes were not displaying even though they
existed in the database.
2025-11-28 16:04:36 +00:00
LogiFlow a96022c5c0 Merge pull request #134 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
clean: remove all debug logging and UI panel
2025-11-28 07:29:49 +01:00
Claude f42f8fe7ed clean: remove all debug logging and UI panel
Removed all temporary debug code added during investigation:
- Removed debug console.log statements from loadNotes function
- Removed debug console.log statements from filter logic
- Removed red debug panel showing filter state in UI

The application code is now clean and production-ready.
2025-11-28 06:01:47 +00:00
LogiFlow 4f4ce2ca32 Merge pull request #133 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
feat: configure PostgreSQL to work with local server
2025-11-28 06:46:11 +01:00
Claude 75c8149f8a feat: configure PostgreSQL to work with local server
Successfully configured and connected PostgreSQL database for NoteFlow.

Backend changes:
- Added dotenv package and configured .env loading in server.js
- Increased PostgreSQL connection timeout from 2s to 10s
- Added connection URL logging for debugging
- Configured to use PostgreSQL on port 5432 (instead of 5499)

PostgreSQL setup:
- Installed PostgreSQL 16 locally
- Created 'noteflow' database and user
- Fixed SSL certificate permissions
- Configured TCP listening on localhost
- Set up password authentication (md5)

Database configuration:
- Uses .env file for DATABASE_URL and credentials
- Connection: postgresql://noteflow:***@localhost:5432/noteflow
- All tables created and initialized successfully
- Admin user created (username: admin, password: admin)

This resolves the "no notes displaying" issue. The application now
connects to a working PostgreSQL database and can store/retrieve notes.

Files changed:
- server.js: Added dotenv.config() at top
- config/database.js: Increased timeout, added logging
- package.json: Added dotenv dependency
- config/database-postgres.js: Backup of PostgreSQL config
2025-11-28 05:44:31 +00:00
LogiFlow 4a66286fc6 Merge pull request #132 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
feat: restore PostgreSQL as primary database configuration
2025-11-28 06:28:29 +01:00
Claude dcb12a1b3b feat: restore PostgreSQL as primary database configuration
Switched back from SQLite to PostgreSQL configuration to reconnect
to the existing PostgreSQL database with user data.

Changes:
- Renamed database.js to database-sqlite.js (SQLite backup config)
- Renamed database-postgres.js to database.js (PostgreSQL primary)
- Created .env file with PostgreSQL connection settings (not committed)

The backend now expects PostgreSQL on localhost:5499. To start the
database, run: docker-compose up -d postgres

Note: This resolves the empty notes issue - once PostgreSQL is started,
all user notes will be loaded from the PostgreSQL database.
2025-11-27 20:57:01 +00:00
LogiFlow 2fdfbb4ea5 Merge pull request #131 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
debug: add logging to loadNotes function for troubleshooting
2025-11-27 21:47:40 +01:00
Claude 5d011e81ae debug: add logging to loadNotes function for troubleshooting
Added console.log statements to track:
- When notes API fetch is initiated
- Number of notes fetched
- The actual notes data returned

This helps identify if the issue is with the API request, the response,
or the data handling in the frontend.
2025-11-27 20:42:47 +00:00
LogiFlow 0a6c1831e2 Merge pull request #130 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
fix: configure Vite proxy to connect frontend to backend
2025-11-27 21:39:50 +01:00
Claude 5cec61d336 fix: configure Vite proxy to connect frontend to backend
Added proxy configuration to route API requests from frontend (port 5173)
to backend (port 2222). This resolves the issue where the frontend
couldn't fetch notes because it was trying to access the API on the
wrong port.

Changes:
- Changed Vite dev server port from 2222 to 5173
- Added proxy rules for /api and /uploads endpoints
- Both proxies target http://localhost:2222 (backend)

This completes the fix for notes not displaying. The frontend can now
properly communicate with the backend through the proxy.
2025-11-27 20:37:55 +00:00
LogiFlow 2257d4f22b Merge pull request #129 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
fix: switch to SQLite database temporarily for development
2025-11-27 21:31:06 +01:00
Claude f0ab6f26b0 fix: switch to SQLite database temporarily for development
PostgreSQL was not available in the development environment, causing
the backend server to fail on startup with connection timeout errors.

Changes:
- Renamed database.js to database-postgres.js (PostgreSQL config)
- Renamed database-sqlite-backup.js to database.js (SQLite config)
- This allows the backend to start and serve data to the frontend

This fixes the issue where no notes were displaying (Total: 0)
because the backend server couldn't connect to the database.

Note: This is a temporary workaround for the development environment.
Production should continue using PostgreSQL via Docker.
2025-11-27 20:28:05 +00:00
LogiFlow f19bf9aa14 Merge pull request #128 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
debug: add temporary debug logging to identify notes filter issue
2025-11-27 21:06:31 +01:00
Claude a7bc2eb7ae debug: add temporary debug logging to identify notes filter issue
Added console.log statements and temporary debug UI panel to help
diagnose why notes are not displaying. This includes:
- Logging total notes count and active filters
- Logging which specific filter is excluding each note
- Visual debug panel showing filter state in the UI

This is temporary debugging code to resolve the issue reported
by the user where no notes are displaying.
2025-11-27 20:04:32 +00:00
LogiFlow 70bbe50cb2 Merge pull request #127 from R0m1k3/claude/fix-notes-sync-issue-01AMeEdrKQErsM7bvhKkqEEF
Claude/fix notes sync issue 01 a me edr kq ers m7bvh kkq eef
2025-11-27 20:53:03 +01:00
Claude 04035d55fd feat: add advanced export/import system
- Create exportImport utility with JSON and CSV export
- Support full backup with version tracking
- Add BackupData interface with notes, todos, settings
- Implement file parsing and validation
- Create ExportImportModal component with tabs
- Show current data statistics before export
- Preview backup content before import
- Download as timestamped JSON or CSV files
- Calculate and display backup statistics
- Support reading and validating imported backups
2025-11-27 19:51:31 +00:00