]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
772cc904da4b02ba6aa2724a51180c8466157ebc
[ceph.git] /
1 <cd-modal [modalRef]="activeModal">
2   <ng-container i18n="form title"
3                 class="modal-title">{{ action | titlecase }} {{ resource | upperFirst }}</ng-container>
4
5   <ng-container class="modal-content"
6                 *cdFormLoading="loading">
7     <form name="subvolumeForm"
8           #formDir="ngForm"
9           [formGroup]="subvolumeForm"
10           novalidate>
11       <div class="modal-body">
12         <div class="form-group row">
13           <label class="cd-col-form-label required"
14                  for="subvolumeName"
15                  i18n>Name</label>
16           <div class="cd-col-form-input">
17             <input class="form-control"
18                    type="text"
19                    placeholder="Subvolume name..."
20                    id="subvolumeName"
21                    name="subvolumeName"
22                    formControlName="subvolumeName"
23                    autofocus>
24             <span class="invalid-feedback"
25                   *ngIf="subvolumeForm.showError('subvolumeName', formDir, 'required')"
26                   i18n>This field is required.</span>
27             <span class="invalid-feedback"
28                   *ngIf="subvolumeForm.showError('subvolumeName', formDir, 'notUnique')"
29                   i18n>The subvolume already exists.</span>
30           </div>
31         </div>
32
33         <!-- Volume name -->
34         <div class="form-group row">
35           <label class="cd-col-form-label"
36                  for="volumeName"
37                  i18n>Volume name</label>
38           <div class="cd-col-form-input">
39             <input class="form-control"
40                    id="volumeName"
41                    name="volumeName"
42                    formControlName="volumeName">
43           </div>
44         </div>
45
46         <!-- Size -->
47         <div class="form-group row">
48           <label class="cd-col-form-label"
49                  for="size"
50                  i18n>Size
51           <cd-helper>The size of the subvolume is specified by setting a quota on it.
52             If left blank or put 0, then quota will be infinite</cd-helper>
53           </label>
54           <div class="cd-col-form-input">
55             <input class="form-control"
56                    type="text"
57                    id="size"
58                    name="size"
59                    formControlName="size"
60                    i18n-placeholder
61                    placeholder="e.g., 10GiB"
62                    defaultUnit="GiB"
63                    cdDimlessBinary>
64             <span *ngIf="subvolumeForm.showError('size', formDir, 'pattern')"
65                   class="invalid-feedback"
66                   i18n>Size must be a number or in a valid format. eg: 5 GiB</span>
67           </div>
68         </div>
69
70         <!-- CephFS Pools -->
71         <div class="form-group row">
72           <label class="cd-col-form-label"
73                  for="pool"
74                  i18n>Pool
75             <cd-helper>By default, the data_pool_layout of the parent directory is selected.</cd-helper>
76           </label>
77           <div class="cd-col-form-input">
78             <select class="form-select"
79                     id="pool"
80                     name="pool"
81                     formControlName="pool">
82               <option *ngFor="let pool of dataPools"
83                       [value]="pool.pool">{{ pool.pool }}</option>
84             </select>
85           </div>
86         </div>
87
88         <!-- UID -->
89         <div class="form-group row">
90           <label class="cd-col-form-label"
91                  for="uid"
92                  i18n>UID</label>
93           <div class="cd-col-form-input">
94             <input class="form-control"
95                    type="number"
96                    placeholder="Subvolume UID..."
97                    id="uid"
98                    name="uid"
99                    formControlName="uid">
100           </div>
101         </div>
102
103         <!-- GID -->
104         <div class="form-group row">
105           <label class="cd-col-form-label"
106                  for="gid"
107                  i18n>GID</label>
108           <div class="cd-col-form-input">
109             <input class="form-control"
110                    type="number"
111                    placeholder="Subvolume GID..."
112                    id="gid"
113                    name="gid"
114                    formControlName="gid">
115           </div>
116         </div>
117
118         <!-- Mode -->
119         <div class="form-group row">
120           <label class="cd-col-form-label"
121                  for="mode"
122                  i18n>Mode
123             <cd-helper>Permissions for the directory. Default mode is 755 which is rwxr-xr-x</cd-helper>
124           </label>
125           <div class="cd-col-form-input">
126             <cd-checked-table-form [data]="scopePermissions"
127                                    [columns]="columns"
128                                    [form]="subvolumeForm"
129                                    inputField="mode"
130                                    [isTableForOctalMode]="true"
131                                    [initialValue]="initialMode"
132                                    [scopes]="scopes"
133                                    [isDisabled]="isEdit"></cd-checked-table-form>
134           </div>
135           </div>
136
137         <!-- Is namespace-isolated -->
138         <div class="form-group row">
139           <div class="cd-col-form-offset">
140             <div class="custom-control custom-checkbox">
141               <input class="custom-control-input"
142                      type="checkbox"
143                      id="isolatedNamespace"
144                      name="isolatedNamespace"
145                      formControlName="isolatedNamespace">
146               <label class="custom-control-label"
147                      for="isolatedNamespace"
148                      i18n>Isolated Namespace
149                 <cd-helper>To create subvolume in a separate RADOS namespace.</cd-helper>
150               </label>
151             </div>
152           </div>
153         </div>
154       </div>
155
156       <div class="modal-footer">
157         <cd-form-button-panel (submitActionEvent)="submit()"
158                               [form]="subvolumeForm"
159                               [submitText]="(action | titlecase) + ' ' + (resource | upperFirst)"></cd-form-button-panel>
160       </div>
161     </form>
162   </ng-container>
163 </cd-modal>