From 0096daca42af4af32a2ddd0ffaf9bd86231e4c7f Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Wed, 16 Apr 2025 14:32:17 +0200 Subject: [PATCH] refs #1924. Refresh status card view --- CHANGELOG.md | 5 +++ .../app/components/groups/groups.component.ts | 37 +++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db16a14..394f881 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ # Changelog +## [0.11.2] - 2025-4-16 +### Fixed +- Se ha corregido un error en la actualizacion del estado de los pcs en la vista tarjetas. + +--- ## [0.11.1] - 2025-4-16 ### Improved - Nuevos campos en la tabla de clientes. Tipo de firmware y mac. diff --git a/ogWebconsole/src/app/components/groups/groups.component.ts b/ogWebconsole/src/app/components/groups/groups.component.ts index 894fff1..04d5052 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.ts +++ b/ogWebconsole/src/app/components/groups/groups.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, OnDestroy, ViewChild, QueryList, ViewChildren } from '@angular/core'; +import {Component, OnInit, OnDestroy, ViewChild, QueryList, ViewChildren, ChangeDetectorRef} from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; import { Router } from '@angular/router'; import { MatDialog } from '@angular/material/dialog'; @@ -110,7 +110,8 @@ export class GroupsComponent implements OnInit, OnDestroy { private joyrideService: JoyrideService, private breakpointObserver: BreakpointObserver, private toastr: ToastrService, - private configService: ConfigService + private configService: ConfigService, + private cd: ChangeDetectorRef, ) { this.baseUrl = this.configService.apiUrl; this.mercureUrl = this.configService.mercureUrl; @@ -175,23 +176,35 @@ export class GroupsComponent implements OnInit, OnDestroy { }) } - private updateClientStatus(clientUuid: string, newStatus: string): void { - const clientIndex = this.selectedClients.data.findIndex(client => client['@id'] === clientUuid); + private updateClientStatus(clientUuid: string, status: string): void { + let updated = false; - if (clientIndex !== -1) { + const index = this.arrayClients.findIndex(client => client['@id'] === clientUuid); + if (index !== -1) { + const updatedClient = {...this.arrayClients[index], status}; + this.arrayClients = [ + ...this.arrayClients.slice(0, index), + updatedClient, + ...this.arrayClients.slice(index + 1) + ]; + updated = true; + } + + const tableIndex = this.selectedClients.data.findIndex(client => client['@id'] === clientUuid); + + if (tableIndex !== -1) { const updatedClients = [...this.selectedClients.data]; - updatedClients[clientIndex] = { - ...updatedClients[clientIndex], - status: newStatus + updatedClients[tableIndex] = { + ...updatedClients[tableIndex], + status: status }; this.selectedClients.data = updatedClients; - this.arrayClients = updatedClients; + } - console.log(`Estado actualizado para el cliente ${clientUuid}: ${newStatus}`); - } else { - console.warn(`Cliente con UUID ${clientUuid} no encontrado en la lista.`); + if (updated) { + this.cd.detectChanges(); } }