diff --git a/searchPages/searchUtils/newSearchPage.component.html b/searchPages/searchUtils/newSearchPage.component.html index 2219e88b..c330844b 100644 --- a/searchPages/searchUtils/newSearchPage.component.html +++ b/searchPages/searchUtils/newSearchPage.component.html @@ -300,9 +300,7 @@ [results]="results" [status]=searchUtils.status [type]="entityType" - [showLoading]="true" [properties]=properties [showImpactFactors]="(customFilter && - customFilter.queryFieldName == 'communityId' && (customFilter.valueId == - 'elixir-gr' || customFilter.valueId == 'inspired-ris'))"> + [showLoading]="true" [properties]=properties> result.DOIs).join(",")); - // console.log(dois); - if(dois.length > 0 && this.showImpactFactors && (this.properties.impactFactorsAPIURL && this.properties.impactFactorsAPIURL.length > 0) ) { - let url = this.properties.impactFactorsAPIURL + dois; - this.sub = this.http.get((this.properties.useCache?(this.properties.cacheUrl+(encodeURIComponent(url))):url)).subscribe((data_received:any[]) => { - let impact =[]; - data_received.forEach(function (result) { - if(result.doi && result.doi.length > 0 && result.pop_class!=null && result.inf_class!=null) - impact[result.doi]=result; - }); - this.previewResults.forEach(function (result) { - if(result.identifiers && result.identifiers.get("doi")) { - result.identifiers.get("doi").forEach(function (doi) { - if (impact[doi]) { - result.DOI = doi; - } - - }) - } - }); - for (let i = 0; i < this.previewResults.length; i++) { - if (this.previewResults[i].DOI) { - this.previewResults[i].pop_inf = new Array(); - this.previewResults[i].pop_inf.push(impact[this.previewResults[i].DOI].pop_class, impact[this.previewResults[i].DOI].inf_class); - if(this.previewResults[i].pop_inf[0]=="A"){ - // this.previewResults[i].pop_inf.push("High"); - this.previewResults[i].pop_inf.push("Exceptional"); - }else if(this.previewResults[i].pop_inf[0]=="B"){ - // this.previewResults[i].pop_inf.push("Average"); - this.previewResults[i].pop_inf.push("Substantial"); - }else{ - // this.previewResults[i].pop_inf.push("low"); - this.previewResults[i].pop_inf.push("Average"); - } - if(this.previewResults[i].pop_inf[1]=="A"){ - // this.previewResults[i].pop_inf.push("Strong"); - this.previewResults[i].pop_inf.push("Exceptional"); - }else if(this.previewResults[i].pop_inf[1]=="B"){ - // this.previewResults[i].pop_inf.push("Average"); - this.previewResults[i].pop_inf.push("Substantial"); - }else{ - // this.previewResults[i].pop_inf.push("Weak"); - this.previewResults[i].pop_inf.push("Average"); - } - } - } - - }, error1 => { - console.error("Failed to get Impact factors for elixir-gr") - }); - // console.log(researchResults[1]); - - } - /////////////////////// ATHENA CODE /////////////////////// } ngOnChanges(changes: SimpleChanges): void { diff --git a/services/searchResearchResults.service.ts b/services/searchResearchResults.service.ts index cf1647c2..6e69e315 100644 --- a/services/searchResearchResults.service.ts +++ b/services/searchResearchResults.service.ts @@ -199,6 +199,32 @@ export class SearchResearchResultsService { instance = Array.isArray(resData['children']['instance']) ? resData['children']['instance'][i] : resData['children']['instance']; this.parsingFunctions.parseTypes(result.types, types, instance); } + // Measure + result.measure = new Array(); + if (resData['measure'] && Array.isArray(resData['measure'])) { + for (let i = 0; i < resData['measure'].length; i++) { + if (resData['measure'][i].id == 'influence') { + result.measure[1] = resData['measure'][i].class; + if (resData['measure'][i].class == 'A') { + result.measure[3] = 'Exceptional'; + } else if (resData['measure'][i].class == 'B') { + result.measure[3] = 'Substantial'; + } else { + result.measure[3] = 'Average'; + } + } + if (resData['measure'][i].id == 'popularity') { + result.measure[0] = resData['measure'][i].class; + if (resData['measure'][i].class == 'A') { + result.measure[2] = 'Exceptional'; + } else if (resData['measure'][i].class == 'B') { + result.measure[2] = 'Substantial'; + } else { + result.measure[2] = 'Average'; + } + } + } + } /////////////////////////// Athena Code /////////////////////////// if (resData['pid']) { if (!Array.isArray(resData['pid'])) { @@ -370,7 +396,6 @@ export class SearchResearchResultsService { } results.push(result); } - return results; } diff --git a/utils/entities/searchResult.ts b/utils/entities/searchResult.ts index d88b6731..490a5c9f 100644 --- a/utils/entities/searchResult.ts +++ b/utils/entities/searchResult.ts @@ -6,6 +6,7 @@ export class SearchResult { relcanId: string; DOIs: string[]=[]; identifiers: Map; + measure: Array; //publications & datasets & orp & software & projects & dataproviders: description: string; diff --git a/utils/result-preview/result-preview.component.html b/utils/result-preview/result-preview.component.html index 81087974..b683ad2e 100644 --- a/utils/result-preview/result-preview.component.html +++ b/utils/result-preview/result-preview.component.html @@ -309,29 +309,29 @@ -
0 && isResultType) || result.orcidCreationDates?.length > 0))" class="uk-text-small" [ngClass]="{'uk-card-footer': isCard}"> - + - + - {{" " + result.pop_inf[2] + " popularity" }} + {{" " + result.measure[2] + " popularity" }}
- + - {{" " + result.pop_inf[2] + " popularity" }} + {{" " + result.measure[2] + " popularity" }} - {{" " + (result.pop_inf[0] == 'A' ? 'In top 0.01%' : '') + (result.pop_inf[0] == 'B' ? 'In top 1%' : '') + (result.pop_inf[0] == 'C' ? 'In bottom 99%' : '')}} + {{" " + (result.measure[0] == 'A' ? 'In top 0.01%' : '') + (result.measure[0] == 'B' ? 'In top 1%' : '') + (result.measure[0] == 'C' ? 'In bottom 99%' : '')}}
Popularity: Citation-based measure reflecting the current impact.
- + - {{" " + result.pop_inf[3] + " influence" }} + {{" " + result.measure[3] + " influence" }}
- + - {{result.pop_inf[3] + " influence" }} + {{result.measure[3] + " influence" }} - {{" " + (result.pop_inf[1] == 'A' ? 'In top 0.01%' : '') + (result.pop_inf[1] == 'B' ? 'In top 1%' : '') + (result.pop_inf[1] == 'C' ? 'In bottom 99%' : '')}} + {{" " + (result.measure[1] == 'A' ? 'In top 0.01%' : '') + (result.measure[1] == 'B' ? 'In top 1%' : '') + (result.measure[1] == 'C' ? 'In bottom 99%' : '')}}
Influence: Citation-based measure reflecting the total impact.
diff --git a/utils/result-preview/result-preview.component.less b/utils/result-preview/result-preview.component.less new file mode 100644 index 00000000..93da8f46 --- /dev/null +++ b/utils/result-preview/result-preview.component.less @@ -0,0 +1,10 @@ +// Impact Factors +.popularity-A svg .a, .influence-A svg .a { + fill:#d51717; +} +.popularity-B svg .a, .influence-B svg .a { + fill: #e1920a; +} +.popularity-C svg .a, .influence-C svg .a { + fill: #444; +} \ No newline at end of file diff --git a/utils/result-preview/result-preview.component.ts b/utils/result-preview/result-preview.component.ts index a5663358..121c4bd7 100644 --- a/utils/result-preview/result-preview.component.ts +++ b/utils/result-preview/result-preview.component.ts @@ -10,7 +10,8 @@ import {OpenaireEntities} from "../properties/searchFields"; @Component({ selector: 'result-preview', - templateUrl: 'result-preview.component.html' + templateUrl: 'result-preview.component.html', + styleUrls: ['result-preview.component.less'] }) export class ResultPreviewComponent implements OnInit, OnChanges { @Input() result: ResultPreview; diff --git a/utils/result-preview/result-preview.ts b/utils/result-preview/result-preview.ts index 73211623..e2c79a92 100644 --- a/utils/result-preview/result-preview.ts +++ b/utils/result-preview/result-preview.ts @@ -81,7 +81,8 @@ export class ResultPreview { //Impact factor DOI:string; - pop_inf; + measure: Array; + //publications & datasets & orp & software & organizations: projects: Project[]; @@ -194,6 +195,7 @@ export class ResultPreview { // } resultPreview.identifiers = result.identifiers; resultPreview.enermapsId = result.enermapsId; + resultPreview.measure = result.measure; return resultPreview; } diff --git a/utils/tabs/contents/search-tab.component.ts b/utils/tabs/contents/search-tab.component.ts index 96e02b31..daa12d88 100644 --- a/utils/tabs/contents/search-tab.component.ts +++ b/utils/tabs/contents/search-tab.component.ts @@ -39,7 +39,7 @@ import {StringUtils} from "../../string-utils.class"; + [type]="resultType" [showEnermaps]="showEnermaps"> @@ -59,7 +59,6 @@ export class SearchTabComponent { @Input() public searchNumber: number = 5; @Input() public searchLinkToAdvancedPage: string; @Input() properties: EnvProperties; - @Input() showImpactFactors; @Input() customTitle; @Input() showEnermaps: boolean; @Input() currentPage: number = null;