mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-17 20:17:00 +02:00
* UI: plumbing for pki tidy work (#20611) * update tidy model * Dynamic group on tidy based on version * UI: VAULT-16261 PKI autotidy config view (#20641) * UI: VAULT-16203 tidy status page (#20635) * ui: pki tidy form (#20630) * order routes to match tabs * add tidy routes * add tidy-status page component * update routes rename edit to configure, remove manage * add page component to route template * add comment * finish routing * change to queryRecord, delete old tidy file * remove findRecord * fix serializer name * tidy.index only needs controller empty state logic * build form and page components * update tidy model * alphabetize! * revert model changes * finish adapter * move form out of page folder in tests * refactor to accommodate model changes from chelseas pr * WIP tests * reuse shared fields in model * finish tests * update model hook and breadcrumbs * remove subtext for checkbox * fix tests add ACME fields * Update ui/app/adapters/pki/tidy.js * Update ui/app/adapters/pki/tidy.js * refactor intervalDuration using feedback suggested * move errors to second line, inside conditional brackets * add ternary operator to allByKey attr * surface error message * make polling request longer * UI: VAULT-16368 pki tidy custom method (#20696) * ui: adds empty state and updates modal (#20695) * add empty state to status page * update tidy modal * conditionally change cancel transition route for auto tidy form * teeny copy update * organize tidy-status conditoionals * a couple more template cleanups * fix conditional, change to settings * UI: VAULT-16367 VAULT-16378 Tidy acceptance tests + tidy toolbar cleanup (#20698) * update copy * move tidyRevokedCertIssuerAssociations up to applicable section * add tidy info to readme * update copy * UI: Add tidy as a tab to the error route (#20723) * small cleanup items * fix prettier * cancel polling when we leave tidy.index (status view) * revert changes to declaration file * remove space --------- Co-authored-by: Chelsea Shaw <cshaw@hashicorp.com> Co-authored-by: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com> Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import Component from '@glimmer/component';
|
|
import errorMessage from 'vault/utils/error-message';
|
|
import { action } from '@ember/object';
|
|
import { inject as service } from '@ember/service';
|
|
import { task } from 'ember-concurrency';
|
|
import { waitFor } from '@ember/test-waiters';
|
|
import { tracked } from '@glimmer/tracking';
|
|
|
|
import type RouterService from '@ember/routing/router-service';
|
|
import type PkiTidyModel from 'vault/models/pki/tidy';
|
|
import type { FormField, TtlEvent } from 'vault/app-types';
|
|
|
|
interface Args {
|
|
tidy: PkiTidyModel;
|
|
tidyType: string;
|
|
onSave: CallableFunction;
|
|
onCancel: CallableFunction;
|
|
}
|
|
|
|
interface PkiTidyTtls {
|
|
intervalDuration: string;
|
|
acmeAccountSafetyBuffer: string;
|
|
}
|
|
interface PkiTidyBooleans {
|
|
enabled: boolean;
|
|
tidyAcme: boolean;
|
|
}
|
|
|
|
export default class PkiTidyForm extends Component<Args> {
|
|
@service declare readonly router: RouterService;
|
|
|
|
@tracked errorBanner = '';
|
|
@tracked invalidFormAlert = '';
|
|
|
|
get intervalDurationAttr() {
|
|
return this.args.tidy?.allByKey.intervalDuration;
|
|
}
|
|
|
|
@task
|
|
@waitFor
|
|
*save(event: Event) {
|
|
event.preventDefault();
|
|
try {
|
|
yield this.args.tidy.save({ adapterOptions: { tidyType: this.args.tidyType } });
|
|
this.args.onSave();
|
|
} catch (e) {
|
|
this.errorBanner = errorMessage(e);
|
|
this.invalidFormAlert = 'There was an error submitting this form.';
|
|
}
|
|
}
|
|
|
|
@action
|
|
handleTtl(attr: FormField, e: TtlEvent) {
|
|
const { enabled, goSafeTimeString } = e;
|
|
const ttlAttr = attr.name;
|
|
this.args.tidy[ttlAttr as keyof PkiTidyTtls] = goSafeTimeString;
|
|
this.args.tidy[attr.options.mapToBoolean as keyof PkiTidyBooleans] = enabled;
|
|
}
|
|
}
|