]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/blob
108e25a5a646bd9fa62ea48ddb3d539d705120b1
[ceph-ci.git] /
1 <cds-modal size="md"
2            [open]="open"
3            [hasScrollingContent]="true"
4            (overlaySelected)="closeModal()">
5   <cds-modal-header (closeSelect)="closeModal()">
6     <h3 cdsModalHeaderHeading
7         i18n>{{ action | titlecase }} {{ resource | upperFirst }}</h3>
8   </cds-modal-header>
9   <ng-container *cdFormLoading="loading">
10     <form name="domainSettingsForm"
11           #formDir="ngForm"
12           [formGroup]="domainSettingsForm"
13           novalidate>
14       <div cdsModalContent>
15         <div class="form-item">
16           <cds-text-label
17             label="realm"
18             [invalid]="
19               !domainSettingsForm.controls.realm.valid && domainSettingsForm.controls.realm.dirty
20             "
21             [invalidText]="realmNameError"
22             i18n
23             >Realm Name
24             <input
25               cdsText
26               type="text"
27               formControlName="realm"
28               autofocus
29             />
30           </cds-text-label>
31           <ng-template #realmNameError>
32             <span
33               *ngIf="domainSettingsForm.showError('realm', formDir, 'required')"
34               class="invalid-feedback"
35             >
36               <ng-container i18n> This field is required. </ng-container>
37             </span>
38           </ng-template>
39         </div>
40
41         <div
42           *ngIf="joinAuths$ | async as joinAuths"
43           class="form-item">
44           <ng-container
45             formArrayName="join_sources"
46             *ngFor="let _ of join_sources.controls; index as i"
47           >
48             <ng-container [formGroupName]="i">
49               <div
50                 cdsRow
51                 class="form-item form-item-append">
52                 <div
53                   cdsCol
54                   [columnNumbers]="{ lg: 14 }"
55                 >
56                   <cds-select
57                     label="Active Directory access resources"
58                     i18n-label
59                     formControlName="ref"
60                     [invalid]="domainSettingsForm.controls?.join_sources.controls[i].invalid && domainSettingsForm.controls?.join_sources.controls[i].controls.ref.dirty"
61                     [invalidText]="joinSourceError"
62                   >
63                     <option
64                       [value]="null"
65                       i18n
66                     >-- List of AD access resources --
67                     </option>
68                     <option *ngFor="let jA of joinAuths"
69                             [value]="jA.auth_id">{{ jA.auth_id }}</option>
70                   </cds-select>
71                   <ng-template #joinSourceError>
72                     <span
73                       class="invalid-feedback"
74                     >
75                       <ng-container i18n> This field is required. </ng-container>
76                     </span>
77                   </ng-template>
78                 </div>
79                 <div cdsCol
80                      *ngIf="i > 0"
81                      [columnNumbers]="{ lg: 1 }"
82                      class="item-action-btn spacing">
83                   <cds-icon-button kind="danger"
84                                    size="sm"
85                                    (click)="removeJoinSource(i)">
86                     <svg cdsIcon="trash-can"
87                          size="32"
88                          class="cds--btn__icon"></svg>
89                   </cds-icon-button>
90                 </div>
91               </div>
92             </ng-container>
93           </ng-container>
94           <div class="form-item">
95             <button cdsButton="tertiary"
96                     type="button"
97                     (click)="addJoinSource()"
98                     i18n>
99               Add AD access resource
100               <svg cdsIcon="add"
101                    size="32"
102                    class="cds--btn__icon"
103                    icon></svg>
104             </button>
105             <button cdsButton="tertiary"
106                     type="button"
107                     (click)="navigateCreateJoinSource()"
108                     i18n>
109               Create AD access resource
110               <svg
111                 cdsIcon="launch"
112                 size="16"
113                 class="cds--btn__icon"></svg>
114             </button>
115           </div>
116         </div>
117       </div>
118
119         <!-- Join Source -->
120
121       <cd-form-button-panel
122         (submitActionEvent)="submit()"
123         [form]="domainSettingsForm"
124         [submitText]="(action | titlecase) + ' ' + (resource | upperFirst)"
125         [modalForm]="true"
126       >
127       </cd-form-button-panel>
128     </form>
129   </ng-container>
130 </cds-modal>