attemptSetActions()

in src/SfxWeb/src/app/views/partition/backups/backups.component.ts [144:231]


  attemptSetActions() {
    if (!this.actions) {
      this.actions = new ActionCollection(this.telemetry);

      this.actions.add(new IsolatedAction(
        this.data.dialog,
        'enablePartitionBackup',
        'Enable/Update Partition Backup',
        'Enabling Partition Backup',
        {
          enable: (backupName: string) => this.data.restClient.enablePartitionBackup(this.partition, backupName).pipe(mergeMap(() => {
              return this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.refresh();
          })),
          data: this
        },
        PartitionEnableBackUpComponent,
        () => true
      ));

      this.actions.add(new IsolatedAction(
          this.data.dialog,
          'disablePartitionBackup',
          'Disable Partition Backup',
          'Disabling Partition Backup',
          {
            enable: (cleanBackup: boolean) => this.data.restClient.disablePartitionBackup(this.partition, cleanBackup).pipe(mergeMap(() => {
                return this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.refresh();
            })),
            data: this
          },
          PartitionDisableBackUpComponent,
          () => true
      ));

      this.actions.add(new ActionWithConfirmationDialog(
          this.data.dialog,
          'suspendPartitionBackup',
          'Suspend Partition Backup',
          'Suspending...',
          () => this.data.restClient.suspendPartitionBackup(this.partition.id).pipe(mergeMap(() => {
              return this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.refresh();
          })),
          () => this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.Kind === 'Partition' &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.PolicyInheritedFrom === 'Partition' &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.SuspensionInfo.IsSuspended === false,
          'Confirm Partition Backup Suspension',
          `Suspend partition backup for ${this.partition.name} ?`,
          this.partition.name));

      this.actions.add(new ActionWithConfirmationDialog(
          this.data.dialog,
          'resumePartitionBackup',
          'Resume Partition Backup',
          'Resuming...',
          () => this.data.restClient.resumePartitionBackup(this.partition.id).pipe(mergeMap(() => {
              return this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.refresh();
          })),
          () => this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.Kind === 'Partition' &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.PolicyInheritedFrom === 'Partition' &&
                this.partition.partitionBackupInfo.partitionBackupConfigurationInfo.raw.SuspensionInfo.IsSuspended === true,
          'Confirm Partition Backup Resumption',
          `Resume partition backup for ${this.partition.name} ?`,
          this.partition.name));

      this.actions.add(new IsolatedAction(
          this.data.dialog,
          'triggerPartitionBackup',
          'Trigger Partition Backup',
          'Triggering Partition Backup',
          this.partition,
          PartitionTriggerBackUpComponent,
          () => true
      ));

      this.actions.add(new IsolatedAction(
          this.data.dialog,
          'restorePartitionBackup',
          'Restore Partition Backup',
          'Restoring Partition Backup',
          this.partition,
          PartitionRestoreBackUpComponent,
          () => true
      ));
      }

  }