diff --git a/ogWebconsole/src/app/components/task-logs/task-logs.component.css b/ogWebconsole/src/app/components/task-logs/task-logs.component.css
index 88ca540..f2077a2 100644
--- a/ogWebconsole/src/app/components/task-logs/task-logs.component.css
+++ b/ogWebconsole/src/app/components/task-logs/task-logs.component.css
@@ -497,6 +497,12 @@ table {
flex-shrink: 0;
}
+/* Ajuste para el botón de éxito en la barra de progreso */
+.progress-container .success-button {
+ margin-left: 5px;
+ flex-shrink: 0;
+}
+
.paginator-container {
display: flex;
justify-content: end;
@@ -549,7 +555,7 @@ table {
.status-progress-flex {
display: flex;
align-items: center;
- gap: 8px;
+ gap: 4px;
}
.status-option {
@@ -617,6 +623,26 @@ button.cancel-button {
color: #dc3545;
}
+.success-button {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #28a745;
+ background-color: transparent;
+ border: none;
+ padding: 0px;
+ transition: all 0.3s ease;
+}
+
+.success-button:hover {
+ background-color: rgba(40, 167, 69, 0.1);
+ border-radius: 50%;
+}
+
+.success-button mat-icon {
+ color: #28a745;
+}
+
.selected-row {
background-color: rgba(102, 126, 234, 0.1) !important;
}
diff --git a/ogWebconsole/src/app/components/task-logs/task-logs.component.html b/ogWebconsole/src/app/components/task-logs/task-logs.component.html
index b570279..b2df6d8 100644
--- a/ogWebconsole/src/app/components/task-logs/task-logs.component.html
+++ b/ogWebconsole/src/app/components/task-logs/task-logs.component.html
@@ -241,6 +241,10 @@
(click)="cancelTrace(trace)" class="cancel-button" matTooltip="{{ 'cancelTask' | translate }}">
cancel
+
@@ -270,6 +274,10 @@
(click)="cancelTrace(trace)" class="cancel-button" matTooltip="{{ 'cancelTask' | translate }}">
cancel
+
diff --git a/ogWebconsole/src/app/components/task-logs/task-logs.component.ts b/ogWebconsole/src/app/components/task-logs/task-logs.component.ts
index 972701f..1326dec 100644
--- a/ogWebconsole/src/app/components/task-logs/task-logs.component.ts
+++ b/ogWebconsole/src/app/components/task-logs/task-logs.component.ts
@@ -321,6 +321,41 @@ export class TaskLogsComponent implements OnInit, OnDestroy {
});
}
+ markTraceAsSuccess(trace: any): void {
+ if (trace.status !== 'in-progress') {
+ this.toastService.warning('Solo se pueden marcar como exitosas las trazas en progreso', 'Advertencia');
+ return;
+ }
+
+ const dialogRef = this.dialog.open(DeleteModalComponent, {
+ width: '400px',
+ data: {
+ title: 'Marcar Traza como Exitosa',
+ message: `¿Estás seguro de que quieres marcar la traza #${trace.id} como exitosa?`,
+ confirmText: 'Marcar como Exitosa',
+ cancelText: 'Cancelar'
+ }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ if (result) {
+ this.loading = true;
+ this.http.post(`${this.baseUrl}${trace['@id']}/mark-as-success`, {}).subscribe(
+ () => {
+ this.toastService.success('Traza marcada como exitosa correctamente', 'Éxito');
+ this.loadTraces();
+ this.loadTotalStats();
+ },
+ (error) => {
+ console.error('Error marking trace as success:', error);
+ this.toastService.error('Error al marcar la traza como exitosa', 'Error');
+ this.loading = false;
+ }
+ );
+ }
+ });
+ }
+
private updateTracesStatus(clientUuid: string, newStatus: string, progress: Number): void {
const traceIndex = this.traces.findIndex(trace => trace['@id'] === clientUuid);
if (traceIndex !== -1) {