Links for authors removed | Parsing for authors changed: from 'rels->rel->to = hasAuthor' to 'creator' and from 'relperson' to 'resultauthor' | structure for authors changed from {'name':string, 'id':string}[] to string[] where name of each author is stored

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@49605 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2017-10-20 14:58:20 +00:00
parent 8b50c430bc
commit da7399e5cd
18 changed files with 158 additions and 80 deletions

View File

@ -68,7 +68,7 @@
<a *ngIf="!isSelected(result.id)" (click)="add(result, result.id, 'openaire', 'publication', result['title'].url, result['title'].name, result.year,result['title'].accessMode)" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a> <a *ngIf="!isSelected(result.id)" (click)="add(result, result.id, 'openaire', 'publication', result['title'].url, result['title'].name, result.year,result['title'].accessMode)" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
</div> </div>
<span *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span class="uk-article-meta" *ngIf="(result.year)">({{result.year}})</span> <span *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span class="uk-article-meta" *ngIf="(result.year)">({{result.year}})</span>
<div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div> <div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div>
</li> </li>
@ -177,7 +177,7 @@
(click)="add(result, result.id, 'openaire','dataset', result['title'].url, result['title'].name, result.year, result['title'].accessMode)" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a> (click)="add(result, result.id, 'openaire','dataset', result['title'].url, result['title'].name, result.year, result['title'].accessMode)" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
</div> </div>
<span *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span> <span *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span>
<div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div> <div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div>
</li> </li>

View File

@ -70,7 +70,7 @@
<a *ngIf="displayedResult.url" target="_blank" href="{{displayedResult.url}}" > <span class="custom-external"></span> {{displayedResult.title}}</a> <a *ngIf="displayedResult.url" target="_blank" href="{{displayedResult.url}}" > <span class="custom-external"></span> {{displayedResult.title}}</a>
<span *ngIf="!displayedResult.url" >{{displayedResult.title}}</span> <span *ngIf="!displayedResult.url" >{{displayedResult.title}}</span>
</div> </div>
<div *ngIf="displayedResult.result.authors && displayedResult.result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of displayedResult.result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (displayedResult.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == displayedResult.result.authors.slice(0,10).length-1 && displayedResult.result.authors.length > 10)?"...":""}}</span></div> <div *ngIf="displayedResult.result.authors && displayedResult.result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of displayedResult.result.authors.slice(0,10) let i = index">{{author}}{{(i < (displayedResult.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == displayedResult.result.authors.slice(0,10).length-1 && displayedResult.result.authors.length > 10)?"...":""}}</span></div>
</div> </div>

View File

@ -58,7 +58,7 @@ import {Dates} from '../../../utils/string-utils.class';
<div *ngIf="pub.result.editor && pub.result.editor.length > 0" >Editors: <span *ngFor="let author of pub.result.editor.slice(0,10) let i = index">{{author.family}} {{author.given}}{{(i < (pub.result.editor.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.editor.slice(0,10).length-1 && pub.result.editor.length > 10)?"...":""}}</span></div> <div *ngIf="pub.result.editor && pub.result.editor.length > 0" >Editors: <span *ngFor="let author of pub.result.editor.slice(0,10) let i = index">{{author.family}} {{author.given}}{{(i < (pub.result.editor.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.editor.slice(0,10).length-1 && pub.result.editor.length > 10)?"...":""}}</span></div>
<!-- Openaire --> <!-- Openaire -->
<div *ngIf="pub.result.authors && pub.result.authors.length >0 " >Authors: <span *ngFor="let author of pub.result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (pub.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.authors.slice(0,10).length-1 && pub.result.authors.length > 10)?"...":""}}</span></div> <div *ngIf="pub.result.authors && pub.result.authors.length >0 " >Authors: <span *ngFor="let author of pub.result.authors.slice(0,10) let i = index">{{author}}{{(i < (pub.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.authors.slice(0,10).length-1 && pub.result.authors.length > 10)?"...":""}}</span></div>
<!-- Orcid --> <!-- Orcid -->

View File

@ -42,7 +42,8 @@ export class DatasetService {
res[1]['collectedfrom'], res[1]['collectedfrom'],
res[1]['context'], res[1]['context'],
//res[1]['resulttype'], //res[1]['resulttype'],
res[0] res[0],
res[1]['creator']
]).do(res => { ]).do(res => {
this._cache.set(key, res); this._cache.set(key, res);
}) })
@ -90,14 +91,7 @@ export class DatasetService {
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
relation = data[2].length!=undefined ? data[2][i] : data[2]; relation = data[2].length!=undefined ? data[2][i] : data[2];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { if(relation['to'].class == "isProducedBy") {
if(this.datasetInfo.authors == undefined) {
this.datasetInfo.authors = new Array<{"name": string, "id": string}>();
}
this.datasetInfo.authors[relation.ranking-1] = {"name": "", "id": ""};
this.datasetInfo.authors[relation.ranking-1]['name'] = relation.fullname;
} else if(relation['to'].class == "isProducedBy") {
this.datasetInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.datasetInfo.fundedByProjects, relation, this.datasetInfo.projectsProvenanceVocabulary); this.datasetInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.datasetInfo.fundedByProjects, relation, this.datasetInfo.projectsProvenanceVocabulary);
} else if(relation['to'].class == "isRelatedTo") { } else if(relation['to'].class == "isRelatedTo") {
let provenanceAction: string; let provenanceAction: string;
@ -114,12 +108,6 @@ export class DatasetService {
} }
} }
} }
if(this.datasetInfo.authors != undefined) {
this.datasetInfo.authors = this.datasetInfo.authors.filter(function (item) {
return (item != undefined);
});
}
} }
if(data[3] != null) { if(data[3] != null) {
@ -214,6 +202,24 @@ export class DatasetService {
this.datasetInfo.underCurationMessage = false; this.datasetInfo.underCurationMessage = false;
} }
if(data[10] != null) {
if(this.datasetInfo.authors == undefined) {
this.datasetInfo.authors = new Array<string>();
}
let authors = data[13];
let length = Array.isArray(authors) ? authors.length : 1;
for(let i=0; i<length; i++) {
let author = Array.isArray(authors) ? authors[i] : authors;
this.datasetInfo.authors[author.rank-1] = author.content;
}
this.datasetInfo.authors = this.datasetInfo.authors.filter(function (item) {
return (item != undefined);
});
}
return this.datasetInfo; return this.datasetInfo;
} }
} }

