oggui/ogWebconsole/src/app/components/global-status/status-tab/status-tab.component.ts

61 lines
1.6 KiB
TypeScript

import { Component, Input } from '@angular/core';
@Component({
selector: 'app-status-tab',
templateUrl: './status-tab.component.html',
styleUrl: './status-tab.component.css'
})
export class StatusTabComponent {
@Input() loading: boolean = false;
@Input() diskUsage: any = {};
@Input() servicesStatus: any = {};
@Input() installedOgLives: any[] = [];
@Input() subnets: any[] = [];
@Input() diskUsageChartData: any[] = [];
@Input() showLabels: boolean = true;
@Input() isDoughnut: boolean = true;
@Input() colorScheme: any = {
domain: ['#df200d', '#26a700']
};
@Input() view: [number, number] = [400, 220];
@Input() isDhcp: boolean = false;
@Input() processesStatus: any = {};
@Input() ramUsage: any = {};
@Input() cpuUsage: any = {};
@Input() ramUsageChartData: any[] = [];
@Input() isRepository: boolean = false;
getServices(): { name: string, status: string }[] {
if (!this.servicesStatus) {
return [];
}
const services = Object.keys(this.servicesStatus).map(key => ({
name: key,
status: this.servicesStatus[key]
}))
return services;
}
getProcesses(): { name: string, status: string }[] {
if (!this.processesStatus) {
return [];
}
return Object.keys(this.processesStatus).map(key => ({
name: key,
status: this.processesStatus[key]
}));
}
formatBytes(bytes: number): string {
if (bytes >= 1e9) {
return (bytes / 1e9).toFixed(2) + ' GB';
} else if (bytes >= 1e6) {
return (bytes / 1e6).toFixed(2) + ' MB';
} else if (bytes >= 1e3) {
return (bytes / 1e3).toFixed(2) + ' KB';
} else {
return bytes + ' B';
}
}
}