<form {{on "submit" (perform this.save)}} data-test-pki-config-generate-root-form>
  <MessageError @errorMessage={{this.errorBanner}} class="has-top-margin-s" />
  <h2 class="title is-size-5 has-border-bottom-light page-header" data-test-generate-root-title="Root parameters">
    Root parameters
  </h2>
  {{#each this.defaultFields as |field|}}
    {{#let (find-by "name" field @model.allFields) as |attr|}}
      <FormField @attr={{attr}} @model={{@model}} @modelValidations={{this.modelValidations}} data-test-field>
        {{#if (eq field "customTtl")}}
          {{! customTtl attr has editType yield, which will render this }}
          <PkiNotValidAfterForm @attr={{attr}} @model={{@model}} />
        {{/if}}
      </FormField>
    {{/let}}
  {{/each}}

  <PkiGenerateToggleGroups @model={{@model}} />

  {{#if @urls}}
    <fieldset class="box is-shadowless is-marginless is-borderless is-fullwidth" data-test-urls-section>
      <h2
        class="title is-size-5 page-header {{if @urls.canCreate 'has-border-bottom-light' 'is-borderless'}}"
        data-test-generate-root-title="Issuer URLs"
      >
        Issuer URLs
      </h2>
      {{#if @urls.canSet}}
        {{#each @urls.allFields as |attr|}}
          {{#if (not (eq attr.name "mountPath"))}}
            <FormField
              @attr={{attr}}
              @mode="create"
              @model={{@urls}}
              @showHelpText={{attr.options.showHelpText}}
              data-test-urls-field
            />
          {{/if}}
        {{/each}}
      {{else}}
        <EmptyState
          @title="You do not have permissions to set URLs."
          @message="These are not required but will need to be configured later. You can do this via the CLI or by changing your permissions and returning to this form."
        />
      {{/if}}
    </fieldset>
  {{/if}}

  <div class="field is-grouped box is-fullwidth is-bottomless">
    <div class="control">
      <button type="submit" class="button is-primary" data-test-pki-generate-root-save>
        Done
      </button>
      <button {{on "click" @onCancel}} type="button" class="button has-left-margin-s" data-test-pki-generate-root-cancel>
        Cancel
      </button>
    </div>
    {{#if this.invalidFormAlert}}
      <div class="control">
        <AlertInline
          @type="danger"
          @paddingTop={{true}}
          @message={{this.invalidFormAlert}}
          @mimicRefresh={{true}}
          data-test-pki-generate-root-validation-error
        />
      </div>
    {{/if}}
  </div>
</form>