resultLanding: update jsonld to include isPartOf url with FOS/SDG search pages
This commit is contained in:
parent
18b403bec0
commit
d12138bc2a
|
@ -113,7 +113,9 @@
|
|||
<div [attr.style]="'margin-top: '+(graph_height? 'calc(40px + 20px - '+graph_height+'px)': '40px')">
|
||||
<!-- schema.org-->
|
||||
<schema2jsonld *ngIf="resultLandingInfo.record" [data]=resultLandingInfo.record
|
||||
[URL]="canonicalUrl"></schema2jsonld>
|
||||
[URL]="canonicalUrl"
|
||||
[searchActionRoute]="properties.searchLinkToResults"></schema2jsonld>
|
||||
|
||||
<!-- Actions for mobile viewport -->
|
||||
<div class="uk-flex uk-flex-right uk-margin-medium-bottom uk-hidden@s">
|
||||
<!-- Share -->
|
||||
|
|
|
@ -18,6 +18,7 @@ export class Dataset extends JsonldDocument {
|
|||
issn:String[];
|
||||
headline:String[];
|
||||
alternativeHeadline:String[];
|
||||
isPartOf;
|
||||
}
|
||||
|
||||
export interface Identifier {
|
||||
|
|
|
@ -59,7 +59,7 @@ export class Schema2jsonldComponent implements OnInit, OnChanges {
|
|||
} else if (this.type == 'search') {
|
||||
this.json = this.documentParser.createSearchPage(this.name, this.URL, this.logoURL, this.searchAction, this.description, this.searchActionRoute);
|
||||
} else if (this.type == 'result') {
|
||||
docOvject = this.documentParser.convertResult(this.data, this.URL);
|
||||
docOvject = this.documentParser.convertResult(this.data, this.URL, this.searchActionRoute);
|
||||
this.json = this.documentSerializer.serializeDataset(docOvject);
|
||||
} else {
|
||||
this.json = this.documentParser.createSimplePage(this.name, this.URL, this.description);
|
||||
|
|
|
@ -88,7 +88,9 @@ export class JsonldDocumentSerializerService {
|
|||
else if (doc.keyword && doc.keyword.length > 1) {
|
||||
buffer["keywords"] = _.join(doc.keyword, ", ");
|
||||
}
|
||||
|
||||
if(doc.isPartOf && doc.isPartOf.length > 0){
|
||||
buffer["isPartOf"] = doc.isPartOf;
|
||||
}
|
||||
if (doc.citation && doc.citation.length == 1) {
|
||||
buffer["citation"] = this.buildCitation(doc.citation[0]);
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ export class OpenAireJsonldConverterService {
|
|||
}
|
||||
return buffer;
|
||||
}
|
||||
convertResult(result: any, URL): Dataset {
|
||||
convertResult(result: any, URL, searchActionRoute = null): Dataset {
|
||||
const doc = new Dataset();
|
||||
|
||||
doc.title = this.getTitle(result);
|
||||
|
@ -111,6 +111,15 @@ export class OpenAireJsonldConverterService {
|
|||
doc.citation = this.getCitation(result);
|
||||
doc.license = this.getLicense(result);
|
||||
doc.keyword = this.getKeyword(result);
|
||||
doc.isPartOf = [];
|
||||
let fosSubjects = this.getKeyword(result,"FOS");
|
||||
let sdgSubjects = this.getKeyword(result,"SDG");
|
||||
for(let fos of fosSubjects?fosSubjects:[]){
|
||||
doc.isPartOf.push(URL.split('/search/')[0]+ searchActionRoute + "?fos=" + encodeURIComponent('"'+fos+'"'));
|
||||
}
|
||||
for(let sdg of sdgSubjects?sdgSubjects:[] ){
|
||||
doc.isPartOf.push(URL.split('/search/')[0]+ searchActionRoute + "?sdg=" + encodeURIComponent('"'+sdg+'"'));
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue