From 70c5e3f1ad03d2e647e5e29d017c60cc8e363bfe Mon Sep 17 00:00:00 2001 From: Hugo <hugo.cubino@estudiantes.uva.es> Date: Sat, 28 Dec 2024 22:53:19 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20estado=20en=20listado=20de=20usu?= =?UTF-8?q?arios=20y=20filtrado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/main-page/main-page.component.html | 31 ++++++++-------- .../users/main-page/main-page.component.ts | 36 +++++++++---------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/angular/RestClient/src/app/features/users/main-page/main-page.component.html b/angular/RestClient/src/app/features/users/main-page/main-page.component.html index 8f3659e..66c2ae6 100644 --- a/angular/RestClient/src/app/features/users/main-page/main-page.component.html +++ b/angular/RestClient/src/app/features/users/main-page/main-page.component.html @@ -19,14 +19,13 @@ </div> <div class="mat-elevation-z8 demo-table table"> <table mat-table [dataSource]="dataSource"> + <!-- ID Column --> <ng-container matColumnDef="id"> <th mat-header-cell *matHeaderCellDef> <span class="text-3xl font-bold">ID</span> </th> <td mat-cell *matCellDef="let element"> - <span class="text-2xl"> - {{ element.id }} - </span> + <span class="text-2xl">{{ element.id }}</span> </td> </ng-container> @@ -36,33 +35,37 @@ <span class="text-3xl font-bold">Name</span> </th> <td mat-cell *matCellDef="let element"> - <span class="text-2xl"> - {{ element.name }} - </span> + <span class="text-2xl">{{ element.name }}</span> </td> </ng-container> - <!-- Weight Column --> + <!-- Email Column --> <ng-container matColumnDef="email"> <th mat-header-cell *matHeaderCellDef> <span class="text-3xl font-bold">Email</span> </th> <td mat-cell *matCellDef="let element"> - <span class="text-2xl"> - {{ element.email }} - </span> + <span class="text-2xl">{{ element.email }}</span> </td> </ng-container> - <!-- Symbol Column --> + <!-- Role Column --> <ng-container matColumnDef="rol"> <th mat-header-cell *matHeaderCellDef> <span class="text-3xl font-bold">Rol</span> </th> <td mat-cell *matCellDef="let element"> - <span class="text-2xl"> - {{ element.rol }} - </span> + <span class="text-2xl">{{ element.rol }}</span> + </td> + </ng-container> + + <!-- State Column --> + <ng-container matColumnDef="status"> + <th mat-header-cell *matHeaderCellDef> + <span class="text-3xl font-bold">Estado</span> + </th> + <td mat-cell *matCellDef="let element"> + <span class="text-2xl">{{ getState(element) }}</span> </td> </ng-container> diff --git a/angular/RestClient/src/app/features/users/main-page/main-page.component.ts b/angular/RestClient/src/app/features/users/main-page/main-page.component.ts index aa156b5..e8f1dd9 100644 --- a/angular/RestClient/src/app/features/users/main-page/main-page.component.ts +++ b/angular/RestClient/src/app/features/users/main-page/main-page.component.ts @@ -27,7 +27,7 @@ export class MainPageComponent implements OnInit { users: Client[] = []; filteredUsers: Client[] = []; selectedStatus: UserStateFilter = 'All'; - displayedColumns: string[] = ['id', 'name', 'email', 'rol']; + displayedColumns: string[] = ['id', 'name', 'email', 'rol', 'status']; dataSource = new MatTableDataSource<User>(); constructor(private userClient: UserClientService, private router: Router) {} @@ -36,7 +36,6 @@ export class MainPageComponent implements OnInit { this.users = users; this.filteredUsers = [...this.users]; - // Sobrescribir con datos reales si están disponibles this.userClient.getAllUsers().subscribe({ next: (data: Client[]) => { this.users = data; @@ -49,28 +48,29 @@ export class MainPageComponent implements OnInit { @ViewChild(MatPaginator) paginator?: MatPaginator; filterUsers(): void { - if (this.selectedStatus === 'All') { - this.filteredUsers = [...this.users]; - } else { - this.filteredUsers = this.users.filter( - (user) => user.status === this.selectedStatus - ); - } + this.filteredUsers = + this.selectedStatus === 'All' + ? [...this.users] + : this.users.filter(user => user?.status === this.selectedStatus); + this.dataSource = new MatTableDataSource<User>(this.filteredUsers); this.dataSource.paginator = this.paginator!; } getState(user: Client): string { - switch (user.status) { - case 'NO_BOOKINGS': - return 'SIN RESERVAS'; - case 'WITH_ACTIVE_BOOKINGS': - return 'CON RESERVAS ACTIVAS'; - case 'WITH_INACTIVE_BOOKINGS': - return 'CON RESERVAS INACTIVAS'; - default: - return 'ESTADO DESCONOCIDO'; + if (user.rol === 'CLIENT') { + switch (user.status) { + case 'NO_BOOKINGS': + return 'SIN RESERVAS'; + case 'WITH_ACTIVE_BOOKINGS': + return 'CON RESERVAS ACTIVAS'; + case 'WITH_INACTIVE_BOOKINGS': + return 'CON RESERVAS INACTIVAS'; + default: + return 'ESTADO DESCONOCIDO'; + } } + return '-'; } userDetails(id: number) { -- GitLab