Commit Graph
400 Commits
Author SHA1 Message Date
Michael 4ba078bf4e feat: Implement initial Noteflow application UI, foundational notes management, and mobile notes page. 2025-12-08 09:00:59 +01:00
Michael ad3f415469 Merge branch 'main' into antigravity - Resolve conflict in NotesPage.tsx (Archive fix + Kanban) 2025-12-08 08:46:23 +01:00
Michael b071c94cec feat: implement core application dashboard with notes, todos, RSS, calendar, and AI chat, alongside a dedicated mobile notes page. 2025-12-08 08:39:58 +01:00
Michael 389ce9ce89 feat: implement NotesService for comprehensive note, todo, and image management. 2025-12-08 08:32:20 +01:00
Michael 454fec3382 feat: Implement mobile notes page with search, advanced filters, and view modes. 2025-12-03 20:48:00 +01:00
LogiFlow 03986c2547 Merge pull request #151 from R0m1k3/claude/fix-pomodoro-tab-switch-01WFQEsfPro5ynAgg4VAU3EV
fix: permettre au timer Pomodoro de continuer en arrière-plan
2025-11-29 09:24:28 +01:00
Claude 1e03c61fd8 fix: résoudre le conflit de merge avec main
Résolution du conflit lors du merge de main dans la branche de fix du Pomodoro.
Le code de restauration de l'état du timer au montage a été conservé.
2025-11-29 08:22:26 +00:00
Claude 8e57a1c15b fix: permettre au timer Pomodoro de continuer en arrière-plan
Correction du problème où le timer Pomodoro se mettait en pause lors du
changement d'onglet. Le timer utilise maintenant des timestamps réels au
lieu de setInterval pour calculer le temps restant, ce qui permet de
continuer à fonctionner même quand l'onglet n'est pas actif.

Changements:
- Ajout d'un état endTime pour stocker le timestamp de fin
- Modification de la logique du timer pour calculer le temps restant basé sur endTime
- Le timer vérifie maintenant toutes les 100ms pour plus de précision
- Persistance de endTime dans localStorage pour la synchronisation
2025-11-29 08:19:59 +00:00
LogiFlow 4be735a46b Merge pull request #150 from R0m1k3/claude/fix-pomodoro-tab-switch-01WFQEsfPro5ynAgg4VAU3EV
fix: permettre au timer Pomodoro de continuer en arrière-plan
2025-11-29 09:01:55 +01:00
Claude 1eff318034 fix: permettre au timer Pomodoro de continuer en arrière-plan
Correction du problème où le timer Pomodoro se mettait en pause lors du
changement d'onglet. Le timer utilise maintenant des timestamps réels au
lieu de setInterval pour calculer le temps restant, ce qui permet de
continuer à fonctionner même quand l'onglet n'est pas actif.

Changements:
- Ajout d'un état endTime pour stocker le timestamp de fin
- Modification de la logique du timer pour calculer le temps restant basé sur endTime
- Le timer vérifie maintenant toutes les 100ms pour plus de précision
- Persistance de endTime dans localStorage pour la synchronisation
2025-11-29 07:54:56 +00:00
LogiFlow bd8013b4fc Merge pull request #149 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
fix: corriger le style du champ de titre des notes
2025-11-28 23:36:41 +01:00
Claude 4c5d990ff5 fix: corriger le style du champ de titre des notes
Le champ de titre utilisait des classes qui tentaient de supprimer
les bordures (border-none, shadow-none), créant un rendu visuel
incohérent avec les autres inputs. Simplifié pour utiliser le style
standard de l'Input avec juste text-2xl et font-semibold.
2025-11-28 22:33:52 +00:00
LogiFlow 9864b7e223 Merge pull request #148 from R0m1k3/claude/statistics-modal-popup-01P7c6z7G5KXo9Tk6BwEa4ew
fix: permettre les espaces dans les titres des notes
2025-11-28 23:29:13 +01:00
Claude 032f2246e4 fix: permettre les espaces dans les titres des notes
Le hook useKeyboardShortcuts interceptait tous les événements clavier,
y compris dans les champs de saisie, empêchant la saisie d'espaces.
La correction ignore les raccourcis sans modificateur quand l'utilisateur
tape dans un input, textarea ou contentEditable, tout en permettant
les raccourcis avec Ctrl/Alt/Meta de fonctionner normalement.
2025-11-28 22:28:21 +00:00
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