Feature Updates#70
Conversation
also rename them so that they do not conflict with the datepicker calendar component
…r and user settings dropdown
This became redundant due to the floating feedback bubble removal
when enabled users are blocked from creating or editing new time entries that are overlapping with other time entries
There was a problem hiding this comment.
Pull Request Overview
This PR implements several feature enhancements including tag-based time entry aggregation, calendar view, overlapping time entry prevention, duplicate/edit functionality, and UI improvements.
Key Changes
- Added tag support to reporting and time entry aggregation
- Implemented a calendar view with drag-and-drop time entry management
- Added organization setting to prevent overlapping time entries
- Enhanced time entry UI with edit and duplicate capabilities
Reviewed Changes
Copilot reviewed 49 out of 51 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Unit/Service/TimeEntryAggregationServiceTest.php | Added tests for tag-based aggregation with overlap prevention |
| tests/Unit/Endpoint/Api/V1/TimeEntryEndpointTest.php | Added comprehensive overlap detection tests |
| routes/web.php | Added calendar route |
| resources/js/utils/useReporting.ts | Added tag grouping option |
| resources/js/utils/feedback.ts | New utility for feedback functionality |
| resources/js/packages/ui/src/index.ts | Exported new UI components |
| resources/js/packages/ui/src/TimeEntry/*.vue | Enhanced time entry components with edit/duplicate |
| resources/js/packages/ui/src/FullCalendar/*.vue | New calendar components |
| resources/js/packages/api/src/openapi.json.client.ts | API schema updates for new features |
| resources/js/Pages/*.vue | Updated pages with new features |
| resources/js/Components/*.vue | UI component enhancements |
| resources/css/app.css | Theme color adjustments |
| package.json | Added FullCalendar and chroma-js dependencies |
| database/migrations/*.php | Added prevent_overlapping_time_entries column |
| app/Service/TimeEntryAggregationService.php | Implemented tag aggregation logic |
| app/Models/Organization.php | Added prevent_overlapping_time_entries attribute |
| app/Http/Resources/V1/Organization/OrganizationResource.php | Exposed new organization setting |
| app/Http/Controllers/Api/V1/TimeEntryController.php | Added overlap validation |
| app/Exceptions/Api/OverlappingTimeEntryApiException.php | New exception for overlaps |
| app/Enums/TimeEntryAggregationType.php | Added Tag enum case |
| lang/en/*.php | Added validation messages |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| @@ -1,4 +1,4 @@ | |||
| -- | |||
| git-- | |||
There was a problem hiding this comment.
Invalid SQL comment syntax. The line should start with -- not git--. This appears to be a merge conflict artifact or accidental edit.
| git-- |
| <h3 class="text-text-primary font-semibold text-sm">No recent time entries</h3> | ||
| <p class="pb-5 text-sm">Start tracking your time!</p> |
There was a problem hiding this comment.
The empty state message changed from 'No recent tasks found' to 'No recent time entries', but the component name and surrounding code still reference 'tasks'. This creates confusion about what data this component actually displays. The component should either be renamed or the message should be clarified to match the actual functionality.
No description provided.