Skip to content
Snippets Groups Projects
Commit 36463968 authored by paflov's avatar paflov
Browse files

lints

parent dbe9f7e3
No related branches found
No related tags found
No related merge requests found
import { Component, OnInit } from '@angular/core';
import { SysCheckDataService } from '../sys-check-data.service';
import { ReportEntry } from '../sys-check.interfaces';
import {CustomtextService} from "iqb-components";
@Component({
styleUrls: ['../sys-check.component.css'],
templateUrl: './welcome.component.html'
})
export class WelcomeComponent implements OnInit {
private report: Map<string, ReportEntry> = new Map<string, ReportEntry>();
private rating = {
browser: {
'Chrome': 79,
'Safari': 13,
'Edge': 79,
'Firefox': 72,
Chrome: 79,
Safari: 13,
Edge: 79,
Firefox: 72,
'Internet Explorer': 11,
'Opera': 64
Opera: 64
},
screen: {
width: 800,
......@@ -30,7 +28,7 @@ export class WelcomeComponent implements OnInit {
public ds: SysCheckDataService
) { }
ngOnInit() {
ngOnInit(): void {
setTimeout(() => {
this.ds.setNewCurrentStep('w');
this.getBrowser(); // fallback if UAParser does not work
......@@ -42,27 +40,42 @@ export class WelcomeComponent implements OnInit {
this.rateBrowser();
const report = Array.from(this.report.values())
.sort((item1: ReportEntry, item2: ReportEntry) => (item1.label > item2.label) ? 1 : -1);
.sort((item1: ReportEntry, item2: ReportEntry) => (item1.label > item2.label ? 1 : -1));
this.ds.environmentReport = Object.values(report);
})
});
}
private getBrowser() {
const userAgent = window.navigator.userAgent;
// eslint-disable-next-line max-len
const regex = /(MSIE|Trident|(?!Gecko.+)Firefox|(?!AppleWebKit.+Chrome.+)Safari(?!.+Edge)|(?!AppleWebKit.+)Chrome(?!.+Edge)|(?!AppleWebKit.+Chrome.+Safari.+)Edge|AppleWebKit(?!.+Chrome|.+Safari)|Gecko(?!.+Firefox))(?: |\/)([\d\.apre]+)/;
// credit due to: https://gist.github.com/ticky/3909462#gistcomment-2245669
const deviceInfoSplits = regex.exec(userAgent);
const helperRegex = /[^.]*/;
const browserInfo = helperRegex.exec(deviceInfoSplits[0]);
const browserInfoSplits = browserInfo[0].split('/');
this.report.set('Browser', {'id': 'browser', 'type': 'environment', 'label': 'Browser', 'value': browserInfoSplits[0], 'warning': false});
this.report.set('Browser-Version', {'id': 'browser-version', 'type': 'environment', 'label': 'Browser-Version', 'value': browserInfoSplits[1], 'warning': false});
this.report.set('Browser', {
id: 'browser',
type: 'environment',
label: 'Browser',
value: browserInfoSplits[0],
warning: false
});
this.report.set('Browser-Version', {
id: 'browser-version',
type: 'environment',
label: 'Browser-Version',
value: browserInfoSplits[1],
warning: false
});
}
private getFromUAParser() {
// eslint-disable-next-line @typescript-eslint/dot-notation
if (typeof window['UAParser'] === 'undefined') {
return;
}
// eslint-disable-next-line @typescript-eslint/dot-notation
const uaInfos = window['UAParser']();
[
['cpu', 'architecture', 'CPU-Architektur'],
......@@ -75,7 +88,13 @@ export class WelcomeComponent implements OnInit {
['os', 'version', 'Betriebsystem-Version']
].forEach((item: Array<string>) => {
if ((typeof uaInfos[item[0]] !== 'undefined') && (typeof uaInfos[item[0]][item[1]] !== 'undefined')) {
this.report.set(item[2], {'id': item[2], 'type': 'environment', 'label': item[2], 'value': uaInfos[item[0]][item[1]], 'warning': false});
this.report.set(item[2], {
id: item[2],
type: 'environment',
label: item[2],
value: uaInfos[item[0]][item[1]],
warning: false
});
}
});
}
......@@ -98,7 +117,13 @@ export class WelcomeComponent implements OnInit {
['language', 'Browser-Sprache']
].forEach((item: string[]) => {
if (typeof navigator[item[0]] !== 'undefined') {
this.report.set(item[1], {'id': item[0], 'type': 'environment', 'label': item[1], 'value': navigator[item[0]], 'warning': false});
this.report.set(item[1], {
id: item[0],
type: 'environment',
label: item[1],
value: navigator[item[0]],
warning: false
});
}
});
}
......@@ -107,11 +132,17 @@ export class WelcomeComponent implements OnInit {
if ((typeof navigator.plugins === 'undefined') || (!navigator.plugins.length)) {
return;
}
const pluginNames = Array<String>();
const pluginNames = Array<string>();
for (let i = 0; i < navigator.plugins.length; i++) {
pluginNames.push(navigator.plugins[i].name);
}
this.report.set('Browser-Plugins', {'id': 'browser-plugins', 'type': 'environment', 'label': 'Browser-Plugins', 'value': pluginNames.join(', '), 'warning': false});
this.report.set('Browser-Plugins', {
id: 'browser-plugins',
type: 'environment',
label: 'Browser-Plugins',
value: pluginNames.join(', '),
warning: false
});
}
private setOS() {
......@@ -140,14 +171,33 @@ export class WelcomeComponent implements OnInit {
} else {
osName = window.navigator.platform;
}
this.report.set('Betriebsystem', {'id': 'os', 'type': 'environment', 'label': 'Betriebsystem', 'value': osName, 'warning': false});
this.report.set('Betriebsystem', {
id: 'os',
type: 'environment',
label: 'Betriebsystem',
value: osName,
warning: false
});
}
private setScreenData() {
const isLargeEnough = (window.screen.width >= this.rating.screen.width) && (window.screen.height >= this.rating.screen.height);
this.report.set('Bildschirm-Auflösung', {'id': 'screen-resolution', 'type': 'environment', 'label': 'Bildschirm-Auflösung', 'value': window.screen.width + ' x ' + window.screen.height, 'warning': !isLargeEnough});
const isLargeEnough = (window.screen.width >= this.rating.screen.width) &&
(window.screen.height >= this.rating.screen.height);
this.report.set('Bildschirm-Auflösung', {
id: 'screen-resolution',
type: 'environment',
label: 'Bildschirm-Auflösung',
value: `${window.screen.width} x ${window.screen.height}`,
warning: !isLargeEnough
});
const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.offsetWidth;
const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.offsetHeight;
this.report.set('Fenster-Größe', {'id': 'screen-size', 'type': 'environment', 'label': 'Fenster-Größe', 'value': windowWidth + ' x ' + windowHeight, 'warning': false});
this.report.set('Fenster-Größe', {
id: 'screen-size',
type: 'environment',
label: 'Fenster-Größe',
value: `${windowWidth} x ${windowHeight}`,
warning: false
});
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment