]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
f030e17dd94e66775ad61379c9c4b7e16c7c60f8
[ceph.git] /
1 <cd-modal [pageURL]="pageURL"
2           [modalRef]="activeModal">
3   <span class="modal-title"
4         i18n>{{ action | titlecase }} {{ resource | upperFirst }}</span>
5   <ng-container class="modal-content">
6     <form name="nsForm"
7           #formDir="ngForm"
8           [formGroup]="nsForm"
9           novalidate>
10       <div class="modal-body">
11         <!-- Block Pool -->
12         <div class="form-group row">
13           <label class="cd-col-form-label"
14                  for="pool">
15             <span [ngClass]="{'required': !edit}"
16                   i18n>Pool</span>
17           </label>
18           <div class="cd-col-form-input">
19             <input *ngIf="edit"
20                    class="form-control"
21                    type="text"
22                    formControlName="pool">
23             <select *ngIf="!edit"
24                     id="pool"
25                     class="form-select"
26                     formControlName="pool">
27               <option *ngIf="rbdPools === null"
28                       [ngValue]="null"
29                       i18n>Loading...</option>
30               <option *ngIf="rbdPools && rbdPools.length === 0"
31                       [ngValue]="null"
32                       i18n>-- No block pools available --</option>
33               <option *ngIf="rbdPools && rbdPools.length > 0"
34                       [ngValue]="null"
35                       i18n>-- Select a pool --</option>
36               <option *ngFor="let pool of rbdPools"
37                       [value]="pool.pool_name">{{ pool.pool_name }}</option>
38             </select>
39             <cd-help-text i18n>
40               An RBD application-enabled pool where the image will be created.
41             </cd-help-text>
42             <span class="invalid-feedback"
43                   *ngIf="nsForm.showError('pool', formDir, 'required')"
44                   i18n>This field is required.</span>
45           </div>
46         </div>
47         <!-- Namespace Count -->
48         <div *ngIf="!edit"
49              class="form-group row">
50           <label class="cd-col-form-label"
51                  for="nsCount">
52             <span [ngClass]="{'required': !edit}"
53                   i18n>Namespace Count</span>
54           </label>
55           <div class="cd-col-form-input">
56             <cds-number
57               formControlName="nsCount"
58               helperText="The number of namespaces to create"
59               i18n-helperText
60               [min]="MIN_NAMESPACE_CREATE"
61               [max]="MAX_NAMESPACE_CREATE"
62               [invalid]="nsForm.showError('nsCount', formDir, 'max') || nsForm.showError('nsCount', formDir, 'min') || nsForm.showError('nsCount', formDir, 'required')"
63               [invalidText]="nsForm.get('nsCount').hasError('required') ? requiredInvalidText: nsCountInvalidText"
64               size="sm"></cds-number>
65           </div>
66         </div>
67         <!-- Image Size -->
68         <div class="form-group row">
69           <label class="cd-col-form-label"
70                  for="image_size">
71             <span [ngClass]="{'required': edit}"
72                   i18n>Image Size</span>
73           </label>
74           <div class="cd-col-form-input">
75             <div class="input-group">
76               <input id="size"
77                      class="form-control"
78                      type="text"
79                      formControlName="image_size">
80               <select id="unit"
81                       class="form-input form-select"
82                       formControlName="unit">
83                 <option *ngFor="let u of units"
84                         [value]="u"
85                         i18n>{{ u }}</option>
86               </select>
87               <span class="invalid-feedback"
88                     *ngIf="nsForm.showError('image_size', formDir, 'pattern')">
89                 <ng-container i18n>Enter a positive integer.</ng-container>
90               </span>
91               <span class="invalid-feedback"
92                     *ngIf="edit && nsForm.showError('image_size', formDir, 'required')">
93                 <ng-container i18n>This field is required</ng-container>
94               </span>
95               <span class="invalid-feedback"
96                     *ngIf="edit && invalidSizeError">
97                 <ng-container i18n>Enter a value above than previous. A block device image can be expanded but not reduced.</ng-container>
98               </span>
99             </div>
100           </div>
101         </div>
102       </div>
103       <div class="modal-footer">
104         <div class="text-right">
105           <cd-form-button-panel (submitActionEvent)="onSubmit()"
106                                 [form]="nsForm"
107                                 [submitText]="(action | titlecase) + ' ' + (resource | upperFirst)"></cd-form-button-panel>
108         </div>
109       </div>
110     </form>
111   </ng-container>
112 </cd-modal>