Ajoute projet et migration milestone

Signed-off-by: Gato <cedric@goutailler-olivier.fr>
This commit is contained in:
2026-05-31 10:00:36 +02:00
parent 401da09f8f
commit 54d1534d4d
39 changed files with 1565 additions and 288 deletions
@@ -11,6 +11,8 @@
<button type="button" class="btn btn-outline-secondary btn-sm" (click)="toggleMoreMenu()">···</button>
@if (moreMenuOpen) {
<div class="more-menu dropdown-menu show">
<button type="button" class="dropdown-item" (click)="openMigrate()">Migrer vers un autre projet</button>
<div class="dropdown-divider"></div>
<button type="button" class="dropdown-item text-danger" (click)="deleteMilestone()">Supprimer</button>
</div>
}
@@ -22,6 +24,40 @@
</div>
</div>
<!-- Panneau de migration -->
@if (showMigratePanel) {
<div class="migrate-panel mb-3">
<div class="migrate-title">Migrer « {{ milestone.name }} » vers un autre projet</div>
@if (availableProjects.length === 0) {
<p class="migrate-empty">Aucun autre projet disponible.</p>
} @else {
<select
class="migrate-select form-select form-select-sm"
[(ngModel)]="selectedMigrateProjectId"
name="migrateProject"
>
<option [ngValue]="null" disabled>Sélectionner un projet…</option>
@for (project of availableProjects; track project.id) {
<option [ngValue]="project.id">{{ project.name }}</option>
}
</select>
}
<div class="migrate-actions">
<button
type="button"
class="btn btn-sm btn-primary"
(click)="confirmMigrate()"
[disabled]="selectedMigrateProjectId === null"
>
Confirmer la migration
</button>
<button type="button" class="btn btn-sm btn-outline-secondary" (click)="cancelMigrate()">
Annuler
</button>
</div>
</div>
}
<!-- Titre -->
<div class="card shadow-sm mb-3">
<div class="card-body py-2">