import "@goauthentik/admin/admin-settings/AdminSettingsForm"; import { AdminSettingsForm } from "@goauthentik/admin/admin-settings/AdminSettingsForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/events/ObjectChangelog"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/EmptyState"; import "@goauthentik/elements/Markdown"; import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFBanner from "@patternfly/patternfly/components/Banner/banner.css"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFCard from "@patternfly/patternfly/components/Card/card.css"; import PFContent from "@patternfly/patternfly/components/Content/content.css"; import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css"; import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; import { AdminApi, Settings } from "@goauthentik/api"; @customElement("ak-admin-settings") export class AdminSettingsPage extends AKElement { static get styles(): CSSResult[] { return [ PFBase, PFButton, PFPage, PFGrid, PFContent, PFCard, PFDescriptionList, PFForm, PFFormControl, PFBanner, ]; } @property({ attribute: false }) settings?: Settings; loadSettings(): void { new AdminApi(DEFAULT_CONFIG).adminSettingsRetrieve().then((settings) => { this.settings = settings; }); } firstUpdated(): void { this.loadSettings(); } async save(): Promise { const form = this.shadowRoot?.querySelector("ak-admin-settings-form"); if (!form) { return; } await form.submit(new Event("submit")); this.resetForm(); } resetForm(): void { const form = this.shadowRoot?.querySelector("ak-admin-settings-form"); if (!form) { return; } this.loadSettings(); form.settings = this.settings!; form.resetForm(); } render(): TemplateResult { if (!this.settings) { return html``; } return html` ${msg("System settings")}
`; } }