@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user