mirror of
https://github.com/goauthentik/authentik
synced 2026-04-26 01:25:02 +02:00
web/elements: Add static table class (#21181)
* add static table class Signed-off-by: Jens Langhammer <jens@goauthentik.io> * use it & cleanup Signed-off-by: Jens Langhammer <jens@goauthentik.io> * update bulk delete Signed-off-by: Jens Langhammer <jens@goauthentik.io> * update log viewer Signed-off-by: Jens Langhammer <jens@goauthentik.io> * update Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix sort Signed-off-by: Jens Langhammer <jens@goauthentik.io> * cleanup Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix bulk delete Signed-off-by: Jens Langhammer <jens@goauthentik.io> * bulk session table Signed-off-by: Jens Langhammer <jens@goauthentik.io> * small tweaks Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
@@ -6,7 +6,8 @@ import { MessageLevel } from "#common/messages";
|
||||
|
||||
import { ModalButton } from "#elements/buttons/ModalButton";
|
||||
import { showMessage } from "#elements/messages/MessageContainer";
|
||||
import { PaginatedResponse, Table, TableColumn } from "#elements/table/Table";
|
||||
import { StaticTable } from "#elements/table/StaticTable";
|
||||
import { TableColumn } from "#elements/table/Table";
|
||||
import { SlottedTemplateResult } from "#elements/types";
|
||||
|
||||
import { UsedBy, UsedByActionEnum } from "@goauthentik/api";
|
||||
@@ -21,14 +22,9 @@ import PFList from "@patternfly/patternfly/components/List/list.css";
|
||||
type BulkDeleteMetadata = { key: string; value: string }[];
|
||||
|
||||
@customElement("ak-delete-objects-table")
|
||||
export class DeleteObjectsTable<T extends object> extends Table<T> {
|
||||
export class DeleteObjectsTable<T extends object> extends StaticTable<T> {
|
||||
static styles: CSSResult[] = [...super.styles, PFList];
|
||||
|
||||
public override paginated = false;
|
||||
|
||||
@property({ attribute: false })
|
||||
public objects: T[] = [];
|
||||
|
||||
@property({ attribute: false })
|
||||
public metadata: (item: T) => BulkDeleteMetadata = (item: T) => {
|
||||
const metadata: BulkDeleteMetadata = [];
|
||||
@@ -44,21 +40,6 @@ export class DeleteObjectsTable<T extends object> extends Table<T> {
|
||||
@state()
|
||||
protected usedByData: Map<T, UsedBy[]> = new Map();
|
||||
|
||||
protected async apiEndpoint(): Promise<PaginatedResponse<T>> {
|
||||
return Promise.resolve({
|
||||
pagination: {
|
||||
count: this.objects.length,
|
||||
current: 1,
|
||||
totalPages: 1,
|
||||
startIndex: 1,
|
||||
endIndex: this.objects.length,
|
||||
next: 0,
|
||||
previous: 0,
|
||||
},
|
||||
results: this.objects,
|
||||
});
|
||||
}
|
||||
|
||||
protected override rowLabel(item: T): string | null {
|
||||
const name = "name" in item && typeof item.name === "string" ? item.name.trim() : null;
|
||||
return name || null;
|
||||
@@ -66,7 +47,7 @@ export class DeleteObjectsTable<T extends object> extends Table<T> {
|
||||
|
||||
@state()
|
||||
protected get columns(): TableColumn[] {
|
||||
return this.metadata(this.objects[0]).map((element) => [element.key]);
|
||||
return this.metadata(this.items![0]).map((element) => [element.key]);
|
||||
}
|
||||
|
||||
protected row(item: T): SlottedTemplateResult[] {
|
||||
@@ -227,7 +208,7 @@ export class DeleteBulkForm<T> extends ModalButton {
|
||||
</section>
|
||||
<section class="pf-c-modal-box__body pf-m-light">
|
||||
<ak-delete-objects-table
|
||||
.objects=${this.objects}
|
||||
.items=${this.objects}
|
||||
.usedBy=${this.usedBy}
|
||||
.metadata=${this.metadata}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user