import "@goauthentik/admin/brands/BrandForm"; import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js"; import "@goauthentik/components/ak-status-label"; import "@goauthentik/components/ak-status-label"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { Brand, CoreApi, RbacPermissionsAssignedByUsersListModelEnum } from "@goauthentik/api"; @customElement("ak-brand-list") export class BrandListPage extends TablePage { searchEnabled(): boolean { return true; } pageTitle(): string { return msg("Brands"); } pageDescription(): string { return msg("Configure visual settings and defaults for different domains."); } pageIcon(): string { return "pf-icon pf-icon-tenant"; } checkbox = true; clearOnRefresh = true; @property() order = "domain"; async apiEndpoint(): Promise> { return new CoreApi(DEFAULT_CONFIG).coreBrandsList(await this.defaultEndpointConfig()); } columns(): TableColumn[] { return [ new TableColumn(msg("Domain"), "domain"), new TableColumn(msg("Brand name"), "branding_title"), new TableColumn(msg("Default?"), "default"), new TableColumn(msg("Actions")), ]; } renderToolbarSelected(): TemplateResult { const disabled = this.selectedElements.length < 1; return html` { return [{ key: msg("Domain"), value: item.domain }]; }} .usedBy=${(item: Brand) => { return new CoreApi(DEFAULT_CONFIG).coreBrandsUsedByList({ brandUuid: item.brandUuid, }); }} .delete=${(item: Brand) => { return new CoreApi(DEFAULT_CONFIG).coreBrandsDestroy({ brandUuid: item.brandUuid, }); }} > `; } row(item: Brand): TemplateResult[] { return [ html`${item.domain}`, html`${item.brandingTitle}`, html``, html` ${msg("Update")} ${msg("Update Brand")} `, ]; } renderObjectCreate(): TemplateResult { return html` ${msg("Create")} ${msg("Create Brand")} `; } } declare global { interface HTMLElementTagNameMap { "ak-brand-list": BrandListPage; } }