web/admin: add backup status card
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
@ -6,6 +6,7 @@ import "../../elements/cards/AggregatePromiseCard";
|
||||
import "./TopApplicationsTable";
|
||||
|
||||
import "./cards/AdminStatusCard";
|
||||
import "./cards/BackupStatusCard";
|
||||
import "./cards/FlowCacheStatusCard";
|
||||
import "./cards/LDAPSyncStatusCardContainer";
|
||||
import "./cards/PolicyCacheStatusCard";
|
||||
@ -55,6 +56,8 @@ export class AdminOverviewPage extends LitElement {
|
||||
</ak-admin-status-card-policy-cache>
|
||||
<ak-admin-status-card-flow-cache class="pf-l-gallery__item pf-m-4-col" icon="pf-icon pf-icon-server" header=${t`Cached Flows`}>
|
||||
</ak-admin-status-card-flow-cache>
|
||||
<ak-admin-status-card-backup class="pf-l-gallery__item pf-m-4-col" icon="fa fa-database" header=${t`Backup status`} headerLink="#/administration/system-tasks">
|
||||
</ak-admin-status-card-backup>
|
||||
<ak-admin-status-card-ldap-sync-container >
|
||||
</ak-admin-status-card-ldap-sync-container>
|
||||
</div>
|
||||
|
||||
44
web/src/pages/admin-overview/cards/BackupStatusCard.ts
Normal file
44
web/src/pages/admin-overview/cards/BackupStatusCard.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { t } from "@lingui/macro";
|
||||
import { customElement, html, TemplateResult } from "lit-element";
|
||||
import { AdminStatus, AdminStatusCard } from "./AdminStatusCard";
|
||||
import { AdminApi, TaskStatusEnum } from "authentik-api";
|
||||
import { DEFAULT_CONFIG } from "../../../api/Config";
|
||||
import { convertToTitle } from "../../../utils";
|
||||
|
||||
@customElement("ak-admin-status-card-backup")
|
||||
export class BackupStatusCard extends AdminStatusCard<TaskStatusEnum> {
|
||||
|
||||
getPrimaryValue(): Promise<TaskStatusEnum> {
|
||||
return new AdminApi(DEFAULT_CONFIG).adminSystemTasksRead({
|
||||
id: "backup_database"
|
||||
}).then((value) => {
|
||||
return value.status;
|
||||
}).catch(() => {
|
||||
return TaskStatusEnum.Error;
|
||||
});
|
||||
}
|
||||
|
||||
renderValue(): TemplateResult {
|
||||
return html`${convertToTitle(this.value?.toString() || "")}`;
|
||||
}
|
||||
|
||||
getStatus(value: TaskStatusEnum): Promise<AdminStatus> {
|
||||
switch (value) {
|
||||
case TaskStatusEnum.Warning:
|
||||
return Promise.resolve<AdminStatus>({
|
||||
icon: "fa fa-exclamation-triangle pf-m-warning",
|
||||
message: t`Backup finished with warnings.`,
|
||||
});
|
||||
case TaskStatusEnum.Error:
|
||||
return Promise.resolve<AdminStatus>({
|
||||
icon: "fa fas fa-times-circle pf-m-danger",
|
||||
message: t`Backup finished with errors.`,
|
||||
});
|
||||
default:
|
||||
return Promise.resolve<AdminStatus>({
|
||||
icon: "fa fa-check-circle pf-m-success"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user