Read and observe config values in start page
This commit is contained in:
parent
b64b49cc2e
commit
fcc5c008a1
@ -4,10 +4,13 @@
|
|||||||
|
|
||||||
<mat-card class="os-card">
|
<mat-card class="os-card">
|
||||||
<div class="app-content" translate>
|
<div class="app-content" translate>
|
||||||
<span>{{'Welcome to OpenSlides' | translate}}</span>
|
|
||||||
|
<h4> {{welcomeTitle | translate}} </h4>
|
||||||
|
<span> {{welcomeText | translate}} </span>
|
||||||
<br/>
|
<br/>
|
||||||
<!-- <p translate [translateParams]="{user: 'Tim'}">Hello user</p> -->
|
<!-- example to translate with parameters -->
|
||||||
<p>{{'Hello user' | translate:username}}</p>
|
<p>{{'Hello user' | translate:username}}</p>
|
||||||
|
|
||||||
<button type="button" (click)="DataStoreTest()">DataStoreTest</button>
|
<button type="button" (click)="DataStoreTest()">DataStoreTest</button>
|
||||||
<br/>
|
<br/>
|
||||||
<button type="button" (click)="TranslateTest()">Translate in console</button>
|
<button type="button" (click)="TranslateTest()">Translate in console</button>
|
||||||
|
@ -7,6 +7,7 @@ import { TranslateService } from '@ngx-translate/core'; //showcase
|
|||||||
// for testing the DS and BaseModel
|
// for testing the DS and BaseModel
|
||||||
import { OperatorService } from 'app/core/services/operator.service';
|
import { OperatorService } from 'app/core/services/operator.service';
|
||||||
import { User } from 'app/shared/models/users/user';
|
import { User } from 'app/shared/models/users/user';
|
||||||
|
import { Config } from '../../shared/models/core/config';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-start',
|
selector: 'app-start',
|
||||||
@ -14,18 +15,69 @@ import { User } from 'app/shared/models/users/user';
|
|||||||
styleUrls: ['./start.component.css']
|
styleUrls: ['./start.component.css']
|
||||||
})
|
})
|
||||||
export class StartComponent extends BaseComponent implements OnInit {
|
export class StartComponent extends BaseComponent implements OnInit {
|
||||||
//useage of translation with variables in code and view
|
welcomeTitle: string;
|
||||||
|
welcomeText: string;
|
||||||
username = { user: this.operator.username };
|
username = { user: this.operator.username };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor of the StartComponent
|
||||||
|
*
|
||||||
|
* @param titleService the title serve
|
||||||
|
* @param translate to translation module
|
||||||
|
* @param operator operator
|
||||||
|
*/
|
||||||
constructor(titleService: Title, protected translate: TranslateService, private operator: OperatorService) {
|
constructor(titleService: Title, protected translate: TranslateService, private operator: OperatorService) {
|
||||||
super(titleService, translate);
|
super(titleService, translate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init the component.
|
||||||
|
*
|
||||||
|
* Sets the welcomeTitle and welcomeText.
|
||||||
|
* Tries to read them from the DataStore (which will fail initially)
|
||||||
|
* And observes DataStore for changes
|
||||||
|
* Set title and observe DataStore for changes.
|
||||||
|
*/
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
//required dummy translation, cause translations for config values were never set
|
||||||
|
const welcomeTitleTranslateDummy = this.translate.instant('Welcome to OpenSlides');
|
||||||
super.setTitle('Home');
|
super.setTitle('Home');
|
||||||
|
|
||||||
|
//set welcome title and text
|
||||||
|
const welcomeTitleConfig = this.DS.filter(
|
||||||
|
Config,
|
||||||
|
config => config.key === 'general_event_welcome_title'
|
||||||
|
)[0] as Config;
|
||||||
|
|
||||||
|
if (welcomeTitleConfig) {
|
||||||
|
this.welcomeTitle = welcomeTitleConfig.value as string;
|
||||||
}
|
}
|
||||||
|
|
||||||
//quick testing of some data store functions
|
const welcomeTextConfig = this.DS.filter(
|
||||||
|
Config,
|
||||||
|
config => config.key === 'general_event_welcome_text'
|
||||||
|
)[0] as Config;
|
||||||
|
|
||||||
|
if (welcomeTextConfig) {
|
||||||
|
this.welcomeText = welcomeTextConfig.value as string;
|
||||||
|
}
|
||||||
|
console.log(this.DS.filter(Config, config => config.key === 'general_event_welcome_title'));
|
||||||
|
|
||||||
|
//observe title and text in DS
|
||||||
|
this.DS.getObservable().subscribe(newModel => {
|
||||||
|
if (newModel instanceof Config) {
|
||||||
|
if (newModel.key === 'general_event_welcome_title') {
|
||||||
|
this.welcomeTitle = newModel.value as string;
|
||||||
|
} else if (newModel.key === 'general_event_welcome_text') {
|
||||||
|
this.welcomeText = newModel.value as string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* test data store
|
||||||
|
*/
|
||||||
DataStoreTest() {
|
DataStoreTest() {
|
||||||
console.log('add a user to dataStore');
|
console.log('add a user to dataStore');
|
||||||
this.DS.add(new User(100));
|
this.DS.add(new User(100));
|
||||||
@ -53,11 +105,16 @@ export class StartComponent extends BaseComponent implements OnInit {
|
|||||||
console.log(this.DS.filter(User, user => user.id === 1));
|
console.log(this.DS.filter(User, user => user.id === 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function to print datastore
|
||||||
|
*/
|
||||||
giveDataStore() {
|
giveDataStore() {
|
||||||
this.DS.printWhole();
|
this.DS.printWhole();
|
||||||
}
|
}
|
||||||
|
|
||||||
// shows how to use synchronous translations:
|
/**
|
||||||
|
* test translations in component
|
||||||
|
*/
|
||||||
TranslateTest() {
|
TranslateTest() {
|
||||||
console.log('lets translate the word "motion" in the current in the current lang');
|
console.log('lets translate the word "motion" in the current in the current lang');
|
||||||
console.log('Motions in ' + this.translate.currentLang + ' is ' + this.translate.instant('Motions'));
|
console.log('Motions in ' + this.translate.currentLang + ' is ' + this.translate.instant('Motions'));
|
||||||
|
Loading…
Reference in New Issue
Block a user