]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
8ba67c5312f6fb03006c05e4c06d4839e860fcbb
[ceph.git] /
1 <cds-modal size="md"
2            [open]="open"
3            (overlaySelected)="closeModal()">
4
5   <cds-modal-header (closeSelect)="closeModal()">
6     <h3 cdsModalHeaderHeading
7         i18n>Import Bootstrap Token</h3>
8   </cds-modal-header>
9
10   <section cdsModalContent>
11     <form name="importBootstrapForm"
12           class="form"
13           #formDir="ngForm"
14           [formGroup]="importBootstrapForm"
15           novalidate>
16       <p>
17         <ng-container i18n>To import a bootstrap token which was created
18         by a peer site cluster, provide the local site's name, select
19         which pools will have mirroring enabled, provide the generated
20         token, and click&nbsp;<kbd>Import</kbd>.</ng-container>
21       </p>
22
23       <div class="form-item">
24         <cds-text-label for="siteName"
25                         i18n
26                         cdRequiredField="Site Name"
27                         [invalid]="!importBootstrapForm.controls['siteName'].valid && (importBootstrapForm.controls['siteName'].dirty || importBootstrapForm.controls['siteName'].touched)"
28                         [invalidText]="siteNameError"
29                         i18n-invalidText>Site Name
30           <input cdsText
31                  placeholder="Name..."
32                  i18n-placeholder
33                  id="siteName"
34                  name="siteName"
35                  formControlName="siteName"
36                  [invalid]="importBootstrapForm.showError('siteName', formDir, 'required')"
37                  autofocus>
38         </cds-text-label>
39         <ng-template #siteNameError>
40           <span *ngIf="importBootstrapForm.showError('siteName', formDir, 'required')"
41                 class="invalid-feedback"
42                 i18n>This field is required.</span>
43         </ng-template>
44       </div>
45
46       <div class="form-item">
47         <cds-select label="Direction"
48                     for="direction"
49                     name="direction"
50                     id="direction"
51                     formControlName="direction">
52           <option *ngFor="let direction of directions"
53                   [value]="direction.key">{{ direction.desc }}</option>
54         </cds-select>
55       </div>
56
57       <div class="form-item"
58            formGroupName="pools">
59         <fieldset>
60           <label class="cds--label"
61                  for="pools"
62                  i18n>Pools</label>
63           <ng-container *ngFor="let pool of pools">
64             <cds-checkbox i18n-label
65                           [id]="pool.name"
66                           [name]="pool.name"
67                           [formControlName]="pool.name">
68               {{ pool.name }}
69             </cds-checkbox>
70           </ng-container>
71         </fieldset>
72         <span *ngIf="importBootstrapForm.showError('pools', formDir, 'requirePool')"
73               class="invalid-feedback"
74               i18n>At least one pool is required.</span>
75       </div>
76
77       <div class="form-item">
78         <cds-textarea-label for="token"
79                             [invalid]="importBootstrapForm.controls['token'].invalid && (importBootstrapForm.controls['token'].dirty || importBootstrapForm.controls['token'].touched)"
80                             [invalidText]="tokenError"
81                             cdRequiredField="Token"
82                             i18n>Token
83           <textarea cdsTextArea
84                     placeholder="Generated token..."
85                     i18n-placeholder
86                     id="token"
87                     formControlName="token"
88                     cols="200"
89                     rows="5"
90                     [invalid]="importBootstrapForm.controls['token'].invalid && (importBootstrapForm.controls['token'].dirty || importBootstrapForm.controls['token'].touched)">
91           </textarea>
92         </cds-textarea-label>
93         <ng-template #tokenError>
94           <span *ngIf="importBootstrapForm.showError('token', formDir, 'required')"
95                 class="invalid-feedback"
96                 i18n>This field is required.</span>
97           <span *ngIf="importBootstrapForm.showError('token', formDir, 'invalidToken')"
98                 class="invalid-feedback"
99                 i18n>The token is invalid.</span>
100         </ng-template>
101       </div>
102     </form>
103   </section>
104
105   <cd-form-button-panel (submitActionEvent)="import()"
106                         [form]="importBootstrapForm"
107                         [submitText]="actionLabels.SUBMIT"
108                         [modalForm]="true"></cd-form-button-panel>
109 </cds-modal>