View File

@ -67,12 +67,12 @@ export class CiteThisComponent {
citationData.author = []; citationData.author = [];
var max_length = (this.result.authors.length > 10)?10:this.result.authors.length; var max_length = (this.result.authors.length > 10)?10:this.result.authors.length;
for (var i =0 ;i < max_length; i++){ for (var i =0 ;i < max_length; i++){
if(this.result.authors[i].name && this.result.authors[i].name.indexOf(", ") !== -1){ if(this.result.authors[i] && this.result.authors[i].indexOf(", ") !== -1){
citationData.author.push({given:this.result.authors[i].name.split(", ")[0], family:this.result.authors[i].name.split(", ")[1], 'parse-names':true}); citationData.author.push({given:this.result.authors[i].split(", ")[0], family:this.result.authors[i].split(", ")[1], 'parse-names':true});
}else{ }else{
citationData.author.push({given:"", family:this.result.authors[i].name, 'parse-names':true}); citationData.author.push({given:"", family:this.result.authors[i], 'parse-names':true});
} }
citationData.authors.push(this.result.authors[i].name); citationData.authors.push(this.result.authors[i]);
} }
} }
if(this.result.dateofacceptance != undefined){ if(this.result.dateofacceptance != undefined){

View File

@ -8,20 +8,20 @@ import {RouterHelper} from '../../utils/routerHelper.class';
<div *ngIf="showAll"> <div *ngIf="showAll">
<a class="uk-text-muted" (click)="showAll = !showAll;">View less authors</a> <a class="uk-text-muted" (click)="showAll = !showAll;">View less authors</a>
</div> </div>
<span *ngFor="let item of authors.slice(0,30) let i=index"> <span *ngFor="let author of authors.slice(0,30) let i=index">
<!--a href="{{item['url']}}"--> <!--a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
<a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage"> {{author['name']}}
{{item['name']}} </a-->
</a> {{author}}
<span *ngIf=" i<29 && i<(authors.length-1)">;</span> <span *ngIf=" i<29 && i<(authors.length-1)">;</span>
</span> </span>
<span *ngIf="!showAll && authors.length > 30"> ... </span> <span *ngIf="!showAll && authors.length > 30"> ... </span>
<span *ngIf="showAll"> <span *ngIf="showAll">
<span *ngFor="let item of authors.slice(30) let i=index"> <span *ngFor="let author of authors.slice(30) let i=index">
<!--a href="{{item['url']}}"--> <!--a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
<a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage"> {{author['name']}}
{{item['name']}} </a-->
</a> {{author}}
<span *ngIf=" i<(authors.length-1)">;</span> <span *ngIf=" i<(authors.length-1)">;</span>
</span> </span>
</span> </span>

View File

@ -43,7 +43,8 @@ export class PublicationService {
res[1]['oaf:result']['collectedfrom'], res[1]['oaf:result']['collectedfrom'],
(res[1]['extraInfo']!= undefined && res[1]['extraInfo']['citations']!= undefined)? res[1]['extraInfo']['citations']['citation']:null, (res[1]['extraInfo']!= undefined && res[1]['extraInfo']['citations']!= undefined)? res[1]['extraInfo']['citations']['citation']:null,
res[1]['oaf:result']['context'], res[1]['oaf:result']['context'],
res[0] res[0],
res[1]['oaf:result']['creator']
]) ])
.do(res => { .do(res => {
this._cache.set(key, res); this._cache.set(key, res);
@ -94,14 +95,14 @@ export class PublicationService {
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
relation = Array.isArray(data[2]) ? data[2][i] : data[2]; relation = Array.isArray(data[2]) ? data[2][i] : data[2];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { // if(relation['to'].class == "hasAuthor") {
if(this.publicationInfo.authors == undefined) { // if(this.publicationInfo.authors == undefined) {
this.publicationInfo.authors = new Array<{"name": string, "id": string}>(); // this.publicationInfo.authors = new Array<{"name": string, "id": string}>();
} // }
//
this.publicationInfo.authors[relation.ranking-1] = {"name": "", "id": ""}; // this.publicationInfo.authors[relation.ranking-1] = {"name": "", "id": ""};
this.publicationInfo.authors[relation.ranking-1]['name'] = relation.fullname; // this.publicationInfo.authors[relation.ranking-1]['name'] = relation.fullname;
} else if(relation['to'].class == "isProducedBy") { /*} else*/ if(relation['to'].class == "isProducedBy") {
this.publicationInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.publicationInfo.fundedByProjects, relation, this.publicationInfo.projectsProvenanceVocabulary); this.publicationInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.publicationInfo.fundedByProjects, relation, this.publicationInfo.projectsProvenanceVocabulary);
} else if(relation['to'].class == "isRelatedTo") { } else if(relation['to'].class == "isRelatedTo") {
let provenanceAction: string; let provenanceAction: string;
@ -119,12 +120,6 @@ export class PublicationService {
} }
} }
} }
if(this.publicationInfo.authors != undefined) {
this.publicationInfo.authors = this.publicationInfo.authors.filter(function (item) {
return (item != undefined);
});
}
} }
if(data[3] != null) { if(data[3] != null) {
@ -248,6 +243,23 @@ export class PublicationService {
this.publicationInfo.underCurationMessage = false; this.publicationInfo.underCurationMessage = false;
} }
if(data[13] != null) {
if(this.publicationInfo.authors == undefined) {
this.publicationInfo.authors = new Array<string>();
}
let authors = data[13];
let length = Array.isArray(authors) ? authors.length : 1;
for(let i=0; i<length; i++) {
let author = Array.isArray(authors) ? authors[i] : authors;
this.publicationInfo.authors[author.rank-1] = author.content;
}
this.publicationInfo.authors = this.publicationInfo.authors.filter(function (item) {
return (item != undefined);
});
}
return this.publicationInfo; return this.publicationInfo;
} }

