851953df1e
feat : generalize TaskDocumentProcessor for client tickets
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:28:04 +01:00
b6cfe9d7d4
feat : add ClientTicketProvider with filtering
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:27:24 +01:00
f33f2f95ec
feat : add ClientTicketStatusProcessor
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:27:10 +01:00
f27297517c
feat : add ClientTicketNumberProcessor
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:27:00 +01:00
d2e27a04ce
feat : add ClientTicketRepository
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:25:45 +01:00
926d6d54c5
feat : generalize TaskDocument for client tickets
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:25:02 +01:00
a538bb3601
feat : add clientTicket relation to Task entity
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:23:50 +01:00
97dcff8542
feat : add ClientTicket entity
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:23:36 +01:00
87ab281099
feat : extend User entity with client and allowedProjects
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:23:10 +01:00
63febbea45
fix(security) : add ROLE_USER security on all read endpoints
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:21:19 +01:00
edc441f363
fix(security) : exclude ROLE_USER for ROLE_CLIENT users
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 19:20:46 +01:00
4c19b68156
fix(gitea) : propagate API errors instead of silently returning empty results
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:58:55 +01:00
06771c17e0
fix(bookstack) : add uriVariables to BookStackLink and BookStackSearchResult
...
API Platform 4 requires explicit uriVariables declaration for
URI template parameters on DTO resources.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:27:57 +01:00
9e638c32b8
feat(bookstack) : add BookStackSearchResult API resource for shelf-scoped search
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:10:47 +01:00
bc331982d5
feat(bookstack) : add BookStackLink API resource with CRUD operations
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:10:24 +01:00
1e311242a9
feat(bookstack) : add BookStackShelf API resource for listing shelves
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:09:51 +01:00
97c6ef6a52
feat(bookstack) : add BookStackTestConnection API resource
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:09:36 +01:00
28fbc73248
feat(bookstack) : add BookStackSettings API resource with provider and processor
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:09:20 +01:00
df00b27a64
feat(bookstack) : add BookStackApiService
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:08:51 +01:00
ee38f99022
feat(bookstack) : add BookStackApiException
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 18:08:15 +01:00
06832c24e1
feat : add document upload processor, download controller and cleanup listener
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:05:58 +01:00
8fbafc1f8a
feat(bookstack) : add bookstackShelfId and bookstackShelfName to Project
2026-03-15 18:05:13 +01:00
585cc3368f
feat(bookstack) : add TaskBookStackLink entity and repository
2026-03-15 18:05:09 +01:00
043826075d
feat(bookstack) : add BookStackConfiguration entity and repository
2026-03-15 18:05:07 +01:00
8ec98a593a
feat : add task_document migration
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:04:14 +01:00
3dd2d39222
refactor : rename GITEA_ENCRYPTION_KEY to ENCRYPTION_KEY
...
Generic encryption key name for shared use across Gitea and BookStack
token encryption.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:03:52 +01:00
cfaa6c42ec
feat : add TaskDocument entity with Task relation
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 18:03:20 +01:00
445f51b473
fix(gitea) : fetch only branch-specific commits using compare API
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 08:16:55 +01:00
f888a29e0a
refactor(frontend) : make page headers and filters sticky across all pages
...
Wrap title + filters in a sticky container (top-8 sm:top-12, z-20, bg-white)
on all pages for consistent scroll behavior. Also fix SidebarTimer icon
visibility when sidebar is collapsed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 09:21:45 +01:00
b48ca10304
feat : populate all projects with tasks, groups and time entries in fixtures
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 09:14:15 +01:00
0733ac16cd
feat : add project archiving feature
...
Allow projects to be archived/unarchived from the ProjectDrawer, with a
toggle filter on the projects page to show/hide archived projects.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 08:58:29 +01:00
Matthieu
94d7794c31
fix : add task:read group to Project gitea fields for TaskModal visibility
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 14:18:19 +01:00
Matthieu
5135e28e3a
feat : add branch name generation endpoint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:59:32 +01:00
Matthieu
3d0fad3735
feat : add task Gitea pull requests endpoint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:59:07 +01:00
Matthieu
dcbf5db308
feat : add task Gitea branches endpoints (list + create)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:58:41 +01:00
Matthieu
7b1aa22c15
feat : add Gitea repositories list endpoint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:58:09 +01:00
Matthieu
5577884c13
feat : add Gitea test connection endpoint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:57:50 +01:00
Matthieu
be2e7c60a3
feat : add Gitea settings API resource with provider/processor
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:57:31 +01:00
Matthieu
136d0eaaa4
feat : add GiteaApiService with branch/commit/PR methods
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:57:01 +01:00
Matthieu
0b8e2bfc63
feat : add GiteaApiException
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:56:25 +01:00
Matthieu
28e943b519
feat : add TokenEncryptor service with sodium encryption
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:56:14 +01:00
Matthieu
c82b6d1b32
feat : add gitea owner/repo fields to Project entity
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:55:19 +01:00
Matthieu
6ae014fe8a
feat : add GiteaConfiguration entity with repository
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 13:55:00 +01:00
Matthieu
bc9471e4ba
fix(backend) : add task:read serialization group to Project id
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 12:06:52 +01:00
Matthieu
7540c99501
feat : add my-tasks page with Kanban and List views
...
Add a /my-tasks page displaying all non-archived tasks across projects
with server-side filtering (assignee, project, group, priority, effort,
tags, status) and two view modes (Kanban columns by status, List view).
Includes sidebar navigation link and i18n translations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 11:34:16 +01:00
Matthieu
9a9e5093f5
feat : add archive/unarchive to TaskGroupDrawer and fix isFinal serialization
...
Fix TaskStatus getter naming (isFinal -> getIsFinal) so Symfony serializer
properly exposes the isFinal field. Add archive/unarchive buttons and
non-final tasks info message to TaskGroupDrawer. Remove obsolete TaskType
entity and repository.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 10:50:41 +01:00
Matthieu
517511177c
feat : add project code and task auto-numbering
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 08:20:31 +01:00
Matthieu
56275a9ebe
refactor : rename TaskType to TaskTag across the stack
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 08:20:21 +01:00
Matthieu
96a9f988c4
feat(backend) : set isFinal on Terminé status in fixtures
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 17:58:55 +01:00
Matthieu
e98d952871
feat(backend) : add archived field to TaskGroup entity
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 17:52:54 +01:00