|  | <div class="uib-modal__content"> | 
|  | <div class="modal-header"> | 
|  | <h2 class="modal-title" id="modal_label"> | 
|  | Generate a Certificate Signing Request (CSR) | 
|  | </h2> | 
|  | <button | 
|  | type="button" | 
|  | class="btn  btn--close" | 
|  | ng-click="$dismiss()" | 
|  | aria-label="close"> | 
|  | <icon file="icon-close.svg" aria-hidden="true"></icon> | 
|  | </button> | 
|  | </div> | 
|  | <form name="addCsrForm" id="addCsrForm" novalidate> | 
|  | <div class="modal-body"> | 
|  | <div class="row"> | 
|  | <fieldset class="column large-8 add-csr__section"> | 
|  | <legend class="content-label">General</legend> | 
|  | <div class="row"> | 
|  | <div class="column large-6"> | 
|  | <label for="certType" class="content-label"> | 
|  | Certificate Type * | 
|  | </label> | 
|  | <select | 
|  | class="add-csr__select" | 
|  | id="certType" | 
|  | name="certType" | 
|  | ng-model="newCSR.certificateCollection" | 
|  | required> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="default" | 
|  | ng-model="selectOption"> | 
|  | Select an option | 
|  | </option> | 
|  | <!-- Do not show CA certificate as an option. | 
|  | Only a certificate authority can generate a CA certificate | 
|  | (known as TrustStore Certificate in Redfish) --> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="type" | 
|  | ng-repeat="type in allCertificateTypes" | 
|  | ng-if="type.Description !== 'TrustStore Certificate'"> | 
|  | {{ type.name }} | 
|  | </option> | 
|  | </select> | 
|  | <div | 
|  | ng-messages="addCsrForm.certType.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.certType.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="countryCode" class="content-label">Country *</label> | 
|  | <select | 
|  | class="add-csr__select" | 
|  | id="countryCode" | 
|  | name="countryCode" | 
|  | ng-model="newCSR.countryCode" | 
|  | required> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="" | 
|  | ng-model="selectOption"> | 
|  | Select an option | 
|  | </option> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="country" | 
|  | ng-repeat="country in countryList"> | 
|  | {{ country.Name }} | 
|  | </option> | 
|  | </select> | 
|  | <div | 
|  | ng-messages="addCsrForm.countryCode.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.countryCode.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="state" class="content-label">State *</label> | 
|  | <input | 
|  | class="add-csr__input" | 
|  | ng-model="newCSR.state" | 
|  | type="text" | 
|  | id="state" | 
|  | name="state" | 
|  | required/> | 
|  | <div | 
|  | ng-messages="addCsrForm.state.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.state.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="city" class="content-label">City *</label> | 
|  | <input | 
|  | class="add-csr__input" | 
|  | id="city" | 
|  | name="city" | 
|  | ng-model="newCSR.city" | 
|  | type="text" | 
|  | required/> | 
|  | <div | 
|  | ng-messages="addCsrForm.city.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.city.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="companyName" class="content-label"> | 
|  | Company Name * | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input" | 
|  | type="text" | 
|  | ng-model="newCSR.organization" | 
|  | id="companyName" | 
|  | name="companyName" | 
|  | required/> | 
|  | <div | 
|  | ng-messages="addCsrForm.companyName.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.companyName.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="companyUnit" class="content-label"> | 
|  | Company Unit * | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input" | 
|  | ng-model="newCSR.companyUnit" | 
|  | name="companyUnit" | 
|  | id="companyUnit" | 
|  | type="text" | 
|  | required/> | 
|  | <div | 
|  | ng-messages="addCsrForm.companyUnit.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.companyUnit.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="commonName" class="content-label"> | 
|  | Common Name * | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input" | 
|  | ng-model="newCSR.commonName" | 
|  | name="commonName" | 
|  | type="text" | 
|  | id="commonName" | 
|  | required/> | 
|  | <div | 
|  | ng-messages="addCsrForm.commonName.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.commonName.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="challengePassword" class="content-label"> | 
|  | Challenge Password | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input-no-validation" | 
|  | id="challengePassword" | 
|  | ng-model="newCSR.challengePassword" | 
|  | type="text"/> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="contactPerson" class="content-label"> | 
|  | Contact Person | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input-no-validation" | 
|  | id="contactPerson" | 
|  | ng-model="newCSR.contactPerson" | 
|  | type="text"/> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label for="emailAddress" class="content-label"> | 
|  | Email Address | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input-no-validation" | 
|  | id="emailAddress" | 
|  | ng-model="newCSR.emailAddress" | 
|  | type="text"/> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <label | 
|  | id="alternate-name-label" | 
|  | for="alternateName" | 
|  | class="content-label"> | 
|  | Alternate Name | 
|  | </label> | 
|  | <input | 
|  | class="add-csr__input-no-validation" | 
|  | ng-model="newCSR.firstAlternativeName" | 
|  | id="alternateName" | 
|  | name="alternativeName" | 
|  | type="text"/> | 
|  | <div | 
|  | class="add-csr__additional-alt-names" | 
|  | ng-repeat="name in names"> | 
|  | <input | 
|  | id="alternate-name-input-{{ $index }}" | 
|  | aria-describedby="alternate-name-label" | 
|  | class="add-csr__input-no-validation" | 
|  | ng-model="name.Value" | 
|  | type="text"/> | 
|  | <button | 
|  | aria-label="Delete alternate name field" | 
|  | aria-controls="alternate-name-input-{{ $index }}" | 
|  | class="btn btn-tertiary add-csr__alt-name-delete-btn" | 
|  | ng-click="deleteOptionalRow($index)" | 
|  | ng-disabled="multiSelected"> | 
|  | <icon aria-hidden="true" file="icon-trashcan.svg"></icon> | 
|  | </button> | 
|  | </div> | 
|  | </div> | 
|  | <div class="column large-6"> | 
|  | <button | 
|  | class="btn btn-tertiary add-csr__alt-name-add-btn" | 
|  | ng-click="addOptionalRow()"> | 
|  | <icon file="icon-plus.svg" aria-hidden="true"></icon> | 
|  | Add another alternate name | 
|  | </button> | 
|  | </div> | 
|  | </div> | 
|  | </fieldset> | 
|  | <fieldset | 
|  | class="column medium-12 large-4 add-csr__section add-csr__section--border"> | 
|  | <legend class="content-label">Private key</legend> | 
|  | <div class="add-csr__container-private-key"> | 
|  | <div class="add-csr__container-private-key"> | 
|  | <label for="keyPairAlgorithm" class="content-label"> | 
|  | Key Pair Algorithm * | 
|  | </label> | 
|  | <select | 
|  | class="add-csr__select" | 
|  | ng-model="newCSR.keyPairAlgorithm" | 
|  | id="keyPairAlgorithm" | 
|  | name="keyPairAlgorithm" | 
|  | required> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="" | 
|  | ng-model="selectOption"> | 
|  | Select an option | 
|  | </option> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="data" | 
|  | ng-repeat="data in keyPairAlgorithm"> | 
|  | {{ data }} | 
|  | </option> | 
|  | </select> | 
|  | <div | 
|  | ng-messages="addCsrForm.keyPairAlgorithm.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.keyPairAlgorithm.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | <div ng-if="newCSR.keyPairAlgorithm == 'EC'"> | 
|  | <div class="large-12"> | 
|  | <label for="keyCurveId" class="content-label"> | 
|  | Key Curve ID | 
|  | </label> | 
|  | <select | 
|  | class="add-csr__select" | 
|  | ng-model="newCSR.keyCurveId" | 
|  | id="keyCurveId" | 
|  | name="keyCurveId" | 
|  | required> | 
|  | <option class="courier-bold" ng-value="">None</option> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="data" | 
|  | ng-repeat="data in keyCurveId"> | 
|  | {{ data }} | 
|  | </option> | 
|  | </select> | 
|  | <div | 
|  | ng-messages="addCsrForm.keyCurveId.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.keyCurveId.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  | <div ng-if="newCSR.keyPairAlgorithm =='RSA'"> | 
|  | <div class="large-12"> | 
|  | <label for="keyBitLength" class="content-label"> | 
|  | Key Bit Length * | 
|  | </label> | 
|  | <select | 
|  | class="add-csr__select" | 
|  | ng-model="newCSR.keyBitLength" | 
|  | id="keyBitLength" | 
|  | name="keyBitLength" | 
|  | required> | 
|  | <option class="courier-bold" ng-value=""> | 
|  | Select an option | 
|  | </option> | 
|  | <option | 
|  | class="courier-bold" | 
|  | ng-value="data" | 
|  | ng-repeat="data in keyBitLength"> | 
|  | {{ data }} | 
|  | </option> | 
|  | </select> | 
|  | <div | 
|  | ng-messages="addCsrForm.keyBitLength.$error" | 
|  | class="form-error" | 
|  | ng-class="{'visible' : addCsrForm.keyBitLength.$touched}"> | 
|  | <p ng-message="required">Field is required</p> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  | </fieldset> | 
|  | </div> | 
|  | </div> | 
|  | <div class="modal-footer"> | 
|  | <button | 
|  | type="reset" | 
|  | class="btn btn-secondary" | 
|  | ng-click="$dismiss()"> | 
|  | Cancel | 
|  | </button> | 
|  | <button | 
|  | type="submit" | 
|  | class="btn btn-primary" | 
|  | ng-click="getCSRCode();addCsrForm.$setUntouched();$dismiss()" | 
|  | ng-disabled="addCsrForm.$invalid"> | 
|  | Generate CSR | 
|  | </button> | 
|  | </div> | 
|  | </form> | 
|  | </div> | 
|  | </div> |