refs #1931 Enhance ClientDetailsComponent layout and styling: increase dialog width, adjust chart dimensions, and improve disk layout for better data presentation
testing/ogGui-multibranch/pipeline/head This commit looks good Details

pull/22/head
Lucas Lara García 2025-04-23 14:56:17 +02:00
parent f016c66d55
commit 256b3ba788
4 changed files with 52 additions and 41 deletions

View File

@ -611,7 +611,7 @@ export class GroupsComponent implements OnInit, OnDestroy {
onShowClientDetail(event: MouseEvent, client: Client): void {
event.stopPropagation();
this.dialog.open(ClientDetailsComponent, {
width: '900px',
width: '1200px',
data: { clientData: client },
})
}

View File

@ -54,22 +54,32 @@
gap: 32px;
}
.disk-layout {
display: flex;
flex-direction: row;
gap: 32px;
flex-wrap: wrap;
}
.table-container {
flex: 1 1 500px;
overflow-x: auto;
border-radius: 8px;
background: #fff;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
.mat-elevation-z8 {
width: 100%;
border-radius: 8px;
}
.charts-container {
display: flex;
flex-wrap: wrap;
gap: 24px;
flex: 1 1 300px;
justify-content: flex-start;
}
.mat-elevation-z8 {
width: 100%;
border-radius: 8px;
}
.charts-container.single-disk {
@ -82,7 +92,8 @@
}
.disk-usage {
flex: 1 1 300px;
flex: 1 1 260px;
min-width: 240px;
padding: 16px;
background: #f9f9f9;
border-radius: 12px;
@ -91,6 +102,6 @@
.chart {
width: 100%;
height: 200px;
height: 160px;
margin-bottom: 12px;
}

View File

@ -28,38 +28,39 @@
</div>
<div class="disk-container">
<div class="table-container">
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<ng-container *ngFor="let column of columns" [matColumnDef]="column.columnDef">
<th mat-header-cell *matHeaderCellDef> {{ column.header }} </th>
<td mat-cell *matCellDef="let image">
<ng-container *ngIf="column.columnDef !== 'size'">
{{ column.cell(image) }}
</ng-container>
<ng-container *ngIf="column.columnDef === 'size'">
<mat-chip color="primary">
{{ (image.size / 1024).toFixed(2) }} GB
</mat-chip>
</ng-container>
</td>
<div class="disk-layout">
<div class="table-container">
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<ng-container *ngFor="let column of columns" [matColumnDef]="column.columnDef">
<th mat-header-cell *matHeaderCellDef> {{ column.header }} </th>
<td mat-cell *matCellDef="let image">
<ng-container *ngIf="column.columnDef !== 'size'">
{{ column.cell(image) }}
</ng-container>
<ng-container *ngIf="column.columnDef === 'size'">
<mat-chip color="primary">
{{ (image.size / 1024).toFixed(2) }} GB
</mat-chip>
</ng-container>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</div>
<div class="charts-container" [ngClass]="{'single-disk': chartDisk.length === 1}">
<ng-container *ngIf="diskUsageData && diskUsageData.length > 0">
<div *ngFor="let disk of chartDisk" class="disk-usage">
<ngx-charts-pie-chart class="chart" [view]="view" [results]="disk.chartData" [doughnut]="true">
</ngx-charts-pie-chart>
<h3>Disco {{ disk.diskNumber }}</h3>
<p>Usado: {{ (disk.used).toFixed(2) }} GB ({{ disk.percentage }}%)</p>
<p>Total: {{ disk.total }} GB</p>
</div>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</div>
</div>
<div class="charts-container" [ngClass]="{'single-disk': chartDisk.length === 1}">
<ng-container *ngIf="diskUsageData && diskUsageData.length > 0">
<div *ngFor="let disk of chartDisk" class="disk-usage">
<ngx-charts-pie-chart class="chart" [view]="view" [results]="disk.chartData" [doughnut]="true">
</ngx-charts-pie-chart>
<h3>Disco {{ disk.diskNumber }}</h3>
<p>Usado: {{ (disk.used).toFixed(2) }} GB ({{ disk.percentage }}%)</p>
<p>Total: {{ disk.total }} GB</p>
</div>
</ng-container>
</div>
</div>
</div>
</mat-dialog-content>

View File

@ -35,7 +35,7 @@ export class ClientDetailsComponent {
partitions: any[] = [];
commands: any[] = [];
chartDisk: any[] = [];
view: [number, number] = [300, 200];
view: [number, number] = [260, 160];
showLegend: boolean = true;
arrayCommands: any[] = [
@ -115,8 +115,7 @@ export class ClientDetailsComponent {
console.error('No se recibieron datos del cliente.');
}
}
loadClient = (uuid: string) => {
this.http.get<any>(`${this.baseUrl}${uuid}`).subscribe({
next: data => {