2022-03-30 16:19:40 +02:00
|
|
|
import {HttpClient} from "@angular/common/http";
|
2022-03-31 13:57:13 +02:00
|
|
|
import {Component, OnDestroy, OnInit} from "@angular/core";
|
|
|
|
import {Subscription} from "rxjs";
|
2022-03-30 16:19:40 +02:00
|
|
|
|
|
|
|
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
|
2022-03-31 13:57:13 +02:00
|
|
|
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
|
|
|
import {properties} from "src/environments/environment";
|
|
|
|
import {RefineFieldResultsService} from "../openaireLibrary/services/refineFieldResults.service";
|
2022-03-30 16:19:40 +02:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'sdg',
|
|
|
|
templateUrl: 'sdg.component.html',
|
|
|
|
styleUrls: ['sdg.component.css']
|
|
|
|
})
|
2022-03-31 13:57:13 +02:00
|
|
|
export class SdgComponent implements OnInit, OnDestroy {
|
2022-03-30 16:19:40 +02:00
|
|
|
|
2022-03-31 13:57:13 +02:00
|
|
|
private sdgs: any = [];
|
|
|
|
private sdgsResearchOutcomes: any = [];
|
|
|
|
public displayedSdgs: any = [];
|
2022-03-30 16:19:40 +02:00
|
|
|
|
2022-03-31 13:57:13 +02:00
|
|
|
public loading: boolean;
|
|
|
|
properties: EnvProperties = properties;
|
2022-05-05 08:32:39 +02:00
|
|
|
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'SDGs'}];
|
2022-03-30 16:19:40 +02:00
|
|
|
|
2022-03-31 13:57:13 +02:00
|
|
|
subscriptions: Subscription[] = [];
|
|
|
|
|
2022-03-30 16:19:40 +02:00
|
|
|
constructor(
|
2022-03-31 13:57:13 +02:00
|
|
|
private httpClient: HttpClient, private refineFieldResultsService: RefineFieldResultsService
|
2022-03-30 16:19:40 +02:00
|
|
|
) {}
|
|
|
|
|
|
|
|
ngOnInit() {
|
2022-03-31 13:57:13 +02:00
|
|
|
this.loading = true;
|
2022-05-16 23:31:28 +02:00
|
|
|
this.httpClient.get(properties.domain+'/assets/vocabulary/sdg.json').subscribe(data => {
|
2022-03-30 16:19:40 +02:00
|
|
|
this.sdgs = data['sdg'];
|
2022-03-31 13:57:13 +02:00
|
|
|
});
|
|
|
|
this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['sdg'], 'result', this.properties, null).subscribe(data => {
|
|
|
|
this.sdgsResearchOutcomes = data[1][0].values;
|
|
|
|
let merged =[];
|
|
|
|
for(let i=0; i<this.sdgs.length; i++){
|
|
|
|
merged.push({
|
|
|
|
...this.sdgs[i],
|
|
|
|
...(this.sdgsResearchOutcomes.find((innerItem) => innerItem.id === this.sdgs[i].id))
|
|
|
|
});
|
|
|
|
}
|
|
|
|
this.displayedSdgs = merged;
|
|
|
|
this.loading = false;
|
|
|
|
});
|
2022-03-30 16:19:40 +02:00
|
|
|
}
|
2022-03-31 13:57:13 +02:00
|
|
|
|
|
|
|
public ngOnDestroy() {
|
|
|
|
for (let sub of this.subscriptions) {
|
|
|
|
sub.unsubscribe();
|
|
|
|
}
|
|
|
|
}
|
2022-03-30 16:19:40 +02:00
|
|
|
}
|