Qualitätsbericht
-
-
- ();
//generator
title = 'appComponent';
- //date
- today: Date = new Date();
- pipe = new DatePipe('en-US');
- todayWithPipe = null;
+ private subscriptionGenerateQB: Subscription | undefined
+ private subscriptionGetReports: Subscription | undefined
+ private subscriptionGetReportStatus: Subscription | undefined
+ private subscriptionFetchLogs: Subscription | undefined
+ private subscriptionGetRunningReports: Subscription | undefined
+ private subscriptionGetTemplateIDs: Subscription | undefined
- constructor(private route: ActivatedRoute) {
+ private intervall: number | undefined
+ reportLog: reportLog[] = [];
+ QBStatus: typeof QBStatus = QBStatus;
+ qbStatus: QBStatus = QBStatus.EMPTY
+ reportUrl = "";
+ buttonDisabled: boolean = false;
+ fileName: string | undefined;
+ importTemplate: string = "";
+ selectedTemplate: string = "ccp";
+ templateIDs: Templates[] = []
+
+ constructor(private route: ActivatedRoute, private qualityReportService: QualityReportService) {
}
// @ts-ignore
@ViewChild('paginator') paginator: MatPaginator;
@@ -72,8 +71,184 @@ export class QualityReportComponent implements OnInit {
this.dataSource.paginator = this.paginator;
}
ngOnInit() {
+ this.reportUrl = this.qualityReportService.getReporterURL() + "/";
+ this.getTemplateIDs();
+ this.getReports();
+ this.getRunningReports();
+ }
+
+ ngOnDestroy(): void {
+ this.subscriptionGenerateQB?.unsubscribe();
+ this.subscriptionGetReports?.unsubscribe();
+ this.subscriptionGetReportStatus?.unsubscribe();
+ this.subscriptionFetchLogs?.unsubscribe();
+ this.subscriptionGetRunningReports?.unsubscribe();
+ this.subscriptionGetTemplateIDs?.unsubscribe();
+ window.clearInterval(this.intervall);
+ }
+
+ doImportFromFile(event: Event): void {
// @ts-ignore
- this.todayWithPipe = this.pipe.transform(Date.now(), 'dd/MM/yyyy h:mm:ss a zzzz');
+ const file: File = (event.target as HTMLInputElement).files[0];
+ const reader = new FileReader();
+ reader.onload = this.onReaderLoad.bind(this);
+ reader.readAsText(file);
+ this.fileName = file.name;
+ }
+ onReaderLoad(event: any): void {
+ this.importTemplate = event.target.result;
+ this.generateQB();
+ }
+
+ generateQB() {
+ this.buttonDisabled = true;
+ this.subscriptionGenerateQB = this.qualityReportService.generateQB(this.selectedTemplate, this.importTemplate).subscribe({
+ next: (response:QBResponse) => {
+ const url = new URL(response.responseUrl)
+ const id = url.searchParams.get("report-id");
+ this.qbStatus = QBStatus.RUNNING
+ if (id) {
+ this.pollingStatusAndLogs(id, false);
+ }
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {}
+ });
+ }
+
+ getReports(): void {
+ this.subscriptionGetReports?.unsubscribe();
+ this.subscriptionGetReports = this.qualityReportService.getReports().subscribe({
+ next: (reportList:QualityReports[]) => {
+ const tempQBs: QualityReports[] = [];
+ let tempID;
+ reportList.forEach((report) => {
+ report["template-id"] === "null" ? tempID = "unbekannt" : tempID = report["template-id"]
+ tempQBs.push({id: report.id, path: report.path, timestamp: this.transformDate(report.timestamp), "template-id": tempID})
+ })
+ tempQBs.sort((a,b) => Number(b.timestamp) - Number(a.timestamp))
+ this.dataSource.data = tempQBs;
+ this.dataSource._updateChangeSubscription();
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {}
+ })
}
+ pollingStatusAndLogs(id: string, init: boolean): void {
+ this.subscriptionGenerateQB?.unsubscribe();
+ this.subscriptionGetReportStatus?.unsubscribe();
+ this.subscriptionFetchLogs?.unsubscribe();
+
+ const reportDiv = document.getElementById("reportDiv");
+ const exportDiv = document.getElementById("exportDiv");
+ this.intervall = window.setInterval(() => {
+ this.subscriptionGetReportStatus = this.qualityReportService.getReportStatus(id).subscribe({
+ next: (status) => {
+ console.log(status)
+ if (!init || status !== QBStatus.OK) {this.qbStatus = status;}
+ if (status !== QBStatus.RUNNING) {
+ window.clearInterval(this.intervall);
+ this.buttonDisabled = false;
+ if (status === QBStatus.OK && !init) {
+ this.reportLog = [];
+ this.downloadReport(id);
+ this.getReports();
+ }
+ }
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {}
+ });
+ if (this.qbStatus === QBStatus.RUNNING) {
+ init = false;
+ this.subscriptionFetchLogs = this.qualityReportService.fetchLogs(1000).subscribe({
+ next: (response) => {
+ this.reportLog = response;
+ for (const repexpDiv of [reportDiv, exportDiv]) {
+ this.scrollToEndOfLog(repexpDiv)
+ }
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {
+ }
+ });
+ }
+ }, 2000)
+ }
+
+ downloadReport(id: string): void {
+ window.location.href=this.reportUrl + 'report?report-id=' + id;
+ }
+
+ transformDate(dateLog: string): string {
+ return new Date(dateLog.substring(0,4) + "-" + dateLog.substring(4,6) + "-" + dateLog.substring(6,8) + "T" + dateLog.substring(9,11) + ":" + dateLog.substring(12,14) + "+00:00").getTime().toString();
+ }
+
+
+ scrollToEndOfLog(element: HTMLElement | null): void {
+ if (element) {
+ const isScrolledToBottomReport = element.scrollHeight - element.clientHeight <= element.scrollTop + 1;
+ setTimeout(function () {
+ if (isScrolledToBottomReport) {
+ element.scrollTop = element.scrollHeight - element.clientHeight;
+ }
+ }, 200);
+ }
+ }
+
+ getRunningReports(): void {
+ this.subscriptionGetRunningReports?.unsubscribe();
+ this.subscriptionGetRunningReports = this.qualityReportService.getRunningReports().subscribe({
+ next: (reportList:QualityReports[]) => {
+ const tempQBs: QualityReports[] = []
+ reportList.forEach((report) => {
+ tempQBs.push({id: report.id, path: report.path, timestamp: this.transformDate(report.timestamp), "template-id": report["template-id"]})
+ })
+ tempQBs.sort((a,b) => Number(b.timestamp) - Number(a.timestamp))
+ if (tempQBs.length > 0) {
+ this.buttonDisabled = true;
+ this.pollingStatusAndLogs(tempQBs[0].id, true)
+ }
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {}
+ })
+ }
+
+ getTemplateIDs(): void {
+ this.subscriptionGetTemplateIDs?.unsubscribe();
+ this.subscriptionGetTemplateIDs = this.qualityReportService.getReportTemplates().subscribe({
+ next: (templateList:string[]) => {
+ templateList.forEach((template) => {
+ this.templateIDs.push({value: template, display: template})
+ })
+ this.templateIDs.push({value: "custom", display:"Eigenes Template"})
+ },
+ error: (error) => {
+ console.log(error);
+ },
+ complete: () => {}
+ })
+ }
+
+ cancelQB(): void {
+ window.clearInterval(this.intervall);
+ this.buttonDisabled = false;
+ this.qbStatus = QBStatus.EMPTY;
+ }
+
+ downloadTemplate(): void {
+ window.location.href = this.reportUrl + 'report-template?template-id=' + this.selectedTemplate;
+ }
}
diff --git a/src/app/sidebar/sidebar.component.css b/src/app/sidebar/sidebar.component.css
index 519c6a9..34a123e 100644
--- a/src/app/sidebar/sidebar.component.css
+++ b/src/app/sidebar/sidebar.component.css
@@ -4,7 +4,6 @@
flex: 1;
z-index:1;
position: relative;
- overflow: hidden;
}
.main-content {
display: flex;
diff --git a/src/app/teiler-welcome/teiler-welcome.component.ts b/src/app/teiler-welcome/teiler-welcome.component.ts
index ebc5725..107c00d 100644
--- a/src/app/teiler-welcome/teiler-welcome.component.ts
+++ b/src/app/teiler-welcome/teiler-welcome.component.ts
@@ -25,7 +25,7 @@ export class TeilerWelcomeComponent implements OnInit {
welcomeTitle1: string = $localize`Willkommen auf Ihrem`
welcomeTitle2: string = $localize`Brückenkopf`
- welcomeTitle: string = this.welcomeTitle1 + " " + environment.config.TEILER_PROJECT + " " + this.welcomeTitle2;
+ welcomeTitle: string = this.welcomeTitle1 + " " + environment.config.TEILER_PROJECT.toUpperCase() + "-" + this.welcomeTitle2;
welcomeMessage1: string = $localize`
Sie befinden sich auf der Einstiegsseite des Brückenkopfes am Standort.
diff --git a/src/app/teiler/quality-report.service.ts b/src/app/teiler/quality-report.service.ts
index b532962..a3c6770 100644
--- a/src/app/teiler/quality-report.service.ts
+++ b/src/app/teiler/quality-report.service.ts
@@ -1,6 +1,15 @@
import {Injectable} from '@angular/core';
import {EmbeddedTeilerApp, EmbeddedTeilerApps, TeilerRole} from "./teiler-app";
import {Router} from "@angular/router";
+import {Observable, of} from "rxjs";
+import {HttpClient, HttpHeaders} from "@angular/common/http";
+import {environment} from "../../environments/environment";
+import {QBResponse, QBStatus, QualityReports} from "../embedded/quality-report/quality-report.component";
+
+export interface reportLog {
+ source: string,
+ lastLines: String[]
+}
@Injectable({
providedIn: 'root'
@@ -12,9 +21,70 @@ export class QualityReportService extends EmbeddedTeilerApp {
iconSourceUrl: string | undefined = undefined;
title: string = $localize`Qualitätsbericht`;
roles: TeilerRole[] = [TeilerRole.TEILER_ADMIN];
-
- constructor(router: Router) {
+ httpHeaders: HttpHeaders = new HttpHeaders().append("x-api-key", environment.config.EXPORTER_API_KEY);
+ httpHeadersXML: HttpHeaders = new HttpHeaders().append("x-api-key", environment.config.EXPORTER_API_KEY).append("Content-Type", "application/xml");
+ constructor(router: Router, private http: HttpClient) {
super(EmbeddedTeilerApps.QUALITY_REPORT, router);
}
+ public generateQB(templateID: string, template?:string): Observable {
+ if (templateID === "custom") {
+ return this.http.post(this.getReporterURL()+"/generate", template, {headers: this.httpHeadersXML});
+ } else {
+ return this.http.post(this.getReporterURL() + "/generate?template-id=" + templateID, null, {headers: this.httpHeaders});
+ }
+ }
+ public fetchLogs(logSize: number, lastLineRep?: string, lastLineExp?: string): Observable {
+ const mock = [
+ {
+ "source": "reporter",
+ "lastLines": [
+ "Sending request to exporter...",
+ "Response URL: http://localhost:8095/report?report-id=GbYpfophYqcysQa",
+ "Fetching export... (Attempt: 1)",
+ "Fetching export... (Attempt: 2)",
+ "Fetching export... (Attempt: 3)",
+ "Fetching export... (Attempt: 4)",
+ "Fetching export... (Attempt: 5)",
+ "Fetching export... (Attempt: 6)",
+ "Fetching export... (Attempt: 7)",
+ "Fetching export... (Attempt: 8)",
+ "Fetching export... (Attempt: 9)",
+ "Fetching export... (Attempt: 10)",
+ "Fetching export... (Attempt: 11)",
+ "Fetching export... (Attempt: 12)",
+ "Sending request to exporter...",
+ "Response URL: http://localhost:8095/report?report-id=VGIQaAnEvmeDJcG",
+ "Fetching export... (Attempt: 1)",
+ "Random Number: " + Math.floor(Math.random() * 10000000)
+ ]
+ },
+ {
+ "source": "exporter",
+ "lastLines": [
+ "Response URL: http://exporter:8092/response?query-execution-id=6",
+ "Fetching first bundle...",
+ "Random Number: " + Math.floor(Math.random() * 10000000)
+ ]
+ }
+ ];
+ //return of(mock);
+ return this.http.get(this.getReporterURL()+"/logs?logs-size=" + logSize );
+ }
+ getReportStatus(reportID: string): Observable {
+ return this.http.get(this.getReporterURL()+"/report-status?report-id=" + reportID );
+ }
+
+ getReports(): Observable {
+ return this.http.get(this.getReporterURL()+"/reports-list" );
+ }
+ getReporterURL(): string | undefined {
+ return this.backendUrl;
+ }
+ getRunningReports(): Observable {
+ return this.http.get(this.getReporterURL()+"/running-reports" );
+ }
+ getReportTemplates(): Observable {
+ return this.http.get(this.getReporterURL() + "/report-template-ids");
+ }
}
diff --git a/src/assets/env.js b/src/assets/env.js
index bdb1e71..3d305f6 100644
--- a/src/assets/env.js
+++ b/src/assets/env.js
@@ -13,6 +13,7 @@
"TEILER_ADMIN_PHONE": "+49 123 456789",
"TEILER_PROJECT": "DKTK",
"EXPORTER_API_KEY": "ttsHGwSITs0Eq8L63YWtLVyHymBmULvZIihL6w4t42FBmzp6Eb9SGNd7fZmeUtAI",
+ "TEILER_ORCHESTRATOR_URL": "http://localhost:9000",
"TEILER_DASHBOARD_HTTP_RELATIVE_PATH": "",
"TEILER_ORCHESTRATOR_HTTP_RELATIVE_PATH": ""
};
diff --git a/src/i18n/messages.en.xlf b/src/i18n/messages.en.xlf
index 5358fca..d80b02d 100644
--- a/src/i18n/messages.en.xlf
+++ b/src/i18n/messages.en.xlf
@@ -60,7 +60,7 @@
src/app/embedded/event-log/event-log.component.html:22
- src/app/embedded/quality-report/quality-report.component.html:29
+ src/app/embedded/quality-report/quality-report.component.html:49
@@ -248,7 +248,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:16
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:18
@@ -257,7 +257,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:19
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:21
@@ -266,7 +266,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:22
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:24
@@ -275,7 +275,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:26
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:28
@@ -284,7 +284,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:28
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:30
@@ -293,7 +293,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:29
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:31
@@ -302,25 +302,25 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:30
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:32
Request only statistics
-
+
- src/app/embedded/inquiries/inquiry/inquiry.component.html:32
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:35,36
-
+
Already answered
- src/app/embedded/inquiries/inquiry/inquiry.component.html:35
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:39
@@ -329,7 +329,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:45
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:50
@@ -338,7 +338,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:47
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:53
@@ -347,7 +347,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:50
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:56
@@ -356,7 +356,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:56
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:62
@@ -365,7 +365,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:57
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:63
@@ -374,7 +374,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:58
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:64
@@ -383,7 +383,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:59
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:65
@@ -392,7 +392,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:62
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:68
@@ -401,7 +401,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:62
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:68
@@ -410,7 +410,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:74
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:80
@@ -451,7 +451,6 @@
src/app/embedded/pop-ups/dialog-quali/dialog-quali.component.html:14
src/app/embedded/pop-ups/dialog-uploads/dialog-uploads.component.html:13
- src/app/embedded/quality-report/quality-report.component.html:14
src/app/embedded/uploads/uploads.component.html:74
@@ -490,29 +489,101 @@
src/app/embedded/quality-report/quality-report.component.html:4
- src/app/teiler/quality-report.service.ts:13
+ src/app/teiler/quality-report.service.ts:22
Quality Report
-
+
+
+ src/app/embedded/quality-report/quality-report.component.html:14
+
+
+
+ cancel
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:15
+
+
+
+ generate new QR
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:19
+
+
+
+ select template and generate new QR
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:22
+
+
+
+ download template
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:26
+
+
+
+ generating QR ...
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:27
+
+
+
+ QR successfully generated
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:28
+
+
+
+ QR not found
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:29
+
+
+
+ failed
+
+
+
- src/app/embedded/quality-report/quality-report.component.html:7
+ src/app/embedded/quality-report/quality-report.component.html:54
-
- Generate
+
+ template-ID
-
+
- src/app/embedded/quality-report/quality-report.component.html:34
+ src/app/embedded/quality-report/quality-report.component.html:59
-
- Version
+
+ link
@@ -831,7 +902,7 @@
- src/app/teiler/quality-report.service.ts:10
+ src/app/teiler/quality-report.service.ts:19
diff --git a/src/i18n/messages.xlf b/src/i18n/messages.xlf
index d5eae96..2a68cbf 100644
--- a/src/i18n/messages.xlf
+++ b/src/i18n/messages.xlf
@@ -54,7 +54,7 @@
src/app/embedded/event-log/event-log.component.html:22
- src/app/embedded/quality-report/quality-report.component.html:29
+ src/app/embedded/quality-report/quality-report.component.html:49
@@ -215,7 +215,6 @@
src/app/embedded/inquiries/inquiries.component.html:8
src/app/embedded/inquiries/inquiries.component.html:8
src/app/embedded/inquiries/inquiries.component.html:8
- src/app/embedded/quality-report/quality-report.component.html:19
@@ -223,7 +222,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:16
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:18
@@ -231,7 +230,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:19
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:21
@@ -239,7 +238,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:22
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:24
@@ -247,7 +246,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:26
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:28
@@ -255,7 +254,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:28
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:30
@@ -263,7 +262,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:29
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:31
@@ -271,23 +270,23 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:30
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:32
-
+
- src/app/embedded/inquiries/inquiry/inquiry.component.html:32
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:35,36
-
+
- src/app/embedded/inquiries/inquiry/inquiry.component.html:35
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:39
@@ -295,7 +294,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:45
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:50
@@ -303,7 +302,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:47
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:53
@@ -311,7 +310,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:50
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:56
@@ -319,7 +318,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:56
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:62
@@ -327,7 +326,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:57
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:63
@@ -335,7 +334,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:58
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:64
@@ -343,7 +342,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:59
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:65
@@ -351,7 +350,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:62
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:68
@@ -359,7 +358,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:62
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:68
@@ -367,7 +366,7 @@
- src/app/embedded/inquiries/inquiry/inquiry.component.html:74
+ src/app/embedded/inquiries/inquiry/inquiry.component.html:80
@@ -376,7 +375,6 @@
src/app/embedded/pop-ups/dialog-quali/dialog-quali.component.html:4
- src/app/embedded/quality-report/quality-report.component.html:9
@@ -385,7 +383,6 @@
src/app/embedded/pop-ups/dialog-quali/dialog-quali.component.html:5
- src/app/embedded/quality-report/quality-report.component.html:9
@@ -394,7 +391,6 @@
src/app/embedded/pop-ups/dialog-quali/dialog-quali.component.html:6
- src/app/embedded/quality-report/quality-report.component.html:9
@@ -404,7 +400,6 @@
src/app/embedded/pop-ups/dialog-quali/dialog-quali.component.html:14
src/app/embedded/pop-ups/dialog-uploads/dialog-uploads.component.html:13
- src/app/embedded/quality-report/quality-report.component.html:14
src/app/embedded/uploads/uploads.component.html:74
@@ -439,26 +434,90 @@
src/app/embedded/quality-report/quality-report.component.html:4
- src/app/teiler/quality-report.service.ts:13
+ src/app/teiler/quality-report.service.ts:22
-
+
+
+ src/app/embedded/quality-report/quality-report.component.html:14
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:15
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:19
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:22
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:26
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:27
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:28
+
+
+
+
+
+
+
+ src/app/embedded/quality-report/quality-report.component.html:29
+
+
+
+
+
+
- src/app/embedded/quality-report/quality-report.component.html:7
+ src/app/embedded/quality-report/quality-report.component.html:54
-
+
-
+
- src/app/embedded/quality-report/quality-report.component.html:34
+ src/app/embedded/quality-report/quality-report.component.html:59
-
+
@@ -736,7 +795,7 @@
- src/app/teiler/quality-report.service.ts:10
+ src/app/teiler/quality-report.service.ts:19
Startzeit: {{todayWithPipe}}
Verstrichene Laufzeit: 0 min
Restlaufzeit: 0 min
-
-
-
diff --git a/src/app/embedded/quality-report/quality-report.component.ts b/src/app/embedded/quality-report/quality-report.component.ts
index 9c45f4e..0004500 100644
--- a/src/app/embedded/quality-report/quality-report.component.ts
+++ b/src/app/embedded/quality-report/quality-report.component.ts
@@ -1,16 +1,33 @@
-import {Component, OnInit, ViewChild} from '@angular/core';
+import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute} from "@angular/router";
import {DatePipe} from '@angular/common';
import {MatTableDataSource} from "@angular/material/table";
import {MatPaginator} from "@angular/material/paginator";
-
+import {QualityReportService, reportLog} from "../../teiler/quality-report.service";
+import {Subscription} from "rxjs";
export interface QualityReports {
- zeitstempel: string;
- version: string;
+ id: string;
+ path: string;
+ timestamp: string;
+ "template-id": string;
}
+export interface QBResponse {
+ responseUrl: URL;
+}
+export interface Templates {
+ value: string;
+ display: string
+}
+export enum QBStatus {
+ OK = "OK",
+ RUNNING = "RUNNING",
+ NOT_FOUND = "NOT_FOUND",
+ EMPTY = "EMPTY",
+ ERROR = "ERROR"
+}
@Component({
selector: 'quality-report-app',
@@ -19,51 +36,33 @@ export interface QualityReports {
})
-export class QualityReportComponent implements OnInit {
- EmpData: QualityReports[] = [
- {zeitstempel: '2022-09-27 10:25:43', version: '002'},
- {zeitstempel: '2022-07-29 14:37:31', version: '002'},
- {zeitstempel: '2022-02-28 10:27:22', version: '002'},
- {zeitstempel: '2022-02-08 17:31:11', version: '002'},
- {zeitstempel: '2022-02-07 14:27:01', version: '002'},
- {zeitstempel: '2021-10-30 19:46:54', version: '002'},
- {zeitstempel: '2021-10-25 08:18:20', version: '002'},
- {zeitstempel: '2021-10-21 15:28:43', version: '002'},
- {zeitstempel: '2021-10-21 10:25:10', version: '002'},
- {zeitstempel: '2021-10-01 10:37:27', version: '002'},
- {zeitstempel: '2021-06-10 15:45:21', version: '002'},
- {zeitstempel: '2021-06-10 15:45:19', version: '002'},
- {zeitstempel: '2020-09-18 11:50:05', version: '002'},
- {zeitstempel: '2020-08-07 13:53:58', version: '002'},
- {zeitstempel: '2019-10-01 15:18:20', version: '002'},
- {zeitstempel: '2019-08-16 11:35:56', version: '002'},
- {zeitstempel: '2019-08-15 16:32:11', version: '002'},
- {zeitstempel: '2019-08-15 16:00:17', version: '002'},
- {zeitstempel: '2019-08-15 14:25:09', version: '002'},
- {zeitstempel: '2019-08-09 09:51:30', version: '002'},
-
- ];
+export class QualityReportComponent implements OnInit, OnDestroy {
//table
- displayedColumns: string[] = ['zeitstempel', 'version'];
- dataSource =new MatTableDataSource(this.EmpData);
- numberOfItemsToBeDisplayedDefault = "zero";
-
- //toggle
- isShowDivIf = true;
-
- toggleDisplayDivIf() {
- this.isShowDivIf = !this.isShowDivIf;
- }
+ displayedColumns: string[] = ['timestamp', 'templateid', 'link'];
+ dataSource = new MatTableDataSource25%
+
+
-
+
+ Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QB wird erstellt ...
+ QB wurde erfolgreich erstellt.
+ QB wurde nicht gefunden.
+ Ein Fehler ist aufgetreten.
+
+
+
+
+
+ Reporter Log:
+ {{log}}
+
- Exporter Log:
+ {{log}}
-requesting local data management statistics
-requesting local data management results
- Suche:
-
-
Zeitstempel |
- {{element.zeitstempel}} | +{{element.timestamp | date: 'medium'}} | +Template-ID |
+ {{element['template-id']}} | Version | -{{element.version}} | +Link | +Download |
---|
-
+