Merge branch 'master' of code-repo.d4science.org:MaDgIK/openaire-library into HEAD

This commit is contained in:
Konstantinos Triantafyllou 2021-09-06 18:07:13 +03:00
commit 277ef55615
25 changed files with 214 additions and 163 deletions

View File

@ -6,7 +6,7 @@ export class ConnectHelper {
public static getCommunityFromDomain(domain: string): string{ public static getCommunityFromDomain(domain: string): string{
if(properties.environment == "development") { if(properties.environment == "development") {
domain = "beta.connect.openaire.eu"; //for testing domain = "beta.egi.openaire.eu"; //for testing
} }
domain = domain.indexOf("//") != -1? domain.split("//")[1]:domain; //remove https:// prefix domain = domain.indexOf("//") != -1? domain.split("//")[1]:domain; //remove https:// prefix
if (domain.indexOf('openaire.eu') === -1) { if (domain.indexOf('openaire.eu') === -1) {

View File

@ -480,7 +480,8 @@
<div class="uk-margin-small-top uk-flex"> <div class="uk-margin-small-top uk-flex">
<!-- Last Index Info--> <!-- Last Index Info-->
<div class="uk-width-2-3@m uk-width-1-2"> <div class="uk-width-2-3@m uk-width-1-2">
<img src="assets/common-assets/graph.svg" style="opacity: 0.4" loading="lazy"> <img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
alt="graph">
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted"> <span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">
. Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}} . Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}

View File

@ -329,9 +329,13 @@ export class DataProviderComponent {
this.count(1, 0); this.count(1, 0);
this.metricsClicked = false; this.metricsClicked = false;
//old
this.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"dtsrcRepoViews","dtsrcName":"' + this.datasourceId + '","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":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"dtsrcRepoViews","dtsrcName":"' + this.datasourceId + '","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":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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":"dtsrcRepoDownloads","dtsrcName":"' + this.datasourceId + '","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":"","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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":"dtsrcRepoDownloads","dtsrcName":"' + this.datasourceId + '","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":"","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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';
//new
// this.viewsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' + encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly views","type":"line","query":{"name":"usagestats.views.monthly", "parameters":["' + this.datasourceId + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly views"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
// this.downloadsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' +
// encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly downloads","type":"column","query":{"name":"usagestats.downloads.monthly", "parameters":["' + this.datasourceId + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly downloads"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
this.fetchAggregatorsResults = new FetchResearchResults(this._searchResearchResultsService); this.fetchAggregatorsResults = new FetchResearchResults(this._searchResearchResultsService);
} }

View File

@ -11,7 +11,7 @@ import {properties} from "../../../../environments/environment";
class="uk-flex uk-flex-top" class="uk-flex uk-flex-top"
[title]="available.bestAccessMode ? available.bestAccessMode : 'Not available'"> [title]="available.bestAccessMode ? available.bestAccessMode : 'Not available'">
<span class="uk-margin-small-right"> <span class="uk-margin-small-right">
<img [src]="available.icon" loading="lazy"> <img [src]="available.icon" loading="lazy" [alt]="available.bestAccessMode" style="width:20px; height:20px">
</span> </span>
<div class="uk-width-expand uk-padding-small uk-padding-remove-left uk-padding-remove-vertical"> <div class="uk-width-expand uk-padding-small uk-padding-remove-left uk-padding-remove-vertical">
<span *ngIf="available.downloadUrl.length > 1" class="title"> <span *ngIf="available.downloadUrl.length > 1" class="title">

View File

@ -15,7 +15,7 @@ import {animate, state, style, transition, trigger} from "@angular/animations";
click-outside-or-esc (clickOutside)="close($event)" click-outside-or-esc (clickOutside)="close($event)"
id="metrics" targetId="metrics"> id="metrics" targetId="metrics">
<div class="m-badge clickable" (click)="toggle($event)"> <div class="m-badge clickable" (click)="toggle($event)">
<img src="assets/common-assets/logo-small-usage-counts.png" loading="lazy"> <img src="assets/common-assets/logo-small-usage-counts.png" loading="lazy" alt="usage counts">
<div class="number">{{total | number}}</div> <div class="number">{{total | number}}</div>
</div> </div>
<div class="widget" [@widget]="state.toString()"> <div class="widget" [@widget]="state.toString()">
@ -101,7 +101,7 @@ import {animate, state, style, transition, trigger} from "@angular/animations";
<div class="footer uk-flex uk-flex-middle" [@footer]="state.toString()"> <div class="footer uk-flex uk-flex-middle" [@footer]="state.toString()">
<span>Powered by</span> <span>Powered by</span>
<a href="https://usagecounts.openaire.eu" target="_blank"> <a href="https://usagecounts.openaire.eu" target="_blank">
<img width="120" src="assets/common-assets/logo-large-usage-counts.png" loading="lazy"> <img width="120" src="assets/common-assets/logo-large-usage-counts.png" loading="lazy" alt="usage counts">
</a> </a>
</div> </div>
</div> </div>

View File

@ -17,11 +17,11 @@ import {AlertModal} from "../../utils/modal/alert";
<div class="uk-margin-small-bottom uk-text-muted">Filter by Funder:</div> <div class="uk-margin-small-bottom uk-text-muted">Filter by Funder:</div>
<ul class="uk-list uk-list-divider uk-margin-remove"> <ul class="uk-list uk-list-divider uk-margin-remove">
<li *ngFor="let filter of fetchProjects.filters "> <li *ngFor="let filter of fetchProjects.filters ">
<span *ngFor="let value of filter.values" class="uk-animation-fade uk-margin-small-right"> <label *ngFor="let value of filter.values" class="uk-animation-fade uk-margin-small-right">
<input [(ngModel)]="value.selected" type="checkbox" <input [(ngModel)]="value.selected" type="checkbox"
(ngModelChange)="filterChange(value.selected)"/> (ngModelChange)="filterChange(value.selected)"/>
<span class="uk-text-bold"> {{value.name}}</span> <span class="uk-text-bold"> {{value.name}}</span>
</span> </label>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -251,7 +251,8 @@
<div class="uk-margin-small-top uk-flex"> <div class="uk-margin-small-top uk-flex">
<!-- Last Index Info--> <!-- Last Index Info-->
<div class="uk-width-2-3@m uk-width-1-2"> <div class="uk-width-2-3@m uk-width-1-2">
<img src="assets/common-assets/graph.svg" style="opacity: 0.4" loading="lazy"> <img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
alt="graph">
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted"> <span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">
. Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}} . Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}

View File

@ -734,7 +734,8 @@
<div class="uk-margin-small-top uk-flex"> <div class="uk-margin-small-top uk-flex">
<!-- Last Index Info--> <!-- Last Index Info-->
<div class="uk-width-2-3@m uk-width-1-2"> <div class="uk-width-2-3@m uk-width-1-2">
<img src="assets/common-assets/graph.svg" style="opacity: 0.4" loading="lazy"> <img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
alt="graph">
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a
href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted"> <span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">

View File

