diff --git a/src/app/admin/dialog-template/dialog-template.component.html b/src/app/admin/dialog-template/dialog-template.component.html
index 40965cb0..0b050c59 100644
--- a/src/app/admin/dialog-template/dialog-template.component.html
+++ b/src/app/admin/dialog-template/dialog-template.component.html
@@ -5,7 +5,7 @@
Informasjon:
Navn på iterasjon: {{ data.iterationName }}
-
Tidspunk iterasjonen ble lagd: {{ data.timeCreated }}
+
Tidspunktet iterasjonen ble lagd: {{ data.timeCreated }}
Antall (nye) bilder i treningssettet: {{ data.imageCount }}
diff --git a/src/app/admin/error-dialog/error-dialog.component.html b/src/app/admin/error-dialog/error-dialog.component.html
new file mode 100644
index 00000000..d68aa4b3
--- /dev/null
+++ b/src/app/admin/error-dialog/error-dialog.component.html
@@ -0,0 +1,10 @@
+
+
@for (log of logs; track log.time) {
+
{{log.date}} {{log.time}} {{ log.level }} {{log.message}}
+
+ }
+
+
+
+
+
diff --git a/src/app/admin/error-dialog/error-dialog.component.scss b/src/app/admin/error-dialog/error-dialog.component.scss
new file mode 100644
index 00000000..97e85d3e
--- /dev/null
+++ b/src/app/admin/error-dialog/error-dialog.component.scss
@@ -0,0 +1,32 @@
+
+ .mat-dialog-container {
+ border-radius: 56px;
+ width: 698px;
+ height: 546px;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow-y: auto;
+ }
+
+ #logMessage {
+ margin-bottom: 16px; // Add some space below the log messages
+ p {
+ font-size: 16px;
+ margin: 4px 0;
+ padding: 4px;
+ background-color: #ffffff;
+ border-left: 4px solid #2196F3;
+ }
+ }
+
+ button {
+ margin-top: 16px;
+ background-color: #2196F3;
+ color: white;
+ &:hover {
+ background-color: #1976D2;
+ }
+ }
+
diff --git a/src/app/admin/error-dialog/error-dialog.component.ts b/src/app/admin/error-dialog/error-dialog.component.ts
new file mode 100644
index 00000000..1fbcce63
--- /dev/null
+++ b/src/app/admin/error-dialog/error-dialog.component.ts
@@ -0,0 +1,14 @@
+import { LogData } from '@/app/shared/models/backend-interfaces';
+import { Component, Inject } from '@angular/core';
+import { MAT_DIALOG_DATA } from '@angular/material/dialog';
+@Component({
+ selector: 'app-error-dialog',
+ templateUrl: 'error-dialog.component.html',
+ styleUrls: ['./error-dialog.component.scss']}
+)
+export class ErrorLogDialogComponent {
+ constructor(@Inject(MAT_DIALOG_DATA) public data: LogData[]) {}
+
+ logs = this.data
+
+}
diff --git a/src/app/admin/info-dialog/info-dialog.component.ts b/src/app/admin/info-dialog/info-dialog.component.ts
index b8c0d392..fd320b67 100644
--- a/src/app/admin/info-dialog/info-dialog.component.ts
+++ b/src/app/admin/info-dialog/info-dialog.component.ts
@@ -1,6 +1,8 @@
import { Component } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { DialogTemplateComponent } from './../dialog-template/dialog-template.component';
+import { ErrorLogDialogComponent } from '../error-dialog/error-dialog.component';
+import { LogData } from '@/app/shared/models/backend-interfaces';
@Component({
selector: 'app-info-dialog',
@@ -20,4 +22,11 @@ export class InfoDialogComponent {
},
});
}
+
+ openErrorLog(logDataArray: LogData[]) {
+
+ this.dialog.open(ErrorLogDialogComponent, {
+ data: logDataArray,
+ });
+ }
}
diff --git a/src/app/admin/info/info.component.html b/src/app/admin/info/info.component.html
index 65d491be..75f109cb 100644
--- a/src/app/admin/info/info.component.html
+++ b/src/app/admin/info/info.component.html
@@ -10,6 +10,8 @@
Advarsel!
+
+
diff --git a/src/app/admin/info/info.component.ts b/src/app/admin/info/info.component.ts
index 9543f648..6de7973b 100644
--- a/src/app/admin/info/info.component.ts
+++ b/src/app/admin/info/info.component.ts
@@ -5,7 +5,7 @@ import { MatSnackBar } from '@angular/material/snack-bar';
import { InfoDialogComponent } from './../info-dialog/info-dialog.component';
import { PairingService } from '../../game/services/pairing.service';
import { MatButton } from '@angular/material/button';
-import { StatusData } from '@/app/shared/models/backend-interfaces';
+import { LogData, StatusData } from '@/app/shared/models/backend-interfaces';
@Component({
selector: 'app-info',
@@ -39,7 +39,7 @@ export class InfoComponent {
this.resetDatasetValues();
this.loginService.revertDataset().subscribe(
() => {
- this.openSnackBar('Suksess! treningssett tilbakestilles (dette kan ta noen minutter)');
+ this.openSnackBar('Suksess! Treningssett tilbakestilles (dette kan ta noen minutter)');
},
() => {
msg = this.errorMsg;
@@ -160,6 +160,17 @@ export class InfoComponent {
);
}
+ getLogger() {
+ this.loginService.getLogger().subscribe(
+ (res: LogData[]) => {
+ this._dialog.openErrorLog(res)
+ },
+ (error) => {
+ this.openSnackBar(error);
+ }
+ );
+ }
+
openSnackBar(msg = 'suksess!') {
this._snackBar.open(msg, 'Lukk', {
duration: 6000,
diff --git a/src/app/admin/login.service.ts b/src/app/admin/login.service.ts
index 4254ee53..005450f2 100644
--- a/src/app/admin/login.service.ts
+++ b/src/app/admin/login.service.ts
@@ -1,7 +1,7 @@
import { endpoints } from '../shared/models/endpoints';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-import { AuthStatus, StatusData } from '../shared/models/backend-interfaces';
+import { AuthStatus, LogData, StatusData } from '../shared/models/backend-interfaces';
import { Observable } from 'rxjs';
@Injectable({
@@ -93,4 +93,13 @@ export class LoginService {
}
);
}
-}
+
+ getLogger() {
+ return this.http.get(
+ `${endpoints.TEKNISKBACKEND}/${endpoints.ADMIN}/${endpoints.LOGGER}`,
+ {
+ withCredentials: true,
+ }
+ );
+ }
+}
\ No newline at end of file
diff --git a/src/app/shared/models/backend-interfaces.ts b/src/app/shared/models/backend-interfaces.ts
index f3052066..f1574484 100644
--- a/src/app/shared/models/backend-interfaces.ts
+++ b/src/app/shared/models/backend-interfaces.ts
@@ -68,3 +68,10 @@ export interface MultiplayerClassifyParams {
time_left: number;
lang: SupportedLanguages;
}
+
+export interface LogData {
+ date: string,
+ time: string,
+ level: string,
+ message: string,
+}
diff --git a/src/app/shared/models/endpoints.ts b/src/app/shared/models/endpoints.ts
index 1b03c6f4..3de0fcf2 100644
--- a/src/app/shared/models/endpoints.ts
+++ b/src/app/shared/models/endpoints.ts
@@ -16,4 +16,5 @@ export const endpoints = {
GETSTATUS: 'status',
LOGOUT: 'logout',
GETEXAMPLEDRAWINGS: 'getExampleDrawings',
+ LOGGER: 'logging'
};
diff --git a/src/main.ts b/src/main.ts
index 32171b62..e1ef7d44 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,5 +1,4 @@
import { enableProdMode, importProvidersFrom } from '@angular/core';
-
import { environment } from './environments/environment';
import { AppComponent } from './app/app.component';
import { provideAnimations } from '@angular/platform-browser/animations';