import {Component, Input, Output} from '@angular/core'; import {EventEmitter, ViewChild} from '@angular/core'; import {ChangeDetectionStrategy} from '@angular/core'; import {ViewEncapsulation} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {Location} from '@angular/common'; import {Title, Meta} from '@angular/platform-browser'; import {Observable} from 'rxjs/Observable'; import "rxjs/add/observable/zip"; import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties'; import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes'; import {CommunityService} from '../../openaireLibrary/connect/community/community.service'; import {ConfigurationService} from '../../openaireLibrary/utils/configuration/configuration.service'; import {PiwikService} from '../../openaireLibrary/utils/piwik/piwik.service'; @Component({ selector: 'community', templateUrl: 'community.component.html', }) export class CommunityComponent { public piwiksub: any; public subfunders: any; public pageTitle = "OpenAIRE" params: any; properties:EnvProperties; @Input() communityId = null; public community = null; constructor ( private route: ActivatedRoute, private _router: Router, private location: Location, private _meta: Meta, private _title: Title, private _piwikService:PiwikService, private config: ConfigurationService, private _communityService:CommunityService ) { var description = "Community Dashboard"; var title = "Community Dashboard"; this._meta.updateTag({content:description},"name='description'"); this._meta.updateTag({content:description},"property='og:description'"); this._meta.updateTag({content:title},"property='og:title'"); this._title.setTitle(title); } public ngOnInit() { this.route.data .subscribe((data: { envSpecific: EnvProperties }) => { console.log("here:"+this.communityId); this.properties = data.envSpecific; var url = data.envSpecific.baseLink+this._router.url; this._meta.updateTag({content:url},"property='og:url'"); this.route.params.subscribe(params => { this.communityId = params['id']; console.log("communityId:"+this.communityId); if (this.communityId != null && this.communityId != '') { this._communityService.getCommunity(this.properties, this.properties.communityAPI+this.communityId).subscribe ( community => { this.community = community; this.params = {communityId: community.communityId}; this._meta.updateTag({content:community.description},"name='description'"); this._meta.updateTag({content:community.description},"property='og:description'"); this._meta.updateTag({content:community.title},"property='og:title'"); this._title.setTitle(community.title); }); } }); }); } public ngOnDestroy() { if(this.piwiksub){ this.piwiksub.unsubscribe(); } } }