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

    
69
  public get open() {
70
    return this.sidebarService.open;
71
  }
72

    
73

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