61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
import { Component, Input } from '@angular/core';
|
|
import { Location } from '@angular/common';
|
|
import { ActivatedRoute } from '@angular/router';
|
|
import { EnvProperties} from '../../utils/properties/env-properties';
|
|
|
|
import {ConnectHelper} from '../connectHelper';
|
|
import {SearchCommunityDataprovidersService} from '../contentProviders/searchDataproviders.service';
|
|
|
|
@Component({
|
|
selector: 'approved-by-community',
|
|
template: `
|
|
<span *ngIf="approved" class="uk-align-right uk-label custom-label uk-label-success">Community Approved</span>
|
|
`
|
|
})
|
|
|
|
export class ApprovedByCommunityComponent {
|
|
@Input() contentProviderId: string;
|
|
|
|
public communityId:string;
|
|
public approved:boolean = false;
|
|
private communityContentProviders = [];
|
|
|
|
properties:EnvProperties;
|
|
|
|
constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchCommunityDataprovidersService) {}
|
|
|
|
public ngOnInit() {
|
|
this.route.data
|
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
|
this.properties = data.envSpecific;
|
|
|
|
this.route.queryParams.subscribe(
|
|
communityId => {
|
|
this.communityId = communityId['communityId'];
|
|
|
|
if(!this.communityId){
|
|
this.communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
|
}
|
|
|
|
if(this.communityId && this.communityId != "openaire") {
|
|
this._searchDataprovidersService.searchDataproviders(this.properties, this.communityId).subscribe (
|
|
contentproviders => {
|
|
this.communityContentProviders = contentproviders;
|
|
this.approved = this.checkApproval();
|
|
}
|
|
);
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
}
|
|
|
|
private checkApproval(): boolean {
|
|
let self = this;
|
|
return this.communityContentProviders.map(contentprovider => contentprovider.openaireId).some(function(id) {
|
|
return id == self.contentProviderId;
|
|
});
|
|
}
|
|
}
|