From 106a3ed6bfc6f23fc75603be5badda4077ee4739 Mon Sep 17 00:00:00 2001
From: Oleksandr Karpov <Karpov4you@gmail.com>
Date: Tue, 12 Mar 2024 12:28:37 +0200
Subject: [PATCH] NAS-127794: Dashboard - Backup Tasks - Infinite loading on
 m40

---
 .../widget-backup/widget-backup.component.ts        | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/app/pages/dashboard/components/widget-backup/widget-backup.component.ts b/src/app/pages/dashboard/components/widget-backup/widget-backup.component.ts
index 5635834c1f..9ff3c42d6a 100644
--- a/src/app/pages/dashboard/components/widget-backup/widget-backup.component.ts
+++ b/src/app/pages/dashboard/components/widget-backup/widget-backup.component.ts
@@ -5,11 +5,16 @@ import { MediaObserver } from '@angular/flex-layout';
 import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
 import { TranslateService } from '@ngx-translate/core';
 import { differenceInDays } from 'date-fns';
-import { filter, forkJoin } from 'rxjs';
+import {
+  catchError, filter, forkJoin, of,
+} from 'rxjs';
 import { Direction } from 'app/enums/direction.enum';
 import { JobState } from 'app/enums/job-state.enum';
 import { ScreenType } from 'app/enums/screen-type.enum';
 import { ApiTimestamp } from 'app/interfaces/api-date.interface';
+import { CloudSyncTask } from 'app/interfaces/cloud-sync-task.interface';
+import { ReplicationTask } from 'app/interfaces/replication-task.interface';
+import { RsyncTask } from 'app/interfaces/rsync-task.interface';
 import { WidgetComponent } from 'app/pages/dashboard/components/widget/widget.component';
 import { CloudsyncWizardComponent } from 'app/pages/data-protection/cloudsync/cloudsync-wizard/cloudsync-wizard.component';
 import { ReplicationWizardComponent } from 'app/pages/data-protection/replication/replication-wizard/replication-wizard.component';
@@ -123,9 +128,9 @@ export class WidgetBackupComponent extends WidgetComponent implements OnInit {
   getBackups(): void {
     this.isLoading = true;
     forkJoin([
-      this.ws.call('replication.query'),
-      this.ws.call('rsynctask.query'),
-      this.ws.call('cloudsync.query'),
+      this.ws.call('replication.query').pipe(catchError(() => of([] as ReplicationTask[]))),
+      this.ws.call('rsynctask.query').pipe(catchError(() => of([] as RsyncTask[]))),
+      this.ws.call('cloudsync.query').pipe(catchError(() => of([] as CloudSyncTask[]))),
     ]).pipe(untilDestroyed(this)).subscribe(([replicationTasks, rsyncTasks, cloudSyncTasks]) => {
       this.isLoading = false;
       this.backups = [
-- 
GitLab