- Introduce logic to temporarily disable the notify_users_on_tablos trigger during the update of orphaned tablos to prevent unwanted notifications.
- Ensure that the trigger is re-enabled after the update, even in case of exceptions, maintaining database integrity.
- Add a safety net to handle legacy inconsistencies by assigning orphaned tablos to a dedicated recovery organization.
- Ensure that the NOT NULL constraint can be applied to the organization_id field in the tablos table.
- Add view mode dropdown with "Semaine" (7 days) and "2 semaines" (14 days)
- Biweekly mode shows compact cards (smaller padding, no tablo badge, shorter labels)
- Navigation steps by 1 or 2 weeks based on current view mode
- Dynamic column count and card sizing based on view config
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Create shared GanttChart component with week navigation, day columns,
today indicator, and positioned task cards
- Task cards color-coded by status (blue/orange/purple/green)
- Replace list-based RoadmapView in Tasks page with GanttChart
- Replace list-based RoadmapSection in Tablo Details page with GanttChart
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add due_date column to tasks table with Supabase migration
- Update database types and tasks_with_assignee view
- Add DatePicker to TaskModal for setting due dates
- Display due dates on KanbanTaskCard, list view, and Etapes section
- Enable Roadmap tab on both Tasks page and Tablo Details page
- Add RoadmapView components with timeline grouped by Etape
- Highlight overdue dates in red across all views
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Map each tablo color to a dedicated Lucide icon (Zap, Leaf, Gem, Flame, etc.)
- Apply contrast-aware icon color: dark gray for light backgrounds (yellow, cyan), white for all others
- NavigationBar: always use gray icon for sidebar consistency; active nav item uses light purple background (#804EEC tint)
- Apply icons to NavigationBar, tablos, tablo-details, tablo (dashboard), and tasks pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Set purple (#804EEC) as default ChannelBadge background color
- Update ChannelPreview active state to purple highlight (was blue)
- Add "Discussions" title header to chat page
- Standardize all page headers to text-2xl font-bold (tablos, tasks, files, planning)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- NavigationBar: add light/dark theme support with adaptive text colors
- TopBar: match navbar background color in both themes
- main.css: make navbar-background/darker CSS variables theme-aware
- tablo-details: restore working invite button with full share dialog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ActionCard: new disabled and badge props; disabled state shows opacity-50, cursor-not-allowed, prevents clicks
- Badge renders inline next to the label (e.g., "Bientôt")
- Invite Team card: permanently disabled with "Bientôt" badge visible without clicking
- Remove onInviteTeam prop and toast callback
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Instead of navigating to /tasks, the Create Task action card now opens a TaskModal with tablo selection enabled, allowing users to create a task directly from the dashboard.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Guard TaskModal render with tabloId check to prevent it from mounting with undefined tablo context.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Each étape shows an "Ajouter une tâche" button at the bottom when expanded
- Clicking opens an inline text input with Enter to submit, Escape to cancel
- Created tasks are linked to the étape via parent_task_id
- Purple "Ajouter" button with instant feedback
- Uses existing useCreateTask hook with correct tablo_id and parent_task_id
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
The étape's own status field was not reflecting actual progress. Now the displayed status is computed from child tasks: all done = Terminé, some done = En cours, none done = À faire.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- New "Étapes" tab with ListChecksIcon showing parent tasks (is_parent: true)
- Each étape is an expandable card with: numbered purple icon, title, description, status badge, progress bar (done/total child tasks)
- Expanding reveals child tasks grouped under each étape with done/pending indicators and status badges
- Uses useTabloEtapes hook to fetch parent tasks ordered by position
- Empty state when no étapes exist
- Full dark mode support
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Replace neutral gray oklch values (hue 0) with purple-tinted variants (hue 290, low chroma) across all dark mode CSS variables
- Background, card, border, muted, accent all now carry a subtle purple tint
- Navbar colors shifted from blue-gray (#292e39) to deep purple (#1e1b2e)
- Stream Chat dark mode backgrounds aligned with the new palette
- Creates a cohesive dark theme that complements the #804EEC purple design system
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Change h-screen to h-[calc(100vh-75px)] to prevent the message input from being pushed below the viewport by the 75px TopBar.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Primary color: #804EEC (was #8b7396)
- Own message bubbles: solid #804EEC with white text in both light and dark modes
- Surface colors updated to use purple-tinted variants
- Dark mode uses consistent purple-based alpha colors
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- "Créer un événement" sidebar button: solid purple background
- "Aujourd'hui" button: purple border and text (outline style)
- Active view toggle (month/week/day): purple text with white background when selected
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Remove search input from events view
- Replace Filter button with two pill toggles: "À venir" (default, upcoming only) and "Tous les événements" (show all)
- Active toggle is highlighted with #804EEC purple
- Remove unused SlidersHorizontalIcon and eventsSearchQuery state
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- EventModal now accepts optional isOpen/onClose/defaultTabloId/defaultDate props; when provided it works as a controlled dialog without needing to navigate to /planning/create
- When used as a route child (existing behavior), falls back to URL params and navigate(-1) as before
- Events view "Créer un événement" button opens EventModal inline instead of navigating, passing the current tablo and date as defaults
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Only show upcoming events (today and future) by default
- Change "Créer un événement" button to #804EEC purple
- Replace MapPin icon with the tablo's colored initial avatar to show which project the event belongs to
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- TopBar: replace standalone Événements link with a segmented toggle pill (Calendrier | Événements) that only appears on /planning, with the active tab highlighted white
- planning.tsx events view: replace date badge with ActionCard-style icon container (bg-[#F4F3FF] / text-[#7F56D9]) matching the purple design system
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- planning.tsx: when ?tab=events, render a new card-based events view instead of the calendar; cards show date badge (month/day), title, description, time, and tablo name; includes search input and filter button; wired to existing useEventsByTablo hook and navigate-to-create flow
- TopBar.tsx: add "Événements" nav link that toggles to /planning?tab=events, with active state highlighting
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Add /tasks and /files to SEARCH_ROUTES so the TopBar search input is active on those pages
- Tasks page reads search query from URL ?q= param instead of local state; remove duplicate search input from header
- Files page reads ?q= param to filter tablos and files by name
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>