diff --git a/app/components/StructureNodeEditor.vue b/app/components/StructureNodeEditor.vue
index 9b3892b..60e6cfd 100644
--- a/app/components/StructureNodeEditor.vue
+++ b/app/components/StructureNodeEditor.vue
@@ -5,10 +5,15 @@
- {{ isRoot ? 'Famille de composant racine' : 'Famille de composant' }}
+ {{ isRoot ? 'Composant racine de la catégorie' : 'Famille de composant' }}
-
+
+
+ Le composant racine correspond à la catégorie que vous éditez. Sélectionnez uniquement les familles pour les sous-composants.
+
+
+
{
if (!component) {
return
}
+ if (props.isRoot) {
+ component.typeComposantId = ''
+ component.typeComposantLabel = ''
+ component.familyCode = ''
+ if (component.alias) {
+ component.alias = ''
+ }
+ return
+ }
if (props.lockType && props.isRoot) {
if (props.lockedTypeLabel) {
component.typeComposantLabel = props.lockedTypeLabel
diff --git a/app/components/model-types/EditModal.vue b/app/components/model-types/EditModal.vue
deleted file mode 100644
index 5ccc6ab..0000000
--- a/app/components/model-types/EditModal.vue
+++ /dev/null
@@ -1,360 +0,0 @@
-
-
-
-
-
- {{ modalTitle }}
-
-
- Les champs marqués d'un astérisque sont obligatoires.
-
-
-
-
-
-
-
-
-
-
diff --git a/app/components/model-types/ManagementView.vue b/app/components/model-types/ManagementView.vue
index d3292d8..2a535ae 100644
--- a/app/components/model-types/ManagementView.vue
+++ b/app/components/model-types/ManagementView.vue
@@ -14,13 +14,13 @@
:search="searchInput"
:sort="sort"
:dir="dir"
- :loading="loading || saving"
+ :loading="loading"
:show-category-tabs="allowCategorySwitch"
@update:category="onCategoryChange"
@update:search="onSearchInput"
@update:sort="onSortChange"
@update:dir="onDirChange"
- @create="openCreateModal"
+ @create="openCreatePage"
/>
-
-
diff --git a/app/pages/component-category/[id]/edit.vue b/app/pages/component-category/[id]/edit.vue
new file mode 100644
index 0000000..619571c
--- /dev/null
+++ b/app/pages/component-category/[id]/edit.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
{{ title }}
+
+ Ajustez le squelette et les métadonnées de cette catégorie de composant. Les modifications seront appliquées lors des prochaines créations de composants.
+
+
+
+ Retour au catalogue
+
+
+
+
+
+
+
+ Chargement de la catégorie…
+
+
+
+
+
+
+
diff --git a/app/pages/component-category.vue b/app/pages/component-category/index.vue
similarity index 100%
rename from app/pages/component-category.vue
rename to app/pages/component-category/index.vue
diff --git a/app/pages/component-category/new.vue b/app/pages/component-category/new.vue
new file mode 100644
index 0000000..e65056c
--- /dev/null
+++ b/app/pages/component-category/new.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
Nouvelle catégorie de composant
+
+ Configurez le squelette canonique qui sera appliqué lors de la création des composants appartenant à cette catégorie.
+
+
+
+ Retour au catalogue
+
+
+
+
+
+
+
+
+
diff --git a/app/pages/piece-category/[id]/edit.vue b/app/pages/piece-category/[id]/edit.vue
new file mode 100644
index 0000000..e3aae4d
--- /dev/null
+++ b/app/pages/piece-category/[id]/edit.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
{{ title }}
+
+ Mettez à jour la structure et les champs personnalisés de cette catégorie de pièce pour préparer les futures créations.
+
+
+
+ Retour au catalogue
+
+
+
+
+
+
+
+ Chargement de la catégorie…
+
+
+
+
+
+
+
diff --git a/app/pages/piece-category.vue b/app/pages/piece-category/index.vue
similarity index 100%
rename from app/pages/piece-category.vue
rename to app/pages/piece-category/index.vue
diff --git a/app/pages/piece-category/new.vue b/app/pages/piece-category/new.vue
new file mode 100644
index 0000000..37873cb
--- /dev/null
+++ b/app/pages/piece-category/new.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
Nouvelle catégorie de pièce
+
+ Définissez les champs personnalisés et le squelette appliqué lors de la création des pièces de cette catégorie.
+
+
+
+ Retour au catalogue
+
+
+
+
+
+
+
+
+
diff --git a/app/shared/modelUtils.ts b/app/shared/modelUtils.ts
index 9333596..2d4691a 100644
--- a/app/shared/modelUtils.ts
+++ b/app/shared/modelUtils.ts
@@ -210,16 +210,13 @@ const sanitizeSubcomponents = (components: any[]): ComponentModelStructureNode[]
export const normalizeStructureForSave = (input: any): ComponentModelStructure => {
const source = cloneStructure(input)
- return {
+ const result: ComponentModelStructure = {
customFields: sanitizeCustomFields(source.customFields),
pieces: sanitizePieces(source.pieces),
subcomponents: sanitizeSubcomponents(source.subcomponents),
- typeComposantId: source.typeComposantId,
- typeComposantLabel: source.typeComposantLabel,
- modelId: source.modelId,
- familyCode: source.familyCode,
- alias: source.alias,
}
+
+ return result
}
const hydrateCustomFields = (fields: any[]): any[] => {