Add initial Angular webclient application with authentication, route guards, and UI components

This commit is contained in:
2026-04-24 18:31:10 +02:00
parent ebc27a0923
commit e89f3fc72c
46 changed files with 10056 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
<nav class="navbar navbar-expand-lg navbar-light border-bottom">
<div class="container">
<a class="navbar-brand fw-bold" [routerLink]="'/'">
<img ngSrc="/logo.png" alt="logo" height="32" width="32"/>
Portail Bureau Service
</a>
<div class="ms-auto">
@if (getUser(); as user) {
<div class="dropdown">
<button
class="btn btn-outline-secondary dropdown-toggle"
type="button"
id="userDropdown"
data-bs-toggle="dropdown"
aria-expanded="false">
<i class="bi bi-person-circle me-2"></i>
<span class="d-none d-sm-inline">{{ user.username }}</span>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
<li>
<a class="dropdown-item" [routerLink]="'/profile'">
<i class="bi bi-person"></i> Profile
</a>
</li>
<li>
<a class="dropdown-item" [routerLink]="'/moulinettes'">
<i class="bi bi-person-lines-fill"></i> Liste des moulinettes
</a>
</li>
@if (authService.hasRole('Administrator')) {
<li>
<a class="dropdown-item" [routerLink]="'/admin'">
<i class="bi bi-shield-lock"></i> Administration
</a>
</li>
<li>
<a class="dropdown-item" [routerLink]="'/admin/rules'">
<i class="bi bi-signpost-split"></i> Gestion des moulinettes
</a>
</li>
}
<li>
<hr class="dropdown-divider">
</li>
<li>
<a class="dropdown-item" (click)="logout()">
<i class="bi bi-box-arrow-right"></i> Se déconnecter
</a>
</li>
</ul>
</div>
} @else {
<div class="btn-group gap-4">
<button class="btn btn-outline-dark" [routerLink]="'/login'">Se connecter</button>
</div>
}
</div>
</div>
</nav>