Add searchEntries folder and Move search service funtions, Move community.service in utils folder, Change Imports
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-connect-portal/trunk@51051 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
a7df9c7826
commit
cabb1d9550
|
@ -5,7 +5,7 @@ import {ActivatedRoute} from '@angular/router';
|
||||||
import { EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
import { EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
||||||
import{MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
import{MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
||||||
import { EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
import { EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
||||||
import {CommunityService} from "./community/community.service";
|
import {CommunityService} from "./utils/services/community.service";
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -21,7 +21,7 @@ import { ErrorModule} from './openaireLibrary/error/error.module';
|
||||||
import { OpenaireErrorPageComponent } from './error/errorPage.component';
|
import { OpenaireErrorPageComponent } from './error/errorPage.component';
|
||||||
import { AppRoutingModule } from './app-routing.module';
|
import { AppRoutingModule } from './app-routing.module';
|
||||||
|
|
||||||
import { CommunityService } from './community/community.service';
|
import { CommunityService } from './utils/services/community.service';
|
||||||
import { CommunitiesService } from './communities/communities.service';
|
import { CommunitiesService } from './communities/communities.service';
|
||||||
//import { LibSearchProjectsModule } from './searchPages/simple/searchProjects.module';
|
//import { LibSearchProjectsModule } from './searchPages/simple/searchProjects.module';
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,10 @@ import "rxjs/add/observable/zip";
|
||||||
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
||||||
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
import {Properties} from '../utils/properties';
|
import {Properties} from '../utils/properties';
|
||||||
|
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
||||||
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
|
||||||
import {CommunitiesService} from './communities.service';
|
import {CommunitiesService} from './communities.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -25,14 +25,14 @@ export class CommunitiesComponent {
|
||||||
|
|
||||||
public communitiesResults = null;
|
public communitiesResults = null;
|
||||||
|
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private _router: Router,
|
private _router: Router,
|
||||||
private location: Location, private _meta: Meta,private _piwikService:PiwikService, private _communitiesService:CommunitiesService,
|
private location: Location, private _meta: Meta,
|
||||||
|
private _piwikService:PiwikService,
|
||||||
|
private _communitiesService:CommunitiesService,
|
||||||
private config: ConfigurationService
|
private config: ConfigurationService
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var description = "open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
|
var description = "open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
|
||||||
|
|
||||||
var title = "OpenAIRE";
|
var title = "OpenAIRE";
|
||||||
|
@ -41,9 +41,6 @@ export class CommunitiesComponent {
|
||||||
this._meta.updateMeta("description", description);
|
this._meta.updateMeta("description", description);
|
||||||
this._meta.updateProperty("og:description", description);
|
this._meta.updateProperty("og:description", description);
|
||||||
this._meta.updateProperty("og:title", title);
|
this._meta.updateProperty("og:title", title);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
|
@ -57,8 +54,7 @@ export class CommunitiesComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
this._communitiesService.getCommunities('https://dev-openaire.d4science.org/openaire/community/communities').subscribe(
|
||||||
this._communitiesService.getResults('https://dev-openaire.d4science.org/openaire/community/communities').subscribe(
|
|
||||||
communitiesResults => {
|
communitiesResults => {
|
||||||
this.communitiesResults = communitiesResults;
|
this.communitiesResults = communitiesResults;
|
||||||
//console.log(communitiesResults);
|
//console.log(communitiesResults);
|
||||||
|
@ -66,13 +62,9 @@ export class CommunitiesComponent {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ngOnDestroy() {
|
public ngOnDestroy() {
|
||||||
if(this.piwiksub){
|
if(this.piwiksub){
|
||||||
this.piwiksub.unsubscribe();
|
this.piwiksub.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,11 +10,11 @@ export class CommunitiesService {
|
||||||
constructor(private http:Http) {
|
constructor(private http:Http) {
|
||||||
}
|
}
|
||||||
|
|
||||||
getResults(url: string) {
|
getCommunities(url: string) {
|
||||||
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseResults(res));
|
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseCommunities(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
parseResults(data: any): CommunityInfo[] {
|
parseCommunities(data: any): CommunityInfo[] {
|
||||||
let communities: CommunityInfo[] = [];
|
let communities: CommunityInfo[] = [];
|
||||||
|
|
||||||
let length = Array.isArray(data) ? data.length :1;
|
let length = Array.isArray(data) ? data.length :1;
|
||||||
|
|
|
@ -5,13 +5,13 @@ import {Location} from '@angular/common';
|
||||||
import "rxjs/add/observable/zip";
|
import "rxjs/add/observable/zip";
|
||||||
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
||||||
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
|
||||||
import {Properties} from '../utils/properties';
|
import {Properties} from '../utils/properties';
|
||||||
import {CommunityService} from "./community.service";
|
|
||||||
import {CommunitiesService} from "../communities/communities.service";
|
import {CommunityService} from "../utils/services/community.service";
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
||||||
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {SearchEntriesService} from '../searchEntries/searchEntries.service';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -44,22 +44,19 @@ export class CommunityComponent {
|
||||||
constructor (
|
constructor (
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private _router: Router,
|
private _router: Router,
|
||||||
private location: Location, private _meta: Meta, private _piwikService:PiwikService,
|
private location: Location, private _meta: Meta,
|
||||||
|
private _piwikService:PiwikService,
|
||||||
private config: ConfigurationService,
|
private config: ConfigurationService,
|
||||||
private _communityService:CommunityService, private _communitiesService:CommunitiesService
|
private _communityService:CommunityService,
|
||||||
|
private _searchEntriesService:SearchEntriesService,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var description = "open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
|
var description = "open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
|
||||||
|
|
||||||
var title = "OpenAIRE";
|
var title = "OpenAIRE";
|
||||||
|
|
||||||
this._meta.setTitle(title);
|
this._meta.setTitle(title);
|
||||||
this._meta.updateMeta("description", description);
|
this._meta.updateMeta("description", description);
|
||||||
this._meta.updateProperty("og:description", description);
|
this._meta.updateProperty("og:description", description);
|
||||||
this._meta.updateProperty("og:title", title);
|
this._meta.updateProperty("og:title", title);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
|
@ -74,7 +71,6 @@ export class CommunityComponent {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
this.route.queryParams.subscribe(
|
this.route.queryParams.subscribe(
|
||||||
communityId => {
|
communityId => {
|
||||||
this.communityId = communityId['communityId'];
|
this.communityId = communityId['communityId'];
|
||||||
|
@ -84,67 +80,64 @@ export class CommunityComponent {
|
||||||
community => {
|
community => {
|
||||||
this.community = community;
|
this.community = community;
|
||||||
this.params = {community: encodeURIComponent('"'+community.queryId+'"')};
|
this.params = {community: encodeURIComponent('"'+community.queryId+'"')};
|
||||||
console.log(community);
|
//console.log(community);
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/publications/count?format=json&fq=communityid='+this.communityId).subscribe(
|
this._searchEntriesService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/publications/count?format=json&fq=communityid='+this.communityId).subscribe(
|
||||||
publicationTotal => {
|
publicationTotal => {
|
||||||
this.publicationTotal = publicationTotal;
|
this.publicationTotal = publicationTotal;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/datasets/count?format=json&fq=communityid='+this.communityId).subscribe(
|
this._searchEntriesService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/datasets/count?format=json&fq=communityid='+this.communityId).subscribe(
|
||||||
researchDataTotal => {
|
researchDataTotal => {
|
||||||
this.researchDataTotal = researchDataTotal;
|
this.researchDataTotal = researchDataTotal;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/software/count?format=json&fq=communityid='+this.communityId).subscribe(
|
this._searchEntriesService.getTotal('http://beta.services.openaire.eu:8480/search/rest/v2/api/software/count?format=json&fq=communityid='+this.communityId).subscribe(
|
||||||
softwareTotal => {
|
softwareTotal => {
|
||||||
this.softwareTotal = softwareTotal;
|
this.softwareTotal = softwareTotal;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/projects').subscribe(
|
this._searchEntriesService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/projects').subscribe(
|
||||||
projectTotal => {
|
projectTotal => {
|
||||||
this.projectTotal = projectTotal;
|
this.projectTotal = projectTotal;
|
||||||
//console.log(projectTotal);
|
//console.log(projectTotal);
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/contentproviders').subscribe(
|
this._searchEntriesService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/contentproviders').subscribe(
|
||||||
contentProviderTotal => {
|
contentProviderTotal => {
|
||||||
this.contentProviderTotal = contentProviderTotal;
|
this.contentProviderTotal = contentProviderTotal;
|
||||||
//console.log(contentProviderTotal);
|
//console.log(contentProviderTotal);
|
||||||
});
|
});
|
||||||
|
|
||||||
// this._communityService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/organizations').subscribe(
|
// this._searchEntriesService.countTotal('https://dev-openaire.d4science.org/openaire/community/'+this.communityId+'/organizations').subscribe(
|
||||||
// organizationTotal => {
|
// organizationTotal => {
|
||||||
// this.organizationTotal = organizationTotal;
|
// this.organizationTotal = organizationTotal;
|
||||||
// console.log(organizationTotal);
|
// console.log(organizationTotal);
|
||||||
// });
|
// });
|
||||||
|
|
||||||
this._communityService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/publications?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
this._searchEntriesService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/publications?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
||||||
publicationResults => {
|
publicationResults => {
|
||||||
this.publicationResults = publicationResults;
|
this.publicationResults = publicationResults;
|
||||||
//console.log(publicationResults);
|
//console.log(publicationResults);
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/datasets?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
this._searchEntriesService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/datasets?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
||||||
researchDataResults => {
|
researchDataResults => {
|
||||||
this.researchDataResults = researchDataResults;
|
this.researchDataResults = researchDataResults;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._communityService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/software?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
this._searchEntriesService.getResults('http://beta.services.openaire.eu:8480/search/rest/v2/api/software?fq=communityid%20exact%20%22'+this.communityId+'%22&sortBy=resultdateofacceptance,descending&format=json&size=5').subscribe(
|
||||||
softwareResults => {
|
softwareResults => {
|
||||||
this.softwareResults = softwareResults;
|
this.softwareResults = softwareResults;
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ngOnDestroy() {
|
public ngOnDestroy() {
|
||||||
if(this.piwiksub){
|
if(this.piwiksub){
|
||||||
this.piwiksub.unsubscribe();
|
this.piwiksub.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,15 +5,13 @@ import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import{CommunityRoutingModule} from './community-routing.module';
|
import{CommunityRoutingModule} from './community-routing.module';
|
||||||
import{CommunityComponent} from './community.component';
|
import{CommunityComponent} from './community.component';
|
||||||
|
import {ResultsComponent} from '../searchEntries/results/results.component';
|
||||||
import { CommunityService } from './community.service';
|
|
||||||
import { CommunitiesService } from '../communities/communities.service';
|
|
||||||
|
|
||||||
import {ResultsComponent} from './results/results.component';
|
|
||||||
|
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
||||||
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {SearchEntriesService} from '../searchEntries/searchEntries.service';
|
||||||
|
import { CommunityService } from '../utils/services/community.service';
|
||||||
|
|
||||||
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
|
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
|
||||||
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
@ -28,7 +26,8 @@ import {SubscribeModule} from '../utils/subscribe/subscribe.module';
|
||||||
CommunityComponent, ResultsComponent
|
CommunityComponent, ResultsComponent
|
||||||
],
|
],
|
||||||
providers:[
|
providers:[
|
||||||
FreeGuard, PreviousRouteRecorder, ConfigurationService, Meta, PiwikService, CommunityService, CommunitiesService
|
FreeGuard, PreviousRouteRecorder, ConfigurationService, Meta,
|
||||||
|
PiwikService, CommunityService, SearchEntriesService
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
CommunityComponent
|
CommunityComponent
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Http, Response, Headers, RequestOptions } from '@angular/http';
|
||||||
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
|
||||||
|
import { ResultInfo } from './results/resultInfo';
|
||||||
|
import { CommunityInfo } from '../utils/communityInfo';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class SearchEntriesService {
|
||||||
|
|
||||||
|
private sizeOfDescription: number = 135;
|
||||||
|
|
||||||
|
constructor(private http:Http) {
|
||||||
|
}
|
||||||
|
|
||||||
|
getTotal(url: string) {
|
||||||
|
return this.http.get(url).map(res => <any> res.json()).map(res => res.total);
|
||||||
|
//.do(res => {console.log(res)});
|
||||||
|
}
|
||||||
|
|
||||||
|
countTotal(url:string) {
|
||||||
|
return this.http.get(url).map(res => <any> res.json()).map(res => res.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
getResults(url: string) {
|
||||||
|
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseResults(res['results']));
|
||||||
|
}
|
||||||
|
|
||||||
|
parseResults(data: any): ResultInfo[] {
|
||||||
|
let results: ResultInfo[] = [];
|
||||||
|
|
||||||
|
let length = Array.isArray(data) ? data.length :1;
|
||||||
|
|
||||||
|
for (let i=0; i<length; i++) {
|
||||||
|
let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:result'] : data['result']['metadata']['oaf:entity']['oaf:result'];
|
||||||
|
|
||||||
|
var result: ResultInfo = new ResultInfo();
|
||||||
|
|
||||||
|
|
||||||
|
if(Array.isArray(resData['title'])) {
|
||||||
|
result['title'] = resData['title'][0].content;
|
||||||
|
} else {
|
||||||
|
result['title'] = resData['title'].content;
|
||||||
|
}
|
||||||
|
|
||||||
|
result['id'] = Array.isArray(data) ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier'];
|
||||||
|
|
||||||
|
if(resData['bestaccessright'].hasOwnProperty("classid")) {
|
||||||
|
result['accessRights'] = resData['bestaccessright'].classid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resData['resulttype'].hasOwnProperty("classid")) {
|
||||||
|
result['type'] = resData['resulttype'].classid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resData.hasOwnProperty("creator") && resData['creator'] != null) {
|
||||||
|
if(result['authors'] == undefined) {
|
||||||
|
result['authors'] = new Array<string>();
|
||||||
|
}
|
||||||
|
|
||||||
|
let authors = resData['creator'];
|
||||||
|
let length = Array.isArray(authors) ? authors.length : 1;
|
||||||
|
|
||||||
|
for(let i=0; i<length; i++) {
|
||||||
|
let author = Array.isArray(authors) ? authors[i] : authors;
|
||||||
|
result.authors[author.rank-1] = author.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.authors = result.authors.filter(function (item) {
|
||||||
|
return (item != undefined);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var date:string = (resData.dateofacceptance)+""; // transform to string in case it is an integer
|
||||||
|
result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date;
|
||||||
|
|
||||||
|
if(!Array.isArray(resData.description)) {
|
||||||
|
result.description = resData.description;
|
||||||
|
} else {
|
||||||
|
result.description = resData.description[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(result.description.length > this.sizeOfDescription) {
|
||||||
|
result.description = result.description.substring(0, this.sizeOfDescription) + "...";
|
||||||
|
}
|
||||||
|
|
||||||
|
results.push(result);
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties
|
||||||
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
|
||||||
import {Properties} from '../utils/properties';
|
import {Properties} from '../utils/properties';
|
||||||
import {CommunityService} from "../community/community.service";
|
import {CommunityService} from "../utils/services/community.service";
|
||||||
import {CommunitiesService} from "../communities/communities.service";
|
import {CommunitiesService} from "../communities/communities.service";
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
import {Meta} from '../openaireLibrary/sharedComponents/metaService';
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { RouterModule } from '@angular/router';
|
||||||
import{StatisticsRoutingModule} from './statistics-routing.module';
|
import{StatisticsRoutingModule} from './statistics-routing.module';
|
||||||
import{StatisticsComponent} from './statistics.component';
|
import{StatisticsComponent} from './statistics.component';
|
||||||
import { StatisticsService } from '../utils/services/statistics.service';
|
import { StatisticsService } from '../utils/services/statistics.service';
|
||||||
import { CommunityService } from '../community/community.service';
|
import { CommunityService } from '../utils/services/community.service';
|
||||||
import { CommunitiesService } from '../communities/communities.service';
|
import { CommunitiesService } from '../communities/communities.service';
|
||||||
import {IFrameModule} from '../openaireLibrary/utils/iframe.module';
|
import {IFrameModule} from '../openaireLibrary/utils/iframe.module';
|
||||||
|
|
||||||
|
|
|
@ -2,92 +2,15 @@ import { Injectable } from '@angular/core';
|
||||||
import { Http, Response, Headers, RequestOptions } from '@angular/http';
|
import { Http, Response, Headers, RequestOptions } from '@angular/http';
|
||||||
import { Observable } from 'rxjs/Rx';
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
|
||||||
import { ResultInfo } from './results/resultInfo';
|
import { ResultInfo } from '../../searchEntries/results/resultInfo';
|
||||||
import { CommunityInfo } from '../utils/communityInfo';
|
import { CommunityInfo } from '../communityInfo';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CommunityService {
|
export class CommunityService {
|
||||||
|
|
||||||
private sizeOfDescription: number = 135;
|
|
||||||
|
|
||||||
constructor(private http:Http) {
|
constructor(private http:Http) {
|
||||||
}
|
}
|
||||||
|
|
||||||
getTotal(url: string) {
|
|
||||||
return this.http.get(url).map(res => <any> res.json()).map(res => res.total).do(res => {console.log(res)});
|
|
||||||
}
|
|
||||||
|
|
||||||
countTotal(url:string) {
|
|
||||||
return this.http.get(url).map(res => <any> res.json()).map(res => res.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
getResults(url: string) {
|
|
||||||
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseResults(res['results']));
|
|
||||||
}
|
|
||||||
|
|
||||||
parseResults(data: any): ResultInfo[] {
|
|
||||||
let results: ResultInfo[] = [];
|
|
||||||
|
|
||||||
let length = Array.isArray(data) ? data.length :1;
|
|
||||||
|
|
||||||
for (let i=0; i<length; i++) {
|
|
||||||
let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:result'] : data['result']['metadata']['oaf:entity']['oaf:result'];
|
|
||||||
|
|
||||||
var result: ResultInfo = new ResultInfo();
|
|
||||||
|
|
||||||
|
|
||||||
if(Array.isArray(resData['title'])) {
|
|
||||||
result['title'] = resData['title'][0].content;
|
|
||||||
} else {
|
|
||||||
result['title'] = resData['title'].content;
|
|
||||||
}
|
|
||||||
|
|
||||||
result['id'] = Array.isArray(data) ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier'];
|
|
||||||
|
|
||||||
if(resData['bestaccessright'].hasOwnProperty("classid")) {
|
|
||||||
result['accessRights'] = resData['bestaccessright'].classid;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(resData['resulttype'].hasOwnProperty("classid")) {
|
|
||||||
result['type'] = resData['resulttype'].classid;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(resData.hasOwnProperty("creator") && resData['creator'] != null) {
|
|
||||||
if(result['authors'] == undefined) {
|
|
||||||
result['authors'] = new Array<string>();
|
|
||||||
}
|
|
||||||
|
|
||||||
let authors = resData['creator'];
|
|
||||||
let length = Array.isArray(authors) ? authors.length : 1;
|
|
||||||
|
|
||||||
for(let i=0; i<length; i++) {
|
|
||||||
let author = Array.isArray(authors) ? authors[i] : authors;
|
|
||||||
result.authors[author.rank-1] = author.content;
|
|
||||||
}
|
|
||||||
|
|
||||||
result.authors = result.authors.filter(function (item) {
|
|
||||||
return (item != undefined);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var date:string = (resData.dateofacceptance)+""; // transform to string in case it is an integer
|
|
||||||
result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date;
|
|
||||||
|
|
||||||
if(!Array.isArray(resData.description)) {
|
|
||||||
result.description = resData.description;
|
|
||||||
} else {
|
|
||||||
result.description = resData.description[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(result.description.length > this.sizeOfDescription) {
|
|
||||||
result.description = result.description.substring(0, this.sizeOfDescription) + "...";
|
|
||||||
}
|
|
||||||
|
|
||||||
results.push(result);
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
getCommunity(url: string) {
|
getCommunity(url: string) {
|
||||||
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseCommunity(res));
|
return this.http.get(url).map(res => <any> res.json()).map(res => this.parseCommunity(res));
|
||||||
}
|
}
|
Loading…
Reference in New Issue