improve ui
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
This commit is contained in:
@ -6,12 +6,15 @@ from rest_framework.mixins import (
|
|||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
|
|
||||||
from authentik.core.api.utils import ModelSerializer
|
from authentik.core.api.utils import ModelSerializer
|
||||||
|
from authentik.events.logs import LogEventSerializer
|
||||||
from authentik.tasks.models import Task
|
from authentik.tasks.models import Task
|
||||||
from authentik.tasks.schedules.models import Schedule
|
from authentik.tasks.schedules.models import Schedule
|
||||||
from authentik.tenants.utils import get_current_tenant
|
from authentik.tenants.utils import get_current_tenant
|
||||||
|
|
||||||
|
|
||||||
class TaskSerializer(ModelSerializer):
|
class TaskSerializer(ModelSerializer):
|
||||||
|
messages = LogEventSerializer(many=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Task
|
model = Task
|
||||||
fields = [
|
fields = [
|
||||||
@ -22,6 +25,7 @@ class TaskSerializer(ModelSerializer):
|
|||||||
"mtime",
|
"mtime",
|
||||||
"schedule_uid",
|
"schedule_uid",
|
||||||
"uid",
|
"uid",
|
||||||
|
"messages",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -57855,8 +57855,13 @@ components:
|
|||||||
type: string
|
type: string
|
||||||
uid:
|
uid:
|
||||||
type: string
|
type: string
|
||||||
|
messages:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/LogEvent'
|
||||||
required:
|
required:
|
||||||
- actor_name
|
- actor_name
|
||||||
|
- messages
|
||||||
Tenant:
|
Tenant:
|
||||||
type: object
|
type: object
|
||||||
description: Tenant Serializer
|
description: Tenant Serializer
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import "@goauthentik/admin/policies/BoundPoliciesList";
|
|
||||||
import "@goauthentik/admin/providers/rac/EndpointForm";
|
|
||||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
|
import "@goauthentik/admin/rbac/ObjectPermissionModal";
|
||||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
|
||||||
import { getRelativeTime } from "@goauthentik/common/utils";
|
import { getRelativeTime } from "@goauthentik/common/utils";
|
||||||
|
import { PFColor } from "@goauthentik/elements/Label";
|
||||||
import "@goauthentik/elements/buttons/SpinnerButton";
|
import "@goauthentik/elements/buttons/SpinnerButton";
|
||||||
|
import "@goauthentik/elements/events/LogViewer";
|
||||||
import "@goauthentik/elements/forms/DeleteBulkForm";
|
import "@goauthentik/elements/forms/DeleteBulkForm";
|
||||||
import "@goauthentik/elements/forms/ModalForm";
|
import "@goauthentik/elements/forms/ModalForm";
|
||||||
import { PaginatedResponse, Table } from "@goauthentik/elements/table/Table";
|
import { PaginatedResponse, Table } from "@goauthentik/elements/table/Table";
|
||||||
@ -16,7 +16,7 @@ import { customElement, property } from "lit/decorators.js";
|
|||||||
|
|
||||||
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
|
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
|
||||||
|
|
||||||
import { Schedule, Task, TasksApi } from "@goauthentik/api";
|
import { Schedule, Task, TasksApi, TasksTasksListStateEnum } from "@goauthentik/api";
|
||||||
|
|
||||||
@customElement("ak-task-list")
|
@customElement("ak-task-list")
|
||||||
export class TaskList extends Table<Task> {
|
export class TaskList extends Table<Task> {
|
||||||
@ -48,13 +48,29 @@ export class TaskList extends Table<Task> {
|
|||||||
|
|
||||||
columns(): TableColumn[] {
|
columns(): TableColumn[] {
|
||||||
return [
|
return [
|
||||||
new TableColumn(msg("Task")),
|
new TableColumn(msg("Task"), "actor_name"),
|
||||||
new TableColumn(msg("Queue")),
|
new TableColumn(msg("Queue"), "queue_name"),
|
||||||
new TableColumn(msg("Last updated")),
|
new TableColumn(msg("Last updated"), "mtime"),
|
||||||
|
new TableColumn(msg("State"), "state"),
|
||||||
new TableColumn(msg("Actions")),
|
new TableColumn(msg("Actions")),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
taskState(task: Task): TemplateResult {
|
||||||
|
switch (task.state) {
|
||||||
|
case TasksTasksListStateEnum.Queued:
|
||||||
|
return html`<ak-label color=${PFColor.Grey}>${msg("Waiting to run")}</ak-label>`;
|
||||||
|
case TasksTasksListStateEnum.Consumed:
|
||||||
|
return html`<ak-label color=${PFColor.Blue}>${msg("Running")}</ak-label>`;
|
||||||
|
case TasksTasksListStateEnum.Done:
|
||||||
|
return html`<ak-label color=${PFColor.Green}>${msg("Successful")}</ak-label>`;
|
||||||
|
case TasksTasksListStateEnum.Rejected:
|
||||||
|
return html`<ak-label color=${PFColor.Red}>${msg("Error")}</ak-label>`;
|
||||||
|
default:
|
||||||
|
return html`<ak-label color=${PFColor.Grey}>${msg("Unknown")}</ak-label>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
row(item: Task): TemplateResult[] {
|
row(item: Task): TemplateResult[] {
|
||||||
return [
|
return [
|
||||||
html`<div>${item.actorName}</div>
|
html`<div>${item.actorName}</div>
|
||||||
@ -62,16 +78,16 @@ export class TaskList extends Table<Task> {
|
|||||||
html`${item.queueName}`,
|
html`${item.queueName}`,
|
||||||
html`<div>${getRelativeTime(item.mtime)}</div>
|
html`<div>${getRelativeTime(item.mtime)}</div>
|
||||||
<small>${item.mtime.toLocaleString()}</small>`,
|
<small>${item.mtime.toLocaleString()}</small>`,
|
||||||
|
this.taskState(item),
|
||||||
html``,
|
html``,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
renderExpanded(item: Task): TemplateResult {
|
renderExpanded(item: Task): TemplateResult {
|
||||||
return html` <td></td>
|
return html` <td role="cell" colspan="3">
|
||||||
<td role="cell" colspan="12">
|
|
||||||
<div class="pf-c-table__expandable-row-content">
|
<div class="pf-c-table__expandable-row-content">
|
||||||
<div class="pf-c-content">
|
<div class="pf-c-content">
|
||||||
<p>TODO: ${item.actorName}</p>
|
<ak-log-viewer .logs=${item?.messages}></ak-log-viewer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>`;
|
</td>`;
|
||||||
|
|||||||
@ -13,6 +13,7 @@ export enum PFColor {
|
|||||||
Green = "pf-m-green",
|
Green = "pf-m-green",
|
||||||
Orange = "pf-m-orange",
|
Orange = "pf-m-orange",
|
||||||
Red = "pf-m-red",
|
Red = "pf-m-red",
|
||||||
|
Blue = "pf-m-blue",
|
||||||
Grey = "",
|
Grey = "",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user