setupActions()

in src/SfxWeb/src/app/views/service/backup/backup.component.ts [55:122]


  setupActions() {
    if (!this.actions) {
      this.actions = new ActionCollection(this.telemetry);
      this.actions.add(new IsolatedAction(
        this.data.dialog,
        'enableServiceBackup',
        'Enable/Update Service Backup',
        'Enabling Service Backup',
        {
            enable: (backupName: string) => this.data.restClient.enableServiceBackup(this.service, backupName).pipe(mergeMap(() => {
                return this.service.serviceBackupConfigurationInfoCollection.refresh();
            })),
            data: this
        },
        PartitionEnableBackUpComponent,
        () => true,
    ));

      this.actions.add(new IsolatedAction(
        this.data.dialog,
        'disableApplicationBackup',
        'Disable Service Backup',
        'Disabling Service Backup',
        {
            enable: (cleanBackup: boolean) => this.data.restClient.disableServiceBackup(this.service, cleanBackup).pipe(mergeMap(() => {
              return this.service.serviceBackupConfigurationInfoCollection.refresh();
             })),
            data: this
        },
        PartitionDisableBackUpComponent,
        () => this.service.serviceBackupConfigurationInfoCollection.collection.length && this.service.serviceBackupConfigurationInfoCollection.collection[0].raw &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.Kind === 'Service' &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.PolicyInheritedFrom === 'Service',
    ));

      this.actions.add(new ActionWithConfirmationDialog(
        this.data.dialog,
        'suspendServiceBackup',
        'Suspend Service Backup',
        'Suspending...',
        () => this.data.restClient.suspendServiceBackup(this.service.id).pipe(map(() => {
            return this.service.serviceBackupConfigurationInfoCollection.refresh();
        })),
        () => this.service.serviceBackupConfigurationInfoCollection.collection.length && this.service.serviceBackupConfigurationInfoCollection.collection[0].raw &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.Kind === 'Service' &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.PolicyInheritedFrom === 'Service' &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.SuspensionInfo.IsSuspended === false,
        'Confirm Service Backup Suspension',
        `Suspend Service backup for ${this.service.name} ?`,
        this.service.name));

      this.actions.add(new ActionWithConfirmationDialog(
        this.data.dialog,
        'resumeServiceBackup',
        'Resume Service Backup',
        'Resuming...',
        () => this.data.restClient.resumeApplicationBackup(this.service.id).pipe(map(() => {
            return this.service.serviceBackupConfigurationInfoCollection.refresh();
        })),
        () => this.service.serviceBackupConfigurationInfoCollection.collection.length && this.service.serviceBackupConfigurationInfoCollection.collection[0].raw &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.Kind === 'Service' &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.PolicyInheritedFrom === 'Service' &&
              this.service.serviceBackupConfigurationInfoCollection.collection[0].raw.SuspensionInfo.IsSuspended === true,
        'Confirm Service Backup Resumption',
        `Resume Service backup for ${this.service.name} ?`,
        this.service.name));
    }
  }