{{!
  Copyright IBM Corp. 2016, 2025
  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 (eq @tidyType "auto")}}
    <div class="field">
      <Toggle @onChange={{fn (mut @form.data.enabled)}} @checked={{@form.data.enabled}} @name="enabled">
        <legend>
          <span class="ttl-picker-label is-large">
            {{if @form.data.enabled "Automatic tidy enabled" "Automatic tidy disabled"}}
          </span>
          {{#unless @form.data.enabled}}
            <p class="sub-text">Automatic tidy operations will not run.</p>
          {{/unless}}
        </legend>
      </Toggle>
    </div>

    {{#if @form.data.enabled}}
      <h2 class="title is-size-5 has-border-bottom-light page-header" data-test-tidy-header="Automatic tidy settings">
        Automatic tidy settings
      </h2>
      {{#each (tidy-groups "auto") as |fieldGroup|}}
        {{#each-in fieldGroup as |group fields|}}
          {{#each fields as |field|}}
            <FormField @attr={{find-by "name" field @form.formFields}} @model={{@form}} />
          {{/each}}
        {{/each-in}}
      {{/each}}
    {{/if}}
  {{/if}}

  {{#if (or (eq @tidyType "manual") @form.data.enabled)}}
    {{#each (tidy-groups "manual") as |fieldGroup|}}
      {{#each-in fieldGroup as |group fields|}}
        <h2 class="title is-size-5 has-border-bottom-light page-header" data-test-tidy-header={{group}}>
          {{group}}
        </h2>
        {{#each fields as |field|}}
          {{#if (eq field "acme_account_safety_buffer")}}
            <TtlPicker
              data-test-input={{field}}
              @onChange={{this.handleAcmeTtl}}
              @label="Tidy ACME enabled"
              @labelDisabled="Tidy ACME disabled"
              @helperTextDisabled="Tidying of ACME accounts, orders and authorizations is disabled."
              @helperTextEnabled="The amount of time that must pass after creation that an account with no orders is marked revoked, and the amount of time after being marked revoked or deactivated."
              @initialEnabled={{@form.data.tidy_acme}}
              @initialValue={{get @form.data field}}
            />
          {{else}}
            {{! tidy_acme is set via the TtlPicker change event above }}
            {{#if (not-eq field "tidy_acme")}}
              <FormField @attr={{find-by "name" field @form.formFields}} @model={{@form}} />
            {{/if}}
          {{/if}}
        {{/each}}
      {{/each-in}}
    {{/each}}
  {{/if}}

  <hr class="is-marginless has-background-gray-200" />
  <Hds::ButtonSet class="has-top-margin-m">
    <Hds::Button
      @text={{if (eq @tidyType "manual") "Perform tidy" "Save"}}
      @icon={{if this.save.isRunning "loading"}}
      type="submit"
      disabled={{this.save.isRunning}}
      data-test-pki-tidy-button
    />
    <Hds::Button
      @text="Cancel"
      @color="secondary"
      disabled={{this.save.isRunning}}
      {{on "click" @onCancel}}
      data-test-pki-tidy-cancel
    />
  </Hds::ButtonSet>
  {{#if this.invalidFormAlert}}
    <div class="control">
      <AlertInline @type="danger" class="has-top-padding-s" @message={{this.invalidFormAlert}} />
    </div>
  {{/if}}
</form>