tfabrica
Version:
library for TFabrica - TechSol
117 lines (90 loc) • 3.47 kB
text/typescript
import { Injectable, OnInit } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { TfabricaUserData } from '../models/tfabrica.userdata.model';
import { TfabricaSettingsData } from '../models/tfabrica.settings.model';
import { TfabricaUserMenu } from '../models/tfabrica.usermenu.model';
()
export class TfabricaSharedService implements OnInit {
public appSettings: TfabricaSettingsData;
public userData: TfabricaUserData;
public currentLang: string = "";
public supportedLanguages: any[];
public selectedVoice: TfabricaUserMenu;
private _changeUserData = new Subject<TfabricaUserData>();
private _toggleMainLeftSidenav = new Subject<boolean>();
private _translationsReady = new Subject<boolean>();
private _changeTranslationsLanguage = new Subject<string>();
userDataLogged$ = this._changeUserData.asObservable();
mainLeftSidenavToggled$ = this._toggleMainLeftSidenav.asObservable();
translationsReady$ = this._translationsReady.asObservable();
changeTranslationsLanguage$ = this._changeTranslationsLanguage.asObservable();
constructor(
) {
}
ngOnInit() {
this.userData = new TfabricaUserData();
this.currentLang = "en";
this.selectedVoice = new TfabricaUserMenu();
}
userLogged(userData: TfabricaUserData) {
console.log("TfabricaSharedService userLogged:");
this.userData = userData;
if (userData != null) {
this.selectLang(userData.language);
}
this._changeUserData.next(userData);
localStorage.setItem('userData', JSON.stringify(this.userData));
}
logout() {
localStorage.removeItem('userData');
}
translationsIsReady(supportedLanguages: any[]) {
this.supportedLanguages = supportedLanguages;
this._translationsReady.next(true);
}
toggleMainLeftSidenav(status: boolean) {
this._toggleMainLeftSidenav.next(status);
}
getUser() {
//return this.tfabricaLoginService.getUser();
return this.userData;
}
isLogged() {
try {
this.userData = JSON.parse(localStorage.getItem('userData'));
} catch (err) { }
if (this.userData == null) {
return false;
} else {
return this.userData.isLogged;
}
}
isCurrentLang(lang: string) {
// check if the selected lang is current lang
return lang === this.currentLang;
}
selectLang(lang: string) {
// set current lang;
if (this.userData == null) {
this.userData = new TfabricaUserData();
this.userData.isLogged = false;
}
this.currentLang = lang;
this.userData.language = lang;
this._changeTranslationsLanguage.next(lang);
}
setAppSettings(appSettings: TfabricaSettingsData) {
this.appSettings = appSettings;
}
public setSelectedVoice(voice) {
this.selectedVoice = voice;
localStorage.setItem('selectedVoice', JSON.stringify(this.selectedVoice));
}
public returnSelectedVoice() {
console.log(localStorage.getItem('selectedVoice'));
return JSON.parse(localStorage.getItem('selectedVoice'));
}
public test() {
console.log("ciao");
}
}