Skip to content
Snippets Groups Projects
header.service.ts 1.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • Damien's avatar
    Damien committed
    import { Injectable } from '@angular/core';
    
    import { HttpClient } from '@angular/common/http';
    import { LANG } from '../app/translate.component';
    
    import { tap, catchError, map } from 'rxjs/operators';
    
    import { of } from 'rxjs';
    
    Damien's avatar
    Damien committed
    
    @Injectable()
    export class HeaderService {
    
        headerMessageIcon: string = "";
    
        headerMessage: string = "";
        subHeaderMessage: string = "";
    
        user: any = { firstname: "", lastname: "", groups : [], privileges : [] };
    
        nbResourcesFollowed: number = 0;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    
    
        constructor(public http: HttpClient) { }
    
        loadHeader() {
    
            this.http.get('../../rest/header').pipe(
                tap((data: any) => this.setUser(data.user)),
    
                catchError((err: any) => {
                    console.log(err);
                    return of(false);
                })
            ).subscribe();
        }
    
    
        resfreshCurrentUser() {
            this.http.get('../../rest/currentUser/profile')
                .pipe(
                    map((data: any) => {
                        this.user = {
                            id: data.id,
                            userId: data.user_id,
                            firstname: data.firstname,
                            lastname: data.lastname,
                            entities: data.entities,
                            groups: data.groups,
    
                            preferences: data.preferences,
    
                            privileges: data.privileges[0] === 'ALL_PRIVILEGES' ? this.user.privileges : data.privileges
    
        setUser(user: any) {
            this.user = user;
        }
    
    
        setHeader(maintTitle: string, subTitle: any = '', icon = '') {
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            this.headerMessage = maintTitle;
            this.subHeaderMessage = subTitle;
    
            this.headerMessageIcon = icon;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
        }
    
    
        removeFollowedDocument() {
            this.nbResourcesFollowed--;
        }
    
        addFollowedDocument() {
            this.nbResourcesFollowed++;
        }
    
    Damien's avatar
    Damien committed
    }