View File

@ -42,7 +42,8 @@ export class SoftwareService {
res[1]['collectedfrom'], res[1]['collectedfrom'],
res[1]['context'], res[1]['context'],
//res[1]['resulttype'], //res[1]['resulttype'],
res[0] res[0],
res[1]['creator']
]).do(res => { ]).do(res => {
this._cache.set(key, res); this._cache.set(key, res);
}) })
@ -90,14 +91,7 @@ export class SoftwareService {
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
relation = data[2].length!=undefined ? data[2][i] : data[2]; relation = data[2].length!=undefined ? data[2][i] : data[2];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { if(relation['to'].class == "isProducedBy") {
if(this.softwareInfo.authors == undefined) {
this.softwareInfo.authors = new Array<{"name": string, "id": string}>();
}
this.softwareInfo.authors[relation.ranking-1] = {"name": "", "id": ""};
this.softwareInfo.authors[relation.ranking-1]['name'] = relation.fullname;
} else if(relation['to'].class == "isProducedBy") {
this.softwareInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.softwareInfo.fundedByProjects, relation, this.softwareInfo.projectsProvenanceVocabulary); this.softwareInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.softwareInfo.fundedByProjects, relation, this.softwareInfo.projectsProvenanceVocabulary);
} else if(relation['to'].class == "isRelatedTo") { } else if(relation['to'].class == "isRelatedTo") {
let provenanceAction: string; let provenanceAction: string;
@ -114,12 +108,6 @@ export class SoftwareService {
} }
} }
} }
if(this.softwareInfo.authors != undefined) {
this.softwareInfo.authors = this.softwareInfo.authors.filter(function (item) {
return (item != undefined);
});
}
} }
if(data[3] != null) { if(data[3] != null) {
@ -214,6 +202,24 @@ export class SoftwareService {
this.softwareInfo.underCurationMessage = false; this.softwareInfo.underCurationMessage = false;
} }
if(data[10] != null) {
if(this.softwareInfo.authors == undefined) {
this.softwareInfo.authors = new Array<string>();
}
let authors = data[13];
let length = Array.isArray(authors) ? authors.length : 1;
for(let i=0; i<length; i++) {
let author = Array.isArray(authors) ? authors[i] : authors;
this.softwareInfo.authors[author.rank-1] = author.content;
}
this.softwareInfo.authors = this.softwareInfo.authors.filter(function (item) {
return (item != undefined);
});
}
return this.softwareInfo; return this.softwareInfo;
} }
} }

