{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: BUSL-1.1
~}}

<hr class="is-marginless has-background-gray-200" />

<p class="has-top-margin-m has-bottom-margin-l">Tidying cleans up the storage backend and/or CRL by removing certificates
  that have expired and are past a certain buffer period beyond their expiration time.
  <DocLink @path="/vault/api-docs/secret/pki#{{if (eq @tidyType 'manual') 'tidy' 'configure-automatic-tidy'}}">Learn more</DocLink>
</p>

<MessageError @errorMessage={{this.errorBanner}} class="has-top-margin-s" />

<form class="has-bottom-margin-s" {{on "submit" (perform this.save)}} data-test-tidy-form={{@tidyType}}>
  {{#if (and (eq @tidyType "auto") this.intervalDurationAttr)}}
    {{#let this.intervalDurationAttr as |attr|}}
      <TtlPicker
        data-test-input={{attr.name}}
        @onChange={{fn this.handleTtl attr}}
        @label={{attr.options.label}}
        @labelDisabled={{attr.options.labelDisabled}}
        @helperTextDisabled={{attr.options.helperTextDisabled}}
        @helperTextEnabled={{attr.options.helperTextEnabled}}
        @initialEnabled={{get @tidy attr.options.mapToBoolean}}
        @initialValue={{get @tidy attr.name}}
      />
    {{/let}}
  {{/if}}
  {{#each @tidy.formFieldGroups as |fieldGroup|}}
    {{#each-in fieldGroup as |group fields|}}
      {{#if (or (eq @tidyType "manual") @tidy.enabled)}}
        <h2 class="title is-size-5 has-border-bottom-light page-header" data-test-tidy-header={{group}}>
          {{group}}
        </h2>
        {{#each fields as |attr|}}
          {{#if (eq attr.name "acmeAccountSafetyBuffer")}}
            <TtlPicker
              data-test-input={{attr.name}}
              @onChange={{fn this.handleTtl attr}}
              @label={{attr.options.label}}
              @labelDisabled={{attr.options.labelDisabled}}
              @helperTextDisabled={{attr.options.helperTextDisabled}}
              @helperTextEnabled={{attr.options.helperTextEnabled}}
              @initialEnabled={{get @tidy attr.options.mapToBoolean}}
              @initialValue={{get @tidy attr.name}}
            />
          {{else}}
            {{! tidyAcme is handled by the ttl above }}
            {{#if (not-eq attr.name "tidyAcme")}}
              <FormField @attr={{attr}} @model={{@tidy}} />
            {{/if}}
          {{/if}}
        {{/each}}
      {{/if}}
    {{/each-in}}
  {{/each}}

  <hr class="is-marginless has-background-gray-200" />

  <div class="has-top-margin-m">
    <button
      type="submit"
      class="button is-primary {{if this.save.isRunning 'is-loading'}}"
      disabled={{this.save.isRunning}}
      data-test-pki-tidy-button
    >
      {{if (eq @tidyType "manual") "Perform tidy" "Save"}}
    </button>
    <button
      type="button"
      class="button is-secondary"
      disabled={{this.save.isRunning}}
      {{on "click" @onCancel}}
      data-test-pki-tidy-cancel
    >
      Cancel
    </button>
    {{#if this.invalidFormAlert}}
      <div class="control">
        <AlertInline @type="danger" @paddingTop={{true}} @message={{this.invalidFormAlert}} @mimicRefresh={{true}} />
      </div>
    {{/if}}
  </div>
</form>