import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; import { AKElement } from "#elements/Base"; import { PFColor } from "#elements/Label"; import { LastTaskStatusEnum, LDAPSourceSyncStatusEnum, TaskAggregatedStatusEnum, } from "@goauthentik/api"; import { msg } from "@lit/localize"; import { CSSResult, html, TemplateResult } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; @customElement("ak-task-status") export class TaskStatus extends AKElement { public static styles: CSSResult[] = [PFButton]; @property() status?: TaskAggregatedStatusEnum | LastTaskStatusEnum | LDAPSourceSyncStatusEnum; render(): TemplateResult { switch (this.status) { case TaskAggregatedStatusEnum.WaitingForDependencies: case LastTaskStatusEnum.WaitingForDependencies: return html`${msg("Waiting for dependencies")}`; case TaskAggregatedStatusEnum.Queued: case LastTaskStatusEnum.Queued: return html`${msg("Waiting to run")}`; case TaskAggregatedStatusEnum.Consumed: case LastTaskStatusEnum.Consumed: return html`${msg("Consumed")}`; case TaskAggregatedStatusEnum.Preprocess: case LastTaskStatusEnum.Preprocess: return html`${msg("Pre-processing")}`; case TaskAggregatedStatusEnum.Running: case LastTaskStatusEnum.Running: case LDAPSourceSyncStatusEnum.Running: return html`${msg("Running")}`; case TaskAggregatedStatusEnum.Postprocess: case LastTaskStatusEnum.Postprocess: return html`${msg("Post-processing")}`; case TaskAggregatedStatusEnum.Done: case LastTaskStatusEnum.Done: case TaskAggregatedStatusEnum.Info: case LastTaskStatusEnum.Info: case LDAPSourceSyncStatusEnum.Done: return html`${msg("Successful")}`; case TaskAggregatedStatusEnum.Warning: case LastTaskStatusEnum.Warning: case LDAPSourceSyncStatusEnum.Warning: return html`${msg("Warning")}`; case TaskAggregatedStatusEnum.Rejected: case LastTaskStatusEnum.Rejected: case TaskAggregatedStatusEnum.Error: case LastTaskStatusEnum.Error: case LDAPSourceSyncStatusEnum.Error: return html`${msg("Error")}`; default: return html`${msg("Unknown")}`; } } } declare global { interface HTMLElementTagNameMap { "ak-task-status": TaskStatus; } }