@ -409,11 +409,14 @@ export class ProjectComponent {
startDate: this.projectInfo.startDate, startDate: this.projectInfo.startDate,
endDate: this.projectInfo.endDate endDate: this.projectInfo.endDate
}; };
//old
this.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"projRepoViews","projTitle":"' + this.projectId + '","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":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"projRepoViews","projTitle":"' + this.projectId + '","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":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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":"projRepoDownloads","projTitle":"' + this.projectId + '","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":"","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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":"projRepoDownloads","projTitle":"' + this.projectId + '","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":"","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["column"]&stacking=&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(124, 181, 236, 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';
//new
// this.viewsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' + encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly views","type":"line","query":{"name":"usagestats.projects.views.monthly", "parameters":["' + this.projectId + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly views"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
// this.downloadsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' +
// encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly downloads","type":"column","query":{"name":"usagestats.projects.downloads.monthly", "parameters":["' + this.projectId + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly downloads"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
//stats tab charts //stats tab charts
if (this.properties.useNewStatistisTool) { if (this.properties.useNewStatistisTool) {
this.chartScientificResultsUrl = this.properties.statisticsFrameNewAPIURL + this.chartScientificResultsUrl = this.properties.statisticsFrameNewAPIURL +

View File

@ -107,7 +107,7 @@
<li *ngIf="properties.b2noteAPIURL"> <li *ngIf="properties.b2noteAPIURL">
<a *ngIf="isLoggedIn && pid" class="uk-link-text uk-text-bold uk-text-uppercase" (click)="annotation.toggleAnnotation($event)"> <a *ngIf="isLoggedIn && pid" class="uk-link-text uk-text-bold uk-text-uppercase" (click)="annotation.toggleAnnotation($event)">
<span class="uk-icon-button uk-button-primary uk-icon"> <span class="uk-icon-button uk-button-primary uk-icon">
<img src="assets/common-assets/b2note.png" loading="lazy"> <img src="assets/common-assets/b2note.png" loading="lazy" alt="b2note" style="width:34px; height:21px">
</span> </span>
<span class="uk-margin-small-left">add annotation</span> <span class="uk-margin-small-left">add annotation</span>
</a> </a>
@ -115,7 +115,8 @@
[attr.uk-tooltip]="!pid?'Annotations are available only for resources with a PID (persistent identifier) like DOI, handle, PMID': [attr.uk-tooltip]="!pid?'Annotations are available only for resources with a PID (persistent identifier) like DOI, handle, PMID':
'Annotations are available only for logged in users'"> 'Annotations are available only for logged in users'">
<span class="uk-icon-button uk-button-primary uk-icon uk-disabled"> <span class="uk-icon-button uk-button-primary uk-icon uk-disabled">
<img src="assets/common-assets/b2note.png" loading="lazy"> <img src="assets/common-assets/b2note.png" loading="lazy" alt="b2note" style="width:34px;
height:21px">
</span> </span>
<span class="uk-margin-small-left">add annotation</span> <span class="uk-margin-small-left">add annotation</span>
</span> </span>
@ -437,7 +438,13 @@
<ng-container *ngFor="let detail of enermapsDetails"> <ng-container *ngFor="let detail of enermapsDetails">
<li *ngIf="detail[0] && detail[1]"> <li *ngIf="detail[0] && detail[1]">
<span class="uk-text-muted">{{detail[0]}}: </span> <span class="uk-text-muted">{{detail[0]}}: </span>
<span>{{detail[1]}}</span> <span>
<ng-container *ngFor="let word of detail[1].split(' ')">
<ng-container *ngIf="!word.startsWith('http://') && !word.startsWith('https://')">{{word}} </ng-container>
<a *ngIf="word.startsWith('http://') || word.startsWith('https://')"
target="_blank" [href]="word">{{word}} </a>
</ng-container>
</span>
</li> </li>
</ng-container> </ng-container>
</ul> </ul>
@ -524,7 +531,8 @@
<div class="uk-margin-small-top uk-flex"> <div class="uk-margin-small-top uk-flex">
<!-- Last Index Info--> <!-- Last Index Info-->
<div class="uk-width-2-3@m uk-width-1-2"> <div class="uk-width-2-3@m uk-width-1-2">
<img src="assets/common-assets/graph.svg" style="opacity: 0.4" loading="lazy"> <img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
alt="graph">
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted"> <span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">
. Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}} . Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}

View File

