Deposit Pages for 'Publications' and 'R3data' Repositories seperated | publications and datasets tabs in dataprovider landing page ready | subjects categorized by taxonomy added in publication landing page
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@44406 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
599c9cbcfc
commit
6620306760
|
@ -27,8 +27,11 @@ import { AdvancedSearchPeopleComponent } from './searchPages/advanced/advancedSe
|
|||
import { AdvancedSearchOrganizationsComponent } from './searchPages/advanced/advancedSearchOrganizations.component';
|
||||
|
||||
|
||||
import { DepositComponent } from './deposit/deposit.component';
|
||||
import { DepositResultComponent } from './deposit/depositResult.component';
|
||||
import { DepositPublicationsComponent } from './deposit/depositPublications.component';
|
||||
import { DepositDatasetsComponent } from './deposit/depositDatasets.component';
|
||||
import { DepositPublicationsResultComponent } from './deposit/depositPublicationsResult.component';
|
||||
import { DepositDatasetsResultComponent } from './deposit/depositDatasetsResult.component';
|
||||
|
||||
import { ErrorPageComponent } from './error/errorPage.component';
|
||||
import { TestComponent } from './test/test.component';
|
||||
|
||||
|
@ -39,9 +42,9 @@ import { SearchEntityRegistriesComponent } from './searchPages/dataProviders/ent
|
|||
const appRoutes: Routes = [
|
||||
{ path: '', component: SearchComponent, pathMatch: 'full' },
|
||||
{ path: 'claims', component: ClaimsAdminComponent },
|
||||
{ path: 'home', component: HomeComponent },
|
||||
{ path: 'claim', component: ClaimComponent },
|
||||
{ path: 'myclaims', component: MyClaimsComponent },
|
||||
{ path: 'home', component: HomeComponent },
|
||||
{ path: 'claim', component: ClaimComponent },
|
||||
{ path: 'myclaims', component: MyClaimsComponent },
|
||||
{ path: 'search/person', component: PersonComponent },
|
||||
{ path: 'search/project', component: ProjectComponent },
|
||||
{ path: 'search/organization', component: OrganizationComponent },
|
||||
|
@ -65,12 +68,14 @@ const appRoutes: Routes = [
|
|||
{ path: 'search/advanced/datasets', component: AdvancedSearchDatasetsComponent },
|
||||
{ path: 'search/advanced/people', component: AdvancedSearchPeopleComponent },
|
||||
{ path: 'search/advanced/organizations', component: AdvancedSearchOrganizationsComponent },
|
||||
{ path: 'deposit', component: DepositComponent},
|
||||
{ path: 'deposit-results', component: DepositResultComponent},
|
||||
{ path: 'deposit-publications', component: DepositPublicationsComponent },
|
||||
{ path: 'deposit-datasets', component: DepositDatasetsComponent },
|
||||
{ path: 'deposit-publications-result', component: DepositPublicationsResultComponent} ,
|
||||
{ path: 'deposit-datasets-result', component: DepositDatasetsResultComponent },
|
||||
{ path: 'test', component: TestComponent},
|
||||
{ path: 'search', component: SearchAllComponent },
|
||||
{ path: 'error', component: ErrorPageComponent},
|
||||
{ path: '**', component: ErrorPageComponent } // it has to be the last one - otherwise the next declaration are ignored
|
||||
{ path: 'error', component: ErrorPageComponent},
|
||||
{ path: '**', component: ErrorPageComponent } // it has to be the last one - otherwise the next declaration are ignored
|
||||
|
||||
];
|
||||
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
import {Component} from '@angular/core';
|
||||
import {Component, Input} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import { Router } from '@angular/router';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
import {SearchOrganizationsService} from '../services/searchOrganizations.service';
|
||||
|
||||
@Component({
|
||||
selector: 'deposit',
|
||||
template: `
|
||||
<div class="container">
|
||||
<div class="page-header" >
|
||||
<h2>Deposit Publications</h2>
|
||||
<h2>Deposit {{requestFor}}</h2>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
@ -34,11 +36,20 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
|||
<form>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="sizing-addon2">Filter</span>
|
||||
<input type="text" class="form-control" placeholder="Type keywords..." aria-describedby="sizing-addon2" [(ngModel)]="keyword" name="keyword" >
|
||||
<span>
|
||||
<input type="text" class="form-control" placeholder="Type keywords..." aria-describedby="sizing-addon2" [(ngModel)]="keyword" name="keyword" >
|
||||
</span>
|
||||
<span class="input-group-btn">
|
||||
<button (click)="keywordChanged()" type="submit" class="btn btn-default">SELECT</button>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="list-group" >
|
||||
<li class="list-group-item" *ngFor=" let item of organizations">
|
||||
<a style="cursor:pointer;" (click)="organizationSelected(item.id)">{{item.name}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -47,15 +58,18 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
|||
|
||||
export class DepositComponent {
|
||||
private keyword: string='';
|
||||
private organizationId: string='dedup_wf_001%3A%3A44cb3a714d104139c37beb7580070b96';
|
||||
private openAccess: string;
|
||||
private openAccessRepo: string;
|
||||
private fp7Guidlines: string;
|
||||
private h2020Guidlines: string;
|
||||
private ercGuidlines: string;
|
||||
private helpdesk: string;
|
||||
private organizations: {"name": string, "id": string}[] = [];
|
||||
@Input() compatibility: string = '';
|
||||
@Input() requestFor: string = "Publications";
|
||||
|
||||
constructor (private _router: Router) {
|
||||
constructor (private _router: Router,
|
||||
private _searchOrganizationsService: SearchOrganizationsService) {
|
||||
console.info("constructor deposit");
|
||||
|
||||
this.openAccess = OpenaireProperties.getOpenAccess();
|
||||
|
@ -68,6 +82,22 @@ export class DepositComponent {
|
|||
|
||||
keywordChanged() {
|
||||
console.info("keywordChanged: "+this.keyword);
|
||||
this._router.navigate( ['deposit-results'], { queryParams: { "organizationId": this.organizationId } } );
|
||||
this._searchOrganizationsService.searchOrganizationsForDeposit(this.keyword, this.compatibility, 1, 10).subscribe(
|
||||
data => {
|
||||
this.organizations = data;
|
||||
},
|
||||
err => {
|
||||
console.error(err);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
organizationSelected(id: string) {
|
||||
if(this.requestFor == "Publications") {
|
||||
this._router.navigate( ['deposit-publications-result'], { queryParams: { "organizationId": id } } );
|
||||
} else if(this.requestFor == "Datasets") {
|
||||
console.info("call deposit result for datasets")
|
||||
this._router.navigate( ['deposit-datasets-result'], { queryParams: { "organizationId": id } } );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,11 @@ import { FormsModule } from '@angular/forms';
|
|||
import { UtilsModule} from '../utils/utils.module'
|
||||
|
||||
import { DepositComponent } from './deposit.component';
|
||||
import {DepositResultComponent} from './depositResult.component';
|
||||
import { DepositResultComponent } from './depositResult.component';
|
||||
import { DepositPublicationsComponent } from './depositPublications.component';
|
||||
import { DepositPublicationsResultComponent } from './depositPublicationsResult.component';
|
||||
import { DepositDatasetsComponent } from './depositDatasets.component';
|
||||
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
|
||||
|
||||
import {ServicesModule} from '../services/services.module';
|
||||
import {SearchModule} from '../searchPages/search.module';
|
||||
|
@ -21,11 +25,15 @@ import {SearchModule} from '../searchPages/search.module';
|
|||
],
|
||||
declarations: [
|
||||
DepositComponent,
|
||||
DepositResultComponent
|
||||
DepositResultComponent,
|
||||
DepositPublicationsComponent,
|
||||
DepositPublicationsResultComponent,
|
||||
DepositDatasetsComponent,
|
||||
DepositDatasetsResultComponent
|
||||
|
||||
],
|
||||
exports: [
|
||||
DepositComponent
|
||||
//DepositComponent
|
||||
],
|
||||
providers: [
|
||||
]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
|
||||
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { SearchDataprovidersComponent } from '../searchPages/searchDataproviders.component';
|
||||
|
@ -10,11 +10,11 @@ import { SearchResultComponent } from '../searchPages/searchUtils/searchResult.c
|
|||
import {OrganizationService} from '../services/organization.service';
|
||||
|
||||
@Component({
|
||||
selector: 'depositResult',
|
||||
selector: 'deposit-result',
|
||||
template: `
|
||||
<div class="container">
|
||||
<div class="page-header" >
|
||||
<h2>Deposit Publications</h2>
|
||||
<h2>Deposit {{requestFor}}</h2>
|
||||
</div>
|
||||
|
||||
<div *ngIf="searchDataprovidersComponent.totalResults > 0">
|
||||
|
@ -68,8 +68,9 @@ export class DepositResultComponent {
|
|||
|
||||
private searchDataprovidersComponent : SearchDataprovidersComponent;
|
||||
private linkToSearchDataproviders = "";
|
||||
|
||||
private zenodo: string;
|
||||
@Input() compatibility: string = '';
|
||||
@Input() requestFor: string = "Publications";
|
||||
|
||||
constructor (private route: ActivatedRoute,
|
||||
private _searchDataprovidersService: SearchDataprovidersService,
|
||||
|
@ -117,10 +118,14 @@ export class DepositResultComponent {
|
|||
this.subDataproviders = this.route.queryParams.subscribe(params => {
|
||||
this.searchDataproviders();
|
||||
});
|
||||
//var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
//this.status = errorCodes.DONE;
|
||||
},
|
||||
err => {
|
||||
console.error(err)
|
||||
console.info("error");
|
||||
//var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
//this.status = errorCodes.ERROR;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ export class DataProviderComponent {
|
|||
this._publicationService.getPublicationInfo(this.datasourceId).subscribe(
|
||||
data => {
|
||||
this.dataProviderInfo = data;
|
||||
console.info(this.dataProviderInfo.resultsBy);
|
||||
},
|
||||
err => {
|
||||
console.error(err)
|
||||
|
|
|
@ -25,14 +25,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
|
|||
})
|
||||
|
||||
export class DatasetsTabComponent {
|
||||
|
||||
@Input() paramsForSearchLink: string = "";
|
||||
@Input() searchDatasetsComponent : SearchDatasetsComponent;
|
||||
private linkToSearchDatasets = "";
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {
|
||||
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets();
|
||||
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets()+this.paramsForSearchLink;
|
||||
}
|
||||
|
||||
ngOnDestroy() {}
|
||||
|
|
|
@ -25,14 +25,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
|
|||
})
|
||||
|
||||
export class PublicationsTabComponent {
|
||||
|
||||
@Input() paramsForSearchLink: string = "";
|
||||
@Input() searchPublicationsComponent : SearchPublicationsComponent;
|
||||
private linkToSearchPublications = "";
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {
|
||||
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications();
|
||||
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications()+this.paramsForSearchLink;
|
||||
}
|
||||
|
||||
ngOnDestroy() {}
|
||||
|
|
|
@ -42,9 +42,11 @@ import { SearchDatasetsService } from '../../services/searchDatasets.service';
|
|||
<div *ngIf="tabs[0].content=='publicationsTab' || tabs[0].content=='datasetsTab'">
|
||||
|
||||
<publicationsTab *ngIf="tabs[0].content=='publicationsTab'"
|
||||
[paramsForSearchLink]="paramsForSearchLink"
|
||||
[searchPublicationsComponent]="searchPublicationsComponent">
|
||||
</publicationsTab>
|
||||
<datasetsTab *ngIf="tabs[0].content=='datasetsTab'"
|
||||
[paramsForSearchLink]="paramsForSearchLink"
|
||||
[searchDatasetsComponent]="searchDatasetsComponent">
|
||||
</datasetsTab>
|
||||
<statisticsTab *ngIf="tabs[0].content=='statisticsTab'"
|
||||
|
@ -63,9 +65,13 @@ import { SearchDatasetsService } from '../../services/searchDatasets.service';
|
|||
<div *ngIf="tab.content=='publicationsTab' || tab.content=='datasetsTab'">
|
||||
|
||||
<publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'"
|
||||
[paramsForSearchLink]="paramsForSearchLink"
|
||||
[searchPublicationsComponent] = "searchPublicationsComponent">
|
||||
</publicationsTab>
|
||||
<datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'"></datasetsTab>
|
||||
<datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'"
|
||||
[paramsForSearchLink]="paramsForSearchLink"
|
||||
[searchDatasetsComponent]="searchDatasetsComponent">
|
||||
</datasetsTab>
|
||||
<statisticsTab *ngIf="i>0 && tab.content=='statisticsTab'"></statisticsTab>
|
||||
<projectsTab *ngIf="i>0 && tab.content=='projectsTab'"></projectsTab>
|
||||
<datasourcesTab *ngIf="i>0 && tab.content=='datasourcesTab'"></datasourcesTab>
|
||||
|
@ -86,6 +92,8 @@ export class TabsComponent {
|
|||
@Input() projects;
|
||||
@Input() datasources;
|
||||
|
||||
private paramsForSearchLink: string = "";
|
||||
|
||||
private reloadPublications: boolean = true;
|
||||
private reloadDatasets: boolean = true;
|
||||
|
||||
|
@ -106,6 +114,12 @@ export class TabsComponent {
|
|||
if(this.tabs != []) {
|
||||
this.search(this.tabs[0].content);
|
||||
}
|
||||
|
||||
if(this.resultsBy == "collectedFrom") {
|
||||
this.paramsForSearchLink = "?collectedfromdatasourceid="+this.id;
|
||||
} else if (this.resultsBy == "hostedBy") {
|
||||
this.paramsForSearchLink = "?resulthostingdatasourceid="+this.id;
|
||||
}
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
|
@ -138,7 +152,7 @@ export class TabsComponent {
|
|||
|
||||
private searchDatasets() {
|
||||
if(this.reloadDatasets) {
|
||||
this.searchDatasetsComponent.getResultsForEntity("dataprovider", this.id, 1, 10);
|
||||
this.searchDatasetsComponent.getResultsForDataproviders(this.id, this.resultsBy, 1, 10);
|
||||
}
|
||||
this.reloadDatasets = false;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,10 @@
|
|||
<dd *ngIf="publicationInfo.embargoEndDate != undefined && publicationInfo.embargoEndDate != ''">{{publicationInfo.embargoEndDate}}</dd>
|
||||
|
||||
<showIdentifiers [identifiers]="publicationInfo.identifiers"></showIdentifiers>
|
||||
<showSubjects [subjects]="publicationInfo.subjects" [classifiedSubjects]="publicationInfo.classifiedSubjects"></showSubjects>
|
||||
<showSubjects [subjects]="publicationInfo.subjects"
|
||||
[otherSubjects]="publicationInfo.otherSubjects"
|
||||
[classifiedSubjects]="publicationInfo.classifiedSubjects">
|
||||
</showSubjects>
|
||||
</dl>
|
||||
|
||||
<blockquote *ngIf="publicationInfo.description != ''">
|
||||
|
|
|
@ -4,34 +4,52 @@ import {Component, Input} from '@angular/core';
|
|||
selector: 'showSubjects',
|
||||
template: `
|
||||
<div *ngIf="subjects != undefined">
|
||||
<dt *ngIf="subjects.length > 0 || classifiedSubjects.size > 0">
|
||||
|
||||
<dt *ngIf="(subjects != undefined && subjects.length > 0) ||
|
||||
(otherSubjects != undefined && otherSubjects.size > 0)">
|
||||
Subjects:
|
||||
</dt>
|
||||
<dt *ngIf="(subjects == undefined || subjects.length == 0) &&
|
||||
(otherSubjects == undefined || otherSubjects.size == 0) &&
|
||||
(classifiedSubjects != undefined && classifiedSubjects.size > 0)">
|
||||
Subjects:
|
||||
</dt>
|
||||
|
||||
<dd>
|
||||
<div *ngIf="subjects.length > 0"> {{subjects}} </div>
|
||||
<div *ngIf="subjects.length == 0 && classifiedSubjects.size > 0"> - </div>
|
||||
</dd>
|
||||
|
||||
<dd class="col-md-offset-1" *ngIf="classifiedSubjects.size > 0">
|
||||
<a (click)="showClassifiedSbj = !showClassifiedSbj;">
|
||||
<div *ngIf="!showClassifiedSbj">
|
||||
Show additional classifications
|
||||
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
||||
</div>
|
||||
<div *ngIf="showClassifiedSbj">
|
||||
Hide additional classifications
|
||||
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="well" *ngIf="showClassifiedSbj">
|
||||
<div *ngFor="let key of classifiedSubjects.keys()">
|
||||
Classified by OpenAIRE into
|
||||
<div>
|
||||
{{key}}: {{classifiedSubjects.get(key)}}
|
||||
</div>
|
||||
<div *ngIf="subjects != undefined && subjects.length > 0"> {{subjects}} </div>
|
||||
<div *ngIf="otherSubjects != undefined && otherSubjects.size > 0">
|
||||
<div *ngFor="let key of otherSubjects.keys()">
|
||||
{{key}}: {{otherSubjects.get(key)}}
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="(subjects == undefined || subjects.length == 0) &&
|
||||
(otherSubjects == undefined || otherSubjects.size == 0) &&
|
||||
classifiedSubjects != undefined && classifiedSubjects.size > 0">
|
||||
-
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
<dd class="col-md-offset-1"
|
||||
*ngIf="classifiedSubjects != undefined && classifiedSubjects.size > 0">
|
||||
<a (click)="showClassifiedSbj = !showClassifiedSbj;">
|
||||
<div *ngIf="!showClassifiedSbj">
|
||||
Show additional classifications
|
||||
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
||||
</div>
|
||||
<div *ngIf="showClassifiedSbj">
|
||||
Hide additional classifications
|
||||
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="well" *ngIf="showClassifiedSbj">
|
||||
<div *ngFor="let key of classifiedSubjects.keys()">
|
||||
Classified by OpenAIRE into
|
||||
<div>
|
||||
{{key}}: {{classifiedSubjects.get(key)}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
`
|
||||
|
@ -40,6 +58,7 @@ import {Component, Input} from '@angular/core';
|
|||
|
||||
export class ShowSubjectsComponent {
|
||||
@Input() subjects: string[];
|
||||
@Input() otherSubjects: Map<string, string[]>;
|
||||
@Input() classifiedSubjects: Map<string, string[]>;
|
||||
private showClassifiedSbj: boolean = false;
|
||||
|
||||
|
|
|
@ -81,8 +81,6 @@ public getResultsForEntity(entity:string, id:string, page: number, size: number)
|
|||
parameters = "projects/"+id;
|
||||
} else if(entity == "person") {
|
||||
parameters = "people/"+id;
|
||||
} else if(entity == "dataprovider") {
|
||||
parameters = "datasources/"+id;
|
||||
}
|
||||
|
||||
if(parameters != "") {
|
||||
|
@ -112,6 +110,41 @@ public getResultsForEntity(entity:string, id:string, page: number, size: number)
|
|||
}
|
||||
}
|
||||
|
||||
public getResultsForDataproviders(id:string, resultsFrom:string, page: number, size: number){
|
||||
var parameters;
|
||||
if(resultsFrom == "collectedFrom") {
|
||||
parameters = "datasets?"+resultsFrom+"="+id+"&cl=and";
|
||||
} else if(resultsFrom == "hostedBy") {
|
||||
parameters = "datasets?"+resultsFrom+"="+id+"&hs=and";
|
||||
}
|
||||
|
||||
if(parameters != "") {
|
||||
|
||||
this._searchDatasetsService.searchDatasetsForDataproviders(parameters, page, size).subscribe(
|
||||
data => {
|
||||
this.totalResults = data[0];
|
||||
console.info("search Datasets for Dataproviders: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
|
||||
this.results = data[1];
|
||||
|
||||
var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
this.status = errorCodes.DONE;
|
||||
if(this.totalResults == 0 ){
|
||||
this.status = errorCodes.NONE;
|
||||
}
|
||||
},
|
||||
err => {
|
||||
console.error(err);
|
||||
//TODO check erros (service not available, bad request)
|
||||
// if( ){
|
||||
// this.status = ErrorCodes.ERROR;
|
||||
// }
|
||||
var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
this.status = errorCodes.ERROR;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public getResults(keyword:string,refine:boolean, page: number, size: number){
|
||||
var parameters = "";
|
||||
if(keyword.length > 0){
|
||||
|
|
|
@ -97,7 +97,7 @@ export class SearchPeopleComponent {
|
|||
|
||||
|
||||
|
||||
console.info(params);
|
||||
console.info(params);
|
||||
if(params[filter.filterId] != undefined) {
|
||||
let values = params[filter.filterId].split(",");
|
||||
for(let value of values) {
|
||||
|
|
|
@ -58,7 +58,7 @@ export class SearchPublicationsComponent {
|
|||
this.page = (params['page']=== undefined)?1:+params['page'];
|
||||
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
|
||||
this._getResults(queryParameters, true, this.page, this.size);
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -108,7 +108,7 @@ public getResultsForEntity(entity:string, id:string, page: number, size: number)
|
|||
this._searchPublicationsService.searchPublicationsForEntity(parameters, page, size).subscribe(
|
||||
data => {
|
||||
this.totalResults = data[0];
|
||||
console.info("search Datasets for "+entity+": [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
|
||||
console.info("search Publications for "+entity+": [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
|
||||
this.results = data[1];
|
||||
|
||||
var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
|
@ -143,7 +143,7 @@ public getResultsForDataproviders(id:string, resultsFrom:string, page: number, s
|
|||
this._searchPublicationsService.searchPublicationsForDataproviders(parameters, page, size).subscribe(
|
||||
data => {
|
||||
this.totalResults = data[0];
|
||||
console.info("search Datasets for Dataproviders: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
|
||||
console.info("search Publications for Dataproviders: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
|
||||
this.results = data[1];
|
||||
|
||||
var errorCodes:ErrorCodes = new ErrorCodes();
|
||||
|
|
|
@ -17,7 +17,6 @@ export class PublicationService {
|
|||
|
||||
return this.http.get(url)
|
||||
.map(res => <any> res.json())
|
||||
.do(res => console.info(res['result']['metadata']['oaf:entity']))
|
||||
.map(res => res['result']['metadata']['oaf:entity'])
|
||||
.map(res => [res['oaf:result'],
|
||||
res['oaf:result']['title'],
|
||||
|
@ -190,9 +189,11 @@ export class PublicationService {
|
|||
}
|
||||
}
|
||||
|
||||
this.publicationInfo.authors = this.publicationInfo.authors.filter(function (item) {
|
||||
return (item != undefined);
|
||||
});
|
||||
if(this.publicationInfo.authors != undefined) {
|
||||
this.publicationInfo.authors = this.publicationInfo.authors.filter(function (item) {
|
||||
return (item != undefined);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if(data[3] != null) {
|
||||
|
@ -400,9 +401,6 @@ export class PublicationService {
|
|||
}
|
||||
|
||||
if(data[7] != null) {
|
||||
this.publicationInfo.classifiedSubjects = new Map<string, string[]>();
|
||||
this.publicationInfo.subjects = new Array<string>();
|
||||
|
||||
let mydata;
|
||||
let length = data[7].length!=undefined ? data[7].length : 1;
|
||||
|
||||
|
@ -411,15 +409,33 @@ export class PublicationService {
|
|||
|
||||
if(mydata.classid != "") {
|
||||
if(mydata.inferred == true) {
|
||||
if(!this.publicationInfo.classifiedSubjects.has(mydata.classid)) {
|
||||
this.publicationInfo.classifiedSubjects.set(mydata.classid, new Array<string>());
|
||||
if(this.publicationInfo.classifiedSubjects == undefined) {
|
||||
this.publicationInfo.classifiedSubjects = new Map<string, string[]>();
|
||||
}
|
||||
|
||||
let counter = this.publicationInfo.classifiedSubjects.get(mydata.classid).length;
|
||||
this.publicationInfo.classifiedSubjects.get(mydata.classid)[counter] = mydata.content;
|
||||
if(!this.publicationInfo.classifiedSubjects.has(mydata.classname)) {
|
||||
this.publicationInfo.classifiedSubjects.set(mydata.classname, new Array<string>());
|
||||
}
|
||||
|
||||
this.publicationInfo.classifiedSubjects.get(mydata.classname).push(mydata.content);
|
||||
} else {
|
||||
let counter = this.publicationInfo.subjects.length;
|
||||
this.publicationInfo.subjects[counter] = mydata.content;
|
||||
if(mydata.classid == "keyword") {
|
||||
if(this.publicationInfo.subjects == undefined) {
|
||||
this.publicationInfo.subjects = new Array<string>();
|
||||
}
|
||||
|
||||
let counter = this.publicationInfo.subjects.length;
|
||||
this.publicationInfo.subjects[counter] = mydata.content;
|
||||
} else {
|
||||
if(this.publicationInfo.otherSubjects == undefined) {
|
||||
this.publicationInfo.otherSubjects = new Map<string, string[]>();
|
||||
}
|
||||
|
||||
if(!this.publicationInfo.otherSubjects.has(mydata.classname)) {
|
||||
this.publicationInfo.otherSubjects.set(mydata.classname, new Array<string>());
|
||||
}
|
||||
this.publicationInfo.otherSubjects.get(mydata.classname).push(mydata.content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,14 @@ export class SearchDatasetsService {
|
|||
.map(res => [res['meta'].total, this.parseResults(res['results'])]);
|
||||
}
|
||||
|
||||
searchDatasetsForDataproviders(params: string, page: number, size: number):any {
|
||||
let link = OpenaireProperties.getSearchAPIURL();
|
||||
let url = link+params;
|
||||
return this.http.get(url)
|
||||
.map(res => <any> res.json())
|
||||
.map(res => [res['meta'].total, this.parseResults(res['results'])]);
|
||||
}
|
||||
|
||||
parseResults(data: any): SearchResult[] {
|
||||
let results: SearchResult[] = [];
|
||||
|
||||
|
|
|
@ -10,9 +10,61 @@ export class SearchOrganizationsService {
|
|||
|
||||
constructor(private http: Http) {}
|
||||
|
||||
searchOrganizationsForDeposit (params: string, collectedFrom: string, page: number, size: number):any {
|
||||
|
||||
console.info("In searchOrganizationsforDeposit");
|
||||
|
||||
let link = OpenaireProperties.getSearchAPIURL()+"organizations";
|
||||
|
||||
let url = link+"?";
|
||||
if(params!= null && params != '' ) {
|
||||
if(collectedFrom == "OpenDOAR") {
|
||||
url += 'contenttype='+this.quote(params)+'&cn=and&compatibility='+this.quote(params)+'&cm=or';
|
||||
} else if(collectedFrom == "Registry of Research Data Repository") {
|
||||
url += 'contenttype='+this.quote(params)+'&cn=and&compatibility='+this.quote(params)+'&cm=or';
|
||||
}
|
||||
}
|
||||
|
||||
//url += "&page="+page+"&size="+size;
|
||||
|
||||
|
||||
return this.http.get(url)
|
||||
.map(res => <any> res.json())
|
||||
.do(res => console.info(res))
|
||||
.map(res => this.parseResultsForDeposit(res['results']));
|
||||
//.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
|
||||
}
|
||||
|
||||
quote(params: string):string {
|
||||
return encodeURIComponent('"'+params+'"');
|
||||
//return '"'+params+'"';
|
||||
}
|
||||
|
||||
parseResultsForDeposit(data: any): {"name": string, "id": string}[] {
|
||||
let results: {"name": string, "id": string}[] = [];
|
||||
|
||||
let length = Array.isArray(data) ? data.length : 1;
|
||||
|
||||
for(let i=0; i<length; i++) {
|
||||
let name: string = '';
|
||||
let id: string = '';
|
||||
let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:organization'] : data['result']['metadata']['oaf:entity']['oaf:organization'];
|
||||
name = resData.legalname;
|
||||
if(name == '') {
|
||||
name = resData.legalshortname;
|
||||
}
|
||||
|
||||
id = Array.isArray(data) ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier'];
|
||||
|
||||
results.push({"name": name, "id": id});
|
||||
}
|
||||
console.info(results);
|
||||
return results;
|
||||
}
|
||||
|
||||
searchOrganizations (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
|
||||
|
||||
console.info("In searchProjects");
|
||||
console.info("In searchOrganizations");
|
||||
|
||||
let link = OpenaireProperties.getSearchAPIURL()+"organizations";
|
||||
|
||||
|
|
|
@ -52,7 +52,14 @@ import 'rxjs/Rx';
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
<li><a routerLink="/deposit">Deposit</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Deposit <span class=""></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a routerLinkActive="active" routerLink="/deposit-publications">Deposit Publications</a></li>
|
||||
<li><a routerLink="/deposit-datasets">Deposit Datasets</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li><a [queryParams]="{articleId: 'od_______908::3a5b2885656a91307156325644e73b92'}" routerLink="search/publication" >Publication </a></li>
|
||||
<li><a [queryParams]="{datasetId: 'datacite____::430ac1c41b7f99b7b543ef737dc41a74'}" routerLink="search/dataset" >Dataset </a></li>
|
||||
<li><a [queryParams]="{projectId: 'corda_______::2c37878a0cede85dbbd1081bb9b4a2f8'}" routerLink="search/project" >Project </a></li>
|
||||
|
|
|
@ -13,6 +13,7 @@ export class PublicationInfo {
|
|||
journal: {"journal": string, "issn": string, "lissn": string};
|
||||
languages: string[];
|
||||
subjects: string[];
|
||||
otherSubjects: Map<string, string[]>;
|
||||
classifiedSubjects: Map<string, string[]>; //<class of subject, subjects>
|
||||
description: string;
|
||||
bestlicense: string;
|
||||
|
|
|
@ -97,8 +97,10 @@ app.get('/search/find/projects', ngApp);
|
|||
app.get('/search/find/datasets', ngApp);
|
||||
app.get('/search/find/organizations', ngApp);
|
||||
app.get('/search/find/people', ngApp);
|
||||
app.get('/deposit', ngApp);
|
||||
app.get('/deposit-result', ngApp);
|
||||
app.get('/deposit-publications', ngApp);
|
||||
app.get('/deposit-datasets', ngApp);
|
||||
app.get('/deposit-publications-result', ngApp);
|
||||
app.get('/deposit-datasets-result', ngApp);
|
||||
app.get('/error', ngApp);
|
||||
app.get('/test', ngApp);
|
||||
app.get('/refineResults.json', function(req, res) {
|
||||
|
|
Loading…
Reference in New Issue