feat(api-detail): modale d'édition des métadonnées d'une API
- Bouton "Modifier" sur la page détail ouvre une modale avec tous les champs éditables (titre, version, catégorie, description, docs, contacts, droits d'accès) - ApiService.update() étendu à tous les champs du UpdateApiEntryDto - Remplacement des labels "Obligatoire"/"Optionnel" par un astérisque rouge sur les champs requis dans tous les formulaires Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
@@ -104,7 +104,7 @@ import { Category } from '@datacat/shared';
|
||||
<form [formGroup]="metaForm" (ngSubmit)="goToStep3()" novalidate>
|
||||
<div class="fr-input-group fr-mb-3w" [class.fr-input-group--error]="titleInvalid()">
|
||||
<label class="fr-label" for="title-input">
|
||||
Titre <span class="fr-hint-text">Obligatoire</span>
|
||||
Titre <span style="color:var(--text-default-error)">*</span>
|
||||
</label>
|
||||
<input
|
||||
id="title-input"
|
||||
@@ -121,7 +121,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w" [class.fr-input-group--error]="versionInvalid()">
|
||||
<label class="fr-label" for="version-input">
|
||||
Version <span class="fr-hint-text">Obligatoire</span>
|
||||
Version <span style="color:var(--text-default-error)">*</span>
|
||||
</label>
|
||||
<input
|
||||
id="version-input"
|
||||
@@ -138,7 +138,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-select-group fr-mb-3w">
|
||||
<label class="fr-label" for="type-input">
|
||||
Type <span class="fr-hint-text">Obligatoire</span>
|
||||
Type <span style="color:var(--text-default-error)">*</span>
|
||||
</label>
|
||||
<select id="type-input" class="fr-select" formControlName="type">
|
||||
<option value="ASYNCAPI">AsyncAPI</option>
|
||||
@@ -148,8 +148,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-select-group fr-mb-3w">
|
||||
<label class="fr-label" for="category-input">
|
||||
Catégorie <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Catégorie </label>
|
||||
<select id="category-input" class="fr-select" formControlName="categoryId">
|
||||
<option value="">— Sans catégorie —</option>
|
||||
@for (cat of categories(); track cat.id) {
|
||||
@@ -160,8 +159,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="description-input">
|
||||
Description <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Description </label>
|
||||
<textarea
|
||||
id="description-input"
|
||||
class="fr-input"
|
||||
@@ -173,8 +171,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="functional-doc-input">
|
||||
Documentation fonctionnelle <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Documentation fonctionnelle </label>
|
||||
<textarea
|
||||
id="functional-doc-input"
|
||||
class="fr-input"
|
||||
@@ -186,8 +183,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="technical-doc-input">
|
||||
Documentation technique <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Documentation technique </label>
|
||||
<textarea
|
||||
id="technical-doc-input"
|
||||
class="fr-input"
|
||||
@@ -199,8 +195,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="external-doc-url-input">
|
||||
URL documentation externe <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
URL documentation externe </label>
|
||||
<input
|
||||
id="external-doc-url-input"
|
||||
class="fr-input"
|
||||
@@ -212,8 +207,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="contact-functional-input">
|
||||
Contact fonctionnel <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Contact fonctionnel </label>
|
||||
<input
|
||||
id="contact-functional-input"
|
||||
class="fr-input"
|
||||
@@ -225,8 +219,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-3w">
|
||||
<label class="fr-label" for="contact-technical-input">
|
||||
Contact technique <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Contact technique </label>
|
||||
<input
|
||||
id="contact-technical-input"
|
||||
class="fr-input"
|
||||
@@ -238,8 +231,7 @@ import { Category } from '@datacat/shared';
|
||||
|
||||
<div class="fr-input-group fr-mb-4w">
|
||||
<label class="fr-label" for="access-rights-input">
|
||||
Droits d'accès <span class="fr-hint-text">Optionnel</span>
|
||||
</label>
|
||||
Droits d'accès </label>
|
||||
<textarea
|
||||
id="access-rights-input"
|
||||
class="fr-input"
|
||||
|
||||
Reference in New Issue
Block a user