connect-admin/src/app/pages/zenodo-communities/manage-zenodo-communities.c...

115 lines
5.6 KiB
TypeScript
Raw Normal View History

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