Nav Bar Language selector can properly be stored to the user's settings and is hidden on the User's profile page (ref #228)

This commit is contained in:
George Kalampokis 2020-01-28 18:31:21 +02:00
parent 0bebdae163
commit 781be46031
3 changed files with 27 additions and 10 deletions

View File

@ -28,14 +28,14 @@ import java.util.Map;
* Created by ikalyvas on 5/30/2018.
*/
@Service("logger")
//@Service("logger")
public class HttpRemoteLogger extends AbstractBatchLogger implements Logger {
private RestTemplate rest;
private HttpHeaders headers;
private Environment environment;
@Autowired
//@Autowired
public HttpRemoteLogger(Environment environment) {
super(environment);
this.rest = new RestTemplate();

View File

@ -36,7 +36,7 @@
</mat-menu>
</div> -->
<div class="col-md-auto" *ngIf="!(isAuthenticated() && onLanguageEditor())">
<div class="col-md-auto" *ngIf="!(isAuthenticated() && onInvalidUrl())">
<button mat-icon-button [matMenuTriggerFor]="languageMenu">
<mat-icon>language</mat-icon>
</button>

View File

@ -9,9 +9,8 @@ import { BaseComponent } from '@common/base/base.component';
import { takeUntil } from 'rxjs/operators';
import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component';
import { DATASETS_ROUTES, DMP_ROUTES, GENERAL_ROUTES } from '../sidebar/sidebar.component';
import { TranslateService } from '@ngx-translate/core';
import { Language } from '@app/models/language/Language';
import { LanguageService } from '@app/core/services/language/language.service';
import { UserService } from '@app/core/services/user/user.service';
const availableLanguages: any[] = require('../../../assets/resources/language.json');
@ -38,7 +37,8 @@ export class NavbarComponent extends BaseComponent implements OnInit {
private authentication: AuthService,
private dialog: MatDialog,
private progressIndicationService: ProgressIndicationService,
private languageService: LanguageService
private languageService: LanguageService,
private userService: UserService
) {
super();
this.location = location;
@ -72,8 +72,8 @@ export class NavbarComponent extends BaseComponent implements OnInit {
return !(!this.authentication.current());
}
public onLanguageEditor(): boolean {
return this.currentRoute === '/language-editor';
public onInvalidUrl(): boolean {
return this.currentRoute === '/language-editor' || this.currentRoute === '/profile';
}
sidebarOpen() {
@ -200,7 +200,24 @@ export class NavbarComponent extends BaseComponent implements OnInit {
}
onLanguageSelected(selectedLanguage: any) {
this.languageService.changeLanguage(selectedLanguage.value);
this.router.navigate([this.router.url]);
if (this.isAuthenticated()) {
const langMap = new Map<string, string>();
langMap.set('language', selectedLanguage.value);
this.userService.updateUserSettings({language: selectedLanguage})
.pipe(takeUntil(this._destroyed))
.subscribe((response) => {
this.languageService.changeLanguage(selectedLanguage.value);
this.authentication.me()
.pipe(takeUntil(this._destroyed))
.subscribe ( innerResponse =>
{this.router.navigate([this.router.url]);});
},
error => {
console.log(error);
});
} else {
this.languageService.changeLanguage(selectedLanguage.value);
this.router.navigate([this.router.url]);
}
}
}