Compare commits

..

No commits in common. "12ab33c17552e7714a9925539a79941898eec26e" and "289ea525c3fbadf81d6b422a1191c0fd9a350324" have entirely different histories.

10 changed files with 5 additions and 76 deletions

View File

@ -1,9 +1,4 @@
# Changelog
## [0.19.0] - 2025-08-06
### Added
- Se ha añadido un nuevo estado "enviado" para cuando se ejecuten acciones a equipos en estado Windows o Linux
---
## [0.18.0] - 2025-08-04
### Added
- Se ha añadido la posibilidad de visualizar logs en tiempo real de Grafana. Tanto en los componentes como en los clientes.

View File

@ -117,11 +117,6 @@
color: white;
}
.chip-sent {
background-color: #b19cd9 !important;
color: white;
}
.status-progress-flex {
display: flex;
align-items: center;

View File

@ -72,11 +72,9 @@
text="{{ 'tracesProgressStepText' | translate }}">
<mat-chip [ngClass]="{
'chip-pending': trace.status === 'pending',
'chip-sent': trace.status === 'sent'
}">
{{
trace.status === 'pending' ? 'Pendiente' :
trace.status === 'sent' ? 'Enviado' :
trace.status
}}
</mat-chip>

View File

@ -335,12 +335,6 @@ table {
font-weight: 500;
}
.chip-sent {
background-color: #b19cd9 !important;
color: white !important;
font-weight: 500;
}
.status-progress-flex {
display: flex;
align-items: center;
@ -365,7 +359,6 @@ table {
.status-indicator.pending { background-color: #17a2b8; }
.status-indicator.in-progress { background-color: #ffc107; }
.status-indicator.cancelled { background-color: #6c757d; }
.status-indicator.sent { background-color: #b19cd9; }
/* Opciones de cliente */
.client-option {

View File

@ -96,8 +96,7 @@
'chip-success': trace.status === 'success',
'chip-pending': trace.status === 'pending',
'chip-in-progress': trace.status === 'in-progress',
'chip-cancelled': trace.status === 'cancelled',
'chip-sent': trace.status === 'sent'
'chip-cancelled': trace.status === 'cancelled'
}">
{{
trace.status === 'failed' ? 'Error' :
@ -105,7 +104,6 @@
trace.status === 'success' ? 'Completado' :
trace.status === 'pending' ? 'Pendiente' :
trace.status === 'cancelled' ? 'Cancelado' :
trace.status === 'sent' ? 'Enviado' :
trace.status
}}
</mat-chip>

View File

@ -238,17 +238,6 @@
color: #212529;
}
.stat-sent {
border-left-color: #b19cd9;
background: #b19cd9;
color: white;
}
.stat-sent .stat-number,
.stat-sent .stat-label {
color: white;
}
.stat-number {
font-size: 2rem;
font-weight: bold;
@ -534,12 +523,6 @@ table {
font-weight: 500;
}
.chip-sent {
background-color: #b19cd9 !important;
color: white !important;
font-weight: 500;
}
.status-progress-flex {
display: flex;
align-items: center;
@ -563,7 +546,6 @@ table {
.status-indicator.pending { background-color: #17a2b8; }
.status-indicator.in-progress { background-color: #ffc107; }
.status-indicator.cancelled { background-color: #6c757d; }
.status-indicator.sent { background-color: #b19cd9; }
.client-option {
display: flex;

View File

@ -57,13 +57,6 @@
<div class="stat-number">{{ getStatusCount('in-progress') }}</div>
<div class="stat-label">{{ 'inProgress' | translate }}</div>
</div>
<div class="stat-card stat-sent clickable"
[class.active-filter]="isFilterActive('sent')"
(click)="filterBySent()"
matTooltip="Ver trazas enviadas">
<div class="stat-number">{{ getStatusCount('sent') }}</div>
<div class="stat-label">{{ 'sent' | translate }}</div>
</div>
</div>
<div class="filters-section" joyrideStep="filtersStep" text="{{ 'filtersStepText' | translate }}">
@ -153,12 +146,6 @@
{{ 'cancelled' | translate }}
</div>
</mat-option>
<mat-option [value]="'sent'">
<div class="status-option">
<div class="status-indicator sent"></div>
{{ 'sent' | translate }}
</div>
</mat-option>
</mat-select>
<button *ngIf="commandStatusInput.value" mat-icon-button matSuffix aria-label="Clear input search"
(click)="clearStatusFilter($event, commandStatusInput)">
@ -245,8 +232,7 @@
'chip-success': trace.status === 'success',
'chip-pending': trace.status === 'pending',
'chip-in-progress': trace.status === 'in-progress',
'chip-cancelled': trace.status === 'cancelled',
'chip-sent': trace.status === 'sent'
'chip-cancelled': trace.status === 'cancelled'
}">
{{
trace.status === 'failed' ? ('failed' | translate) :
@ -254,7 +240,6 @@
trace.status === 'success' ? ('successful' | translate) :
trace.status === 'pending' ? ('pending' | translate) :
trace.status === 'cancelled' ? ('cancelled' | translate) :
trace.status === 'sent' ? ('sent' | translate) :
trace.status
}}
</mat-chip>

View File

@ -51,7 +51,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
pending: number;
inProgress: number;
cancelled: number;
sent: number;
today: number;
} = {
total: 0,
@ -60,7 +59,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
pending: 0,
inProgress: 0,
cancelled: 0,
sent: 0,
today: 0
};
@ -206,8 +204,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
return this.totalStats.inProgress;
case 'cancelled':
return this.totalStats.cancelled;
case 'sent':
return this.totalStats.sent;
case 'today':
return this.totalStats.today;
default:
@ -474,7 +470,7 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
}
private calculateLocalStats(): void {
const statuses = ['success', 'failed', 'pending', 'in-progress', 'cancelled', 'sent'];
const statuses = ['success', 'failed', 'pending', 'in-progress', 'cancelled'];
const requests = statuses.map(status =>
this.http.get<any>(`${this.baseUrl}/traces?status=${status}&page=1&itemsPerPage=1`)
);
@ -489,8 +485,8 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
forkJoin([totalRequest, ...requests, todayRequest]).subscribe(
(responses) => {
const totalData = responses[0];
const statusData = responses.slice(1, 7);
const todayData = responses[7];
const statusData = responses.slice(1, 6);
const todayData = responses[6];
this.totalStats = {
total: totalData['hydra:totalItems'],
@ -499,7 +495,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
pending: statusData[2]['hydra:totalItems'],
inProgress: statusData[3]['hydra:totalItems'],
cancelled: statusData[4]['hydra:totalItems'],
sent: statusData[5]['hydra:totalItems'],
today: todayData['hydra:totalItems']
};
},
@ -513,7 +508,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
pending: this.traces.filter(trace => trace.status === 'pending').length,
inProgress: this.traces.filter(trace => trace.status === 'in-progress').length,
cancelled: this.traces.filter(trace => trace.status === 'cancelled').length,
sent: this.traces.filter(trace => trace.status === 'sent').length,
today: this.traces.filter(trace => trace.executedAt && todayString && trace.executedAt.startsWith(todayString)).length
};
}
@ -658,13 +652,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
this.loadTraces();
}
filterBySent(): void {
this.resetAllFilters();
this.filters['status'] = 'sent';
this.activeFilter = 'sent';
this.loadTraces();
}
isFilterActive(filterType: string): boolean {
return this.activeFilter === filterType;
}
@ -681,8 +668,6 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
return 'Trazas fallidas';
case 'in-progress':
return 'Trazas en progreso';
case 'sent':
return 'Trazas enviadas';
default:
return '';
}

View File

@ -573,7 +573,6 @@
"busyEquipments": "Busy Equipment",
"pending": "Pending",
"cancelled": "Cancelled",
"sent": "Sent",
"cancelImageTransmission": "Cancel image transmission",
"success": "Success",
"limpiarAcciones": "Clear actions",

View File

@ -578,7 +578,6 @@
"organizationalStructure": "Estructura Organizacional",
"pending": "Pendiente",
"cancelled": "Cancelado",
"sent": "Enviado",
"cancelImageTransmission": "Cancelar transmisión de imagen",
"success": "Exitoso",
"limpiarAcciones": "Limpiar acciones",