View File

@ -22,9 +22,10 @@
<span *ngIf="result['authors'] != undefined"> <span *ngIf="result['authors'] != undefined">
<span *ngFor="let author of result['authors'].slice(0,15)"> <span *ngFor="let author of result['authors'].slice(0,15)">
<!--a href="{{author['url']}}"--> <!--a href="{{author['url']}}"-->
<a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="linkToAdvancedSearchPage"> <!--a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="linkToAdvancedSearchPage">
{{author['name']}}; {{author['name']}};
</a> </a-->
{{author}};
</span> </span>
<span *ngIf="result['authors'].length > 15">...</span> <span *ngIf="result['authors'].length > 15">...</span>
</span> </span>

View File

@ -25,9 +25,10 @@
<div> <div>
<span *ngIf="result['authors'] != undefined"> <span *ngIf="result['authors'] != undefined">
<span *ngFor="let author of result['authors'].slice(0,15)"> <span *ngFor="let author of result['authors'].slice(0,15)">
<a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+type+'s'"> <!--a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(author['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+type+'s'">
{{author['name']}}; {{author['name']}};
</a> </a-->
{{author}};
</span> </span>
<span *ngIf="result['authors'].length > 15">...</span> <span *ngIf="result['authors'].length > 15">...</span>
</span> </span>

View File

@ -196,19 +196,36 @@ export class SearchDatasetsService {
let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { /*if(relation['to'].class == "hasAuthor") {
if(result['authors'] == undefined) { if(result['authors'] == undefined) {
result['authors'] = new Array<{"name": string, "id": string}>(); result['authors'] = new Array<{"name": string, "id": string}>();
} }
result['authors'].push({"name": relation.fullname, "id": relation['to'].content}); result['authors'].push({"name": relation.fullname, "id": relation['to'].content});
} else if(relation['to'].class == "isProducedBy") { } else */if(relation['to'].class == "isProducedBy") {
result['projects'] = this.parseProjects(result['projects'], relation); result['projects'] = this.parseProjects(result['projects'], relation);
} }
} }
} }
} }
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 var date:string = (resData.dateofacceptance)+""; // transform to string in case it is an integer
result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date; result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date;
if(!Array.isArray(resData.description)) { if(!Array.isArray(resData.description)) {

View File

@ -236,18 +236,36 @@ export class SearchPublicationsService {
let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { /*if(relation['to'].class == "hasAuthor") {
if(result['authors'] == undefined) { if(result['authors'] == undefined) {
result['authors'] = new Array<{"name": string, "id": string}>(); result['authors'] = new Array<{"name": string, "id": string}>();
} }
result['authors'].push({"name": relation.fullname, "id": /*OpenaireProperties.getsearchLinkToPerson()+*/relation['to'].content}); result['authors'].push({"name": relation.fullname, "id": relation['to'].content});
} else if(relation['to'].class == "isProducedBy") { } else */if(relation['to'].class == "isProducedBy") {
result['projects'] = this.parseProjects(result['projects'], relation); result['projects'] = this.parseProjects(result['projects'], relation);
} }
} }
} }
} }
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 var date:string = (resData.dateofacceptance)+""; // transform to string in case it is an integer
result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date; result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date;

View File

