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:
konstantina.galouni 2016-11-08 15:54:33 +00:00
parent 599c9cbcfc
commit 6620306760
19 changed files with 279 additions and 75 deletions

View File

@ -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
];

View File

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

View File

@ -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: [
]

View File

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

View File

@ -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)

View File

@ -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() {}

View File

@ -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() {}

View File

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

View File

@ -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 != ''">

View File

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

View File

@ -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){

View File

@ -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) {

View File

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

View File

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

View File

@ -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[] = [];

View File

@ -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";

View File

@ -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>

View File

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

View File

@ -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) {