refs #1924. Refresh status card view

pull/21/head
Manuel Aranda Rosales 2025-04-16 14:32:17 +02:00
parent 265b4888c3
commit 0096daca42
2 changed files with 30 additions and 12 deletions

View File

@ -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.

View File

@ -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();
}
}