import {Component, OnInit, Input} from '@angular/core'; import {SimpleChanges, OnChanges} from '@angular/core'; import {FormGroup, FormArray, FormBuilder, Validators} from '@angular/forms'; import {ActivatedRoute, Router} from '@angular/router'; import {HelpContentService} from '../../services/help-content.service'; import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties'; import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes'; import {SearchUtilsClass} from '../../openaireLibrary/searchPages/searchUtils/searchUtils.class'; import {ManageZenodoCommunitiesService} from './manage-zenodo-communities.service'; import {ZenodoCommunityInfo} from './zenodoCommunity/zenodoCommunityInfo'; import {Session} from '../../openaireLibrary/login/utils/helper.class'; import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class'; @Component({ selector: 'manage-zenodo-communities', templateUrl: './manage-zenodo-communities.component.html', }) export class ManageZenodoCommunitiesComponent implements OnInit { public zenodoCommunities = null; public totalZenodoCommunities = null; public properties:EnvProperties = null; public communityId = null; public zenodoCommunitySearchUtils:SearchUtilsClass = new SearchUtilsClass(); private errorCodes: ErrorCodes; public rowsOnPage = 10; constructor (private route: ActivatedRoute, private _router: Router, public _fb: FormBuilder, private _helpContentService: HelpContentService, private _manageΖenodoCommunitieService: ManageZenodoCommunitiesService) { this.errorCodes = new ErrorCodes(); this.zenodoCommunitySearchUtils.status = this.errorCodes.LOADING; } ngOnInit() { this.route.data.subscribe((data: { envSpecific: EnvProperties }) => { this.properties = data.envSpecific; this.route.queryParams.subscribe( communityId => { this.communityId = communityId['communityId']; if(!Session.isLoggedIn()){ console.info(this._router.url); this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} }); } else { if (this.communityId != null && this.communityId != '') { this._manageΖenodoCommunitieService.getZenodoCommunities(this.properties, this.properties.zenodoCommunities+"?page="+this.zenodoCommunitySearchUtils.page+"&size="+this.rowsOnPage).subscribe( zenodoCommunities => { this.zenodoCommunities = zenodoCommunities; console.log(zenodoCommunities); console.log(this.zenodoCommunitySearchUtils.page); }); this._manageΖenodoCommunitieService.getTotalZenodoCommunities(this.properties, this.properties.zenodoCommunities).subscribe( totalZenodoCommunities => { this.totalZenodoCommunities = totalZenodoCommunities; this.zenodoCommunitySearchUtils.totalResults = totalZenodoCommunities; console.log(totalZenodoCommunities); }); } } }); }); this.zenodoCommunitySearchUtils.keyword = ""; } public search() { if(!Session.isLoggedIn()){ console.info(this._router.url); this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} }); } else { this.zenodoCommunitySearchUtils.page = 1; if (this.communityId != null && this.communityId != '') { this._manageΖenodoCommunitieService.getZenodoCommunities(this.properties, this.properties.zenodoCommunities+"?q="+this.zenodoCommunitySearchUtils.keyword+"&page="+this.zenodoCommunitySearchUtils.page+"&size="+this.rowsOnPage).subscribe( zenodoCommunities => { this.zenodoCommunities = zenodoCommunities; console.log(zenodoCommunities); }); } } } public goTo(page:number = 1) { if(!Session.isLoggedIn()){ console.info(this._router.url); this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} }); } else { this.zenodoCommunitySearchUtils.page=page; console.log("Page is: "+page); this._manageΖenodoCommunitieService.getZenodoCommunities(this.properties, this.properties.zenodoCommunities+"?page="+this.zenodoCommunitySearchUtils.page+"&size="+this.rowsOnPage).subscribe( zenodoCommunities => { this.zenodoCommunities = zenodoCommunities; console.log(zenodoCommunities); console.log(this.zenodoCommunitySearchUtils.page); }); } } totalPages(): number { let totalPages:any = this.zenodoCommunitySearchUtils.totalResults/(this.rowsOnPage); if(!(Number.isInteger(totalPages))) { totalPages = (parseInt(totalPages, 10) + 1); } return totalPages; } }