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;
}
}