1 <cd-modal [modalRef]="modalRef">
3 class="modal-title">Create Bootstrap Token</ng-container>
5 <ng-container class="modal-content">
6 <form name="createBootstrapForm"
9 [formGroup]="createBootstrapForm"
11 <div class="modal-body">
13 <ng-container i18n>To create a bootstrap token which can be imported
14 by a peer site cluster, provide the local site's name, select
15 which pools will have mirroring enabled, and click
16 <kbd>Generate</kbd>.</ng-container>
19 <div class="form-group">
20 <label class="col-form-label required"
22 i18n>Site Name</label>
23 <input class="form-control"
29 formControlName="siteName"
31 <span *ngIf="createBootstrapForm.showError('siteName', formDir, 'required')"
32 class="invalid-feedback"
33 i18n>This field is required.</span>
36 <div class="form-group"
37 formGroupName="pools">
38 <label class="col-form-label required"
41 <div class="custom-control custom-checkbox"
42 *ngFor="let pool of pools">
43 <input type="checkbox"
44 class="custom-control-input"
46 name="{{ pool.name }}"
47 formControlName="{{ pool.name }}">
48 <label class="custom-control-label"
49 for="{{ pool.name }}">{{ pool.name }}</label>
51 <span *ngIf="createBootstrapForm.showError('pools', formDir, 'requirePool')"
52 class="invalid-feedback"
53 i18n>At least one pool is required.</span>
56 <cd-submit-button class="mb-4 float-right"
58 [form]="createBootstrapForm"
59 (submitAction)="generate()">Generate</cd-submit-button>
61 <div class="form-group">
62 <label class="col-form-label"
64 <span i18n>Token</span>
66 <textarea class="form-control resize-vertical"
67 placeholder="Generated token..."
70 formControlName="token"
74 <button class="btn btn-primary mb-3 float-right"
75 aria-label="Copy to Clipboard"
77 title="Copy to Clipboard"
79 cdCopy2ClipboardButton="token">
80 <ng-container i18n>Copy to Clipboard</ng-container>
84 <div class="modal-footer">
85 <cd-back-button [back]="modalRef.hide"