fix(ui) : remove legacy edit pages and history composables, unify create/edit forms

Consolidate create and edit pages into single create pages with edit mode support.
Remove obsolete catalog pages, history composables, and fix remaining code review issues.
Include migration to relink orphaned custom fields.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 11:19:50 +02:00
parent cfaf234419
commit 201485552a
29 changed files with 875 additions and 2748 deletions

View File

@@ -1,8 +1,13 @@
<template>
<main class="container mx-auto px-6 py-10">
<div class="flex flex-col gap-2 mb-6">
<h1 class="text-3xl font-bold tracking-tight">Composants</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de composants.</p>
<div class="flex flex-col gap-2 mb-6 md:flex-row md:items-end md:justify-between">
<div>
<h1 class="text-3xl font-bold tracking-tight">Composants</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de composants.</p>
</div>
<NuxtLink v-if="canEdit" to="/component/create" class="btn btn-primary btn-sm md:btn-md">
Ajouter un composant
</NuxtLink>
</div>
<EntityTabs v-model="activeTab" :tabs="pageTabs" aria-label="Composants">
@@ -59,6 +64,10 @@
{{ row.component.reference || '—' }}
</template>
<template #cell-referenceAuto="{ row }">
{{ row.component.referenceAuto || '—' }}
</template>
<template #cell-description="{ row }">
<div v-if="row.component.description" class="group relative">
<span class="block cursor-help truncate">{{ row.component.description }}</span>
@@ -169,6 +178,7 @@ const columns = [
{ key: 'preview', label: 'Aperçu', width: 'w-24' },
{ key: 'name', label: 'Nom', sortable: true },
{ key: 'reference', label: 'Référence' },
{ key: 'referenceAuto', label: 'Réf. auto' },
{ key: 'description', label: 'Description' },
{ key: 'typeComposant', label: 'Type de composant', filterable: true, filterPlaceholder: 'Filtrer…' },
{ key: 'createdAt', label: 'Date', sortable: true },

View File

@@ -1,8 +1,13 @@
<template>
<main class="container mx-auto px-6 py-10">
<div class="flex flex-col gap-2 mb-6">
<h1 class="text-3xl font-bold tracking-tight">Pièces</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de pièces.</p>
<div class="flex flex-col gap-2 mb-6 md:flex-row md:items-end md:justify-between">
<div>
<h1 class="text-3xl font-bold tracking-tight">Pièces</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de pièces.</p>
</div>
<NuxtLink v-if="canEdit" to="/pieces/create" class="btn btn-primary btn-sm md:btn-md">
Ajouter une pièce
</NuxtLink>
</div>
<EntityTabs v-model="activeTab" :tabs="pageTabs" aria-label="Pièces">

View File

@@ -1,8 +1,13 @@
<template>
<main class="container mx-auto px-6 py-10">
<div class="flex flex-col gap-2 mb-6">
<h1 class="text-3xl font-bold tracking-tight">Produits</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de produits.</p>
<div class="flex flex-col gap-2 mb-6 md:flex-row md:items-end md:justify-between">
<div>
<h1 class="text-3xl font-bold tracking-tight">Produits</h1>
<p class="text-sm text-base-content/70">Catalogue et catégories de produits.</p>
</div>
<NuxtLink v-if="canEdit" to="/product/create" class="btn btn-primary btn-sm md:btn-md">
Ajouter un produit
</NuxtLink>
</div>
<EntityTabs v-model="activeTab" :tabs="pageTabs" aria-label="Produits">