Project

General

Profile

1
import { Component, OnInit } from '@angular/core';
2
import { printPage } from '../../shared/reusablecomponents/print-function';
3
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
4
import { DataService } from '../../services/data.service';
5
import { DataHandlerService } from '../../services/data-handler.service';
6
import {CountryTableData, EuropeData} from '../../domain/overview-map-data';
7
import {environment} from '../../../environments/environment';
8
import {TreemapHighchartsData} from '../../domain/treemap-highcharts-data';
9

    
10
@Component({
11
  selector: 'app-data-view',
12
  templateUrl: './data-view.component.html',
13
})
14

    
15
export class DataViewComponent implements OnInit {
16

    
17
  // @Input() type: string;
18
  // @Input() countries: CountryOverview[];
19

    
20
  private chartsURL = environment.API_ENDPOINT + 'chart?json=';
21

    
22
  activeView: string = 'absolute';
23
  contentAbsoluteSelection: string = 'affiliated';
24
  contentPercentageSelection: string = 'affiliated';
25

    
26
  tableAbsoluteData: CountryTableData[];
27
  tablePercentageData: CountryTableData[];
28

    
29
  loadingAbsoluteTable: boolean = true;
30
  loadingPercentageTable: boolean = true;
31

    
32
  europeOverviewData: EuropeData;
33

    
34
  oaNoaPublicationsTimelineURL: SafeResourceUrl;
35
  oaNoaDatasetsTimelineURL: SafeResourceUrl;
36
  oaNoaSoftwareTimelineURL: SafeResourceUrl;
37
  oaNoaOtherTimelineURL: SafeResourceUrl;
38

    
39
  fundersResultsData: TreemapHighchartsData[];
40

    
41
  constructor(private sanitizer: DomSanitizer,
42
              private dataService: DataService,
43
              private dataHandlerService: DataHandlerService) {}
44

    
45
  ngOnInit(): void {
46
    this.getAbsoluteData();
47
    this.getPercentageData();
48
    this.getEuropeOverviewData();
49
    this.getFundersResults();
50
  }
51

    
52
  getAbsoluteData() {
53
    this.loadingAbsoluteTable = true;
54
    this.dataService.getOverviewTableAbsoluteData(this.contentAbsoluteSelection).subscribe(
55
      rawData => {
56
        this.tableAbsoluteData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData);
57
        this.loadingAbsoluteTable = false;
58
      }, error => {
59
        console.log(error);
60
        this.loadingAbsoluteTable = false;
61
      }
62
    );
63
  }
64

    
65
  getPercentageData() {
66
    this.loadingPercentageTable = true;
67
    this.dataService.getOverviewTablePercentageData(this.contentPercentageSelection).subscribe(
68
      rawData => {
69
        this.tablePercentageData = this.dataHandlerService.convertRawDataToPercentageTableData(rawData);
70
        this.loadingPercentageTable = false;
71
      }, error => {
72
        console.log(error);
73
        this.loadingPercentageTable = false;
74
      }
75
    );
76
  }
77

    
78
  getEuropeOverviewData() {
79
    this.dataService.getEuropeOAPercentages().subscribe(
80
      rawData => {
81
        this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
82
      }, error => {
83
        console.log(error);
84
      }
85
    );
86
  }
87

    
88
  getFundersResults() {
89
    this.dataService.getFundersResults().subscribe(
90
      rawData => {
91
        this.fundersResultsData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
92
      }, error => {
93
        console.log(error);
94
      }
95
    );
96
  }
97

    
98
  getContentAbsolute(contentSelection: string): void {
99
    this.contentAbsoluteSelection = contentSelection;
100
    this.getAbsoluteData();
101
  }
102

    
103
  getContentPercentage(contentSelection: string): void {
104
    this.contentPercentageSelection = contentSelection;
105
    this.getPercentageData();
106
  }
107

    
108
  changeView(view: string) {
109
    this.activeView = view;
110
    if (view === 'graph') {
111

    
112
      if (!this.oaNoaPublicationsTimelineURL) {
113
        this.oaNoaPublicationsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Publications%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Afalse%7D%2C%22colors%22%3A%5B%22%23F181AE%22%2C%22%23787878%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`);
114
      }
115
      if (!this.oaNoaDatasetsTimelineURL) {
116
        this.oaNoaDatasetsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Datasets%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Afalse%7D%2C%22colors%22%3A%5B%22%23A98BD4%22%2C%22%23787878%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`);
117
      }
118
      if (!this.oaNoaSoftwareTimelineURL) {
119
        this.oaNoaSoftwareTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Software%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Afalse%7D%2C%22colors%22%3A%5B%22%23C2155A%22%2C%22%23787878%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`);
120
      }
121
      if (!this.oaNoaOtherTimelineURL) {
122
        this.oaNoaOtherTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%20Other%20Research%20Products%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%20Other%20Research%20Products%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Other%20Research%20Products%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Afalse%7D%2C%22colors%22%3A%5B%22%2300CCCC%22%2C%22%23787878%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`);
123
      }
124
    }
125
  }
126

    
127
  printOverviewData(sectionID: string) {
128
    printPage(sectionID);
129
  }
130
}
(6-6/12)