2024-01-15 15:40:36 -08:00
|
|
|
<pngx-page-header
|
|
|
|
|
title="Logs"
|
|
|
|
|
i18n-title
|
|
|
|
|
info="Review the log files for the application and for email checking."
|
|
|
|
|
i18n-info>
|
2024-01-16 23:00:18 -08:00
|
|
|
<div class="form-check form-switch">
|
2024-12-09 13:14:48 -08:00
|
|
|
<input class="form-check-input" type="checkbox" role="switch" [(ngModel)]="autoRefreshEnabled">
|
2023-11-30 19:08:03 -08:00
|
|
|
<label class="form-check-label" for="autoRefreshSwitch" i18n>Auto refresh</label>
|
|
|
|
|
</div>
|
2023-09-14 14:03:28 -07:00
|
|
|
</pngx-page-header>
|
2021-01-10 08:36:20 -08:00
|
|
|
|
2021-02-06 17:07:25 +01:00
|
|
|
<ul ngbNav #nav="ngbNav" [(activeId)]="activeLog" (activeIdChange)="reloadLogs()" class="nav-tabs">
|
2023-12-19 15:02:05 -08:00
|
|
|
@for (logFile of logFiles; track logFile) {
|
|
|
|
|
<li [ngbNavItem]="logFile">
|
|
|
|
|
<a ngbNavLink>
|
|
|
|
|
{{logFile}}.log
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
}
|
2024-12-06 00:26:38 -08:00
|
|
|
@if (loading || !logFiles.length) {
|
2023-12-19 15:02:05 -08:00
|
|
|
<div class="ps-2 d-flex align-items-center">
|
|
|
|
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
|
|
|
|
@if (!logFiles.length) {
|
|
|
|
|
<ng-container i18n>Loading...</ng-container>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
}
|
2021-02-06 17:07:25 +01:00
|
|
|
</ul>
|
2020-11-02 15:56:14 +01:00
|
|
|
|
2021-02-06 17:07:25 +01:00
|
|
|
<div [ngbNavOutlet]="nav" class="mt-2"></div>
|
2020-11-02 01:26:21 +01:00
|
|
|
|
2025-10-30 16:34:53 -07:00
|
|
|
<cdk-virtual-scroll-viewport
|
|
|
|
|
itemSize="20"
|
|
|
|
|
class="bg-dark p-3 text-light font-monospace log-container"
|
|
|
|
|
#logContainer>
|
2024-12-06 00:26:38 -08:00
|
|
|
@if (loading && logFiles.length) {
|
2023-12-19 15:02:05 -08:00
|
|
|
<div>
|
|
|
|
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
|
|
|
|
<ng-container i18n>Loading...</ng-container>
|
|
|
|
|
</div>
|
|
|
|
|
}
|
2025-10-30 16:34:53 -07:00
|
|
|
<p *cdkVirtualFor="let log of logs"
|
|
|
|
|
class="m-0 p-0"
|
|
|
|
|
[ngClass]="'log-entry-' + log.level">
|
|
|
|
|
{{log.message}}
|
|
|
|
|
</p>
|
|
|
|
|
</cdk-virtual-scroll-viewport>
|