From 52a77baa506abf73f77782d06140a287f1877ba1 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Tue, 5 May 2026 18:20:17 +0200 Subject: [PATCH] Added new endpoint. Disk logs --- ogWebconsole/src/app/app.module.ts | 2 + .../components/groups/groups.component.html | 8 ++ .../app/components/groups/groups.component.ts | 14 +++ .../client-disk-logs-modal.component.css | 116 ++++++++++++++++++ .../client-disk-logs-modal.component.html | 39 ++++++ .../client-disk-logs-modal.component.ts | 53 ++++++++ ogWebconsole/src/locale/cat.json | 1 + ogWebconsole/src/locale/en.json | 1 + ogWebconsole/src/locale/es.json | 1 + 9 files changed, 235 insertions(+) create mode 100644 ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.css create mode 100644 ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.html create mode 100644 ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.ts diff --git a/ogWebconsole/src/app/app.module.ts b/ogWebconsole/src/app/app.module.ts index f728d16..744fe72 100644 --- a/ogWebconsole/src/app/app.module.ts +++ b/ogWebconsole/src/app/app.module.ts @@ -185,6 +185,7 @@ import { ScrollToTopComponent } from './shared/scroll-to-top/scroll-to-top.compo import { CreateTagModalComponent } from './components/repositories/show-git-images/create-tag-modal/create-tag-modal.component'; import { CreateBranchModalComponent } from './components/repositories/show-git-images/create-branch-modal/create-branch-modal.component'; import { ClientLogsModalComponent } from './components/groups/shared/client-logs-modal/client-logs-modal.component'; +import { ClientDiskLogsModalComponent } from './components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component'; import { BackupRepositoryModalComponent } from './components/repositories/show-git-images/backup-repository-modal/backup-repository-modal.component'; import { HardwareComponent } from './components/hardware/hardware.component'; import { CreateHardwareComponent } from './components/hardware/create-hardware/create-hardware.component'; @@ -325,6 +326,7 @@ registerLocaleData(localeEs, 'es-ES'); CreateTagModalComponent, CreateBranchModalComponent, ClientLogsModalComponent, + ClientDiskLogsModalComponent, SafePipe, BackupRepositoryModalComponent, HardwareComponent, diff --git a/ogWebconsole/src/app/components/groups/groups.component.html b/ogWebconsole/src/app/components/groups/groups.component.html index 10f032a..da09f00 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.html +++ b/ogWebconsole/src/app/components/groups/groups.component.html @@ -458,6 +458,10 @@ analytics {{ 'clientLogs' | translate }} + + + + + + + + + diff --git a/ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.ts b/ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.ts new file mode 100644 index 0000000..884adaf --- /dev/null +++ b/ogWebconsole/src/app/components/groups/shared/client-disk-logs-modal/client-disk-logs-modal.component.ts @@ -0,0 +1,53 @@ +import { Component, Inject, OnInit, OnDestroy } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { HttpClient } from '@angular/common/http'; +import { ConfigService } from '@services/config.service'; + +@Component({ + selector: 'app-client-disk-logs-modal', + templateUrl: './client-disk-logs-modal.component.html', + styleUrls: ['./client-disk-logs-modal.component.css'] +}) +export class ClientDiskLogsModalComponent implements OnInit, OnDestroy { + content: string = ''; + loading: boolean = false; + error: string | null = null; + private apiUrl: string; + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: { client: any }, + private http: HttpClient, + private configService: ConfigService, + ) { + this.apiUrl = this.configService.apiUrl; + } + + ngOnInit(): void { + this.loadLogs(); + } + + ngOnDestroy(): void {} + + loadLogs(): void { + this.loading = true; + this.error = null; + + this.http.get<{ content: string }>(`${this.apiUrl}/clients/${this.data.client.uuid}/disk-logs`).subscribe({ + next: (response) => { + this.content = response.content || ''; + this.loading = false; + }, + error: (err) => { + this.error = err.status === 404 + ? 'No se encontró el archivo de logs para este cliente.' + : 'Error al obtener los logs de disco.'; + this.loading = false; + } + }); + } + + closeModal(): void { + this.dialogRef.close(); + } +} diff --git a/ogWebconsole/src/locale/cat.json b/ogWebconsole/src/locale/cat.json index da919ca..a69d3f6 100644 --- a/ogWebconsole/src/locale/cat.json +++ b/ogWebconsole/src/locale/cat.json @@ -231,6 +231,7 @@ "clientListExecuteScript": "Llistat de clients on s'executarà l'script seleccionat", "clientListPartition": "Llistat de clients on es realitzarà el particionat", "clientLogs": "Registres de client", + "diskLogs": "Registres de disc", "clientMacOS": "Client MacOS", "clientOff": "Client apagat", "clientOgLive": "Client OGLive", diff --git a/ogWebconsole/src/locale/en.json b/ogWebconsole/src/locale/en.json index 1245fae..3857c4a 100644 --- a/ogWebconsole/src/locale/en.json +++ b/ogWebconsole/src/locale/en.json @@ -231,6 +231,7 @@ "clientListExecuteScript": "List of clients where the selected script will be executed", "clientListPartition": "List of clients where partitioning will be performed", "clientLogs": "Client Logs", + "diskLogs": "Disk Logs", "clientMacOS": "MacOS client", "clientOff": "Client off", "clientOgLive": "OGLive client", diff --git a/ogWebconsole/src/locale/es.json b/ogWebconsole/src/locale/es.json index 7d23dc5..c1dce8f 100644 --- a/ogWebconsole/src/locale/es.json +++ b/ogWebconsole/src/locale/es.json @@ -231,6 +231,7 @@ "clientListExecuteScript": "Listado de clientes donde se ejecutara el script seleccionado", "clientListPartition": "Listado de clientes donde se realizará el particionado", "clientLogs": "Logs de cliente", + "diskLogs": "Logs de disco", "clientMacOS": "Cliente MacOS", "clientOff": "Cliente apagado", "clientOgLive": "Cliente OGLive",