Commit Graph

117 Commits

Author SHA1 Message Date
Matthieu
5b204a3464 feat : add AdminGiteaTab component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:01:39 +01:00
Matthieu
92baf8ac0e feat : add Gitea i18n keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:01:05 +01:00
Matthieu
2073339d4f feat : add gitea fields to Project DTO
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:00:35 +01:00
Matthieu
e278286146 feat : add Gitea frontend service
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:00:17 +01:00
Matthieu
a6c5e54619 feat : add Gitea TypeScript DTOs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:59:56 +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
50690e6680 feat : add migration for GiteaConfiguration and Project gitea fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:55:39 +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
3ec9424bb2 docs : add Gitea integration implementation plan
23 tasks across 7 chunks covering:
- Backend: GiteaConfiguration entity, TokenEncryptor, GiteaApiService
- API: settings CRUD, test connection, repositories list, task branches/PRs
- Frontend: DTOs, service, admin tab, ProjectDrawer repo selector, TaskGitSection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:40:28 +01:00
Matthieu
aa5f6cc7c1 docs : address spec review feedback for Gitea integration
- Use dedicated GiteaConfiguration entity instead of generic Setting table
- Add token encryption with SodiumEncryptor + GITEA_ENCRYPTION_KEY
- Split aggregated /gitea/info into separate /branches and /pull-requests endpoints
- Fix branch pattern matching to avoid PROJ-420 matching PROJ-42
- Add error handling strategy with GiteaApiException and degraded UI state
- Add slug generation via AsciiSlugger with 50 char limit
- Add test connection endpoint
- Extract TaskGitSection.vue component
- Add frontend service layer (gitea.ts)
- Add i18n consideration
- Add "copy branch name" feature

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:16:29 +01:00
Matthieu
14358fdddc docs : add Gitea integration design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:13:36 +01:00
Matthieu
3ffd18138b chore : update auto-generated config reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:07:02 +01:00
Matthieu
e5e722c019 docs : add implementation plans for admin clients and time entry multi-type select
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:06:58 +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
cb5aa4584c feat(frontend) : add tag, assignee and status filters on project page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:06:48 +01:00
Matthieu
1d0f9a28c3 feat(frontend) : add kanban drag & drop and improve filter selects on my-tasks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:06:44 +01:00
Matthieu
d3ea09319c feat(frontend) : show project code and task number badge in TaskModal header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:06:39 +01:00
Matthieu
e85ea42d7c docs : update CLAUDE.md structure and fix spec formatting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:06:35 +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
c60f531607 docs : add my-tasks page implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:28:39 +01:00
Matthieu
638bb2b686 docs : address spec review feedback for my-tasks page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:23:45 +01:00
Matthieu
7b8c754987 docs : add my tasks page design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:21:34 +01:00
Matthieu
bf9faee5f4 feat(frontend) : add current time indicator line on calendar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:06:09 +01:00
Matthieu
7d1d81688e refactor(frontend) : replace TaskDrawer with TaskModal for ticket create/edit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:06:04 +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
7e7e373231 fix(frontend) : fix dropdown z-index and dev config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 08:20:43 +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
dbae1f7536 feat(frontend) : add isFinal toggle to TaskStatusDrawer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:08:19 +01:00
Matthieu
d5d6452cf2 feat(frontend) : add group archive/unarchive to ProjectGroupTab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:07:21 +01:00
Matthieu
e6bbe66d42 feat(frontend) : add actions slot to DataTable component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:06:28 +01:00
Matthieu
0c4363d32b feat(frontend) : add Archives sidebar link for projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:05:39 +01:00
Matthieu
81d0433653 feat(frontend) : create project archives page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:05:12 +01:00
Matthieu
5057ef45c8 feat(frontend) : filter archived tasks and groups from kanban view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:04:15 +01:00
Matthieu
c097849dad feat(frontend) : add archive/unarchive buttons and delete confirmation to TaskDrawer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:03:27 +01:00
Matthieu
7fe434fa07 feat(frontend) : create ConfirmDeleteTaskModal component
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:01:55 +01:00
Matthieu
4e391e2f57 feat(frontend) : add archiving i18n translations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:01:19 +01:00
Matthieu
84c85b3322 feat(frontend) : add getByProjectArchived to task service
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:00:31 +01:00
Matthieu
91ffb82e44 feat(frontend) : add isFinal and archived fields to DTOs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:59:45 +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
2c2ca0a8b6 feat(backend) : add migration for isFinal, archived fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:58:20 +01:00