Merge branch 'develop' of ssh://ognproject.evlt.uma.es:21987/opengnsys/oggui into develop

pull/18/head
Manuel Aranda Rosales 2025-03-25 15:31:13 +01:00
commit d430091d54
2 changed files with 20 additions and 13 deletions

View File

@ -55,7 +55,7 @@
<mat-tab label="Repositorios">
<mat-tab-group>
<mat-tab *ngFor="let repository of repositories" [label]="repository.name">
<div *ngIf="!loading && !errorRepositories && repositoryStatuses[repository.uuid]">
<div *ngIf="!loading && !errorRepositories[repository.uuid] && repositoryStatuses[repository.uuid]">
<app-status-tab
[loading]="loading"
[diskUsage]="repositoryStatuses[repository.uuid].disk"
@ -79,7 +79,7 @@
[isRepository]="true">
</app-status-tab>
</div>
<mat-card *ngIf="!loading && errorRepositories" class="error-card">
<mat-card *ngIf="!loading && errorRepositories[repository.uuid]" class="error-card">
<mat-card-content>
<p>{{ 'errorLoadingData' | translate }}</p>
</mat-card-content>

View File

@ -1,7 +1,6 @@
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { ConfigService } from '@services/config.service';
import { ToastrService } from 'ngx-toastr';
import { MatTabChangeEvent } from '@angular/material/tabs';
@Component({
@ -14,7 +13,7 @@ export class GlobalStatusComponent implements OnInit {
loading: boolean = false;
errorOgBoot: boolean = false;
errorDhcp: boolean = false;
errorRepositories: boolean = false;
errorRepositories: { [key: string]: boolean } = {};
installedOgLives: any[] = [];
subnets: any[] = [];
showLabels: boolean = true;
@ -41,8 +40,7 @@ export class GlobalStatusComponent implements OnInit {
constructor(
private configService: ConfigService,
private http: HttpClient,
private toastService: ToastrService
private http: HttpClient
) {
this.baseUrl = this.configService.apiUrl;
this.ogBootApiUrl = `${this.baseUrl}/og-boot/status`;
@ -69,9 +67,9 @@ export class GlobalStatusComponent implements OnInit {
diskUsage.available = data.message.disk_usage.available;
diskUsage.total = data.message.disk_usage.total;
diskUsage.percentage = data.message.disk_usage.percentage;
Object.assign(servicesStatus, data.message.services_status);
if (isDhcp) {
this.subnets.length = 0;
if (data.message.subnets) {
@ -83,13 +81,13 @@ export class GlobalStatusComponent implements OnInit {
installedOgLives.push(...data.message.installed_oglives);
}
}
diskUsageChartData.length = 0;
diskUsageChartData.push(
{ name: 'Usado', value: parseFloat(diskUsage.used) },
{ name: 'Disponible', value: parseFloat(diskUsage.available) }
);
this.loading = false;
clearTimeout(timeoutId);
},
@ -104,10 +102,12 @@ export class GlobalStatusComponent implements OnInit {
loadRepositories(): void {
this.loading = true;
this.errorRepositories = false;
this.errorRepositories = {};
const timeoutId = setTimeout(() => {
this.loading = false;
this.errorRepositories = true;
this.repositories.forEach(repository => {
this.errorRepositories[repository.uuid] = true;
});
}, 5000);
this.http.get<any>(`${this.repositoriesUrl}?page=1&itemsPerPage=10`).subscribe(
data => {
@ -120,13 +120,20 @@ export class GlobalStatusComponent implements OnInit {
this.loading = false;
clearTimeout(timeoutId);
}
if (errorOccurred) {
this.errorRepositories[repository.uuid] = true;
} else {
this.errorRepositories[repository.uuid] = false;
}
});
});
},
error => {
console.error('Error fetching repositories', error);
this.loading = false;
this.errorRepositories = true;
this.repositories.forEach(repository => {
this.errorRepositories[repository.uuid] = true;
});
clearTimeout(timeoutId);
}
);