];
this.summaryService.get().subscribe((resp: any) => {
+ if (!resp) {
+ return;
+ }
this.loadImages(resp.executing_tasks);
this.summaryDataSubscription = this.summaryService.summaryData$.subscribe((data: any) => {
this.loadImages(data.executing_tasks);
ngOnInit() {
const subs = this.summaryService.summaryData$.subscribe((summary: any) => {
+ if (!summary) {
+ return;
+ }
const releaseName = this.cephReleaseNamePipe.transform(summary.version);
this.docsUrl = `http://docs.ceph.com/docs/${releaseName}/mgr/dashboard/`;
subs.unsubscribe();
ngOnInit() {
this.summaryService.summaryData$.subscribe((data: any) => {
+ if (!data) {
+ return;
+ }
this.summaryData = data;
});
}
ngOnInit() {
this.summaryService.summaryData$.subscribe((data: any) => {
+ if (!data) {
+ return;
+ }
this._handleTasks(data.executing_tasks, data.finished_tasks);
this._setIcon(data.executing_tasks.length);
});
import { HttpClient } from '@angular/common/http';
import { Injectable, NgZone } from '@angular/core';
-import { Subject } from 'rxjs';
+import { BehaviorSubject } from 'rxjs';
import { AuthStorageService } from './auth-storage.service';
import { ServicesModule } from './services.module';
})
export class SummaryService {
// Observable sources
- private summaryDataSource = new Subject();
+ private summaryDataSource = new BehaviorSubject(null);
// Observable streams
summaryData$ = this.summaryDataSource.asObservable();
constructor(summaryService: SummaryService) {
summaryService.summaryData$.subscribe((data: any) => {
+ if (!data) {
+ return;
+ }
const executingTasks = data.executing_tasks;
const finishedTasks = data.finished_tasks;
const newSubscriptions: Array<TaskSubscription> = [];