@ -196,19 +196,36 @@ export class SearchSoftwareService {
let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { /*if(relation['to'].class == "hasAuthor") {
if(result['authors'] == undefined) { if(result['authors'] == undefined) {
result['authors'] = new Array<{"name": string, "id": string}>(); result['authors'] = new Array<{"name": string, "id": string}>();
} }
result['authors'].push({"name": relation.fullname, "id": relation['to'].content}); result['authors'].push({"name": relation.fullname, "id": relation['to'].content});
} else if(relation['to'].class == "isProducedBy") { } else */if(relation['to'].class == "isProducedBy") {
result['projects'] = this.parseProjects(result['projects'], relation); result['projects'] = this.parseProjects(result['projects'], relation);
} }
} }
} }
} }
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 var date:string = (resData.dateofacceptance)+""; // transform to string in case it is an integer
result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date; result.year = (date && (date).indexOf('-') !== -1)?date.split('-')[0]:date;
if(!Array.isArray(resData.description)) { if(!Array.isArray(resData.description)) {

View File

@ -1,7 +1,7 @@
export class DatasetInfo { export class DatasetInfo {
underCurationMessage: boolean; underCurationMessage: boolean;
title: { "name": string, "url": string, "accessMode": string}; title: { "name": string, "url": string, "accessMode": string};
authors: { "name": string, "id": string}[]; authors: string[];
date: string; date: string;
dateofacceptance: string; dateofacceptance: string;
embargoEndDate: string; embargoEndDate: string;

View File

@ -1,7 +1,7 @@
export class PublicationInfo { export class PublicationInfo {
underCurationMessage: boolean; underCurationMessage: boolean;
title: { "name": string, "url": string, "accessMode": string}; title: { "name": string, "url": string, "accessMode": string};
authors: { "name": string, "id": string}[]; authors: string[];
date: string; date: string;
dateofacceptance: string; dateofacceptance: string;
embargoEndDate: string; embargoEndDate: string;

View File

@ -8,7 +8,7 @@ export class SearchResult {
description: string; description: string;
year: string; year: string;
embargoEndDate: string; embargoEndDate: string;
authors: { "name": string, "id": string}[]; authors: string[];
//datasets: //datasets:
publisher: string; publisher: string;
//dataproviders & projects: //dataproviders & projects:

View File

@ -1,7 +1,7 @@
export class SoftwareInfo { export class SoftwareInfo {
underCurationMessage: boolean; underCurationMessage: boolean;
title: { "name": string, "url": string, "accessMode": string}; title: { "name": string, "url": string, "accessMode": string};
authors: { "name": string, "id": string}[]; authors: string[];
date: string; date: string;
dateofacceptance: string; dateofacceptance: string;
embargoEndDate: string; embargoEndDate: string;

View File

@ -9,14 +9,14 @@ export class SearchFields {
"relproject","resultacceptanceyear", "relproject","resultacceptanceyear",
"resultbestaccessright", "instancetypename", "resultlanguagename", "community","resulthostingdatasource"]; "resultbestaccessright", "instancetypename", "resultlanguagename", "community","resulthostingdatasource"];
public RESULT_ADVANCED_FIELDS:string[] = ["q","resulttitle","relperson","resultpublisher","instancetypename", public RESULT_ADVANCED_FIELDS:string[] = ["q","resulttitle","resultauthor","resultpublisher","instancetypename",
"resultlanguagename", "community","relprojectid", "relfunder", "resultlanguagename", "community","relprojectid", "relfunder",
"relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id", "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id",
"resultdateofacceptance","resultbestaccessright","pid","resulthostingdatasourceid","collectedfromdatasourceid", "relorganizationid"]; "resultdateofacceptance","resultbestaccessright","pid","resulthostingdatasourceid","collectedfromdatasourceid", "relorganizationid"];
public RESULT_FIELDS: { [key:string]:FieldDetails}={ public RESULT_FIELDS: { [key:string]:FieldDetails}={
["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="}, ["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="},
["resulttitle"]:{name:"Title", type:"keyword", param:"title", equalityOperator: "="}, ["resulttitle"]:{name:"Title", type:"keyword", param:"title", equalityOperator: "="},
["relperson"]:{name:"Author", type:"keyword", param:"author", equalityOperator: "="}, ["resultauthor"]:{name:"Author", type:"keyword", param:"author", equalityOperator: "="},
["resultpublisher"]:{name:"Publisher", type:"keyword", param:"publisher", equalityOperator: "="}, ["resultpublisher"]:{name:"Publisher", type:"keyword", param:"publisher", equalityOperator: "="},
["pid"]:{name:"PID", type:"keyword", param:"pid", equalityOperator: " = "}, ["pid"]:{name:"PID", type:"keyword", param:"pid", equalityOperator: " = "},
["resulthostingdatasourceid"]:{name:"Hosting Content Provider", type:"entity", param:"hostedBy", equalityOperator: " exact "}, ["resulthostingdatasourceid"]:{name:"Hosting Content Provider", type:"entity", param:"hostedBy", equalityOperator: " exact "},