diff --git a/authentik/flows/api/flows.py b/authentik/flows/api/flows.py index 2a1406d30..6cccbfd7f 100644 --- a/authentik/flows/api/flows.py +++ b/authentik/flows/api/flows.py @@ -100,6 +100,7 @@ class FlowViewSet(ModelViewSet): }, ) @action(detail=True) + # pylint: disable=unused-argument def export(self, request: Request, slug: str) -> Response: """Export flow to .akflow file""" flow = self.get_object() diff --git a/web/src/elements/router/RouterOutlet.ts b/web/src/elements/router/RouterOutlet.ts index 7a1d60b28..38f3d2fec 100644 --- a/web/src/elements/router/RouterOutlet.ts +++ b/web/src/elements/router/RouterOutlet.ts @@ -6,6 +6,9 @@ import AKGlobal from "../../authentik.css"; import "../../pages/generic/SiteShell"; import "./Router404"; +import { Page } from "../Page"; + +export const TITLE_SUFFIX = "authentik"; @customElement("ak-router-outlet") export class RouterOutlet extends LitElement { @@ -40,6 +43,19 @@ export class RouterOutlet extends LitElement { this.navigate(); } + updated(): void { + if (!this.shadowRoot) return; + Array.from(this.shadowRoot?.children).forEach((el) => { + console.log("pageTitle" in el); + if ("pageTitle" in el) { + const title = (el as Page).pageTitle(); + document.title = `${title} - ${TITLE_SUFFIX}`; + } else { + document.title = TITLE_SUFFIX; + } + }); + } + navigate(): void { let activeUrl = window.location.hash.slice(1, Infinity); if (activeUrl === "") { diff --git a/web/src/pages/LibraryPage.ts b/web/src/pages/LibraryPage.ts index 54b57071d..21e797d69 100644 --- a/web/src/pages/LibraryPage.ts +++ b/web/src/pages/LibraryPage.ts @@ -86,6 +86,10 @@ export class LibraryPage extends LitElement { @property({attribute: false}) apps?: AKResponse; + pageTitle(): string { + return gettext("Applications"); + } + static get styles(): CSSResult[] { return [PFBase, PFEmptyState, PFTitle, PFPage, PFContent, PFGallery, AKGlobal].concat(css` :host,