]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
e7e256bd39351db6ffd9d01c7747c3c304bc1cff
[ceph.git] /
1 import { Component, OnInit } from '@angular/core';
2 import { FormControl } from '@angular/forms';
3
4 import { BsModalRef } from 'ngx-bootstrap/modal';
5
6 import { RbdMirroringService } from '../../../../shared/api/rbd-mirroring.service';
7 import { CdFormGroup } from '../../../../shared/forms/cd-form-group';
8 import { FinishedTask } from '../../../../shared/models/finished-task';
9 import { TaskWrapperService } from '../../../../shared/services/task-wrapper.service';
10
11 @Component({
12   selector: 'cd-edit-site-mode-modal',
13   templateUrl: './edit-site-name-modal.component.html',
14   styleUrls: ['./edit-site-name-modal.component.scss']
15 })
16 export class EditSiteNameModalComponent implements OnInit {
17   siteName: string;
18
19   editSiteNameForm: CdFormGroup;
20
21   constructor(
22     public modalRef: BsModalRef,
23     private rbdMirroringService: RbdMirroringService,
24     private taskWrapper: TaskWrapperService
25   ) {
26     this.createForm();
27   }
28
29   createForm() {
30     this.editSiteNameForm = new CdFormGroup({
31       siteName: new FormControl('', {})
32     });
33   }
34
35   ngOnInit() {
36     this.editSiteNameForm.get('siteName').setValue(this.siteName);
37     this.rbdMirroringService.getSiteName().subscribe((response: any) => {
38       this.editSiteNameForm.get('siteName').setValue(response.site_name);
39     });
40   }
41
42   update() {
43     const action = this.taskWrapper.wrapTaskAroundCall({
44       task: new FinishedTask('rbd/mirroring/site_name/edit', {}),
45       call: this.rbdMirroringService.setSiteName(this.editSiteNameForm.getValue('siteName'))
46     });
47
48     action.subscribe(
49       undefined,
50       () => this.editSiteNameForm.setErrors({ cdSubmitButton: true }),
51       () => {
52         this.rbdMirroringService.refresh();
53         this.modalRef.hide();
54       }
55     );
56   }
57 }