diff --git a/src/app/components/home/home.component.ts b/src/app/components/home/home.component.ts
index 89f52f4..4c103f2 100644
--- a/src/app/components/home/home.component.ts
+++ b/src/app/components/home/home.component.ts
@@ -13,7 +13,7 @@ export class HomeComponent implements OnInit {
ngOnInit() {
// fix up the language, fetch it from the route!
- this.stateService.getLanguageFromRoute(this.route).subscribe(language => {console.log('homecomp gets: ' + language); });
+ this.stateService.getLanguageFromRoute(this.route.parent).subscribe(language => {console.log('homecomp gets: ' + language); });
}
}
diff --git a/src/app/components/languagetoggle/languagetoggle.component.ts b/src/app/components/languagetoggle/languagetoggle.component.ts
index 8ce445e..61b4c0c 100644
--- a/src/app/components/languagetoggle/languagetoggle.component.ts
+++ b/src/app/components/languagetoggle/languagetoggle.component.ts
@@ -19,21 +19,26 @@ export class LanguagetoggleComponent implements OnInit {
/**
* if this is set to true, the component will be visible
*/
- private show: boolean;
+ private show = false;
constructor(private route: ActivatedRoute, private stateService: StateService) {
}
ngOnInit() {
this.stateService.getLanguageFromRoute(this.route).subscribe(lang => {
- console.log('languagetoggle gets this language: '+ lang);
- console.log('('+this.language+')')
+ console.log('languagetoggle gets this language: ' + lang);
+ console.log('(' + this.language + ')')
if (lang === this.language) {
- console.log('equalled! showing the component');
+ console.log('equalled (first level of route)! showing the component');
+ this.show = true;
+ }
+ });
+ this.stateService.getLanguageFromRoute(this.route.parent).subscribe(lang => {
+ console.log('languagetoggle gets this language from parent: ' + lang);
+ console.log('(' + this.language + ')')
+ if (lang === this.language) {
+ console.log('equalled (parent level of route)! showing the component');
this.show = true;
- } else {
- console.log('not equalled! not showing the component');
- this.show = false;
}
});
}
diff --git a/src/app/components/root/root.component.html b/src/app/components/root/root.component.html
index 88fe98a..78627c2 100644
--- a/src/app/components/root/root.component.html
+++ b/src/app/components/root/root.component.html
@@ -21,6 +21,7 @@
+
@@ -30,7 +31,7 @@
- {{getPageType()}}
+ {{pageType$ | async}}
diff --git a/src/app/components/root/root.component.scss b/src/app/components/root/root.component.scss
index 58fe3b4..fd32f77 100644
--- a/src/app/components/root/root.component.scss
+++ b/src/app/components/root/root.component.scss
@@ -69,7 +69,7 @@
//background-color: aqua;
position: absolute;
width: 100%;
- bottom: -3px;
+ bottom: 0px;
left: 0px;
font-size: 89%;
text-align: center;
diff --git a/src/app/components/root/root.component.ts b/src/app/components/root/root.component.ts
index aad00b8..472fe56 100644
--- a/src/app/components/root/root.component.ts
+++ b/src/app/components/root/root.component.ts
@@ -1,5 +1,9 @@
-import { Component, OnInit } from '@angular/core';
+import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
+import {StateService} from '../../services/state.service';
+import {Observable} from 'rxjs/Observable';
+
+import 'rxjs/add/operator/first';
@Component({
selector: 'app-root',
@@ -10,24 +14,33 @@ export class RootComponent implements OnInit {
title = 'Joachim Homepage';
mousingOver: string = null;
+ pageType$: Observable;
- constructor(private router: Router, private route: ActivatedRoute) { }
+ constructor(private router: Router, private route: ActivatedRoute, private stateService: StateService) {
+ }
ngOnInit() {
console.log('oninit of root component');
this.route.paramMap.subscribe(val => console.log(val));
- }
- getPageType() {
- if (this.router.url.endsWith('posts')) {
+
+ this.stateService.getLanguageFromRoute(this.route).subscribe(val => {console.log('ngoninit root' + val)});
+
+ this.pageType$ = this.stateService.getLanguageFromRoute(this.route).map(language => {
+ if (this.router.url.endsWith('posts')) {
return 'Posts';
- }
- if (this.router.url.endsWith('cv')) {
- return 'Curricululm Vitae';
- }
- if ( this.router.url.endsWith('home')) {
- return 'Home';
- }
- return 'Joa did something wrong...'
+ }
+ if (this.router.url.endsWith('cv')) {
+ return 'Curriculum Vitae';
+ }
+ if (this.router.url.endsWith('home')) {
+ if (language === 'nl') {
+ return 'Intro';
+ } else {
+ return 'Home';
+ }
+ }
+ return 'Joa did something wrong...'
+ });
}
mouseOver(s: string) {
@@ -38,4 +51,16 @@ export class RootComponent implements OnInit {
mouseOut(s: string) {
this.mousingOver = null;
}
+
+ toggleLanguage() {
+ this.stateService.getLanguageFromRoute(this.route).first().subscribe(val => {
+ if (val === 'nl') {
+ this.stateService.setLanguage('en', this.route, this.router);
+ } else if (val === 'en') {
+ this.stateService.setLanguage('nl', this.route, this.router);
+ } else {
+ console.log('Could not toggle the language, pirates stole your tongue.');
+ }
+ });
+ }
}
diff --git a/src/app/services/state.service.ts b/src/app/services/state.service.ts
index 1f57ebd..02d823e 100644
--- a/src/app/services/state.service.ts
+++ b/src/app/services/state.service.ts
@@ -1,6 +1,6 @@
import {Injectable, OnInit} from '@angular/core';
import {Post} from '../model/post';
-import {ActivatedRoute, ParamMap} from '@angular/router';
+import {ActivatedRoute, ParamMap, Router} from '@angular/router';
import 'rxjs/add/operator/filter';
import {Observable} from 'rxjs/Observable';
@@ -20,7 +20,7 @@ export class StateService {
* @returns {Observable}
*/
getLanguageFromRoute(route: ActivatedRoute): Observable {
- return route.parent.paramMap.map((params: ParamMap) => {
+ return route.paramMap.map((params: ParamMap) => {
const temp = params.get('language');
return temp;
});
@@ -74,4 +74,24 @@ export class StateService {
this.tagFilter[tag] = !this.tagFilter[tag];
}
}
+
+ setLanguage(language: string, route: ActivatedRoute, router: Router) {
+ console.log('setting language: '+language);
+ // // check out the current route
+ // route.pathFromRoot.forEach(path=>{
+ // console.log(path);
+ // console.log(path.routeConfig);
+ // });
+ router.navigate([language]);
+
+ // route.url.subscribe(segments => {
+ // console.log(segments);
+ // //now also do the children
+ // route.children.forEach(child => {
+ // child.url.subscribe(childsegment => {
+ // console.log(childsegment);
+ // });
+ // });
+ // });
+ }
}