Project

General

Profile

1
import {ChangeDetectorRef, Component} from '@angular/core';
2
import {ActivatedRoute, NavigationEnd, Router} from '@angular/router';
3

    
4
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
5
import {EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
6
import {User} from './openaireLibrary/login/utils/helper.class';
7
import {UserManagementService} from "./openaireLibrary/services/user-management.service";
8
import {SideBarService} from "./library/sharedComponents/sidebar/sideBar.service";
9
import {StakeholderService} from "./services/stakeholder.service";
10

    
11
@Component({
12
  selector: 'app-root',
13
  templateUrl: './app.component.html'
14
})
15
export class AppComponent {
16
  properties: EnvProperties;
17
  user: User;
18
  loginCheck: boolean = false;
19
  hasSidebar: boolean = false;
20

    
21
  constructor(private  route: ActivatedRoute,
22
              private propertiesService: EnvironmentSpecificService,
23
              private router: Router,
24
              private userManagementService: UserManagementService,
25
              private sideBarService: SideBarService,
26
              private stakeholderService: StakeholderService,
27
              private cdr: ChangeDetectorRef) {
28
  }
29

    
30
  ngOnInit() {
31
    this.router.events.forEach((event) => {
32
      if (event instanceof NavigationEnd) {
33
        let r = this.route;
34
        while (r.firstChild) {
35
          r = r.firstChild;
36
        }
37
        r.params.subscribe(params => {
38
          if(params['stakeholder']) {
39
            if(!this.stakeholderService.stakeholder ||
40
              this.stakeholderService.stakeholder.alias !== params['stakeholder']) {
41
              this.stakeholderService.getStakeholder(params['stakeholder']).subscribe(stakeholder => {
42
                this.stakeholderService.setStakeholder(stakeholder);
43
              });
44
            }
45
          } else {
46
            this.stakeholderService.setStakeholder(null);
47
          }
48
        });
49
      }
50
    });
51
    this.propertiesService.loadEnvironment()
52
      .then(properties => {
53
        this.properties = properties;
54
        this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe(user => {
55
          this.user = user;
56
          this.loginCheck = true;
57
        }, error => {
58
          console.log("App couldn't fetch properties");
59
          console.log(error);
60
        });
61
      });
62
    this.sideBarService.hasSidebar.subscribe(hasSidebar => {
63
      this.hasSidebar = hasSidebar;
64
      this.cdr.detectChanges();
65
    });
66
  }
67

    
68
  public get open() {
69
    return this.sideBarService.open;
70
  }
71

    
72

    
73
  public toggleOpen(event = null) {
74
    if(!event) {
75
      this.sideBarService.setOpen(!this.open);
76
    } else if(event && event['value'] === true) {
77
      this.sideBarService.setOpen(false);
78
    }
79
  }
80
}
(3-3/5)