244bfdc3e4
fix : code review — correct 15 issues across UX overhaul (phases 1-4)
...
Critical fixes:
- Make MigrateConstructeurLinks migration no-op (legacy tables already dropped)
- Add explicit ON CONFLICT (id) target in RestoreConstructeurLinks migration
- Replace N+1 queries with 4 bulk GROUP BY in ConstructeurStatsController
- Declare missing versionListRef template ref in machine detail page
- Add missing await on removeMachineDocument, cast activeTab as string
Important fixes:
- Add lang="ts" to ToastContainer and constructeurs page
- Type entityType as union in UsedInSection/useUsedIn
- Remove dead duration param from showError
- Update back-link props to new /catalogues/* URLs (3 pages)
- Replace raw error blocks with EmptyState in component/piece detail pages
- Type handleFillEntity params and machineInfoCardRef
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-05 18:26:05 +02:00
8a841832b2
docs : add full session summary for UX overhaul (phases 1-4)
2026-04-05 17:48:43 +02:00
6b8422fd03
fix(migration) : restore constructeur links from backup data — fallback for prod
2026-04-05 17:46:46 +02:00
7c2ad165e4
fix(migration) : migrate constructeur links from legacy M2M tables to new link entities
2026-04-05 17:29:33 +02:00
eef4b01d74
fix(api) : add priority to constructeurs/stats route to avoid {id} conflict
2026-04-04 19:30:55 +02:00
3a5860c83c
fix(ui) : use correct component names without path prefix (EmptyState, UsedInSection)
2026-04-04 19:29:00 +02:00
ef4e208828
feat(ui) : enrich category related items modal with machine counts and navigation links
2026-04-04 17:31:34 +02:00
14ed38704f
feat(api) : add machine count to category related items endpoint
2026-04-04 17:29:39 +02:00
8b02f821d3
feat(ui) : add UsedInSection showing reverse entity relationships on detail pages
2026-04-04 17:29:13 +02:00
4afbc8ba8a
feat(api) : add constructeur stats endpoints with entity counts
2026-04-04 17:26:06 +02:00
b484a426e0
feat(api) : add /api/{entityType}/{id}/used-in endpoint for reverse entity lookups
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 17:25:43 +02:00
5b06e2ba51
feat(ui) : improve mobile responsiveness — breadcrumb truncation, tabs scroll, form grids
2026-04-04 17:25:36 +02:00
7f91b30bf6
feat(ui) : error toasts persist until dismissed, add progress bar on auto-dismiss toasts
2026-04-04 17:25:00 +02:00
8e0e3a3b33
fix(custom-fields) : fix resolvedStructure declaration order and remove duplicate in usePieceEdit
2026-04-04 17:20:14 +02:00
fea51fb66b
fix(custom-fields) : fix declaration order of resolvedStructure in usePieceEdit
2026-04-04 17:18:52 +02:00
644b05c30a
fix(ui) : add lang=ts to script tags using TypeScript syntax
...
ComponentItem, PieceItem, and machine/[id] used 'as string' type
assertions but were missing lang="ts" on their script tags.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 17:16:58 +02:00
48beff753e
feat(ui) : reorganize navbar by business domain — Catalogues + Administration
2026-04-04 17:14:02 +02:00
db6fd8f36a
feat(ui) : add legacy URL redirects for old catalog and category routes
2026-04-04 17:13:23 +02:00
6a43f08df8
fix(ui) : phase 1 review fixes — machine context links, type annotations, double arrow
...
- Add ?from=machine&machineId=xxx query params to entity NuxtLinks in hierarchy
- Add useRoute + machineId computed to ComponentItem, PieceItem, MachineProductsCard
- Add :string type to confirmRemove* handlers in machine page
- Remove unicode arrow from DetailHeader backLabel (icon already provides it)
- Add !isEditMode guard on product links in MachineProductsCard
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 17:12:20 +02:00
8a355aad11
feat(ui) : create unified catalog+category pages under /catalogues/
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 17:10:19 +02:00
72c10ced40
feat(ui) : add contextual breadcrumb navigation
2026-04-04 17:08:17 +02:00
71cf131e56
feat(ui) : add tabs to piece and product detail pages
2026-04-04 17:06:09 +02:00
5b37404b9e
feat(ui) : add tabs to product detail page
2026-04-04 17:05:30 +02:00
c6e1fce313
feat(ui) : add tabs to component detail page
2026-04-04 17:02:37 +02:00
63104dc155
feat(ui) : add tabs to piece detail page
2026-04-04 17:02:31 +02:00
2b96d20d56
feat(ui) : add tabs to machine page, compact header with site/reference badges
2026-04-04 17:00:02 +02:00
a8a3facec8
feat(ui) : create useUnsavedGuard composable for edit page navigation protection
2026-04-04 16:58:35 +02:00
54b3b03611
feat(ui) : create EntityTabs shared component for tabbed detail pages
2026-04-04 16:56:45 +02:00
6742da2fce
feat(ui) : align entity detail pages — category links and version lists on all three
2026-04-04 16:42:53 +02:00
1963ce261d
feat(ui) : replace div-inputs with plain text in entity detail pages read mode
2026-04-04 16:42:23 +02:00
a610284325
feat(ui) : add confirmation dialogs on all delete and unlink actions
2026-04-04 16:41:35 +02:00
239f417a35
feat(ui) : contextual back navigation in DetailHeader
2026-04-04 16:40:40 +02:00
4f13f7d301
feat(ui) : clickable entity links, site→machines links, DataTable fixedLayout
...
- Add NuxtLink on component/piece/product names in machine hierarchy
(using composantId, pieceId, product.id)
- Make site machine count badges clickable → /machines?sites={id}
- Add opt-in fixedLayout prop and minWidth to DataTable columns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 16:39:21 +02:00
6716d31126
feat(ui) : add item counters to machine section titles
2026-04-04 16:33:08 +02:00
2b04860ea8
fix(custom-fields) : fix declaration order in useComponentEdit and useComponentCreate
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 13:18:16 +02:00
894d522036
refactor(custom-fields) : unify 3 parallel implementations into 1 module
...
Replace ~2900 lines across 9 files with ~400 lines in 2 files:
- shared/utils/customFields.ts (types + pure helpers)
- composables/useCustomFieldInputs.ts (reactive composable)
Migrated all consumers:
- Backend: add defaultValue to API Platform serialization groups
- Standalone pages: component edit/create, piece edit/create, product edit/create/detail
- Machine page: MachineCustomFieldsCard, MachineInfoCard, useMachineDetailCustomFields
- Hierarchy: ComponentItem, PieceItem
- Shared: CustomFieldDisplay, CustomFieldInputGrid
- Category editor: componentStructure.ts
Deleted:
- entityCustomFieldLogic.ts (335 lines)
- customFieldUtils.ts (440 lines)
- customFieldFormUtils.ts (404 lines)
- useEntityCustomFields.ts (181 lines)
- customFieldFormUtils.test.ts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 13:09:27 +02:00
f2eff89e00
docs : fix task ordering — category editor before machine page
...
normalizeStructureForEditor is used by useMachineDetailCustomFields.
Must clean it (Task 6) before migrating the machine page (Task 7).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 12:49:41 +02:00
1348fa9963
docs : update implementation plan with review fixes
...
Addresses 8 issues found by dual code review:
- Add readOnly + optionsText to CustomFieldInput type
- Replace computed with mutable ref + refresh() in composable
- Add metadata fallback for fields without customFieldId
- Add onValueCreated callback to keep parent reactive state in sync
- Merge Task 4+5 to avoid type mismatch in intermediate state
- Detail surgical refactoring of transformComponentCustomFields
- Define data contract for ComponentItem/PieceItem (pre-merged)
- Fix hasDisplayableValue to handle readOnly fields
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 12:46:31 +02:00
875a34f169
docs : add custom fields simplification implementation plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 12:37:15 +02:00
353d7e938e
docs : add custom fields simplification design spec
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 12:32:11 +02:00
2c1ddb2126
feat(infra) : add self-update mechanism to deploy.sh
...
Auto Tag Develop / tag (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 11:26:49 +02:00
gitea-actions
c64b125047
chore : bump version to v1.9.15
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 39s
v1.9.15
2026-04-04 09:23:14 +00:00
85c7c97dc3
feat(infra) : add pull-prod-db script and make target
...
Auto Tag Develop / tag (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-04 11:22:34 +02:00
gitea-actions
1705a3688b
chore : bump version to v1.9.14
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 2m2s
v1.9.14
2026-04-03 14:23:58 +00:00
Matthieu
34b36f5d14
fix(infra) : add qpdf to production Docker image
...
Auto Tag Develop / tag (push) Successful in 9s
qpdf was only installed in dev Dockerfile, causing the PDF compressor
to silently skip compression in production.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 16:23:47 +02:00
gitea-actions
d6b74f01f9
chore : bump version to v1.9.13
Auto Tag Develop / tag (push) Successful in 7s
Build & Push Docker Image / build (push) Successful in 37s
v1.9.13
2026-04-03 13:53:38 +00:00
Matthieu
5efedfabf8
fix(infra) : fix document storage double nesting in prod
...
Auto Tag Develop / tag (push) Has been cancelled
Les fichiers documents étaient stockés sous storage/storage/documents/
au lieu de storage/ directement, causant des 404 en prod.
Le deploy script corrige la structure et le Dockerfile crée le
répertoire var/storage/documents dans l'image.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 15:53:23 +02:00
gitea-actions
d0aba111b3
chore : bump version to v1.9.12
Auto Tag Develop / tag (push) Successful in 10s
Build & Push Docker Image / build (push) Successful in 45s
v1.9.12
2026-04-03 12:05:38 +00:00
6eaefdbbbf
Merge branch 'feat/empty-slot-highlight' into develop
Auto Tag Develop / tag (push) Has been cancelled
2026-04-03 14:05:23 +02:00
b869984609
feat(infra) : ajout maintenance mode nginx-proxy + extraction maintenance.html au deploy
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 13:56:05 +02:00