1 import { Component, ViewChild } from '@angular/core';
3 import { I18n } from '@ngx-translate/i18n-polyfill';
4 import { BsModalRef } from 'ngx-bootstrap/modal';
5 import { forkJoin as observableForkJoin } from 'rxjs';
7 import { ConfigOptionComponent } from '../../../../shared/components/config-option/config-option.component';
8 import { ActionLabelsI18n } from '../../../../shared/constants/app.constants';
9 import { NotificationType } from '../../../../shared/enum/notification-type.enum';
10 import { CdFormGroup } from '../../../../shared/forms/cd-form-group';
11 import { NotificationService } from '../../../../shared/services/notification.service';
12 import { OsdPgScrubModalOptions } from './osd-pg-scrub-modal.options';
15 selector: 'cd-osd-pg-scrub-modal',
16 templateUrl: './osd-pg-scrub-modal.component.html',
17 styleUrls: ['./osd-pg-scrub-modal.component.scss']
19 export class OsdPgScrubModalComponent {
20 osdPgScrubForm: CdFormGroup;
24 @ViewChild('basicOptionsValues')
25 basicOptionsValues: ConfigOptionComponent;
26 basicOptions: Array<string> = OsdPgScrubModalOptions.basicOptions;
28 @ViewChild('advancedOptionsValues')
29 advancedOptionsValues: ConfigOptionComponent;
30 advancedOptions: Array<string> = OsdPgScrubModalOptions.advancedOptions;
32 advancedEnabled = false;
35 public bsModalRef: BsModalRef,
36 private notificationService: NotificationService,
38 public actionLabels: ActionLabelsI18n
40 this.osdPgScrubForm = new CdFormGroup({});
41 this.resource = this.i18n('PG scrub options');
42 this.action = this.actionLabels.EDIT;
46 const observables = [this.basicOptionsValues.saveValues()];
48 if (this.advancedOptionsValues) {
49 observables.push(this.advancedOptionsValues.saveValues());
52 observableForkJoin(observables).subscribe(
54 this.notificationService.show(
55 NotificationType.success,
56 this.i18n('Updated PG scrub options')
58 this.bsModalRef.hide();
61 this.bsModalRef.hide();