58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { Page } from "../../PageSystem/Page";
|
|
import { SecretTitleElement } from "../../elements/SecretTitleElement";
|
|
import { deleteSecret } from "../../api/kv/deleteSecret";
|
|
import { makeElement } from "../../htmlUtils";
|
|
import i18next from "i18next";
|
|
|
|
export class KeyValueDeletePage extends Page {
|
|
constructor() {
|
|
super();
|
|
}
|
|
async goBack(): Promise<void> {
|
|
if (this.state.currentSecretVersion != null) {
|
|
this.state.currentSecretVersion = null;
|
|
await this.router.changePage("KEY_VALUE_SECRET");
|
|
} else {
|
|
this.state.currentSecret = "";
|
|
await this.router.changePage("KEY_VALUE_VIEW");
|
|
}
|
|
}
|
|
async render(): Promise<void> {
|
|
await this.router.setPageContent(
|
|
makeElement({
|
|
tag: "div",
|
|
children: [
|
|
makeElement({
|
|
tag: "h5",
|
|
text: i18next.t("kv_delete_text"),
|
|
}),
|
|
makeElement({
|
|
tag: "button",
|
|
class: ["uk-button", "uk-button-danger"],
|
|
text: i18next.t("kv_delete_btn"),
|
|
onclick: () => {
|
|
void deleteSecret(
|
|
this.state.currentBaseMount,
|
|
this.state.currentMountType,
|
|
this.state.currentSecretPath,
|
|
this.state.currentSecret,
|
|
this.state.currentSecretVersion,
|
|
).then(() => {
|
|
void this.goBack();
|
|
});
|
|
},
|
|
}),
|
|
],
|
|
}),
|
|
);
|
|
}
|
|
|
|
async getPageTitle(): Promise<Element | string> {
|
|
return await SecretTitleElement(this.router, i18next.t("kv_delete_suffix"));
|
|
}
|
|
|
|
get name(): string {
|
|
return i18next.t("kv_delete_title");
|
|
}
|
|
}
|