]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.ts
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / core / navigation / navigation / navigation.component.ts
1 import { Component, OnInit } from '@angular/core';
2
3 import { PrometheusService } from '../../../shared/api/prometheus.service';
4 import { Permissions } from '../../../shared/models/permissions';
5 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
6 import {
7 FeatureTogglesMap$,
8 FeatureTogglesService
9 } from '../../../shared/services/feature-toggles.service';
10 import { SummaryService } from '../../../shared/services/summary.service';
11
12 @Component({
13 selector: 'cd-navigation',
14 templateUrl: './navigation.component.html',
15 styleUrls: ['./navigation.component.scss']
16 })
17 export class NavigationComponent implements OnInit {
18 permissions: Permissions;
19 summaryData: any;
20
21 isCollapsed = true;
22 prometheusConfigured = false;
23 enabledFeature$: FeatureTogglesMap$;
24
25 constructor(
26 private authStorageService: AuthStorageService,
27 private prometheusService: PrometheusService,
28 private summaryService: SummaryService,
29 private featureToggles: FeatureTogglesService
30 ) {
31 this.permissions = this.authStorageService.getPermissions();
32 this.enabledFeature$ = this.featureToggles.get();
33 }
34
35 ngOnInit() {
36 this.summaryService.subscribe((data: any) => {
37 if (!data) {
38 return;
39 }
40 this.summaryData = data;
41 });
42 if (this.permissions.configOpt.read) {
43 this.prometheusService.ifAlertmanagerConfigured(() => (this.prometheusConfigured = true));
44 }
45 }
46
47 blockHealthColor() {
48 if (this.summaryData && this.summaryData.rbd_mirroring) {
49 if (this.summaryData.rbd_mirroring.errors > 0) {
50 return { color: '#d9534f' };
51 } else if (this.summaryData.rbd_mirroring.warnings > 0) {
52 return { color: '#f0ad4e' };
53 }
54 }
55 }
56 }