Choix type issue

Signed-off-by: Gato <cedric@goutailler-olivier.fr>
This commit is contained in:
2026-05-30 13:42:46 +02:00
parent 6b5355ade7
commit d359ffc66f
8 changed files with 283 additions and 15 deletions
@@ -229,18 +229,38 @@
</div>
}
<div class="card-body" [class.pt-0]="linkedIssues.length > 0">
<div class="card-body" [class.pt-2]="linkedIssues.length > 0">
@if (showCreateIssue) {
<div class="d-flex gap-2 flex-wrap">
<div class="d-flex gap-2 align-items-center">
<div class="type-dropdown-wrapper">
<button type="button" class="btn btn-sm btn-outline-secondary d-flex align-items-center gap-1" (click)="toggleTypeDropdown()">
<span class="type-icon" [style.background]="typeIcon(newIssueType).bg" [title]="newIssueType">{{ typeIcon(newIssueType).letter }}</span>
{{ newIssueType }}
<span class="dropdown-toggle ms-1"></span>
</button>
@if (showTypeDropdown) {
<div class="type-backdrop" (click)="closeTypeDropdown()"></div>
<ul class="type-dropdown dropdown-menu show">
@for (type of typeOptions; track type) {
<li>
<button type="button" class="dropdown-item d-flex align-items-center gap-2" [class.active]="newIssueType === type" (click)="selectNewIssueType(type)">
<span class="type-icon" [style.background]="typeIcon(type).bg">{{ typeIcon(type).letter }}</span>
{{ type }}
</button>
</li>
}
</ul>
}
</div>
<input
#newIssueInput
aria-label="Titre de la nouvelle issue"
class="form-control form-control-sm"
class="form-control form-control-sm dep-select"
type="text"
placeholder="Titre de l'issue..."
[(ngModel)]="newIssueName"
(keydown.enter)="confirmCreateIssue()"
(keydown.escape)="cancelCreateIssue()"
autofocus
/>
<button type="button" class="btn btn-sm btn-primary text-nowrap" (click)="confirmCreateIssue()" [disabled]="!newIssueName.trim()">Créer</button>
<button type="button" class="btn btn-sm btn-outline-secondary text-nowrap" (click)="cancelCreateIssue()">Annuler</button>
@@ -283,7 +303,25 @@
</div>
} @else {
<div class="d-flex gap-2">
<button type="button" class="btn btn-sm btn-primary" (click)="openCreateIssue()">+ Créer une issue</button>
<div class="btn-group create-issue-wrapper">
<button type="button" class="btn btn-sm btn-primary" (click)="openCreateIssue()">+ Créer une issue</button>
<button type="button" class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split" (click)="toggleCreateDropdown()">
<span class="visually-hidden">Choisir le type</span>
</button>
@if (showCreateDropdown) {
<div class="create-backdrop" (click)="closeCreateDropdown()"></div>
<ul class="create-type-dropdown dropdown-menu show">
@for (type of typeOptions; track type) {
<li>
<button type="button" class="dropdown-item d-flex align-items-center gap-2" (click)="openCreateIssue(type)">
<span class="type-icon" [style.background]="typeIcon(type).bg">{{ typeIcon(type).letter }}</span>
{{ type }}
</button>
</li>
}
</ul>
}
</div>
<button
type="button"
class="btn btn-sm btn-outline-secondary"