Commit Graph

398 Commits

Author SHA1 Message Date
Julien Froidefond
978bb4d380 feat: add weekly summary link to Header component
- Introduced a new navigation link for the weekly summary in the Header component, enhancing user access to summary insights.
2025-09-19 10:28:33 +02:00
Julien Froidefond
3dd6e0fd1c feat: enhance Jira dashboard with advanced filtering and sprint details
- Updated `TODO.md` to mark several tasks as complete, including anomaly detection and sprint detail integration.
- Enhanced `VelocityChart` to support click events for sprint details, improving user interaction.
- Added `FilterBar` and `AnomalyDetectionPanel` components to `JiraDashboardPageClient` for advanced filtering capabilities.
- Implemented state management for selected sprints and modal display for detailed sprint information.
- Introduced new types for advanced filtering in `types.ts`, expanding the filtering options available in the analytics.
2025-09-19 10:13:48 +02:00
Julien Froidefond
b7707d7651 feat: reintroduce TaskStats to HomePageClient and TasksProvider
- Added `initialStats` prop to `HomePageClient` and `TasksProvider` to enhance task management capabilities.
- Updated data fetching in `page.tsx` to include task statistics, improving overall functionality.
- Adjusted `useTasks` hook to utilize the new `stats` parameter, ensuring comprehensive task data handling.
2025-09-19 09:05:11 +02:00
Julien Froidefond
e0b1090f18 doc: todos 2025-09-19 09:01:54 +02:00
Julien Froidefond
013b3d4d40 feat: remove TaskStats from HomePageClient and Header components
- Eliminated `initialStats` prop from `HomePageClient` and `KanbanPageClient` to streamline data handling.
- Updated `Header` and `HeaderContainer` components to remove references to `stats`, enhancing clarity and reducing unnecessary complexity.
- Adjusted `useTasks` hook to make `stats` optional, ensuring compatibility with the updated components.
2025-09-19 08:57:51 +02:00
Julien Froidefond
128167341e feat: update checkbox actions to include type parameter
- Modified `addTodayCheckboxAction` and `addYesterdayCheckboxAction` to accept a `type` parameter for better flexibility in checkbox creation.
- Updated corresponding function signatures in `daily.ts` to reflect the new parameter, ensuring consistent usage across the application.
2025-09-19 08:50:55 +02:00
Julien Froidefond
c2681f9399 feat: enhance JiraConfigForm with conditional display and instructions
- Added state management for form visibility with `showForm` to toggle display based on Jira configuration.
- Implemented instructions for configuration, detailing base URL, email, and API token setup.
- Updated UI to improve user interaction with a button to show/hide the form.
2025-09-19 08:44:25 +02:00
Julien Froidefond
5a6d907006 feat: integrate Jira configuration into Header and layout
- Added `JiraConfigProvider` to `layout.tsx` for server-side Jira configuration retrieval.
- Updated `Header.tsx` to conditionally display a link to the Jira dashboard with the project key if Jira is configured.
- Enhanced user experience by integrating Jira settings into the main application layout.
2025-09-19 08:36:55 +02:00
Julien Froidefond
2008cc3382 feat: update Jira components with improved color schemes and UI enhancements
- Refined color schemes in `BurndownChart`, `CollaborationMatrix`, `ThroughputChart`, and `TeamActivityHeatmap` for better visibility and consistency.
- Adjusted opacity handling in `TeamActivityHeatmap` for improved visual clarity.
- Cleaned up imports in `CollaborationMatrix` and `SprintComparison` for better code organization.
- Enhanced `JiraSync` component with updated color for the sync status indicator.
- Updated `jira-period-filter` to remove unused imports, streamlining the codebase.
2025-09-19 08:30:49 +02:00
Julien Froidefond
01b702f630 feat: refine Jira dashboard analytics with period filtering
- Introduced period filtering for analytics in `JiraDashboardPageClient` using `filterAnalyticsByPeriod` and `getPeriodInfo` for enhanced data visualization.
- Updated state management for selected period to use `PeriodFilter` type for better type safety.
- Improved UI to display period information alongside project metrics, enhancing user experience.
2025-09-18 22:48:51 +02:00
Julien Froidefond
0acc54025b feat: enhance Jira dashboard with export functionality and sprint comparison
- Added export options for CSV and JSON in `JiraDashboardPageClient`, allowing users to download metrics easily.
- Integrated `SprintComparison` component to visualize inter-sprint trends and predictions.
- Updated TODO.md to reflect completion of export metrics and sprint comparison features.
2025-09-18 22:43:11 +02:00
Julien Froidefond
10de6d25f7 feat: add predictability and collaboration metrics to Jira dashboard
- Marked predictability and collaboration tasks as complete in TODO.md.
- Integrated `PredictabilityMetrics` and `CollaborationMatrix` components into `JiraDashboardPageClient` for enhanced analytics visualization.
- Updated UI layout to include new metrics cards, improving dashboard functionality.
2025-09-18 22:37:43 +02:00
Julien Froidefond
4c03ae946f feat: enhance Jira analytics with caching and force refresh
- Updated `getJiraAnalytics` to accept a `forceRefresh` parameter for optional cache bypass.
- Modified `getProjectAnalytics` to check the cache and return cached data unless forced to refresh.
- Adjusted `loadAnalytics` in `useJiraAnalytics` to trigger a forced refresh on manual updates.
- Improved UI in `JiraDashboardPageClient` to indicate when data is served from cache.
2025-09-18 22:28:34 +02:00
Julien Froidefond
5d73a6c279 feat: add advanced metrics to Jira dashboard
- Marked advanced metrics in TODO.md as complete, including Velocity, Burndown Chart, Cycle Time, Throughput, Work in Progress, and Quality Metrics.
- Integrated BurndownChart, ThroughputChart, and QualityMetrics components into JiraDashboardPageClient for enhanced analytics visualization.
- Updated UI layout to accommodate new metrics cards, improving dashboard functionality.
2025-09-18 22:22:36 +02:00
Julien Froidefond
78a96b9c92 feat: add project key support for Jira analytics
- Introduced `projectKey` and `ignoredProjects` fields in Jira configuration to enhance analytics capabilities.
- Implemented project validation logic in `JiraConfigClient` and integrated it into the `JiraConfigForm` for user input.
- Updated `IntegrationsSettingsPageClient` to display analytics dashboard link based on the configured project key.
- Enhanced API routes to handle project key in Jira sync and user preferences.
- Marked related tasks as complete in `TODO.md`.
2025-09-18 22:08:29 +02:00
Julien Froidefond
4f9cff94f3 feat: integrate Jira ticket information in EditTaskForm
- Added functionality to display Jira ticket details in the `EditTaskForm` when the task source is 'jira'.
- Implemented a helper function to construct the Jira ticket URL based on user preferences.
- Included badges for Jira key, project, and type, enhancing task visibility and user interaction.
- Utilized `useUserPreferences` to fetch Jira configuration dynamically.
2025-09-18 21:13:09 +02:00
Julien Froidefond
b12dd4f8dc feat: migrate tag management to server actions
- Completed migration of tag management to server actions by creating `actions/tags.ts` for CRUD operations.
- Removed obsolete API routes for tags (`/api/tags`, `/api/tags/[id]`) and updated related components to utilize new server actions.
- Updated `TagForm` and `useTags` hook to handle tag creation, updating, and deletion through server actions, improving performance and simplifying client-side logic.
- Cleaned up `tags-client.ts` by removing unused types and methods, focusing on validation only.
- Marked related TODO items as complete in `TODO.md`.
2025-09-18 21:00:28 +02:00
Julien Froidefond
8b98c467d0 fix: update Dockerfile to use npm install instead of npm ci
- Changed the command in the Dockerfile to use `npm install` when a package-lock.json file is present, ensuring compatibility with the current setup.
2025-09-18 20:44:47 +02:00
Julien Froidefond
9c2c719384 feat: enhance backup management in AdvancedSettingsPage
- Added backup management functionality to `AdvancedSettingsPageClient`, including creating and verifying backups.
- Updated `package.json` with new backup-related scripts.
- Improved UI to display backup status and next scheduled backup time.
- Updated `.gitignore` to exclude backup files.
- Enhanced server-side data fetching to include backup data and database statistics.
2025-09-18 17:19:37 +02:00
Julien Froidefond
2fbfab1b9e feat: update swimlane column titles with status colors
- Marked the TODO item for swimlane column title colors as complete.
- Enhanced `SwimlanesBase` component to apply dynamic styles based on status colors using `getTechStyle`.
- Updated `dev.db` to reflect changes in the database schema.
2025-09-18 15:58:09 +02:00
Julien Froidefond
6161653611 feat: implement optimistic updates for column visibility toggle
- Enhanced `toggleColumnVisibility` function to optimistically update the UI by modifying `hiddenStatuses` before awaiting server response.
- Added error handling to revert to original visibility state if the server action fails, improving user experience.
- Updated dependencies in the `useCallback` hook to include `preferences.columnVisibility` for accurate state management.
2025-09-18 15:44:14 +02:00
Julien Froidefond
523a7f00cc fix: improve QuickAddTask and TagInput components
- Added `min-w-0` class to the title input in `QuickAddTask` for better layout handling.
- Updated priority select to use `flex-shrink-0` and `w-10` for consistent sizing and added title tooltip for better UX.
- Enhanced `TagInput` to support `compactSuggestions` prop, adjusting suggestion display based on available space.
- Modified suggestion container to conditionally apply grid classes based on `compactSuggestions`, improving responsiveness.
2025-09-18 15:44:06 +02:00
Julien Froidefond
02f59caf08 feat: add related todos functionality in task editing
- Implemented `RelatedTodos` component in `EditTaskForm` to display and manage related todos for a task.
- Updated `TasksClient` to fetch daily checkboxes related to a task.
- Enhanced `TasksService` with a method to retrieve related daily checkboxes from the database.
- Added functionality to create new todos linked to tasks in the daily actions.
- Marked the task for displaying related todos in the task editing interface as complete in TODO.md.
2025-09-18 15:26:07 +02:00
Julien Froidefond
729a04d557 doc: add todo 2025-09-18 14:58:25 +02:00
Julien Froidefond
618b2e9e5c feat: implement drag-and-drop reordering for daily checkboxes
- Added DnD functionality to `DailySection` for reordering checkboxes using `@dnd-kit/core` and `@dnd-kit/sortable`.
- Introduced `onReorderCheckboxes` prop to handle server updates after reordering.
- Updated `useDaily` hook to streamline error handling during reordering.
- Cleaned up `Header` component by removing unnecessary syncing text.
- Adjusted `DailyPageClient` to pass reorder function to `DailySection`.
2025-09-18 14:56:05 +02:00
Julien Froidefond
2c262b06e7 doc: ajout todo 2025-09-18 14:50:35 +02:00
Julien Froidefond
25e934170d feat: update GeneralSettingsPageClient and useDaily hook
- Removed unused `CardHeader` import from `GeneralSettingsPageClient.tsx` for cleaner code.
- Refactored `useDaily.ts` to replace `dailyClient.updateCheckbox` calls with `updateCheckboxAction`, improving consistency with action usage.
- Added `reorderCheckboxesAction` to handle checkbox reordering, including error handling for better user feedback.
- Updated database schema in `dev.db` to reflect recent changes.
2025-09-18 13:59:08 +02:00
Julien Froidefond
8ce1eef6ae feat: update settings page and theme context for user preferences
- Replaced `SettingsPageClient` with `SettingsIndexPageClient` to fetch and display user preferences on the settings page.
- Integrated `userPreferencesService` to retrieve all preferences asynchronously, enhancing data handling.
- Refactored theme management in `ThemeContext` to use `updateViewPreferences` for saving theme changes, improving error handling and user feedback.
- Marked the task for creating dedicated config sub-pages as complete in TODO.md.
2025-09-18 13:50:49 +02:00
Julien Froidefond
93e72013f9 feat: enhance font size toggle functionality in UserPreferencesContext
- Implemented optimistic UI updates for font size changes, cycling through small, medium, and large options.
- Added error handling to revert to original preferences if the server action fails, improving user experience.
- Updated dependencies in the toggleFontSize function to include preferences.viewPreferences for better state management.
2025-09-18 13:39:08 +02:00
Julien Froidefond
23e3c30126 feat: refactor color management in charts and dashboard
- Replaced hardcoded priority colors in `PriorityDistributionChart` and `DashboardStats` with centralized configuration functions for better maintainability.
- Updated `RecentTasks` to utilize new status badge classes and labels from the centralized configuration.
- Enhanced `status-config.ts` with new functions for retrieving colors and styles, ensuring consistency across components.
- Marked the task for refactoring priority colors in TODO.md as complete.
2025-09-18 13:36:07 +02:00
Julien Froidefond
5d32ba0271 doc: add task in todo 2025-09-18 13:31:15 +02:00
Julien Froidefond
a98bde86d3 feat: implement project ignore list for Jira synchronization
- Updated `JiraConfigForm` to include an input for ignored projects, allowing users to specify projects to exclude from synchronization.
- Enhanced `JiraService` with a method to filter out tasks from ignored projects, improving task management.
- Modified user preferences to store ignored projects, ensuring persistence across sessions.
- Updated API routes to handle ignored projects in configuration, enhancing overall functionality.
- Marked the corresponding task as complete in TODO.md.
2025-09-18 13:29:15 +02:00
Julien Froidefond
3ce7af043c feat: complete daily checkbox actions and cleanup
- Marked all daily checkbox actions as complete in TODO.md.
- Removed outdated mutation methods from `daily-client.ts`, now managed by server actions in `actions/daily.ts`.
- Deleted unused API routes for checkbox management, streamlining the codebase.
- Updated `useDaily.ts` to utilize server actions with `useTransition`, enhancing performance and user experience.
2025-09-18 13:20:44 +02:00
Julien Froidefond
6135fd8cb1 feat: update TODO.md with Jira settings sync task
- Added a new task to implement a project ignore list for Jira settings synchronization, ensuring it is considered by the service.
2025-09-18 13:12:41 +02:00
Julien Froidefond
aeb4e17939 feat: refactor user preferences management
- Marked all user preferences actions as complete in TODO.md.
- Updated `user-preferences-client.ts` to remove outdated mutation methods, now handled by server actions.
- Deleted unused API routes for column visibility, kanban filters, and view preferences.
- Refactored `UserPreferencesContext.tsx` to utilize server actions for updates, improving performance with `useTransition`.
2025-09-18 13:10:04 +02:00
Julien Froidefond
cece09d150 feat: enhance Header component with active link styling
- Added `usePathname` hook to determine the current route.
- Implemented `isActiveLink` and `getLinkClasses` functions for dynamic link styling based on active state.
- Adjusted navigation links in the Header to utilize the new styling functions for improved user experience.
- Updated KanbanPageClient subtitle for consistency.
2025-09-18 12:57:10 +02:00
Julien Froidefond
3c7f5ca2fa feat: update package dependencies and integrate Recharts
- Changed project name from "towercontrol-temp" to "towercontrol" in package-lock.json and package.json.
- Added Recharts library for data visualization in the dashboard.
- Updated TODO.md to reflect completion of analytics and metrics integration tasks.
- Enhanced RecentTasks component to utilize TaskPriority type for better type safety.
- Minor layout adjustments in RecentTasks for improved UI.
2025-09-18 12:48:06 +02:00
Julien Froidefond
d38053b4dc feat: revamp HomePageClient and dashboard layout
- Updated HomePageClient to replace Kanban board with a modern dashboard layout.
- Integrated DashboardStats, QuickActions, and RecentTasks components for enhanced user experience.
- Marked several tasks as complete in TODO.md, including the creation of a new dashboard and quick action features.
- Added navigation link for the new dashboard in the Header component.
2025-09-18 11:52:10 +02:00
Julien Froidefond
e7a4091f94 chore: clean up README by removing optional interface variables
- Removed optional interface variables for theme and items per page from the README to streamline configuration instructions.
2025-09-18 11:39:47 +02:00
Julien Froidefond
ec634add04 feat: update README for TowerControl v2.0
- Revamped README to reflect the new version, including a comprehensive overview of features, installation instructions, and architecture details.
- Added sections for Kanban functionality, advanced tagging system, daily notes, and Jira integration.
- Included Docker installation instructions and environment variable configuration for enhanced usability.
- Emphasized the project's modern tech stack and architectural principles.
2025-09-18 11:38:34 +02:00
Julien Froidefond
8c88322823 fix: lint and types 2025-09-18 11:30:19 +02:00
Julien Froidefond
49874b38c0 feat: add automatic database backup system to TODO
- Introduced tasks for implementing an automatic database backup system, including configurable intervals, manual backup options, and backup rotation.
- Added details for backup format and an interface for managing existing backups.
2025-09-18 11:25:39 +02:00
Julien Froidefond
7f0d6ce8f9 feat: integrate createTask action in useTasks hook
- Replaced direct task creation call with createTask action for better error handling and response management.
- Enhanced task creation logic to refresh task list upon successful creation and throw errors for failure cases.
2025-09-18 11:22:33 +02:00
Julien Froidefond
fefcc91a03 feat: remove Filters 2025-09-18 09:56:46 +02:00
Julien Froidefond
7394b16999 feat: add font size toggle functionality
- Implemented a FontSizeToggle component in HomePageClient for adjusting task font sizes in kanban views.
- Updated TaskCard to apply dynamic font size classes based on user preferences.
- Enhanced user preferences to include font size settings, defaulting to 'medium'.
- Modified TODO.md to mark the font size toggle task as complete.
2025-09-18 09:51:40 +02:00
Julien Froidefond
4a4eb9c8ad refacto: passing by server actions on taskCard 2025-09-18 09:37:46 +02:00
Julien Froidefond
228e1563c6 feat: add decision guide for Server Actions vs API Routes
- Introduced a new guide in `server-actions.mdc` to clarify when to use Server Actions versus API Routes in Next.js.
- Included examples, implementation patterns, migration strategies, and anti-patterns to avoid for better developer understanding.
2025-09-18 08:55:16 +02:00
Julien Froidefond
1bfcce3736 feat: expand Jira analytics and monitoring features
- Updated TODO.md to include detailed tasks for Jira project configuration, analytics service, and dashboard page.
- Added advanced metrics and monitoring functionalities, including velocity calculations, cycle time analysis, and automated anomaly detection.
- Introduced new API routes and components for enhanced data handling and visualization.
2025-09-18 08:51:27 +02:00
Julien Froidefond
8d2652f4d8 feat: migrate API routes to server actions
- Replaced API routes with server actions for task management, daily checkboxes, user preferences, and tags to streamline operations.
- Implemented immediate cleanup of obsolete routes and code, enhancing performance and reducing complexity.
- Established a hybrid architecture to maintain complex endpoints while optimizing simple actions.
2025-09-18 08:48:28 +02:00
Julien Froidefond
0223611b3f feat: jira config in database 2025-09-17 18:04:13 +02:00