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
|
// oaPublicationsURL: SafeResourceUrl;
|
42
|
// oaRepositoriesURL: SafeResourceUrl;
|
43
|
// oaJournalsURL: SafeResourceUrl;
|
44
|
// oaDatasetsURL: SafeResourceUrl;
|
45
|
// oaSoftwareURL: SafeResourceUrl;
|
46
|
// oaOtherURL: SafeResourceUrl;
|
47
|
|
48
|
constructor(private sanitizer: DomSanitizer,
|
49
|
private dataService: DataService,
|
50
|
private dataHandlerService: DataHandlerService) {}
|
51
|
|
52
|
ngOnInit(): void {
|
53
|
this.getAbsoluteData();
|
54
|
this.getPercentageData();
|
55
|
this.getEuropeOverviewData();
|
56
|
this.getFundersResults();
|
57
|
}
|
58
|
|
59
|
getAbsoluteData() {
|
60
|
this.loadingAbsoluteTable = true;
|
61
|
this.dataService.getOverviewTableAbsoluteData(this.contentAbsoluteSelection).subscribe(
|
62
|
rawData => {
|
63
|
this.tableAbsoluteData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData);
|
64
|
this.loadingAbsoluteTable = false;
|
65
|
}, error => {
|
66
|
console.log(error);
|
67
|
this.loadingAbsoluteTable = false;
|
68
|
}
|
69
|
);
|
70
|
}
|
71
|
|
72
|
getPercentageData() {
|
73
|
this.loadingPercentageTable = true;
|
74
|
this.dataService.getOverviewTablePercentageData(this.contentPercentageSelection).subscribe(
|
75
|
rawData => {
|
76
|
this.tablePercentageData = this.dataHandlerService.convertRawDataToPercentageTableData(rawData);
|
77
|
this.loadingPercentageTable = false;
|
78
|
}, error => {
|
79
|
console.log(error);
|
80
|
this.loadingPercentageTable = false;
|
81
|
}
|
82
|
);
|
83
|
}
|
84
|
|
85
|
getEuropeOverviewData() {
|
86
|
this.dataService.getEuropeOAPercentages().subscribe(
|
87
|
rawData => {
|
88
|
this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
|
89
|
}, error => {
|
90
|
console.log(error);
|
91
|
}
|
92
|
);
|
93
|
}
|
94
|
|
95
|
getFundersResults() {
|
96
|
this.dataService.getFundersResults().subscribe(
|
97
|
rawData => {
|
98
|
this.fundersResultsData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
|
99
|
}, error => {
|
100
|
console.log(error);
|
101
|
}
|
102
|
);
|
103
|
}
|
104
|
|
105
|
getContentAbsolute(contentSelection: string): void {
|
106
|
this.contentAbsoluteSelection = contentSelection;
|
107
|
this.getAbsoluteData();
|
108
|
}
|
109
|
|
110
|
getContentPercentage(contentSelection: string): void {
|
111
|
this.contentPercentageSelection = contentSelection;
|
112
|
this.getPercentageData();
|
113
|
}
|
114
|
|
115
|
changeView(view: string) {
|
116
|
this.activeView = view;
|
117
|
if (view === 'graph') {
|
118
|
|
119
|
if (!this.oaNoaPublicationsTimelineURL) {
|
120
|
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%20Publications%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%20Publications%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%20over%20the%20years%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%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%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%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%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`);
|
121
|
}
|
122
|
if (!this.oaNoaDatasetsTimelineURL) {
|
123
|
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%20Datasets%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%20Datasets%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%20over%20the%20years%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22datasets%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%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%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%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%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`);
|
124
|
}
|
125
|
if (!this.oaNoaSoftwareTimelineURL) {
|
126
|
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%20Software%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%20Software%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%20over%20the%20years%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22software%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%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%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%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%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`);
|
127
|
}
|
128
|
if (!this.oaNoaOtherTimelineURL) {
|
129
|
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%20over%20the%20years%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22other%20research%20products%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%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%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%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%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`);
|
130
|
}
|
131
|
}
|
132
|
}
|
133
|
|
134
|
printOverviewData(sectionID: string) {
|
135
|
printPage(sectionID);
|
136
|
}
|
137
|
}
|