import "#admin/admin-overview/TopApplicationsTable"; import "#admin/admin-overview/cards/AdminStatusCard"; import "#admin/admin-overview/cards/FipsStatusCard"; import "#admin/admin-overview/cards/RecentEventsCard"; import "#admin/admin-overview/cards/SystemStatusCard"; import "#admin/admin-overview/cards/VersionStatusCard"; import "#admin/admin-overview/cards/WorkerStatusCard"; import "#admin/admin-overview/charts/AdminLoginAuthorizeChart"; import "#admin/admin-overview/charts/OutpostStatusChart"; import "#admin/admin-overview/charts/SyncStatusChart"; import { me } from "#common/users"; import "#components/ak-page-header"; import { AKElement } from "#elements/Base"; import "#elements/cards/AggregatePromiseCard"; import type { QuickAction } from "#elements/cards/QuickActionsCard"; import "#elements/cards/QuickActionsCard"; import { WithLicenseSummary } from "#elements/mixins/license"; import { paramURL } from "#elements/router/RouterOutlet"; import { createReleaseNotesURL } from "@goauthentik/core/version"; import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, css, html, nothing } from "lit"; import { customElement, state } from "lit/decorators.js"; import { classMap } from "lit/directives/class-map.js"; import PFContent from "@patternfly/patternfly/components/Content/content.css"; import PFDivider from "@patternfly/patternfly/components/Divider/divider.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 { SessionUser } from "@goauthentik/api"; const AdminOverviewBase = WithLicenseSummary(AKElement); @customElement("ak-admin-overview") export class AdminOverviewPage extends AdminOverviewBase { static get styles(): CSSResult[] { return [ PFBase, PFGrid, PFPage, PFContent, PFDivider, css` .pf-l-grid__item { height: 100%; } .pf-l-grid__item.big-graph-container { height: 35em; } .card-container { max-height: 10em; } .ak-external-link { display: inline-block; margin-left: 0.175rem; vertical-align: super; line-height: normal; font-size: var(--pf-global--icon--FontSize--sm); } `, ]; } quickActions: QuickAction[] = [ [msg("Create a new application"), paramURL("/core/applications", { createForm: true })], [msg("Check the logs"), paramURL("/events/log")], [msg("Explore integrations"), "https://goauthentik.io/integrations/", true], [msg("Manage users"), paramURL("/identity/users")], [ msg("Check the release notes"), createReleaseNotesURL(import.meta.env.AK_VERSION).href, true, ], ]; @state() user?: SessionUser; async firstUpdated(): Promise { this.user = await me(); } render(): TemplateResult { const username = this.user?.user.name || this.user?.user.username; return html`

${this.renderCards()}

`; } renderCards() { const isEnterprise = this.hasEnterpriseLicense; const classes = { "card-container": true, "pf-l-grid__item": true, "pf-m-6-col": true, "pf-m-4-col-on-md": !isEnterprise, "pf-m-4-col-on-xl": !isEnterprise, "pf-m-3-col-on-md": isEnterprise, "pf-m-3-col-on-xl": isEnterprise, }; return html`
${isEnterprise ? html`
` : nothing} `; } } declare global { interface HTMLElementTagNameMap { "ak-admin-overview": AdminOverviewPage; } }