setUpActions()

in src/SfxWeb/src/app/views/application/backup/backup.component.ts [53:122]


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


      this.actions.add(new IsolatedAction(
        this.data.dialog,
        'enableApplicationBackup',
        'Enable/Update Application Backup',
        'Enabling Application Backup',
        {
            enable: (backupName: string) => this.data.restClient.enableApplicationBackup(this.app, backupName).pipe(mergeMap(() => {
                return this.app.applicationBackupConfigurationInfoCollection.refresh();
            })),
            data: this
        },
        PartitionEnableBackUpComponent,
        () => true,
    ));

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

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

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