monitor/src/app/initiatives/community/community.component.ts

100 lines
3.3 KiB
TypeScript

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();
}
}
}