import { gettext } from "django"; import { customElement, html, property, TemplateResult } from "lit-element"; import { AKResponse } from "../../api/Client"; import "../../elements/buttons/ModalButton"; import "../../elements/buttons/Dropdown"; import "../../elements/buttons/TokenCopyButton"; import { Table, TableColumn } from "../../elements/table/Table"; import { Token } from "../../api/Tokens"; import { PAGE_SIZE } from "../../constants"; @customElement("ak-token-user-list") export class UserTokenList extends Table { searchEnabled(): boolean { return true; } @property() order = "expires"; apiEndpoint(page: number): Promise> { return Token.list({ ordering: this.order, page: page, page_size: PAGE_SIZE, search: this.search || "", }); } columns(): TableColumn[] { return [ new TableColumn("Identifier", "identifier"), new TableColumn("User", "user"), new TableColumn("Expires?", "expiring"), new TableColumn("Expiry date", "expires"), new TableColumn(""), ]; } renderToolbar(): TemplateResult { return html` ${gettext("Create")}
${super.renderToolbar()} `; } row(item: Token): TemplateResult[] { return [ html`${item.identifier}`, html`${item.user.username}`, html`${item.expiring ? "Yes" : "No"}`, html`${item.expiring ? new Date(item.expires * 1000).toLocaleString() : "-"}`, html` ${gettext("Edit")}
${gettext("Delete")}
${gettext("Copy Key")} `, ]; } }