fix: stabilize admin user UI state
This commit is contained in:
@@ -45,7 +45,12 @@
|
||||
} @else if (directory()) {
|
||||
<div class="directory" aria-live="polite">
|
||||
@for (user of directory()!.data; track user.id) {
|
||||
<article class="user-row" [attr.data-user-id]="user.id" [class.user-row--inactive]="user.status?.id === 2">
|
||||
<article
|
||||
class="user-row"
|
||||
[attr.data-user-id]="user.id"
|
||||
[attr.aria-busy]="pendingUserId() === user.id ? 'true' : null"
|
||||
[class.user-row--inactive]="user.status?.id === 2"
|
||||
>
|
||||
<div class="user-row__summary">
|
||||
<div class="avatar" aria-hidden="true">{{ initials(user) }}</div>
|
||||
<div class="user-row__identity">
|
||||
@@ -76,18 +81,39 @@
|
||||
|
||||
@if (adminDetails(user); as details) {
|
||||
<div class="user-row__actions">
|
||||
<button mat-button type="button" (click)="toggleEdit(user.id)">Bearbeiten</button>
|
||||
<button mat-button type="button" (click)="toggleAssignments(user.id)">Zuordnungen verwalten</button>
|
||||
<button mat-button type="button" [disabled]="assignmentBusyUserId() !== null" (click)="toggleEdit(user.id)">
|
||||
Bearbeiten
|
||||
</button>
|
||||
<button
|
||||
mat-button
|
||||
type="button"
|
||||
[disabled]="assignmentBusyUserId() !== null"
|
||||
(click)="toggleAssignments(user.id)"
|
||||
>
|
||||
Zuordnungen verwalten
|
||||
</button>
|
||||
<button
|
||||
mat-stroked-button
|
||||
type="button"
|
||||
[disabled]="isSelf(user) || pendingUserId() !== null"
|
||||
[attr.title]="isSelf(user) ? 'Das eigene Konto kann nicht deaktiviert werden.' : null"
|
||||
[attr.aria-describedby]="isSelf(user) ? 'self-status-note-' + user.id : null"
|
||||
(click)="changeStatus(details)"
|
||||
>
|
||||
{{ user.status?.id === 2 ? 'Aktivieren' : 'Deaktivieren' }}
|
||||
{{
|
||||
pendingUserId() === user.id
|
||||
? 'Status wird geändert …'
|
||||
: user.status?.id === 2
|
||||
? 'Aktivieren'
|
||||
: 'Deaktivieren'
|
||||
}}
|
||||
</button>
|
||||
</div>
|
||||
@if (isSelf(user)) {
|
||||
<p class="self-status-note" [id]="'self-status-note-' + user.id">
|
||||
Das eigene Konto kann nicht deaktiviert werden.
|
||||
</p>
|
||||
}
|
||||
|
||||
@if (editingUserId() === user.id) {
|
||||
<app-user-edit
|
||||
@@ -103,6 +129,7 @@
|
||||
[user]="details"
|
||||
(directoryChanged)="assignmentsChanged()"
|
||||
(closed)="assignmentUserId.set(null)"
|
||||
(busyChange)="assignmentBusyChanged(user.id, $event)"
|
||||
/>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user