2018-06-19 16:55:50 +02:00
|
|
|
import { Title } from '@angular/platform-browser';
|
2018-07-12 14:11:31 +02:00
|
|
|
import { OpenSlidesComponent } from './openslides.component';
|
2018-08-03 15:16:40 +02:00
|
|
|
import { TranslateService } from '@ngx-translate/core';
|
2018-06-19 16:55:50 +02:00
|
|
|
|
2018-07-12 14:11:31 +02:00
|
|
|
/**
|
|
|
|
* Provides functionalities that will be used by most components
|
|
|
|
* currently able to set the title with the suffix ' - OpenSlides 3'
|
|
|
|
*
|
|
|
|
* A BaseComponent is an OpenSlides Component.
|
|
|
|
* Components in the 'Side'- or 'projector' Folder are BaseComponents
|
|
|
|
*/
|
|
|
|
export abstract class BaseComponent extends OpenSlidesComponent {
|
|
|
|
/**
|
|
|
|
* To manipulate the browser title bar, adds the Suffix "OpenSlides 3"
|
|
|
|
*
|
|
|
|
* Might be a config variable later at some point
|
|
|
|
*/
|
2018-06-19 16:55:50 +02:00
|
|
|
private titleSuffix = ' - OpenSlides 3';
|
|
|
|
|
2018-07-12 14:11:31 +02:00
|
|
|
/**
|
|
|
|
* Child constructor that implements the titleServices and calls Super from OpenSlidesComponent
|
|
|
|
*/
|
2018-08-29 13:21:25 +02:00
|
|
|
public constructor(protected titleService?: Title, protected translate?: TranslateService) {
|
2018-07-12 14:11:31 +02:00
|
|
|
super();
|
2018-07-04 17:51:31 +02:00
|
|
|
}
|
2018-06-19 16:55:50 +02:00
|
|
|
|
2018-07-12 14:11:31 +02:00
|
|
|
/**
|
|
|
|
* Set the title in web browser using angulars TitleService
|
|
|
|
* @param prefix The title prefix. Should be translated here.
|
|
|
|
* TODO Might translate the prefix here?
|
|
|
|
*/
|
2018-08-29 13:21:25 +02:00
|
|
|
public setTitle(prefix: string): void {
|
2018-08-03 15:16:40 +02:00
|
|
|
const translatedPrefix = this.translate.instant(prefix);
|
|
|
|
this.titleService.setTitle(translatedPrefix + this.titleSuffix);
|
2018-06-19 16:55:50 +02:00
|
|
|
}
|
|
|
|
}
|