vault/ui/app/components/secret-engine/configure-tabs.ts
Vault Automation 621e3686f0
UI: LDAP Plugin settings (#10476) (#10763)
* Update plugin-settings tab routes

* Get LDAP engine working with plugin-settings and general-settings

* Add copyright headers

* Fix ts error

* Fix more failing tests

* Gate header by ff

* Update failing tests and fix bugs

* Add changelog

* Fix configure tabs route name

* Update comment

* Address some comments

* configuration route..

* Update configure and configuration routes to use header

* Update tab-page-header component name

* Fix onClose modal issue where screen locks up

* Put configure back..

* Fix template errors

* Update manage dropdown..

* Move things back..

* Fix tests!

* Fix modal locked in bug

* Fix failing test where it wasnt transitioning to the configuration route

* Use ember concurrency instead

* Check if onConfirm exists before calling it

* Update variable

* Remove unused ConfigureTabs

* Fix JS doc and remove conditional

Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
2025-11-12 18:02:16 -08:00

57 lines
1.7 KiB
TypeScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { service } from '@ember/service';
import Component from '@glimmer/component';
import engineDisplayData from 'vault/helpers/engines-display-data';
import type SecretsEngineResource from 'vault/resources/secrets/engine';
import type RouterService from '@ember/routing/router-service';
/**
* @module ConfigureTabs handles the display of the ttl picker for the lease duration card in general settings.
*
* @example
* <SecretEngine::ConfigureTabs
@model={{this.model}}
/>
*
* @param {object} secretsEngine - secrets engine resource.
* @param {boolean} config - config model for the secret engine.
*/
interface Args {
secretsEngine: SecretsEngineResource;
config: Record<string, unknown>;
}
export default class ConfigureTabs extends Component<Args> {
@service declare readonly router: RouterService;
get routeName() {
if (this.router.currentRouteName === 'vault.cluster.secrets.backend.configuration.edit') {
return 'vault.cluster.secrets.backend.configuration.edit';
}
return 'vault.cluster.secrets.backend.configuration.plugin-settings';
}
get engineRoute() {
const engineData = engineDisplayData(this.args?.secretsEngine?.type);
const baseUrl = 'vault.cluster.secrets.backend.';
if (this.args?.config && Object.keys(this.args?.config).length > 0)
return `${baseUrl}${this.args?.secretsEngine?.type}.configuration`;
return `${baseUrl}${engineData?.engineConfigureRoute}`;
}
get pluginSettingsRoute() {
const engineData = engineDisplayData(this.args?.secretsEngine?.type);
if (engineData?.engineConfigureRoute) {
return this.engineRoute;
}
return this.routeName;
}
}