76 lines
2.6 KiB
TypeScript
76 lines
2.6 KiB
TypeScript
import { Component } from '@angular/core';
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
import { OperatorService } from './core/services/operator.service';
|
|
import { LoginDataService } from './core/services/login-data.service';
|
|
import { ConfigService } from './core/services/config.service';
|
|
import { ConstantsService } from './core/services/constants.service';
|
|
|
|
/**
|
|
* Angular's global App Component
|
|
*/
|
|
@Component({
|
|
selector: 'os-root',
|
|
templateUrl: './app.component.html',
|
|
styleUrls: ['./app.component.scss']
|
|
})
|
|
export class AppComponent {
|
|
/**
|
|
* Master-component of all apps.
|
|
*
|
|
* Inits the translation service, the operator, the login data and the constants.
|
|
*
|
|
* Handles the altering of Array.toString()
|
|
*
|
|
* @param autoupdateService
|
|
* @param notifyService
|
|
* @param translate
|
|
*/
|
|
public constructor(
|
|
translate: TranslateService,
|
|
operator: OperatorService,
|
|
configService: ConfigService,
|
|
loginDataService: LoginDataService,
|
|
constantsService: ConstantsService // Needs to be started, so it can register itself to the WebsocketService
|
|
) {
|
|
// manually add the supported languages
|
|
translate.addLangs(['en', 'de', 'cs']);
|
|
// this language will be used as a fallback when a translation isn't found in the current language
|
|
translate.setDefaultLang('en');
|
|
// get the browsers default language
|
|
const browserLang = translate.getBrowserLang();
|
|
// try to use the browser language if it is available. If not, uses english.
|
|
translate.use(translate.getLangs().includes(browserLang) ? browserLang : 'en');
|
|
// change default JS functions
|
|
this.overloadArrayToString();
|
|
}
|
|
|
|
/**
|
|
* Function to alter the normal Array.toString - function
|
|
*
|
|
* Will add a whitespace after a comma and shorten the output to
|
|
* three strings.
|
|
*
|
|
* TODO: There might be a better place for overloading functions than app.component
|
|
* TODO: Overloading can be extended to more functions.
|
|
*/
|
|
private overloadArrayToString(): void {
|
|
Array.prototype.toString = function(): string {
|
|
let string = '';
|
|
const iterations = Math.min(this.length, 3);
|
|
|
|
for (let i = 0; i <= iterations; i++) {
|
|
if (i < iterations) {
|
|
string += this[i];
|
|
}
|
|
|
|
if (i < iterations - 1) {
|
|
string += ', ';
|
|
} else if (i === iterations && this.length > iterations) {
|
|
string += ', ...';
|
|
}
|
|
}
|
|
return string;
|
|
};
|
|
}
|
|
}
|