Project

General

Profile

1
import {Component, OnDestroy, OnInit} from '@angular/core';
2
import {ActivatedRoute, Router} from '@angular/router';
3
import {Title} from '@angular/platform-browser';
4
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
5

    
6
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
7
import {ErrorMessagesComponent} from '../openaireLibrary/utils/errorMessages.component';
8
import {Stakeholder, Topic} from "../utils/entities/stakeholder";
9
import {SideBarService} from "../library/sharedComponents/sidebar/sideBar.service";
10
import {StakeholderService} from "../services/stakeholder.service";
11

    
12
declare var UIkit;
13

    
14
@Component({
15
  selector: 'home',
16
  templateUrl: './home.component.html',
17
})
18
export class HomeComponent implements OnInit, OnDestroy {
19
  public status: number;
20
  public loading: boolean = true;
21
  public errorCodes: ErrorCodes;
22
  public stakeholder: Stakeholder;
23
  public analysisOpen: boolean = true;
24
  private errorMessages: ErrorMessagesComponent;
25
  public topic: Topic;
26
  public valid = true;
27
  properties: EnvProperties;
28

    
29
  constructor(
30
    private route: ActivatedRoute,
31
    private router: Router,
32
    private title: Title,
33
    private sideBarService: SideBarService,
34
    private stakeholderService: StakeholderService) {
35
    this.errorCodes = new ErrorCodes();
36
    this.errorMessages = new ErrorMessagesComponent();
37
    this.status = this.errorCodes.LOADING;
38
  }
39

    
40
  public ngOnInit() {
41
    this.route.data
42
      .subscribe((data: { envSpecific: EnvProperties }) => {
43
        this.properties = data.envSpecific;
44
        this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
45
          if (stakeholder) {
46
            this.sideBarService.setHasSidebar(true);
47
            this.stakeholder = stakeholder;
48
            this.topic = null;
49
            this.title.setTitle(stakeholder.index_name);
50
          }
51
        });
52
      });
53
  }
54

    
55
  public ngOnDestroy() {
56
  }
57

    
58
  public newTopicOpen() {
59
    this.topic = new Topic(null, null, null,true, true);
60
    this.valid = true;
61
  }
62

    
63
  public close(element) {
64
    UIkit.drop(element).hide();
65
  }
66

    
67
  get open(): boolean {
68
    return this.sideBarService.open;
69
  }
70

    
71
  public toggleOpen(event = null) {
72
    if (!event) {
73
      this.sideBarService.setOpen(!this.open);
74
    } else if (event && event['value'] === true) {
75
      this.sideBarService.setOpen(false);
76
    }
77
  }
78

    
79
  public createTopic(element) {
80
    if(this.topic.name && this.topic.name !== '') {
81
      this.topic.alias = this.topic.name.toLowerCase();
82
      this.stakeholder.topics.push(this.topic);
83
      this.close(element);
84
    } else {
85
      this.valid = false;
86
    }
87
  }
88
}
(3-3/4)