Merge branch 'master' of code-repo.d4science.org:MaDgIK/openaire-library
This commit is contained in:
commit
e3e6cbd284
|
@ -240,7 +240,7 @@ export class DataProviderService {
|
||||||
for(let i=0; i<length; i++) {
|
for(let i=0; i<length; i++) {
|
||||||
mydata = data[5].length!=undefined ? data[5][i] : data[5];
|
mydata = data[5].length!=undefined ? data[5][i] : data[5];
|
||||||
if(mydata.hasOwnProperty("to")) {
|
if(mydata.hasOwnProperty("to")) {
|
||||||
if(mydata['to'].class == "isProvidedBy" && mydata['to'].type == "organization") {
|
if(mydata['to'].class && mydata['to'].class.toLowerCase() == "isprovidedby" && mydata['to'].type == "organization") {
|
||||||
//if(this.dataProviderInfo.organizations == undefined) {
|
//if(this.dataProviderInfo.organizations == undefined) {
|
||||||
if(this.dataProviderInfo.organizations.length == 0) {
|
if(this.dataProviderInfo.organizations.length == 0) {
|
||||||
//this.dataProviderInfo.organizations = new Array<{"name": string, "url": string}>();
|
//this.dataProviderInfo.organizations = new Array<{"name": string, "url": string}>();
|
||||||
|
|
|
@ -7,6 +7,9 @@ import {Injectable} from '@angular/core';
|
||||||
})
|
})
|
||||||
export class ParsingFunctions {
|
export class ParsingFunctions {
|
||||||
public notebookInSubjects: boolean = false;
|
public notebookInSubjects: boolean = false;
|
||||||
|
private notebookKeyword: string = "eosc jupyter notebook";
|
||||||
|
private notebook_label: string = "EOSC";
|
||||||
|
private notebook_value: string = "EOSC Jupyter Notebook";
|
||||||
|
|
||||||
public open = 'assets/common-assets/unlock.svg';
|
public open = 'assets/common-assets/unlock.svg';
|
||||||
public closed = 'assets/common-assets/lock.svg';
|
public closed = 'assets/common-assets/lock.svg';
|
||||||
|
@ -529,15 +532,46 @@ export class ParsingFunctions {
|
||||||
classifiedSubjects.get(subject.classname).push(subject.content);
|
classifiedSubjects.get(subject.classname).push(subject.content);
|
||||||
} else {
|
} else {
|
||||||
if (subject.classid == "keyword") {
|
if (subject.classid == "keyword") {
|
||||||
|
let content: string = subject.content;
|
||||||
|
console.log("keyword subject: "+content);
|
||||||
|
|
||||||
|
if(content && content.toLowerCase().includes(this.notebookKeyword)) {
|
||||||
|
// console.log("included in keyword subject: "+content);
|
||||||
|
console.log("included");
|
||||||
|
this.notebookInSubjects = true;
|
||||||
|
|
||||||
|
if (classifiedSubjects == undefined) {
|
||||||
|
classifiedSubjects = new Map<string, string[]>();
|
||||||
|
}
|
||||||
|
if (!classifiedSubjects.has(subject.classname)) {
|
||||||
|
classifiedSubjects.set(this.notebook_label, new Array<string>());
|
||||||
|
}
|
||||||
|
classifiedSubjects.get(this.notebook_label).push(this.notebook_value);
|
||||||
|
} else {
|
||||||
if (subjects == undefined) {
|
if (subjects == undefined) {
|
||||||
subjects = new Array<string>();
|
subjects = new Array<string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
let content: string = subject.content;
|
|
||||||
if(content && content.toLowerCase().includes("notebook")) {
|
|
||||||
this.notebookInSubjects = true;
|
|
||||||
}
|
|
||||||
subjects.push(content);
|
subjects.push(content);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let content: string = subject.content;
|
||||||
|
let classname: string = subject.classname;
|
||||||
|
console.log("other subject: "+classname + ": " +content);
|
||||||
|
|
||||||
|
if( (content && content.toLowerCase().includes(this.notebookKeyword) ||
|
||||||
|
(classname && classname.toLowerCase().includes(this.notebookKeyword)))) {
|
||||||
|
// console.log("included in other subject: "+classname + ": "+content);
|
||||||
|
console.log("included");
|
||||||
|
|
||||||
|
this.notebookInSubjects = true;
|
||||||
|
|
||||||
|
if (classifiedSubjects == undefined) {
|
||||||
|
classifiedSubjects = new Map<string, string[]>();
|
||||||
|
}
|
||||||
|
if (!classifiedSubjects.has(subject.classname)) {
|
||||||
|
classifiedSubjects.set(this.notebook_label, new Array<string>());
|
||||||
|
}
|
||||||
|
classifiedSubjects.get(this.notebook_label).push(this.notebook_value);
|
||||||
} else {
|
} else {
|
||||||
if (otherSubjects == undefined) {
|
if (otherSubjects == undefined) {
|
||||||
otherSubjects = new Map<string, string[]>();
|
otherSubjects = new Map<string, string[]>();
|
||||||
|
@ -546,17 +580,12 @@ export class ParsingFunctions {
|
||||||
if (!otherSubjects.has(subject.classname)) {
|
if (!otherSubjects.has(subject.classname)) {
|
||||||
otherSubjects.set(subject.classname, new Array<string>());
|
otherSubjects.set(subject.classname, new Array<string>());
|
||||||
}
|
}
|
||||||
let content: string = subject.content;
|
|
||||||
let classname: string = subject.classname;
|
|
||||||
if( (content && content.toLowerCase().includes("notebook") ||
|
|
||||||
(classname && classname.toLowerCase().includes("notebook")))) {
|
|
||||||
this.notebookInSubjects = true;
|
|
||||||
}
|
|
||||||
otherSubjects.get(classname).push(content);
|
otherSubjects.get(classname).push(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return [subjects, otherSubjects, classifiedSubjects];
|
return [subjects, otherSubjects, classifiedSubjects];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ export class ProjectService {
|
||||||
this.projectInfo.organizations = [];//new Map<string, string>();
|
this.projectInfo.organizations = [];//new Map<string, string>();
|
||||||
|
|
||||||
if(!Array.isArray(data[2])) {
|
if(!Array.isArray(data[2])) {
|
||||||
if(data[2].hasOwnProperty("to") && data[2]['to'].class == "hasParticipant") {
|
if(data[2].hasOwnProperty("to") && data[2]['to'].class && data[2]['to'].class.toLowerCase() == "hasparticipant") {
|
||||||
let acronym: string = "";
|
let acronym: string = "";
|
||||||
let name: string = "";
|
let name: string = "";
|
||||||
let id: string = "";
|
let id: string = "";
|
||||||
|
@ -200,7 +200,7 @@ export class ProjectService {
|
||||||
let acronym: string = "";
|
let acronym: string = "";
|
||||||
let name: string = "";
|
let name: string = "";
|
||||||
let id: string = "";
|
let id: string = "";
|
||||||
if(data[2][i].hasOwnProperty("to") && data[2][i]['to'].class == "hasParticipant") {
|
if(data[2][i].hasOwnProperty("to") && data[2][i]['to'].class && data[2][i]['to'].class.toLowerCase() == "hasparticipant") {
|
||||||
if(data[2][i].hasOwnProperty("legalshortname")) {
|
if(data[2][i].hasOwnProperty("legalshortname")) {
|
||||||
acronym = data[2][i].legalshortname;
|
acronym = data[2][i].legalshortname;
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,12 +125,12 @@
|
||||||
<li *ngIf="resultLandingInfo.showEgiNotebookButton && properties.adminToolsPortalType == 'explore'
|
<li *ngIf="resultLandingInfo.showEgiNotebookButton && properties.adminToolsPortalType == 'explore'
|
||||||
&& (properties.environment == 'beta' || properties.environment == 'development')">
|
&& (properties.environment == 'beta' || properties.environment == 'development')">
|
||||||
<a class="uk-link-text uk-text-bold uk-text-uppercase"
|
<a class="uk-link-text uk-text-bold uk-text-uppercase"
|
||||||
target="_blank" href="https://marketplace.eosc-portal.eu/services/egi-notebooks?q=EGI+Notebook">
|
target="_blank" [href]="properties.egiNotebookLink">
|
||||||
<span class="uk-icon-button notebook-button uk-icon">
|
<span class="uk-icon-button uk-icon">
|
||||||
<img src="assets/common-assets/egi-fed.notebook.png"
|
<img src="assets/common-assets/eosc-logo.png"
|
||||||
loading="lazy" alt="egi_notebook" style="width:30px; height:21px">
|
loading="lazy" alt="eosc_logo" style="width:28px; height:28px">
|
||||||
</span>
|
</span>
|
||||||
<span class="uk-margin-small-left"><u>EGI Notebook</u></span>
|
<span class="uk-margin-small-left"><u>EOSC SERVICE: EGI NOTEBOOK</u></span>
|
||||||
<span class="custom-external custom-icon space"></span>
|
<span class="custom-external custom-icon space"></span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -27,10 +27,6 @@ import {$e} from "codelyzer/angular/styles/chars";
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
styles: [
|
|
||||||
'.notebook-button { background-color: #f2f2f2; border: 1px solid #f2f2f2; } ' +
|
|
||||||
'.notebook-button:hover { background-color: #e5e5e5; border-color: #e5e5e5; } '
|
|
||||||
],
|
|
||||||
selector: 'result-landing',
|
selector: 'result-landing',
|
||||||
templateUrl: 'resultLanding.component.html',
|
templateUrl: 'resultLanding.component.html',
|
||||||
})
|
})
|
||||||
|
|
|
@ -185,22 +185,22 @@ export class ResultLandingService {
|
||||||
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 == "isProducedBy") {
|
if(relation['to'].class && relation['to'].class.toLowerCase() == "isproducedby") {
|
||||||
this.resultLandingInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.resultLandingInfo.fundedByProjects, relation, provenanceActionVocabulary);
|
this.resultLandingInfo.fundedByProjects = this.parsingFunctions.parseFundingByProjects(this.resultLandingInfo.fundedByProjects, relation, provenanceActionVocabulary);
|
||||||
} else if(relation['to'].class == "isRelatedTo") {
|
} else if(relation['to'].class && relation['to'].class.toLowerCase() == "isrelatedto") {
|
||||||
let provenanceAction: string = "";
|
let provenanceAction: string = "";
|
||||||
if(provenanceActionVocabulary != null && relation.provenanceaction in provenanceActionVocabulary) {
|
if(provenanceActionVocabulary != null && relation.provenanceaction in provenanceActionVocabulary) {
|
||||||
provenanceAction = provenanceActionVocabulary[relation.provenanceaction];
|
provenanceAction = provenanceActionVocabulary[relation.provenanceaction];
|
||||||
}
|
}
|
||||||
|
|
||||||
this.resultLandingInfo.relatedResearchResults = this.parsingFunctions.parseRelatedResearchResults(this.resultLandingInfo.relatedResearchResults, relation, provenanceAction);
|
this.resultLandingInfo.relatedResearchResults = this.parsingFunctions.parseRelatedResearchResults(this.resultLandingInfo.relatedResearchResults, relation, provenanceAction);
|
||||||
} else if(relation['to'].class == "hasAmongTopNSimilarDocuments") {
|
} else if(relation['to'].class && relation['to'].class.toLowerCase() == "hasamongtopnsimilardocuments") {
|
||||||
this.resultLandingInfo.similarResearchResults = this.parsingFunctions.parseSimilarResearchResults(this.resultLandingInfo.similarResearchResults, relation);
|
this.resultLandingInfo.similarResearchResults = this.parsingFunctions.parseSimilarResearchResults(this.resultLandingInfo.similarResearchResults, relation);
|
||||||
} else if(relation['to'].class == "hasAuthorInstitution") {
|
} else if(relation['to'].class && relation['to'].class.toLowerCase() == "hasauthorinstitution") {
|
||||||
this.resultLandingInfo.organizations = this.parseRelatedOrganizations(this.resultLandingInfo.organizations, relation);
|
this.resultLandingInfo.organizations = this.parseRelatedOrganizations(this.resultLandingInfo.organizations, relation);
|
||||||
} else if(relation['to'].class == "isSupplementedBy") {
|
} else if(relation['to'].class && relation['to'].class.toLowerCase() == "issupplementedby") {
|
||||||
this.resultLandingInfo.supplementaryResearchResults = this.parsingFunctions.parseSupplementaryResearchResults(this.resultLandingInfo.supplementaryResearchResults, relation);
|
this.resultLandingInfo.supplementaryResearchResults = this.parsingFunctions.parseSupplementaryResearchResults(this.resultLandingInfo.supplementaryResearchResults, relation);
|
||||||
} else if(relation['to'].class == "isSupplementTo") {
|
} else if(relation['to'].class && relation['to'].class.toLowerCase() == "issupplementto") {
|
||||||
this.resultLandingInfo.supplementedByResearchResults = this.parsingFunctions.parseSupplementedByResearchResults(this.resultLandingInfo.supplementedByResearchResults, relation);
|
this.resultLandingInfo.supplementedByResearchResults = this.parsingFunctions.parseSupplementedByResearchResults(this.resultLandingInfo.supplementedByResearchResults, relation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@ import {map} from "rxjs/operators";
|
||||||
import {ResultLandingInfo} from "../utils/entities/resultLandingInfo";
|
import {ResultLandingInfo} from "../utils/entities/resultLandingInfo";
|
||||||
import {CustomOptions} from "../services/servicesUtils/customOptions.class";
|
import {CustomOptions} from "../services/servicesUtils/customOptions.class";
|
||||||
import {WorkV3_0} from "./orcidWork";
|
import {WorkV3_0} from "./orcidWork";
|
||||||
import {encode, toUnicode} from "punycode";
|
|
||||||
import {Observable} from "rxjs";
|
|
||||||
import {properties} from "../../../environments/environment";
|
import {properties} from "../../../environments/environment";
|
||||||
import {ConnectHelper} from "../connect/connectHelper";
|
import {ConnectHelper} from "../connect/connectHelper";
|
||||||
|
|
||||||
|
@ -52,6 +50,7 @@ export class OrcidService {
|
||||||
saveWork(resultLandingInfo: ResultLandingInfo, pids: string) {
|
saveWork(resultLandingInfo: ResultLandingInfo, pids: string) {
|
||||||
let work = WorkV3_0.resultLandingInfoConvert(resultLandingInfo, null);
|
let work = WorkV3_0.resultLandingInfoConvert(resultLandingInfo, null);
|
||||||
let portalId: string = ConnectHelper.getCommunityFromDomain(properties.domain);
|
let portalId: string = ConnectHelper.getCommunityFromDomain(properties.domain);
|
||||||
|
// if dashboard format changes, check in API the metrics service ("calculateMetrics" method) for orcid KPIs
|
||||||
let dashboard: string = properties.environment + "_" + properties.dashboard + (portalId? "_" + portalId : "");
|
let dashboard: string = properties.environment + "_" + properties.dashboard + (portalId? "_" + portalId : "");
|
||||||
let result = {
|
let result = {
|
||||||
"dashboard": dashboard,
|
"dashboard": dashboard,
|
||||||
|
|
|
@ -390,7 +390,7 @@ export class SearchDataprovidersService {
|
||||||
let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][i] : resData['rels']['rel'];
|
let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][i] : resData['rels']['rel'];
|
||||||
|
|
||||||
if(relation.hasOwnProperty("to")) {
|
if(relation.hasOwnProperty("to")) {
|
||||||
if(relation['to'].class == "isProvidedBy" && relation['to'].type == "organization") {
|
if(relation['to'].class && relation['to'].class.toLowerCase() == "isprovidedby" && relation['to'].type == "organization") {
|
||||||
if(getOrganizations) {
|
if(getOrganizations) {
|
||||||
let item: {"name":string, "id":string} = {"name": "", "id": ""};
|
let item: {"name":string, "id":string} = {"name": "", "id": ""};
|
||||||
//item['name'] = relation.legalname;
|
//item['name'] = relation.legalname;
|
||||||
|
|
|
@ -113,7 +113,7 @@ export class SearchOrganizationsService {
|
||||||
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 == "isParticipant") {
|
if(relation['to'].class && relation['to'].class.toLowerCase() == "isparticipant") {
|
||||||
if(result['projects'] == undefined) {
|
if(result['projects'] == undefined) {
|
||||||
result['projects'] = new Array<
|
result['projects'] = new Array<
|
||||||
{ "id": string, "acronym": string, "title": string,
|
{ "id": string, "acronym": string, "title": string,
|
||||||
|
|
|
@ -171,7 +171,7 @@ export class SearchProjectsService {
|
||||||
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 == "hasParticipant") {
|
if(relation['to'].class && relation['to'].class.toLowerCase() == "hasparticipant") {
|
||||||
if(result['organizations'] == undefined) {
|
if(result['organizations'] == undefined) {
|
||||||
result['organizations'] = new Array<
|
result['organizations'] = new Array<
|
||||||
{ "name": string, "id": string}>();
|
{ "name": string, "id": string}>();
|
||||||
|
|
|
@ -305,7 +305,7 @@ export class SearchResearchResultsService {
|
||||||
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 == "isProducedBy") {
|
if (relation['to'].class && relation['to'].class.toLowerCase() == "isproducedby") {
|
||||||
result['projects'] = this.parseProjects(result['projects'], relation);
|
result['projects'] = this.parseProjects(result['projects'], relation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,4 +135,5 @@ export interface EnvProperties {
|
||||||
notificationsAPIURL?: string;
|
notificationsAPIURL?: string;
|
||||||
myOrcidLinksPage?: string;
|
myOrcidLinksPage?: string;
|
||||||
footerGrantText?: string;
|
footerGrantText?: string;
|
||||||
|
egiNotebookLink?: string;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue