2 [columnNumbers]="{md: 4}">
3 <ng-container *cdFormLoading="loading">
4 <form name="accountForm"
6 [formGroup]="accountForm"
10 class="form-header">{{ action | titlecase }} {{ resource | upperFirst }}
14 <div class="form-item">
15 <cds-text-label label="Account Name"
17 cdRequiredField="Account Name"
18 [invalid]="!accountForm.controls.account_name.valid && accountForm.controls.account_name.dirty"
19 [invalidText]="accountIdError"
23 placeholder="Enter account name"
26 formControlName="account_name"/>
28 <ng-template #accountIdError>
29 <span *ngIf="accountForm.showError('account_name', formDir, 'required')"
30 class="invalid-feedback">
31 <ng-container i18n>This field is required.</ng-container>
36 <div class="form-item">
37 <cds-text-label label="tenant"
42 placeholder="Enter tenant"
45 formControlName="tenant"/>
50 <div class="form-item">
51 <cds-text-label label="email"
53 [invalid]="!accountForm.controls.email.valid && accountForm.controls.email.dirty"
54 [invalidText]="emailError"
58 placeholder="Enter email"
61 formControlName="email"/>
63 <ng-template #emailError>
64 <span *ngIf="accountForm.showError('email', formDir, 'email')">
65 <ng-container i18n> Please enter a valid email </ng-container>
70 <div class="form-item form-item-append"
73 <!-- Max. bucket mode -->
74 <ng-container *ngTemplateOutlet="selectModeTemplate;context: { formControl: 'max_buckets_mode' }"></ng-container>
78 <span *ngIf="1 == accountForm.get('max_buckets_mode').value">
79 <ng-container *ngTemplateOutlet="accountMaxValueTemplate;context: { formControl: 'max_buckets' }"></ng-container>
84 <div class="form-item form-item-append"
87 <!-- Max. users mode -->
88 <ng-container *ngTemplateOutlet="selectModeTemplate;context: { formControl: 'max_users_mode' }"></ng-container>
92 <span *ngIf="1 == accountForm.get('max_users_mode').value">
93 <ng-container *ngTemplateOutlet="accountMaxValueTemplate;context: { formControl: 'max_users' }"></ng-container>
98 <div class="form-item form-item-append"
101 <!-- Max. roles mode -->
102 <ng-container *ngTemplateOutlet="selectModeTemplate;context: { formControl: 'max_roles_mode' }"></ng-container>
106 <span *ngIf="1 == accountForm.get('max_roles_mode').value">
107 <ng-container *ngTemplateOutlet="accountMaxValueTemplate;context: { formControl: 'max_roles' }"></ng-container>
112 <div class="form-item form-item-append"
115 <!-- Max. group mode -->
116 <ng-container *ngTemplateOutlet="selectModeTemplate;context: { formControl: 'max_group_mode' }"></ng-container>
120 <span *ngIf="1 == accountForm.get('max_group_mode').value">
121 <ng-container *ngTemplateOutlet="accountMaxValueTemplate;context: { formControl: 'max_group' }"></ng-container>
126 <div class="form-item form-item-append"
129 <!-- Max. acess keys mode -->
130 <ng-container *ngTemplateOutlet="selectModeTemplate;context: { formControl: 'max_access_keys_mode' }"></ng-container>
133 <!-- Max acess keys -->
134 <span *ngIf="1 == accountForm.get('max_access_keys_mode').value">
135 <ng-container *ngTemplateOutlet="accountMaxValueTemplate;context: { formControl: 'max_access_keys' }"></ng-container>
140 <!-- Account Quota -->
141 <div class="form-item">
142 <ng-container *ngTemplateOutlet="quotaTemplate;context: { formControl: {
143 enabled: 'account_quota_enabled',
144 unlimitedSize: 'account_quota_max_size_unlimited',
145 maxSize: 'account_quota_max_size',
146 unlimitedObjects: 'account_quota_max_objects_unlimited',
147 maxObjects: 'account_quota_max_objects'
154 <!-- Bucket Quota -->
155 <div class="form-item">
156 <ng-container *ngTemplateOutlet="quotaTemplate;
159 enabled: 'bucket_quota_enabled',
160 unlimitedSize: 'bucket_quota_max_size_unlimited',
161 maxSize: 'bucket_quota_max_size',
162 unlimitedObjects: 'bucket_quota_max_objects_unlimited',
163 maxObjects: 'bucket_quota_max_objects'
169 <cd-form-button-panel (submitActionEvent)="submit()"
171 [submitText]="(action | titlecase) + ' ' + (resource | upperFirst)"
172 wrappingClass="text-right"></cd-form-button-panel>
178 <ng-template #selectModeTemplate
179 [formGroup]="accountForm"
180 let-formControl="formControl">
181 <cds-select [formControlName]="formControl"
184 label="{{formControl.split('_')[1] | upperFirst}} Mode"
185 (change)="onModeChange($event.target.value, formControl)">
186 <option value="-1">Disabled</option>
187 <option value="0">Unlimited</option>
188 <option value="1">Custom</option>
192 <ng-template #accountMaxValueTemplate
193 let-formControl="formControl"
194 [formGroup]="accountForm">
195 <cds-number [id]="formControl"
197 formControlName="{{formControl}}"
198 label="{{formControl.split('_')[0] | upperFirst}}. {{formControl.split('_').length > 2 ? formControl.split('_')[1]+' '+formControl.split('_')[2]: formControl.split('_')[1]}}"
200 [invalid]="!accountForm.controls[formControl].valid && accountForm.controls[formControl].dirty"
201 [invalidText]="maxValError"></cds-number>
202 <ng-template #maxValError>
203 <span *ngIf="accountForm.showError(formControl, formDir, 'required')"
204 i18n>This field is required.</span>
205 <span *ngIf="accountForm.showError(formControl, formDir, 'pattern')"
206 i18n>The entered value must be a number greater than 0</span>
210 <ng-template #quotaTemplate
211 let-quotaType="quotaType"
212 let-formControl="formControl"
213 [formGroup]="accountForm">
214 <fieldset class="cds--fieldset">
215 <legend class="cds--label">{{quotaType | upperFirst}} Quota</legend>
217 <cds-checkbox [formControlName]="formControl.enabled">
220 <!-- Unlimited size -->
221 <cds-checkbox *ngIf="accountForm.controls[formControl.enabled].value"
222 [formControlName]="formControl.unlimitedSize">
225 <!-- Maximum size -->
226 <div class="form-item"
227 *ngIf="accountForm.controls[formControl.enabled].value && !accountForm.getValue(formControl.unlimitedSize)">
228 <cds-text-label [label]="formControl.maxSize"
229 [for]="formControl.maxSize"
230 [invalid]="!accountForm.controls[formControl.maxSize].valid && accountForm.controls[formControl.maxSize].dirty"
231 [invalidText]="quotaSizeError"
235 placeholder="Enter size"
236 [id]="formControl.maxSize"
237 [name]="formControl.maxSize"
238 [formControlName]="formControl.maxSize"
241 <ng-template #quotaSizeError>
242 <span *ngIf="accountForm.showError(formControl.maxSize, formDir, 'required')"
243 i18n>This field is required.</span>
244 <span *ngIf="accountForm.showError(formControl.maxSize, formDir, 'quotaMaxSize')"
245 i18n>The value is not valid.</span>
246 <span *ngIf="accountForm.showError(formControl.maxSize, formDir, 'pattern')"
247 i18n>Size must be a number or in a valid format. eg: 5 GiB</span>
250 <!-- Unlimited objects -->
251 <cds-checkbox *ngIf="accountForm.controls[formControl.enabled].value"
252 [formControlName]="formControl.unlimitedObjects">
255 <!-- Maximum objects -->
256 <div class="form-item"
257 *ngIf="accountForm.controls[formControl.enabled].value && !accountForm.getValue(formControl.unlimitedObjects)">
258 <cds-text-label [label]="formControl.maxObjects"
259 [for]="formControl.maxObjects"
260 [invalid]="!accountForm.controls[formControl.maxObjects].valid && accountForm.controls[formControl.maxObjects].dirty"
261 [invalidText]="quotaObjectError"
265 placeholder="Enter number of objects"
266 [id]="formControl.maxObjects"
267 [name]="formControl.maxObjects"
268 [formControlName]="formControl.maxObjects"/>
270 <ng-template #quotaObjectError>
271 <span *ngIf="accountForm.showError(formControl.maxObjects, formDir, 'required')"
272 i18n>This field is required.</span>
273 <span *ngIf="accountForm.showError(formControl.maxObjects, formDir, 'pattern')"
274 i18n>Please enter a valid number</span>