[Develop | ADDED]: Add belongsTo configuration for all entities and initialize it in results.
This commit is contained in:
parent
59fc73bf4d
commit
65a60ddad1
|
@ -39,7 +39,7 @@ export class ParsingFunctions {
|
|||
|
||||
let fundedByProject: Project = {
|
||||
"id": "", "acronym": "", "title": "",
|
||||
"funderShortname": "", "funderName": "",
|
||||
"funderShortname": "", "funderName": "", "funderJurisdiction": "",
|
||||
"funding": "", "code": "", "provenanceAction": "", "validated": false
|
||||
};
|
||||
|
||||
|
@ -61,8 +61,7 @@ export class ParsingFunctions {
|
|||
}
|
||||
|
||||
if (relation.hasOwnProperty("funding")) {
|
||||
let funding: { "funderName": string, "funderShortname": string, "stream": string };
|
||||
funding = this.parseFundingTrees(relation.funding);
|
||||
let funding = this.parseFundingTrees(relation.funding);
|
||||
|
||||
if (funding.funderName) {
|
||||
fundedByProject['funderName'] = funding.funderName;
|
||||
|
@ -70,6 +69,9 @@ export class ParsingFunctions {
|
|||
if (funding.funderShortname) {
|
||||
fundedByProject['funderShortname'] = funding.funderShortname;
|
||||
}
|
||||
if(funding.funderJurisdiction) {
|
||||
fundedByProject['funderJurisdiction'] = funding.funderJurisdiction;
|
||||
}
|
||||
if (funding.stream) {
|
||||
fundedByProject['funding'] = funding.stream;
|
||||
}
|
||||
|
@ -79,10 +81,11 @@ export class ParsingFunctions {
|
|||
}
|
||||
|
||||
// publication & research data : for fundedByProjects | project landing : for funding
|
||||
public parseFundingTrees(fundingTree: any): { "funderName": string, "funderShortname": string, "stream": string } {
|
||||
let funding: { "funderName": string, "funderShortname": string, "stream": string } = {
|
||||
public parseFundingTrees(fundingTree: any): any {
|
||||
let funding: { "funderName": string, "funderShortname": string, "funderJurisdiction": string, "stream": string } = {
|
||||
"funderName": "",
|
||||
"funderShortname": "",
|
||||
"funderJurisdiction": "",
|
||||
"stream": ""
|
||||
};
|
||||
let length = Array.isArray(fundingTree) ? fundingTree.length : 1;
|
||||
|
@ -93,6 +96,7 @@ export class ParsingFunctions {
|
|||
if (fundingData.hasOwnProperty("funder")) {
|
||||
funding.funderShortname = fundingData['funder'].shortname;
|
||||
funding.funderName = fundingData['funder'].name;
|
||||
funding.funderJurisdiction = fundingData['funder'].jurisdiction;
|
||||
}
|
||||
|
||||
funding.stream = this.addFundingLevel0(fundingData, funding.stream);
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
<schema2jsonld *ngIf="resultLandingInfo && resultLandingInfo.record"
|
||||
[data]=resultLandingInfo.record [URL]="canonicalUrl"
|
||||
[searchActionRoute]="properties.searchLinkToResults"></schema2jsonld>
|
||||
|
||||
<div *ngIf="resultLandingInfo && !resultLandingInfo.belongsTo" [innerHTML]="resultLandingInfo.message"
|
||||
class="uk-alert uk-alert-warning uk-position-fixed uk-position-bottom-center uk-text-small" style="z-index: 1000;">
|
||||
</div>
|
||||
<!-- Desktop view -->
|
||||
<div *ngIf="!isMobile" id="tm-main" class="landing uk-section uk-padding-remove tm-middle">
|
||||
<div class="tm-main">
|
||||
|
|
|
@ -515,6 +515,9 @@ export class ResultLandingComponent {
|
|||
|
||||
this.resultLandingInfo = data;
|
||||
this.id = this.resultLandingInfo.objIdentifier;
|
||||
let typeId = this.identifier?.id?'pid':'id';
|
||||
let id = this.identifier?.id?this.identifier.id:this.id;
|
||||
this.resultLandingInfo.setBelongsTo(typeId, id);
|
||||
//old
|
||||
// this.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"resRepoViews", "resTitle":"' + this.id + '", "table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":" ","color":"","type":"chart","size":200,"sort":"xaxis","xStyle":{"r":-30,"s":"6","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"Repository","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[],"filters":[{"name":"","values":[""],"to":"-1"}]}]&info_types=["column"]&stacking=normal&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true&persistent=false';
|
||||
// this.downloadsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"resRepoDownloads", "resTitle":"' + this.id + '", "table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":" ","color":"","type":"chart","size":200,"sort":"xaxis","xStyle":{"r":-30,"s":"6","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"Repository","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[],"filters":[{"name":"","values":[""],"to":"-1"}]}]&info_types=["column"]&stacking=normal&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true&persistent=false';
|
||||
|
@ -592,7 +595,6 @@ export class ResultLandingComponent {
|
|||
this.setActiveTab();
|
||||
|
||||
this.cdr.detectChanges();
|
||||
|
||||
if (contexts) {
|
||||
if (this.communityId && this.communityId == "enermaps" && properties.enermapsURL) {
|
||||
this.enermapsId = ParsingFunctions.getEnermapsConceptId(contexts);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {properties} from "../../../../environments/environment";
|
||||
import {Measure} from "./resultLandingInfo";
|
||||
import {BelongsTo, Measure} from "./resultLandingInfo";
|
||||
|
||||
export class DataproviderProvenance {
|
||||
provenance: Map<string, { "urlPrefix": string, "name": string }>;
|
||||
|
@ -9,7 +9,10 @@ export class DataproviderProvenance {
|
|||
this.provenance.set("opendoar____::", {"urlPrefix": properties.openDoarURL, "name": "OpenDOAR"});//, "idRegexPrefix": ""});
|
||||
this.provenance.set("re3data_____::", {"urlPrefix": properties.r3DataURL, "name": "re3data.org"});
|
||||
this.provenance.set("fairsharing_::", {"urlPrefix": properties.fairSharingURL, "name": "FAIRsharing"});
|
||||
this.provenance.set("eosc________::", {"urlPrefix": properties.eoscMarketplaceURL, "name": "EOSC Service Catalogue"});
|
||||
this.provenance.set("eosc________::", {
|
||||
"urlPrefix": properties.eoscMarketplaceURL,
|
||||
"name": "EOSC Service Catalogue"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import {BelongsTo} from "./resultLandingInfo";
|
||||
|
||||
export interface OrganizationProject {
|
||||
name: string;
|
||||
id: string;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import {Measure} from "./resultLandingInfo";
|
||||
import {BelongsTo, Measure} from "./resultLandingInfo";
|
||||
import {StringUtils} from "../string-utils.class";
|
||||
|
||||
export class ProjectInfo {
|
||||
id:string;
|
||||
|
@ -23,4 +24,14 @@ export class ProjectInfo {
|
|||
totalDatasets: number;
|
||||
publicationsStatus: any;
|
||||
measure: Measure;
|
||||
belongsTo: boolean = true;
|
||||
message: string;
|
||||
|
||||
setBelongsTo(id: string) {
|
||||
this.belongsTo = !BelongsTo.project || BelongsTo.project.fields.findIndex(field => BelongsTo.check(this, field)) != -1;
|
||||
this.message = !this.belongsTo?BelongsTo.project.message:null;
|
||||
if(this.message) {
|
||||
this.message = this.message.replace('((id))', id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@ import {
|
|||
Project,
|
||||
RelationResult
|
||||
} from "../result-preview/result-preview";
|
||||
import {isArray} from "rxjs/internal-compatibility";
|
||||
import {OpenaireEntities} from "../properties/searchFields";
|
||||
import {StringUtils} from "../string-utils.class";
|
||||
|
||||
export interface Id {
|
||||
type: "pmid" | "doi" | "pmc" | "handle" | "openaire" | "swhid";
|
||||
|
@ -30,18 +33,6 @@ export interface Context {
|
|||
}
|
||||
|
||||
export interface Measure {
|
||||
// /** @deprecated*/
|
||||
// downloads?: string;
|
||||
// /** @deprecated*/
|
||||
// views?: string;
|
||||
// /** @deprecated*/
|
||||
// influence?: string;
|
||||
// /** @deprecated*/
|
||||
// popularity?: string;
|
||||
// /** @deprecated*/
|
||||
// citations?: string;
|
||||
// /** @deprecated*/
|
||||
// impulse?: string;
|
||||
bip?: Metric[]
|
||||
counts?: Metric[]
|
||||
countsPerDatasource?: MetricPerDatasource[];
|
||||
|
@ -61,6 +52,40 @@ export interface Metric {
|
|||
value: any
|
||||
}
|
||||
|
||||
class Field {
|
||||
path: string[];
|
||||
value: string;
|
||||
}
|
||||
|
||||
export class BelongsTo {
|
||||
public static result: BelongsTo = null;
|
||||
public static project: BelongsTo = null;
|
||||
public static organization: BelongsTo = null;
|
||||
public static datasource: BelongsTo = null;
|
||||
|
||||
fields: Field[];
|
||||
message: string;
|
||||
|
||||
public static check(element: any, field: Field): boolean {
|
||||
if (field) {
|
||||
field = Object.assign({}, field);
|
||||
let json: any = element;
|
||||
if (field.path.length > 0) {
|
||||
if (Array.isArray(json)) {
|
||||
return json.findIndex(value => BelongsTo.check(value, field)) != -1;
|
||||
} else {
|
||||
json = json[field.path[0]];
|
||||
field.path = field.path.slice(1);
|
||||
return BelongsTo.check(json, field);
|
||||
}
|
||||
}
|
||||
console.log(json, field.value)
|
||||
return json == field.value;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class ResultLandingInfo {
|
||||
relcanId;
|
||||
objIdentifier: string;
|
||||
|
@ -177,4 +202,17 @@ export class ResultLandingInfo {
|
|||
programmingLanguages: string[];
|
||||
|
||||
measure: Measure;
|
||||
|
||||
belongsTo: boolean = true;
|
||||
message: string;
|
||||
|
||||
setBelongsTo(typeId: string, id: string) {
|
||||
this.belongsTo = !BelongsTo.result || BelongsTo.result.fields.findIndex(field => BelongsTo.check(this, field)) != -1;
|
||||
this.message = !this.belongsTo ? BelongsTo.result.message : null;
|
||||
if (this.message) {
|
||||
this.message = this.message.replace('((result))', StringUtils.getEntityName(this.resultType));
|
||||
this.message = this.message.replace('((type_id))', typeId);
|
||||
this.message = this.message.replace('((id))', id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ export interface Project {
|
|||
title: string;
|
||||
funderShortname: string;
|
||||
funderName: string;
|
||||
funderJurisdiction?: string
|
||||
funding?: string;
|
||||
code: string;
|
||||
validated?: boolean;
|
||||
|
|
Loading…
Reference in New Issue