@ -46,20 +46,20 @@ export class ResultLandingComponent {
public relation: string = 'trust'; public relation: string = 'trust';
public id: string; public id: string;
public title: string; public title: string;
/*Show all organizations*/ /*Show all organizations*/
public showAll: boolean = false; public showAll: boolean = false;
// Links for SEO // Links for SEO
public linkToLandingPage: string = null; public linkToLandingPage: string = null;
public canonicalUrl: string = null; public canonicalUrl: string = null;
public linkToSearchPage: string = null; public linkToSearchPage: string = null;
public thresholdDescription: number = 670; public thresholdDescription: number = 670;
public showNumDescription: number = 670; public showNumDescription: number = 670;
public citeThisClicked: boolean; public citeThisClicked: boolean;
// Metrics tab variables // Metrics tab variables
public metricsClicked: boolean; public metricsClicked: boolean;
public hasAltMetrics: boolean = false; public hasAltMetrics: boolean = false;
@ -68,7 +68,7 @@ export class ResultLandingComponent {
public totalViews: number; public totalViews: number;
public totalDownloads: number; public totalDownloads: number;
public pageViews: number; public pageViews: number;
// Custom tab paging variables // Custom tab paging variables
public referencesPage: number = 1; public referencesPage: number = 1;
public bioentitiesPage: number = 1; public bioentitiesPage: number = 1;
@ -79,7 +79,7 @@ export class ResultLandingComponent {
public organizationsPage: number = 1; public organizationsPage: number = 1;
public openCitationsPage: number = 1; public openCitationsPage: number = 1;
public pageSize: number = 10; public pageSize: number = 10;
// Map counting variables // Map counting variables
public bioentitiesNum: number = 0; public bioentitiesNum: number = 0;
public relatedResultsNum: number = 0; public relatedResultsNum: number = 0;
@ -89,7 +89,7 @@ export class ResultLandingComponent {
public errorMessage = ""; public errorMessage = "";
public showLoading: boolean = true; public showLoading: boolean = true;
public dashboard = properties.isDashboard; public dashboard = properties.isDashboard;
public routerHelper: RouterHelper = new RouterHelper(); public routerHelper: RouterHelper = new RouterHelper();
public activeTab: string = null; public activeTab: string = null;
private reloadEnermapsDetails: boolean = true; private reloadEnermapsDetails: boolean = true;
@ -129,7 +129,7 @@ export class ResultLandingComponent {
private _location: Location, private _location: Location,
private indexInfoService: IndexInfoService) { private indexInfoService: IndexInfoService) {
} }
ngOnInit() { ngOnInit() {
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
this.subscriptions.push(this.indexInfoService.getLastIndexDate(this.properties).subscribe(lastIndexUpdate => { this.subscriptions.push(this.indexInfoService.getLastIndexDate(this.properties).subscribe(lastIndexUpdate => {
@ -231,7 +231,7 @@ export class ResultLandingComponent {
})); }));
} }
} }
private getDivContents() { private getDivContents() {
if (this.communityId) { if (this.communityId) {
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, this.communityId, this._router.url).subscribe(contents => { this.subscriptions.push(this.helper.getDivHelpContents(this.properties, this.communityId, this._router.url).subscribe(contents => {
@ -248,13 +248,13 @@ export class ResultLandingComponent {
}); });
this._vocabulariesService.clearSubscriptions(); this._vocabulariesService.clearSubscriptions();
} }
public pidInit(event) { public pidInit(event) {
this.pid = event; this.pid = event;
this.cdr.detectChanges(); this.cdr.detectChanges();
} }
public getTypeName(): string { public getTypeName(): string {
if (this.type === "dataset") { if (this.type === "dataset") {
return "research data"; return "research data";
@ -264,7 +264,7 @@ export class ResultLandingComponent {
return this.type; return this.type;
} }
} }
public removeUnknown(array: string[], type: boolean = false): string[] { public removeUnknown(array: string[], type: boolean = false): string[] {
if (type) { if (type) {
return this.removeDuplicates(array).filter(value => value.toLowerCase() !== 'unknown'); return this.removeDuplicates(array).filter(value => value.toLowerCase() !== 'unknown');
@ -272,12 +272,12 @@ export class ResultLandingComponent {
return array.filter(value => value.toLowerCase() !== 'unknown'); return array.filter(value => value.toLowerCase() !== 'unknown');
} }
} }
public removeDuplicates(array: string[]): string[] { public removeDuplicates(array: string[]): string[] {
let type = this.getTypeName(); let type = this.getTypeName();
return array.filter(value => value.toLowerCase() !== type); return array.filter(value => value.toLowerCase() !== type);
} }
private getOpenCitations() { private getOpenCitations() {
this.subscriptions.push(this._resultLandingService.getOpenCitations(this.id, this.properties).subscribe( this.subscriptions.push(this._resultLandingService.getOpenCitations(this.id, this.properties).subscribe(
data => { data => {
@ -288,7 +288,7 @@ export class ResultLandingComponent {
} }
)); ));
} }
private getProvenanceVocabularyAndResultLandingInfo() { private getProvenanceVocabularyAndResultLandingInfo() {
this.warningMessage = ''; this.warningMessage = '';
this.errorMessage = ''; this.errorMessage = '';
@ -306,9 +306,9 @@ export class ResultLandingComponent {
} else { } else {
this.getResultLandingInfo(null); this.getResultLandingInfo(null);
} }
} }
private setActiveTab() { private setActiveTab() {
if (this.hasPrimaryInfo || this.hasSecondaryInfo) { if (this.hasPrimaryInfo || this.hasSecondaryInfo) {
this.activeTab = 'summary'; this.activeTab = 'summary';
@ -326,7 +326,7 @@ export class ResultLandingComponent {
this.activeTab = "enermaps"; this.activeTab = "enermaps";
} }
} }
// private get numberOfTabs(): number { // private get numberOfTabs(): number {
// let numberOfTabs = 0; // let numberOfTabs = 0;
// if(this.hasPrimaryInfo || this.hasSecondaryInfo) { // if(this.hasPrimaryInfo || this.hasSecondaryInfo) {
@ -348,7 +348,7 @@ export class ResultLandingComponent {
// } // }
// return numberOfTabs; // return numberOfTabs;
// } // }
private getResultLandingInfo(provenanceActionVocabulary: any) { private getResultLandingInfo(provenanceActionVocabulary: any) {
if(this.resultFromInput && this.resultLandingInfo){ if(this.resultFromInput && this.resultLandingInfo){
this.showLoading = false; this.showLoading = false;
@ -359,8 +359,13 @@ export class ResultLandingComponent {
data => { data => {
this.resultLandingInfo = data; this.resultLandingInfo = data;
this.id = this.resultLandingInfo.objIdentifier; this.id = this.resultLandingInfo.objIdentifier;
//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.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'; 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';
//new
// this.viewsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' + encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly views","type":"line","query":{"name":"usagestats.results.views.monthly", "parameters":["' + this.id + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly views"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
// this.downloadsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' +
// encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly downloads","type":"column","query":{"name":"usagestats.results.downloads.monthly", "parameters":["' + this.id + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly downloads"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
let pid:Identifier = Identifier.getResultPIDFromIdentifiers(this.resultLandingInfo.identifiers); let pid:Identifier = Identifier.getResultPIDFromIdentifiers(this.resultLandingInfo.identifiers);
if (this.type == "result") { // no type was specified - update URL based this.resultLandingInfo.resultType if (this.type == "result") { // no type was specified - update URL based this.resultLandingInfo.resultType
this.updateUrlWithType(pid); this.updateUrlWithType(pid);
@ -380,7 +385,7 @@ export class ResultLandingComponent {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) { if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackViewForCustomUrl(this.properties, this.resultLandingInfo.title, this.linkToLandingPage.split("?")[1] + this.id ,this.piwikSiteId).subscribe()); this.subscriptions.push(this._piwikService.trackViewForCustomUrl(this.properties, this.resultLandingInfo.title, this.linkToLandingPage.split("?")[1] + this.id ,this.piwikSiteId).subscribe());
} }
let bioentitiesNum = 0; let bioentitiesNum = 0;
if (this.resultLandingInfo.bioentities != undefined) { if (this.resultLandingInfo.bioentities != undefined) {
this.resultLandingInfo.bioentities.forEach(function (value, key, map) { this.resultLandingInfo.bioentities.forEach(function (value, key, map) {
@ -416,7 +421,7 @@ export class ResultLandingComponent {
if (err.status == 404) { if (err.status == 404) {
this._router.navigate(['/error'], {queryParams: {"page": this._location.path(true), "page_type": this.type}}); this._router.navigate(['/error'], {queryParams: {"page": this._location.path(true), "page_type": this.type}});
} }
if (this.type == "publication" || this.type == "software") { if (this.type == "publication" || this.type == "software") {
this.errorMessage = 'No ' + this.type + ' found'; this.errorMessage = 'No ' + this.type + ' found';
} else if (this.type == "dataset") { } else if (this.type == "dataset") {
@ -429,32 +434,32 @@ export class ResultLandingComponent {
} }
)); ));
} }
public metricsResults($event) { public metricsResults($event) {
this.totalViews = $event.totalViews; this.totalViews = $event.totalViews;
this.totalDownloads = $event.totalDownloads; this.totalDownloads = $event.totalDownloads;
this.pageViews = $event.pageViews; this.pageViews = $event.pageViews;
} }
public get hasPrimaryInfo(): boolean { public get hasPrimaryInfo(): boolean {
return !!this.resultLandingInfo && (!!this.resultLandingInfo.description || !!this.resultLandingInfo.identifiers || !!this.resultLandingInfo.subjects); return !!this.resultLandingInfo && (!!this.resultLandingInfo.description || !!this.resultLandingInfo.identifiers || !!this.resultLandingInfo.subjects);
} }
public get hasSecondaryInfo(): boolean { public get hasSecondaryInfo(): boolean {
return (this.resultLandingInfo.fundedByProjects && this.resultLandingInfo.fundedByProjects.length > 0) || return (this.resultLandingInfo.fundedByProjects && this.resultLandingInfo.fundedByProjects.length > 0) ||
(this.resultLandingInfo.contexts && this.resultLandingInfo.contexts.length > 0) || (this.resultLandingInfo.contexts && this.resultLandingInfo.contexts.length > 0) ||
(this.resultLandingInfo.hostedBy_collectedFrom && this.resultLandingInfo.hostedBy_collectedFrom.length > 0); (this.resultLandingInfo.hostedBy_collectedFrom && this.resultLandingInfo.hostedBy_collectedFrom.length > 0);
} }
public get hasMetrics(): boolean { public get hasMetrics(): boolean {
return !(this.totalViews && this.totalDownloads && this.pageViews) || this.totalViews > 0 || this.totalDownloads > 0 || this.pageViews > 0; return !(this.totalViews && this.totalDownloads && this.pageViews) || this.totalViews > 0 || this.totalDownloads > 0 || this.pageViews > 0;
} }
private updateDescription(description: string) { private updateDescription(description: string) {
this._meta.updateTag({content: description.substring(0, 160)}, "name='description'"); this._meta.updateTag({content: description.substring(0, 160)}, "name='description'");
this._meta.updateTag({content: description.substring(0, 160)}, "property='og:description'"); this._meta.updateTag({content: description.substring(0, 160)}, "property='og:description'");
} }
private updateTitle(title: string) { private updateTitle(title: string) {
var _prefix = ""; var _prefix = "";
// if(!this.communityId) { // if(!this.communityId) {
@ -464,11 +469,11 @@ export class ResultLandingComponent {
this._title.setTitle(title); this._title.setTitle(title);
this._meta.updateTag({content: title}, "property='og:title'"); this._meta.updateTag({content: title}, "property='og:title'");
} }
private updateUrl(url: string) { private updateUrl(url: string) {
this._meta.updateTag({content: url}, "property='og:url'"); this._meta.updateTag({content: url}, "property='og:url'");
} }
public totalPages(totalResults: number): number { public totalPages(totalResults: number): number {
let totalPages: any = totalResults / this.pageSize; let totalPages: any = totalResults / this.pageSize;
if (!(Number.isInteger(totalPages))) { if (!(Number.isInteger(totalPages))) {
@ -476,39 +481,39 @@ export class ResultLandingComponent {
} }
return totalPages; return totalPages;
} }
public updateReferencesPage($event) { public updateReferencesPage($event) {
this.referencesPage = $event.value; this.referencesPage = $event.value;
} }
public updateBioentitiesPage($event) { public updateBioentitiesPage($event) {
this.bioentitiesPage = $event.value; this.bioentitiesPage = $event.value;
} }
public updateRelatedPage($event) { public updateRelatedPage($event) {
this.relatedPage = $event.value; this.relatedPage = $event.value;
} }
public updateSimilarPage($event) { public updateSimilarPage($event) {
this.similarPage = $event.value; this.similarPage = $event.value;
} }
public updateSupplementaryPage($event) { public updateSupplementaryPage($event) {
this.supplementaryPage = $event.value; this.supplementaryPage = $event.value;
} }
public updateSupplementedByPage($event) { public updateSupplementedByPage($event) {
this.supplementedByPage = $event.value; this.supplementedByPage = $event.value;
} }
public updateOrganizationsPage($event) { public updateOrganizationsPage($event) {
this.organizationsPage = $event.value; this.organizationsPage = $event.value;
} }
public updateOpenCitationsPage($event) { public updateOpenCitationsPage($event) {
this.openCitationsPage = $event.value; this.openCitationsPage = $event.value;
} }
public accessClass(accessMode: string): string { public accessClass(accessMode: string): string {
if (accessMode.toLowerCase().indexOf('open') !== -1) { if (accessMode.toLowerCase().indexOf('open') !== -1) {
return 'open'; return 'open';
@ -518,7 +523,7 @@ export class ResultLandingComponent {
return 'closed'; return 'closed';
} }
} }
public keysToArray(bioentities: Map<string, string>): string[] { public keysToArray(bioentities: Map<string, string>): string[] {
let keys: string[] = []; let keys: string[] = [];
bioentities.forEach(function (value, key, map) { bioentities.forEach(function (value, key, map) {
@ -526,15 +531,15 @@ export class ResultLandingComponent {
}); });
return keys; return keys;
} }
public getKeys(map) { public getKeys(map) {
return Array.from(map.keys()); return Array.from(map.keys());
} }
public scroll() { public scroll() {
HelperFunctions.scroll(); HelperFunctions.scroll();
} }
private handleError(message: string, error) { private handleError(message: string, error) {
if (this.type == "publication") { if (this.type == "publication") {
console.error("Publication Landing Page: " + message, error); console.error("Publication Landing Page: " + message, error);
@ -548,7 +553,7 @@ export class ResultLandingComponent {
console.error("Landing Page: " + message, error); console.error("Landing Page: " + message, error);
} }
} }
isRouteAvailable(routeToCheck: string) { isRouteAvailable(routeToCheck: string) {
for (let i = 0; i < this.router.config.length; i++) { for (let i = 0; i < this.router.config.length; i++) {
let routePath: string = this.router.config[i].path; let routePath: string = this.router.config[i].path;
@ -558,7 +563,7 @@ export class ResultLandingComponent {
} }
return false; return false;
} }
openDeletedByInference() { openDeletedByInference() {
this.deleteByInferenceOpened = true; this.deleteByInferenceOpened = true;
this.alertModalDeletedByInference.cancelButton = false; this.alertModalDeletedByInference.cancelButton = false;
@ -566,11 +571,11 @@ export class ResultLandingComponent {
this.alertModalDeletedByInference.alertTitle = "Other versions of"; this.alertModalDeletedByInference.alertTitle = "Other versions of";
this.alertModalDeletedByInference.open(); this.alertModalDeletedByInference.open();
} }
public getResultPreview(result: RelationResult): ResultPreview { public getResultPreview(result: RelationResult): ResultPreview {
return ResultPreview.relationResultConvert(result, this.relation); return ResultPreview.relationResultConvert(result, this.relation);
} }
updateUrlWithType(pid) { updateUrlWithType(pid) {
this.type = this.resultLandingInfo.resultType; this.type = this.resultLandingInfo.resultType;
@ -596,7 +601,7 @@ export class ResultLandingComponent {
// this._location.go(this.linkToLandingPage.split("?")[0] + "?pid=" + this.identifier.id); // this._location.go(this.linkToLandingPage.split("?")[0] + "?pid=" + this.identifier.id);
// } // }
} }
public getReferenceUrl(id: Id): string { public getReferenceUrl(id: Id): string {
if (id.type === "doi") { if (id.type === "doi") {
return this.properties.doiURL + id.value; return this.properties.doiURL + id.value;
@ -610,7 +615,7 @@ export class ResultLandingComponent {
return null; return null;
} }
} }
public getReferenceIdName(id: Id): string { public getReferenceIdName(id: Id): string {
if (id.type === "doi") { if (id.type === "doi") {
return 'DOI' return 'DOI'
@ -624,14 +629,14 @@ export class ResultLandingComponent {
return null; return null;
} }
} }
public openLinkModal() { public openLinkModal() {
this.linkModal.cancelButton = false; this.linkModal.cancelButton = false;
this.linkModal.okButton = false; this.linkModal.okButton = false;
this.linkModal.alertTitle = "Link this " + this.getTypeName() + " to"; this.linkModal.alertTitle = "Link this " + this.getTypeName() + " to";
this.linkModal.open(); this.linkModal.open();
} }
public openCiteModal() { public openCiteModal() {
this.citeThisClicked = true; this.citeThisClicked = true;
this.citeModal.cancelButton = false; this.citeModal.cancelButton = false;
@ -640,67 +645,76 @@ export class ResultLandingComponent {
this.citeModal.open(); this.citeModal.open();
} }
private addNoIndexFilter() { private addNoIndexFilter() {
let allow = this.checkIfAllowed(this.resultLandingInfo);
if(!allow) {
// console.log("no index");
this._meta.updateTag({content: 'noindex'}, "name='robots'");
}
}
checkIfAllowed(resultLandingInfo: ResultLandingInfo) {
let publicCommunities: string[] = [ "covid-19" ];
try { try {
if(!(this.properties.environment == "production" || this.properties.environment == "development") ) { if(!(this.properties.environment == "production" || this.properties.environment == "development") ) {
return ; return true;
}else { }else {
/* /*
//comment out poor content filters //comment out poor content filters
let allow = !!(!this.resultLandingInfo.underCurationMessage && let allow = !!(!resultLandingInfo.underCurationMessage &&
((this.resultLandingInfo.fundedByProjects && this.resultLandingInfo.fundedByProjects.length > 0) ((resultLandingInfo.fundedByProjects && resultLandingInfo.fundedByProjects.length > 0)
|| this.resultLandingInfo.journal || resultLandingInfo.journal
|| (this.resultLandingInfo.classifiedSubjects && this.resultLandingInfo.classifiedSubjects.size > 0) || (resultLandingInfo.classifiedSubjects && resultLandingInfo.classifiedSubjects.size > 0)
//allow free text keywords //allow free text keywords
|| (this.resultLandingInfo.otherSubjects && this.resultLandingInfo.otherSubjects.size > 0) || (resultLandingInfo.otherSubjects && resultLandingInfo.otherSubjects.size > 0)
|| (this.resultLandingInfo.subjects && this.resultLandingInfo.subjects.length > 0) || (resultLandingInfo.subjects && resultLandingInfo.subjects.length > 0)
|| (this.resultLandingInfo.organizations && this.resultLandingInfo.organizations.length > 0) || (resultLandingInfo.organizations && resultLandingInfo.organizations.length > 0)
|| this.resultLandingInfo.bioentities || (this.resultLandingInfo.references && this.resultLandingInfo.references.length > 0) || resultLandingInfo.bioentities || (resultLandingInfo.references && resultLandingInfo.references.length > 0)
|| (this.resultLandingInfo.relatedResearchResults && this.resultLandingInfo.relatedResearchResults.length > 0) || (resultLandingInfo.relatedResearchResults && resultLandingInfo.relatedResearchResults.length > 0)
|| (this.resultLandingInfo.similarResearchResults && this.resultLandingInfo.similarResearchResults.length > 0) || (resultLandingInfo.similarResearchResults && resultLandingInfo.similarResearchResults.length > 0)
|| (this.resultLandingInfo.supplementaryResearchResults && this.resultLandingInfo.supplementaryResearchResults.length > 0) || (resultLandingInfo.supplementaryResearchResults && resultLandingInfo.supplementaryResearchResults.length > 0)
|| (this.resultLandingInfo.supplementedByResearchResults && this.resultLandingInfo.supplementedByResearchResults.length > 0) || (resultLandingInfo.supplementedByResearchResults && resultLandingInfo.supplementedByResearchResults.length > 0)
) )
);*/ );*/
let allow = true; let allow = true;
// console.log("rich content " + allow) // console.log("rich content " + allow)
//spam words to exclude //spam words to exclude - need to be in lower case
let title_authors_words = ["movie","hd","film","kimetsu", "1080p","4k","call of duty", "mobile hack", "TUBYDI", "电影","電影","download ebook","download [ebook]"]; let title_authors_words = ["movie","hd","film","kimetsu", "1080p","4k","call of duty", "mobile hack", "tubydi", "电影","電影","download ebook","download [ebook]","düşük hapı", "düşük hapi"];
let abstract_words = ["operacao-feliz-natal.blogspot.com", "moviedouban.site", "hack-expert-solution.link"]; let abstract_words = ["operacao-feliz-natal.blogspot.com", "moviedouban.site", "hack-expert-solution.link"];
allow = allow && !( allow = allow && !(
(this.hasKeyword(this.resultLandingInfo.title,title_authors_words) || (this.resultLandingInfo.authors && this.hasKeyword(this.resultLandingInfo.authors.map(o => o.fullName).join(" "),title_authors_words)) (this.hasKeyword(resultLandingInfo.title,title_authors_words) || (resultLandingInfo.authors && this.hasKeyword(resultLandingInfo.authors.map(o => o.fullName).join(" "),title_authors_words))
|| (this.resultLandingInfo.description && this.hasKeyword(this.resultLandingInfo.description,abstract_words)) || (resultLandingInfo.description && this.hasKeyword(resultLandingInfo.description,abstract_words))
) && ) &&
((this.resultLandingInfo.publisher && this.resultLandingInfo.publisher.toLowerCase() == "zenodo") || ((resultLandingInfo.publisher && resultLandingInfo.publisher.toLowerCase() == "zenodo") ||
this.resultLandingInfo.hostedBy_collectedFrom.filter( value => {return value.downloadName && value.downloadName.toLowerCase().indexOf("zenodo")!=-1}).length > 0)); resultLandingInfo.hostedBy_collectedFrom.filter( value => {return value.downloadName && value.downloadName.toLowerCase().indexOf("zenodo")!=-1}).length > 0));
// console.log("spam content " + allow) // console.log("spam content " + allow)
//common titles/ description / authors //common titles/ description / authors
let common_titles = ["introduction", "editorial", "book reviews", "preface", "reviews", "none", "book review", "foreword", "conclusion", "review", "reply","einleitung","short notices","erratum","discussion", "letters to the editor","letter to the editor","reviews of books",":{unav)","editorial board"]; let common_titles = ["introduction", "editorial", "book reviews", "preface", "reviews", "none", "book review", "foreword", "conclusion", "review", "reply","einleitung","short notices","erratum","discussion", "letters to the editor","letter to the editor","reviews of books",":{unav)","editorial board"];
let common_abstract = ["international audience","n/a","peer reviewed","national audience","info:eu-repo/semantics/published","-",".","graphical abstract","met lit. opg","international audience; no abstract",'<jats:p>.</jats:p>',"politics","info:eu-repo/semantics/publishedversion","copia digital. madrid : ministerio de educación, cultura y deporte, 2016",'<jats:p />',"peer-reviewed","copia digital. madrid : ministerio de educación, cultura y deporte. subdirección general de coordinación bibliotecaria, 2015","<jats:p>-</jats:p>","imperial users only","yüksek lisans"]; let common_abstract = ["international audience","n/a","peer reviewed","national audience","info:eu-repo/semantics/published","-",".","graphical abstract","met lit. opg","international audience; no abstract",'<jats:p>.</jats:p>',"politics","info:eu-repo/semantics/publishedversion","copia digital. madrid : ministerio de educación, cultura y deporte, 2016",'<jats:p />',"peer-reviewed","copia digital. madrid : ministerio de educación, cultura y deporte. subdirección general de coordinación bibliotecaria, 2015","<jats:p>-</jats:p>","imperial users only","yüksek lisans"];
let common_authors = ["[s.n.]","null &na;","nn","(:unap)","(:null)","null anonymous","anonymous"]; let common_authors = ["[s.n.]","null &na;","nn","(:unap)","(:null)","null anonymous","anonymous"];
allow = allow && !( allow = allow && !(
this.isKeyword(this.resultLandingInfo.title,common_titles) || this.isKeyword(this.resultLandingInfo.description,common_abstract) || this.isKeyword(resultLandingInfo.title,common_titles) || this.isKeyword(resultLandingInfo.description,common_abstract) ||
(this.resultLandingInfo.authors && this.hasKeyword("_"+this.resultLandingInfo.authors.map(o => o.fullName).join("_")+"_",common_authors, "_")) (resultLandingInfo.authors && this.hasKeyword("_"+resultLandingInfo.authors.map(o => o.fullName).join("_")+"_",common_authors, "_"))
); );
// console.log("common content " + allow) // console.log("common content " + allow)
//community filter //community filter
allow = allow && ((properties.adminToolsPortalType == 'explore' && (!this.resultLandingInfo.contexts || this.resultLandingInfo.contexts.length == 0)) || allow = allow && ((properties.adminToolsPortalType == 'explore' &&
(!resultLandingInfo.contexts || resultLandingInfo.contexts.length == 0 ||
resultLandingInfo.contexts.filter( context => { return publicCommunities.includes(context.idContext) }).length == 0)) ||
(properties.adminToolsPortalType != 'explore' && properties.adminToolsPortalType != 'community') || (properties.adminToolsPortalType != 'explore' && properties.adminToolsPortalType != 'community') ||
(properties.adminToolsPortalType == 'community' && (!!this.resultLandingInfo.contexts && (properties.adminToolsPortalType == 'community' && (!!resultLandingInfo.contexts &&
this.resultLandingInfo.contexts.filter( context => { return ConnectHelper.getCommunityFromDomain(properties.domain) == context.idContext }).length > 0) resultLandingInfo.contexts.filter( context => { return ConnectHelper.getCommunityFromDomain(properties.domain) == context.idContext }).length > 0)
) )
); );
// console.log("community " + allow ) // console.log("community " + allow )
return allow;
if(!allow) {
this._meta.updateTag({content: 'noindex'}, "name='robots'");
}
} }
} catch (e) { } catch (e) {
console.error("Error in passNoIndexFilter()", this.resultLandingInfo.relcanId, e); console.error("Error in passNoIndexFilter()", resultLandingInfo.relcanId, e);
return false; return false;
} }
} }
private hasKeyword(value:string, words:string[], wordSuffix = ""){ private hasKeyword(value:string, words:string[], wordSuffix = ""){
return value?words.filter( word => { return value.toLowerCase().indexOf(wordSuffix + word + wordSuffix)!=-1}).length > 0:0; return value?words.filter( word => { return value.toLowerCase().indexOf(wordSuffix + word + wordSuffix)!=-1}).length > 0:0;
} }

View File

@ -501,7 +501,7 @@ export class ResultLandingService {
let keys = metadata ? Object.keys(metadata) : null; let keys = metadata ? Object.keys(metadata) : null;
for(let key of keys) { for(let key of keys) {
if(key != "shared_id" && key && metadata[key]) { if(key != "shared_id" && key && metadata[key]) {
entries.push([key, metadata[key]]); entries.push([key+"", metadata[key]+""]);
} }
} }
return entries; return entries;

View File

@ -156,8 +156,6 @@ import {UserManagementService} from "../services/user-management.service";
</ul> </ul>
</div> </div>
</ng-container> </ng-container>
<div id="logout2"></div>
` `
}) })
export class UserMiniComponent implements OnInit, OnChanges { export class UserMiniComponent implements OnInit, OnChanges {

View File

@ -44,7 +44,7 @@ declare var UIkit: any;
<span class="uk-margin-small-left uk-flex uk-flex-middle">Add to <span class="uk-margin-small-left uk-flex uk-flex-middle">Add to
<span class="orcid-color space uk-flex uk-flex-middle"> <span class="orcid-color space uk-flex uk-flex-middle">
<span>ORCID</span> <span>ORCID</span>
<img class="space" src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="" loading="lazy">{{" "}} <img class="space" src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="orcid" style="width:16px; height:16px" loading="lazy">{{" "}}
</span> </span>
</span> </span>
</a> </a>
@ -80,7 +80,7 @@ declare var UIkit: any;
<a (click)="currentAction='add'; saveWorkPreparation();" <a (click)="currentAction='add'; saveWorkPreparation();"
[class]="'orcid_icon_opacity uk-link-text uk-text-bold uk-text-uppercase '+ (showLoading ? 'uk-disabled' : '') + (!isLoggedIn || !pids ? 'uk-disabled uk-text-muted' : '')"> [class]="'orcid_icon_opacity uk-link-text uk-text-bold uk-text-uppercase '+ (showLoading ? 'uk-disabled' : '') + (!isLoggedIn || !pids ? 'uk-disabled uk-text-muted' : '')">
<span *ngIf="!showLoading" class="uk-icon"> <span *ngIf="!showLoading" class="uk-icon">
<img src="assets/common-assets/common/orcid_add.svg" style="width: 42px; height: 42px" loading="lazy"> <img src="assets/common-assets/common/orcid_add.svg" style="width: 42px; height: 42px" loading="lazy" alt="add orcid">
</span> </span>
<span *ngIf="showLoading" class="uk-icon icon-button loading-action-button"><loading <span *ngIf="showLoading" class="uk-icon icon-button loading-action-button"><loading
[top_margin]="false"></loading></span> [top_margin]="false"></loading></span>

View File

@ -23,7 +23,7 @@ import {properties} from "../../../environments/environment";
type="content providers" type="content providers"
[results]="results" [results]="results"
[searchUtils]="searchUtils" [searchUtils]="searchUtils"
[sortedByChanged]="searchUtils.sortBy" [resultsPerPageChanged]="searchUtils.size" [sortedByChanged]="searchUtils.sortBy"
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields" [fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
[csvParams]="csvParams" csvPath="datasources" [csvParams]="csvParams" csvPath="datasources"
[simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink" [simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink"
@ -133,11 +133,7 @@ export class SearchDataProvidersComponent {
let page = (params['page']=== undefined)?0:+params['page']; let page = (params['page']=== undefined)?0:+params['page'];
this.searchUtils.page = ( page < 1 ) ? 1 : page; this.searchUtils.page = ( page < 1 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size']; this.searchUtils.validateSize(params['size']);
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds; this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[]; this.selectedFields =[];
if(this.type == "deposit"){ if(this.type == "deposit"){

View File

@ -20,7 +20,7 @@ import {properties} from "../../../environments/environment";
type="organizations" type="organizations"
[results]="results" [results]="results"
[searchUtils]="searchUtils" [searchUtils]="searchUtils"
[sortedByChanged]="searchUtils.sortBy" [resultsPerPageChanged]="searchUtils.size" [sortedByChanged]="searchUtils.sortBy"
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields" [fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
[csvParams]="csvParams" csvPath="organizations" [csvParams]="csvParams" csvPath="organizations"
[simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink" [simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink"
@ -124,10 +124,7 @@ export class SearchOrganizationsComponent {
let page = (params['page']=== undefined)?1:+params['page']; let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page; this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size']; this.searchUtils.validateSize(params['size']);
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds; this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[]; this.selectedFields =[];

View File

@ -20,7 +20,7 @@ import {properties} from "../../../environments/environment";
type="projects" type="projects"
[results]="results" [results]="results"
[searchUtils]="searchUtils" [searchUtils]="searchUtils"
[sortedByChanged]="searchUtils.sortBy" [resultsPerPageChanged]="searchUtils.size" [sortedByChanged]="searchUtils.sortBy"
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields" [fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
[csvParams]="csvParams" csvPath="projects" [csvParams]="csvParams" csvPath="projects"
[simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink" [simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink"
@ -125,10 +125,7 @@ export class SearchProjectsComponent {
let page = (params['page']=== undefined)?1:+params['page']; let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page; this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size']; this.searchUtils.validateSize(params['size']);
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds; this.searchPage.fieldIds = this.fieldIds;
this.selectedFields = []; this.selectedFields = [];

View File

@ -21,7 +21,7 @@ import {ContextsService} from "../claims/claim-utils/service/contexts.service";
[type]="getEntityName(resultType, true, true)" [type]="getEntityName(resultType, true, true)"
[results]="results" [results]="results"
[searchUtils]="searchUtils" [searchUtils]="searchUtils"
[sortedByChanged]="searchUtils.sortBy" [resultsPerPageChanged]="searchUtils.size" [sortedByChanged]="searchUtils.sortBy"
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields" [fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
[csvParams]="csvParams" [csvPath]="getEntityName(resultType, true, false)" [csvParams]="csvParams" [csvPath]="getEntityName(resultType, true, false)"
[simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink" [simpleSearchLink]="simpleSearchLink" [advancedSearchLink]="advancedSearchLink"
@ -46,10 +46,10 @@ import {ContextsService} from "../claims/claim-utils/service/contexts.service";
export class SearchResearchResultsComponent { export class SearchResearchResultsComponent {
@Input() resultType: string = "result"; @Input() resultType: string = "result";
@Input() simpleSearchLink: string = ""; @Input() simpleSearchLink: string = "";
advancedSearchLink: string = ""; advancedSearchLink: string = "";
private errorCodes: ErrorCodes; private errorCodes: ErrorCodes;
private errorMessages: ErrorMessagesComponent; private errorMessages: ErrorMessagesComponent;
@Input() piwikSiteId = properties.piwikSiteId; @Input() piwikSiteId = properties.piwikSiteId;
@ -57,10 +57,10 @@ export class SearchResearchResultsComponent {
public results = []; public results = [];
public filters = []; public filters = [];
public rangeFilters: RangeFilter[] = []; public rangeFilters: RangeFilter[] = [];
public searchUtils: SearchUtilsClass = new SearchUtilsClass(); public searchUtils: SearchUtilsClass = new SearchUtilsClass();
public searchFields: SearchFields = new SearchFields(); public searchFields: SearchFields = new SearchFields();
public fieldIds: string[] = this.searchFields.RESULT_ADVANCED_FIELDS; public fieldIds: string[] = this.searchFields.RESULT_ADVANCED_FIELDS;
public fieldIdsMap = this.searchFields.RESULT_FIELDS; public fieldIdsMap = this.searchFields.RESULT_FIELDS;
public rangeFields: string[][] = this.searchFields.RESULT_RANGE_FIELDS; public rangeFields: string[][] = this.searchFields.RESULT_RANGE_FIELDS;
@ -116,18 +116,18 @@ export class SearchResearchResultsComponent {
getRoute(){ getRoute(){
return this._router.url.split("?")[0]; return this._router.url.split("?")[0];
} }
ngOnInit() { ngOnInit() {
//TODO add checks about which result types are enabled! //TODO add checks about which result types are enabled!
this.pagingLimit = this.properties.pagingLimit; this.pagingLimit = this.properties.pagingLimit;
this.isPiwikEnabled = this.properties.enablePiwikTrack; this.isPiwikEnabled = this.properties.enablePiwikTrack;
if (!this.simpleSearchLink) { if (!this.simpleSearchLink) {
this.simpleSearchLink = this.properties.searchLinkToResults; this.simpleSearchLink = this.properties.searchLinkToResults;
} }
this.advancedSearchLink = this.properties.searchLinkToAdvancedResults; this.advancedSearchLink = this.properties.searchLinkToAdvancedResults;
this.searchUtils.baseUrl = this.getRoute();//(this.simpleView) ? this.simpleSearchLink : this.advancedSearchLink; this.searchUtils.baseUrl = this.getRoute();//(this.simpleView) ? this.simpleSearchLink : this.advancedSearchLink;
this.searchUtils.status = this.errorCodes.LOADING; this.searchUtils.status = this.errorCodes.LOADING;
var firstLoad = true; var firstLoad = true;
this.subs.push(this.route.queryParams.subscribe(params => { this.subs.push(this.route.queryParams.subscribe(params => {
@ -158,11 +158,8 @@ export class SearchResearchResultsComponent {
let page = (params['page'] === undefined) ? 1 : +params['page']; let page = (params['page'] === undefined) ? 1 : +params['page'];
this.searchUtils.page = (page <= 0) ? 1 : page; this.searchUtils.page = (page <= 0) ? 1 : page;
this.searchUtils.size = (params['size'] === undefined) ? 10 : +params['size']; this.searchUtils.validateSize(params['size']);
if (this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchUtils.sortBy = (params['sortBy']) ? params['sortBy'] : ''; this.searchUtils.sortBy = (params['sortBy']) ? params['sortBy'] : '';
if (this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending" && this.searchUtils.sortBy != "resultdateofacceptance,ascending") { if (this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending" && this.searchUtils.sortBy != "resultdateofacceptance,ascending") {
this.searchUtils.sortBy = ""; this.searchUtils.sortBy = "";
@ -179,7 +176,7 @@ export class SearchResearchResultsComponent {
firstLoad = false; firstLoad = false;
})); }));
} }
ngOnDestroy() { ngOnDestroy() {
if(this.searchResultsSub) { if(this.searchResultsSub) {
this.searchResultsSub.unsubscribe(); this.searchResultsSub.unsubscribe();
@ -337,7 +334,7 @@ export class SearchResearchResultsComponent {
// } // }
this.csvParams = (parameters ? ("&fq=(" + parameters) : "") + (parameters ? ")" : ""); this.csvParams = (parameters ? ("&fq=(" + parameters) : "") + (parameters ? ")" : "");
this.csvParams += (refineFieldsFilterQuery ? refineFieldsFilterQuery : ""); this.csvParams += (refineFieldsFilterQuery ? refineFieldsFilterQuery : "");
this.searchUtils.status = this.errorCodes.LOADING; this.searchUtils.status = this.errorCodes.LOADING;
this.disableForms = true; this.disableForms = true;
this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils}); this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
@ -433,11 +430,11 @@ export class SearchResearchResultsComponent {
this.disableForms = false; this.disableForms = false;
this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils}); this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
} }
private handleError(message: string, error) { private handleError(message: string, error) {
console.error(this.getEntityName(this.resultType, true, true) + " advanced Search Page: " + message, error); console.error(this.getEntityName(this.resultType, true, true) + " advanced Search Page: " + message, error);
} }
public getEntityName(entityType: string, plural: boolean, full: boolean): string { public getEntityName(entityType: string, plural: boolean, full: boolean): string {
if (entityType == "publication") { if (entityType == "publication") {
return "publication" + (plural ? "s" : ""); return "publication" + (plural ? "s" : "");

View File

@ -389,7 +389,8 @@
class="uk-margin-small-top uk-grid uk-child-width-1-2"> class="uk-margin-small-top uk-grid uk-child-width-1-2">
<!-- Last Index Info--> <!-- Last Index Info-->
<div class=""> <div class="">
<img src="assets/common-assets/graph.svg" style="opacity: 0.4" loading="lazy"> <img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
alt="graph">
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
</div> </div>
<div class="uk-text-right"> <div class="uk-text-right">

View File

@ -58,7 +58,6 @@ export class NewSearchPageComponent {
@Input() customFilter: SearchCustomFilter; @Input() customFilter: SearchCustomFilter;
@Input() sort: boolean = true; @Input() sort: boolean = true;
@Input() sortedByChanged: string = ""; @Input() sortedByChanged: string = "";
@Input() resultsPerPageChanged: number;
@Input() searchFormClass: string = "searchForm"; @Input() searchFormClass: string = "searchForm";
//From simple: //From simple:
@Input() rangeFilters: RangeFilter[] = []; @Input() rangeFilters: RangeFilter[] = [];
@ -326,9 +325,7 @@ export class NewSearchPageComponent {
sizeChanged($event) { sizeChanged($event) {
//this.searchUtils.size = $event.value; this.searchUtils.size = $event;
this.resultsPerPageChanged = $event;
this.goTo(1); this.goTo(1);
} }
@ -1294,11 +1291,9 @@ public static createRangeFilterQuery(rangeField,selectedFromValue, selectedToVal
this.parameterValues.push("" + this.searchUtils.page); this.parameterValues.push("" + this.searchUtils.page);
} }
//if (this.searchUtils.size != this.resultsPerPage) { if (this.searchUtils.size != this.searchUtils.defaultSize) {
if (this.resultsPerPageChanged && this.searchUtils.size != this.resultsPerPageChanged) {
this.parameterNames.push("size"); this.parameterNames.push("size");
//this.parameterValues.push("" + this.searchUtils.size); this.parameterValues.push("" + this.searchUtils.size);
this.parameterValues.push("" + this.resultsPerPageChanged);
} }
//if (this.sort && this.searchUtils.sortBy) { //if (this.sort && this.searchUtils.sortBy) {

View File

@ -1,6 +1,7 @@
export class SearchUtilsClass{ export class SearchUtilsClass{
page:number = 1; page:number = 1;
size:number = 10; size:number = 10;
defaultSize:number = 10;
status:number = 1; status:number = 1;
refineStatus:number = 1; refineStatus:number = 1;
keyword:string = ""; keyword:string = "";
@ -8,6 +9,13 @@ export class SearchUtilsClass{
totalResults = null; totalResults = null;
totalResultsNoFilters:number; // for organization landing - tab with projects totalResultsNoFilters:number; // for organization landing - tab with projects
sortBy: string = ""; sortBy: string = "";
validateSize(sizeFromParams){
this.size = (sizeFromParams=== undefined)?this.defaultSize:+sizeFromParams;
if(this.size != 5 && this.size != 10 && this.size != 20 && this.size != 50) {
this.size = this.defaultSize;
}
}
} }
export class SearchCustomFilter{ export class SearchCustomFilter{

View File

@ -164,6 +164,7 @@
<path <path
d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path> d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path>
</svg> </svg>
<span class="visually-hidden">facebook</span>
</a> </a>
</div> </div>
<div> <div>
@ -172,6 +173,7 @@
<path <path
d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path> d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path>
</svg> </svg>
<span class="visually-hidden">twitter</span>
</a> </a>
</div> </div>
<div> <div>
@ -182,6 +184,7 @@
<path <path
d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path> d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path>
</svg> </svg>
<span class="visually-hidden">linkedin</span>
</a> </a>
</div> </div>
<div> <div>
@ -193,6 +196,7 @@
<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle> <circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle>
<circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle> <circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle>
</svg> </svg>
<span class="visually-hidden">slideshare</span>
</a> </a>
</div> </div>
<div> <div>
@ -202,6 +206,7 @@
<path <path
d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path> d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path>
</svg> </svg>
<span class="visually-hidden">youtube</span>
</a> </a>
</div> </div>
<div> <div>
@ -285,7 +290,7 @@
transform="translate(-0.639 -0.64)"/> transform="translate(-0.639 -0.64)"/>
</g> </g>
</svg> </svg>
<span class="visually-hidden">license</span>
</a> </a>
&nbsp;Unless otherwise indicated, all materials created by OpenAIRE are licenced under&nbsp;<a &nbsp;Unless otherwise indicated, all materials created by OpenAIRE are licenced under&nbsp;<a
href="http://creativecommons.org/licenses/by/4.0/" rel="license">CC ATTRIBUTION 4.0 INTERNATIONAL href="http://creativecommons.org/licenses/by/4.0/" rel="license">CC ATTRIBUTION 4.0 INTERNATIONAL
@ -295,7 +300,7 @@
<div class="uk-width-small@m"> <div class="uk-width-small@m">
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right@m uk-text-center"> <div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right@m uk-text-center">
<a href="#" uk-totop="" uk-scroll="" class="uk-totop uk-icon"> <a href="#" uk-totop="" uk-scroll="" class="uk-totop uk-icon">
<span class="visually-hidden">To top</span>
</a> </a>
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@
class="uk-visible@m"> class="uk-visible@m">
<a [routerLink]="header.route" [href]="header.url"><img class="large-beta-indication" <a [routerLink]="header.route" [href]="header.url"><img class="large-beta-indication"
[src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')" [src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')"
alt="BETA" style="height: 104px; "> alt="BETA" style="height: 104px; width: 104px ">
</a> </a>
</div> </div>
<div class="tm-header-mobile uk-hidden@m"> <div class="tm-header-mobile uk-hidden@m">
@ -14,12 +14,13 @@
class="uk-position-top-left"> class="uk-position-top-left">
<img class="small-beta-indication" <img class="small-beta-indication"
[src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')" [src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')"
alt="BETA" style="height: 60px; "> alt="BETA" style="height: 60px; width: 60px ">
</div> </div>
<!-- class="uk-navbar-right"--> <!-- if we want to revert the menu - put it on the right --> <!-- class="uk-navbar-right"--> <!-- if we want to revert the menu - put it on the right -->
<div *ngIf="!onlyTop || userMenu" class="uk-navbar-left"> <div *ngIf="!onlyTop || userMenu" class="uk-navbar-left">
<a *ngIf="!offCanvasFlip" class="uk-navbar-toggle" href="#tm-mobile" uk-toggle="" style="z-index:1000;"> <a *ngIf="!offCanvasFlip" class="uk-navbar-toggle" href="#tm-mobile" uk-toggle="" style="z-index:1000;">
<div uk-navbar-toggle-icon="" class="uk-navbar-toggle-icon uk-icon custom-navbar-toggle-icon"></div> <div uk-navbar-toggle-icon="" class="uk-navbar-toggle-icon uk-icon custom-navbar-toggle-icon"></div>
<span class="visually-hidden">toggle menu</span>
</a> </a>
</div> </div>
<div class="uk-navbar-center"> <div class="uk-navbar-center">
@ -85,14 +86,25 @@
<ul class="uk-nav-sub"> <ul class="uk-nav-sub">
<ng-container *ngFor="let submenu of menu.items"> <ng-container *ngFor="let submenu of menu.items">
<li [class.uk-active]="isTheActiveMenuItem(submenu)" *ngIf="isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage) && (submenu.route.length > 0 || submenu.url.length > 0)"> <li [class.uk-active]="isTheActiveMenuItem(submenu)" *ngIf="isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage) && (submenu.route.length > 0 || submenu.url.length > 0)"
[class.uk-parent]="submenu.items && submenu.items.length > 0">
<a *ngIf="submenu.route.length > 0" routerLinkActive="uk-link" <a *ngIf="submenu.route.length > 0" routerLinkActive="uk-link"
routerLink="{{submenu.route}}" [queryParams]=submenu.params [fragment]="submenu.fragment" routerLink="{{submenu.route}}" [queryParams]=submenu.params [fragment]="submenu.fragment"
class="uk-offcanvas-close custom-offcanvas-close">{{submenu.title}}</a> class="uk-offcanvas-close custom-offcanvas-close">{{submenu.title}}</a>
<a *ngIf="submenu.route.length == 0 && submenu.url.length > 0" routerLinkActive="uk-link" <a *ngIf="submenu.route.length == 0 && submenu.url.length > 0" routerLinkActive="uk-link"
href="{{submenu.url}}" target="_blank" href="{{submenu.url}}" target="_blank"
class="uk-offcanvas-close custom-offcanvas-close">{{submenu.title}}</a> class="uk-offcanvas-close custom-offcanvas-close">{{submenu.title}}</a>
<ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
<ng-container *ngFor="let subsubmenu of submenu.items">
<li>
<a *ngIf="subsubmenu.route.length > 0" routerLinkActive="uk-link"
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
[fragment]="subsubmenu.fragment">{{subsubmenu.title}}</a>
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0" routerLinkActive="uk-link"
href="{{subsubmenu.url}}" target="_blank">{{subsubmenu.title}}</a>
</li>
</ng-container>
</ul>
</li> </li>
<li *ngIf="submenu.route.length == 0 && submenu.url.length == 0 && isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage)" <li *ngIf="submenu.route.length == 0 && submenu.url.length == 0 && isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage)"
class="uk-nav-header">{{submenu.title}}</li> class="uk-nav-header">{{submenu.title}}</li>
@ -128,7 +140,7 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
enable-background="new 0 0 20 20" height="20px" id="Layer_1" version="1.1" enable-background="new 0 0 20 20" height="20px" id="Layer_1" version="1.1"
viewBox="0 0 48 48" width="20px" xml:space="preserve"><path id="home" clip-rule="evenodd" d="M44.715,23.711c-0.381,0.382-1,0.382-1.381,0l-8.939-8.938 c-0.064-0.051-0.119-0.106-0.17-0.171l-3.83-3.829c-0.064-0.051-0.119-0.106-0.17-0.171L24,4.377L4.667,23.711 c-0.381,0.382-1,0.382-1.381,0c-0.381-0.381-0.381-1,0-1.381L23.191,2.425c0.031-0.047,0.053-0.101,0.094-0.144 C23.482,2.085,23.742,1.994,24,2c0.258-0.006,0.518,0.084,0.715,0.281c0.043,0.042,0.062,0.096,0.096,0.144L30,7.616V4.997 c0,0,0,0,0,0c0-0.552,0.447-1,1-1h4c0.277,0,0.527,0.112,0.707,0.293C35.889,4.471,36,4.721,36,4.997v8.619l8.715,8.714 C45.096,22.711,45.096,23.33,44.715,23.711z M34,5.997h-2v3.619l2,2V5.997z M10,21.997c0.552,0,1,0.448,1,1v19c0,1.105,0.896,2,2,2 h6l0,0v-13c0-0.553,0.447-1,1-1h8c0.553,0,1,0.447,1,1v13l0,0h6c1.105,0,2-0.895,2-2v-19c0-0.552,0.447-1,1-1s1,0.448,1,1v19 c0,2.209-1.791,4-4,4H13c-2.209,0-4-1.791-4-4v-19C9,22.444,9.448,21.997,10,21.997z M27,43.996v-12h-6v12l0,0H27L27,43.996z" fill-rule="evenodd" fill="#fff"/></svg> viewBox="0 0 48 48" width="20px" xml:space="preserve"><path id="home" clip-rule="evenodd" d="M44.715,23.711c-0.381,0.382-1,0.382-1.381,0l-8.939-8.938 c-0.064-0.051-0.119-0.106-0.17-0.171l-3.83-3.829c-0.064-0.051-0.119-0.106-0.17-0.171L24,4.377L4.667,23.711 c-0.381,0.382-1,0.382-1.381,0c-0.381-0.381-0.381-1,0-1.381L23.191,2.425c0.031-0.047,0.053-0.101,0.094-0.144 C23.482,2.085,23.742,1.994,24,2c0.258-0.006,0.518,0.084,0.715,0.281c0.043,0.042,0.062,0.096,0.096,0.144L30,7.616V4.997 c0,0,0,0,0,0c0-0.552,0.447-1,1-1h4c0.277,0,0.527,0.112,0.707,0.293C35.889,4.471,36,4.721,36,4.997v8.619l8.715,8.714 C45.096,22.711,45.096,23.33,44.715,23.711z M34,5.997h-2v3.619l2,2V5.997z M10,21.997c0.552,0,1,0.448,1,1v19c0,1.105,0.896,2,2,2 h6l0,0v-13c0-0.553,0.447-1,1-1h8c0.553,0,1,0.447,1,1v13l0,0h6c1.105,0,2-0.895,2-2v-19c0-0.552,0.447-1,1-1s1,0.448,1,1v19 c0,2.209-1.791,4-4,4H13c-2.209,0-4-1.791-4-4v-19C9,22.444,9.448,21.997,10,21.997z M27,43.996v-12h-6v12l0,0H27L27,43.996z" fill-rule="evenodd" fill="#fff"/></svg>
</span></a></li> </span><span class="visually-hidden">Home</span></a></li>
<li [class]="(portal=='explore')?'custom-'+portal+'-li':''"><a <li [class]="(portal=='explore')?'custom-'+portal+'-li':''"><a
[href]="'https://'+(properties.environment =='beta' || properties.environment =='development'?'beta.':'')+'explore.openaire.eu'" [href]="'https://'+(properties.environment =='beta' || properties.environment =='development'?'beta.':'')+'explore.openaire.eu'"
title="Search in OA. Link your research">Explore</a></li> title="Search in OA. Link your research">Explore</a></li>
@ -163,7 +175,7 @@
*ngIf="(properties.environment =='beta' || properties.environment =='development') && showLogo && header.badge"> *ngIf="(properties.environment =='beta' || properties.environment =='development') && showLogo && header.badge">
<img class="beta-indication-sticky" <img class="beta-indication-sticky"
[src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')" [src]="'assets/common-assets/'+(properties.environment =='beta'?'beta_flag.svg':'prototype_flag.svg')"
alt="BETA" style="height: 102px; "> alt="BETA" style="height: 102px; width: 102px">
</div> </div>
<div class="uk-container uk-container-expand"> <div class="uk-container uk-container-expand">
<nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}"> <nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}">
@ -202,13 +214,25 @@
<ng-container *ngFor="let submenu of menu.items"> <ng-container *ngFor="let submenu of menu.items">
<li *ngIf="isEnabled(submenu.entitiesRequired,showEntity) && <li *ngIf="isEnabled(submenu.entitiesRequired,showEntity) &&
isEnabled(submenu.routeRequired, showPage) && (submenu.route.length > 0 || isEnabled(submenu.routeRequired, showPage) && (submenu.route.length > 0 ||
submenu.url.length > 0)" [class.uk-active]="isTheActiveMenuItem(submenu)"> submenu.url.length > 0)" [class.uk-active]="isTheActiveMenuItem(submenu)"
[class.uk-parent]="submenu.items && submenu.items.length > 0">
<a *ngIf="submenu.route.length > 0" routerLinkActive="uk-link" <a *ngIf="submenu.route.length > 0" routerLinkActive="uk-link"
routerLink="{{submenu.route}}" [queryParams]="submenu.params" routerLink="{{submenu.route}}" [queryParams]="submenu.params"
[fragment]="submenu.fragment">{{submenu.title}}</a> [fragment]="submenu.fragment">{{submenu.title}}</a>
<a *ngIf="submenu.route.length == 0 && submenu.url.length > 0" routerLinkActive="uk-link" <a *ngIf="submenu.route.length == 0 && submenu.url.length > 0" routerLinkActive="uk-link"
href="{{submenu.url}}" target="_blank">{{submenu.title}}</a> href="{{submenu.url}}" target="_blank">{{submenu.title}}</a>
</li> <ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
<ng-container *ngFor="let subsubmenu of submenu.items">
<li>
<a *ngIf="subsubmenu.route.length > 0" routerLinkActive="uk-link"
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
[fragment]="subsubmenu.fragment">{{subsubmenu.title}}</a>
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0" routerLinkActive="uk-link"
href="{{subsubmenu.url}}" target="_blank">{{subsubmenu.title}}</a>
</li>
</ng-container>
</ul>
<li *ngIf="submenu.route.length == 0 && submenu.url.length == 0 && isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage)" <li *ngIf="submenu.route.length == 0 && submenu.url.length == 0 && isEnabled(submenu.entitiesRequired,showEntity) && isEnabled(submenu.routeRequired, showPage)"
class="uk-nav-header">{{submenu.title}}</li> class="uk-nav-header">{{submenu.title}}</li>
</ng-container> </ng-container>

View File

@ -19,8 +19,8 @@ import {properties} from "../../../../environments/environment";
</span> </span>
<a *ngIf="(author.orcid || author.orcid_pending) && testBrowser" class="uk-display-inline-block space"> <a *ngIf="(author.orcid || author.orcid_pending) && testBrowser" class="uk-display-inline-block space">
<span> <span>
<img *ngIf="author.orcid" src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="" loading="lazy">{{" "}} <img *ngIf="author.orcid" src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="orcid" loading="lazy" style="width:16px; height:16px">{{" "}}
<img *ngIf="!author.orcid && author.orcid_pending" src="assets/common-assets/common/ORCIDiD_iconbw16x16.png" alt="" loading="lazy">{{" "}} <img *ngIf="!author.orcid && author.orcid_pending" src="assets/common-assets/common/ORCIDiD_iconbw16x16.png" alt="orcid bw" loading="lazy">{{" "}}
<span [class.uk-text-small]="small"> <span [class.uk-text-small]="small">
{{author.fullName + "; "}} {{author.fullName + "; "}}
</span> </span>

View File

@ -31,6 +31,7 @@
icon="chevron-right" ratio="1"> icon="chevron-right" ratio="1">
<polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline> <polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline>
</svg> </svg>
<span class="visually-hidden">GO</span>
</button> </button>
<div *ngIf="(yearFrom.invalid && focusedInput != 'from' && (yearFrom.dirty || yearFrom.touched)) || <div *ngIf="(yearFrom.invalid && focusedInput != 'from' && (yearFrom.dirty || yearFrom.touched)) ||