UNPKG

tfabrica

Version:

library for TFabrica - TechSol

117 lines (90 loc) 3.47 kB
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'; @Injectable() 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"); } }