Merge branch 'explore-redesign' of code-repo.d4science.org:MaDgIK/explore-services into explore-redesign

This commit is contained in:
Konstantinos Triantafyllou 2023-07-04 11:11:32 +03:00
commit 945b37f5b2
14 changed files with 527 additions and 1 deletions

View File

@ -10,6 +10,7 @@ const routes: Routes = [
{path: 'mail-preferences', loadChildren: () => import('./userEmailPreferences/mailPrefs.module').then(m => m.LibMailPrefsModule)},
{path: 'sdgs', loadChildren: () => import('./sdg/sdg.module').then(m => m.LibSdgModule)},
{path: 'fields-of-science', loadChildren: () => import('./fos/fos.module').then(m => m.LibFosModule), data: {extraOffset: 100}},
// {path: 'funders', loadChildren: () => import('./funders/funders.module').then(m => m.FundersModule)},
{path: 'contact-us', loadChildren: () => import('./contact/contact.module').then(m => m.ContactModule), data: {hasQuickContact: false}},
// ORCID Pages
{path: 'orcid', loadChildren: () => import('./orcid/orcid.module').then(m => m.LibOrcidModule)},

View File

@ -191,6 +191,7 @@ export class AppComponent {
new MenuItem("", "Registries", "", "/search/entity-registries", false, ["datasource"], ["/search/entity-registries"], {}),
new MenuItem("", "Browse all", "", "/search/find/dataproviders", false, ["datasource"], ["/search/find/dataproviders"], {})]
),
// new MenuItem("funders", "Funders", "", "/funders", false, [], ["/funders"], {}),
];
if (Session.isPortalAdministrator(this.user)) {
this.userMenuItems.push(new MenuItem("", "Manage all links", "", "/claims", false, [], ["/claims"], {}));

View File

@ -0,0 +1,19 @@
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
import {FundersComponent} from './funders.component';
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
@NgModule({
imports: [
RouterModule.forChild([
{
path: '', component: FundersComponent,
canActivate: [IsRouteEnabled],
canDeactivate: [PreviousRouteRecorder]
}
])
]
})
export class FundersRoutingModule { }

View File

@ -0,0 +1,150 @@
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="pageDescription"></schema2jsonld>
<div class="funders">
<div class="uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
</div>
<div class="uk-container uk-container-large uk-section" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-grid uk-grid-large uk-grid-stack uk-padding-small" uk-grid>
<div class="uk-width-1-2@m uk-width-1-1@s uk-flex uk-flex-column uk-flex-center">
<span class="uk-align-left uk-margin-remove-bottom uk-flex uk-flex-middle">
<span class="custom-coins-dot"></span>
<span uk-scrollspy-class class="uk-text-large funders-title">Funders</span>
</span>
<div style="max-width: 600px;">
<h1 uk-scrollspy-class class="uk-h1 uk-margin-remove-top">
<span>Be an integral part of the open R&I ecosystem<span class="custom-handshake-dot"></span></span>
</h1>
<div *ngIf="showContentWithNumbers" uk-scrollspy-class>
Lorem ipsum dolor sit amet, consetetur sadipscing
{{formatNumber(projectsNumber)}} grants from
{{formatNumber(fundersNumber)}} funders, linked to
{{formatNumber(researchProductsNumber)}} funded research outputs.
</div>
<div class="uk-margin-medium-top" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" target="_blank" href="https://www.openaire.eu/funders-how-to-join-guide">
Join Us
</a>
</div>
</div>
</div>
<div class="uk-width-1-2@m uk-width-1-1@s uk-text-center" uk-scrollspy-class>
<img src="assets/explore-assets/funders/funders.png" loading="lazy">
</div>
</div>
</div>
<ng-container *ngIf="showLoading">
<div class="uk-container uk-container-large uk-section">
<loading></loading>
</div>
</ng-container>
<ng-container *ngIf="!showLoading && funders?.length">
<div class="uk-container uk-container-large" uk-height-match="target: .percentage;">
<div id="target" class="uk-section" uk-height-match="target: .alias;">
<div *ngIf="groupedFunders" class="uk-padding-small uk-padding-remove-vertical uk-margin-medium-bottom uk-flex uk-flex-middle uk-flex-between">
<ul class="uk-nav uk-nav-default uk-flex uk-flex-wrap">
<li *ngFor="let item of groupedFunders; let i = index;" class="uk-margin-right" [class.uk-margin-left]="i != 0"
[class]="index == i ? 'uk-active':''" (click)="changeDisplayedFunders(i)">
<a class="uk-padding-remove">{{item.group}}</a>
</li>
</ul>
<div class="uk-width-medium">
<div input
type="select" placeholder="Show" inputClass="flat x-small"
[options]="options" [(value)]="sortBy" [disabled]="isDisabled"
(valueChange)="sortByChanged()"></div>
</div>
</div>
<div class="uk-margin-large-bottom" uk-height-match="target: .name;">
<div class="uk-grid uk-child-width-1-2@m uk-child-width-1-3@l uk-padding-small"
uk-grid uk-height-match="target: .info;">
<div *ngFor="let funder of groupedFunders[index].data.slice((currentPage-1)*pageSize, currentPage*pageSize)">
<div class="uk-card uk-card-default uk-card-hover uk-card-body funder">
<!-- OA % -->
<div class="percentage uk-flex uk-flex-right uk-margin-bottom">
<div *ngIf="funder.openAccessResearchProducts && funder.researchProducts" class="uk-text-center">
<div class="uk-flex uk-flex-middle uk-flex-center">
<span class="uk-margin-xsmall-right open-access">
<icon name="open_access" [flex]="true" [ratio]="1"></icon>
</span>
<h6 class="uk-margin-remove">{{(funder.openAccessResearchProducts / funder.researchProducts) * 100 | number : '1.0-0'}}%</h6>
</div>
<span>Open Access</span>
</div>
</div>
<!-- funder logo -->
<div class="uk-card-media-top uk-padding-large uk-padding-remove-vertical uk-flex uk-flex-center uk-flex-middle uk-height-xsmall">
<img *ngIf="funder.logoUrl; else elseBlock" [src]="funder | logoUrl" [alt]="funder.name + ' logo'" class="uk-height-max-xsmall uk-blend-multiply">
<ng-template #elseBlock>
<img src="assets/common-assets/placeholder.png" alt="OpenAIRE placeholder logo" class="uk-height-max-xsmall uk-blend-multiply">
</ng-template>
</div>
<!-- funder alias -->
<div class="alias uk-text-uppercase uk-text-small uk-margin-top type">
<ng-container *ngIf="funder.alias">
{{funder.alias}}
</ng-container>
</div>
<!-- funder name -->
<div class="name uk-h6 uk-margin-remove multi-line-ellipsis lines-2">
<ng-container *ngIf="funder.name" >
{{funder.name}}
</ng-container>
</div>
<div class="info uk-margin-medium-top">
<!-- Monitor dashboard -->
<div>
<!-- PUBLIC status -->
<a *ngIf="funder.monitorDashboard && funder.monitorDashboardStatus != 'PRIVATE' && funder.monitorDashboardStatus != 'RESTRICTED'"
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
target="_blank" [href]="'https://'+(properties.environment =='beta' || properties.environment =='development'?'beta.':'')+'monitor.openaire.eu/dashboard/'+funder.alias">
<span class="uk-flex uk-flex-middle">
<img src="assets/common-assets/common/Symbol.png" alt="OpenAIRE logo"
class="uk-margin-xsmall-right" style="width: 17px; height: 17px;">
<span class="monitor-dashboard-link uk-text-uppercase">Monitor Dashboard</span>
</span>
</a>
<!-- RESTRICTED status -->
<span *ngIf="funder.monitorDashboard && funder.monitorDashboardStatus == 'RESTRICTED'"
class="uk-flex uk-flex-middle">
<img src="assets/common-assets/common/Symbol.png" alt="OpenAIRE logo"
class="uk-margin-xsmall-right" style="width: 17px; height: 17px;">
<span class="monitor-dashboard-link uk-text-uppercase uk-text-bold uk-text-small">Monitor Dashboard</span>
<icon class="uk-margin-xsmall-left" name="closed_access" [flex]="true" [ratio]="1"></icon>
</span>
</div>
<!-- Research products -->
<div>
<a *ngIf="funder.researchProducts"
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
[routerLink]="properties.searchLinkToResults" [queryParams]="{'relfunder': urlEncodeAndQuote(funder.id)}">
<span class="uk-flex uk-flex-middle">
<span>Research Products ({{funder.researchProducts | number}})</span>
</span>
</a>
</div>
<!-- Projects -->
<div>
<a *ngIf="funder.projects"
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
[routerLink]="properties.searchLinkToProjects" [queryParams]="{'funder': urlEncodeAndQuote(funder.id)}">
<span class="uk-flex uk-flex-middle">
<span>Projects ({{funder.projects | number}})</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<paging-no-load *ngIf="groupedFunders[index].data.length > pageSize"
(pageChange)="updateCurrentPage($event)"
[currentPage]="currentPage" [size]="pageSize"
[totalResults]="groupedFunders[index].data.length">
</paging-no-load>
</div>
</div>
</ng-container>
</div>

View File

@ -0,0 +1,36 @@
@import (reference) "~src/assets/openaire-theme/less/color.less";
.custom-coins-dot:after {
content: "";
background-image: url("~src/assets/explore-assets/funders/coins.svg");
display: inline-block;
background-size: 100% 100%;
height: 35px;
width: 35px;
margin-right: 10px;
}
.custom-handshake-dot:after {
content: "";
background-image: url("~src/assets/explore-assets/funders/handshake.svg");
display: inline-block;
background-size: 100% 100%;
height: 30px;
width: 30px;
margin-left: 10px;
}
.setType(@color) {
border-bottom: 4px solid fade(@color, 30%);
& .type {
color: @color;
}
}
.uk-card {
&.funder {
.setType(@funder-color);
}
}

View File

@ -0,0 +1,260 @@
import {Component, OnInit} from '@angular/core';
import {Router} from '@angular/router';
import {Subscriber, Subscription, zip} from "rxjs";
import {Meta, Title} from "@angular/platform-browser";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {properties} from "../../environments/environment";
import {RefineFieldResultsService} from '../openaireLibrary/services/refineFieldResults.service';
import {StakeholderService} from '../openaireLibrary/monitor/services/stakeholder.service';
import {Option} from '../openaireLibrary/sharedComponents/input/input.component';
import {StringUtils} from '../openaireLibrary/utils/string-utils.class';
import {HelperFunctions} from '../openaireLibrary/utils/HelperFunctions.class';
import {NumberUtils} from '../openaireLibrary/utils/number-utils.class';
@Component({
selector: 'funders',
templateUrl: './funders.component.html',
styleUrls: ['funders.component.less']
})
export class FundersComponent implements OnInit {
private subscriptions: Subscription[] = [];
url: string = null;
pageTitle: string = "OpenAIRE - Explore | Funders";
pageDescription: string = "Funders | Be an integral part of the open R&I ecosystem";
properties: EnvProperties = properties;
breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'funders'}];
showLoading: boolean = true;
index: number = 0;
funders: any[] = [];
groupedFunders: any[] = [];
options: Option[];
sortBy: string = 'all';
currentPage: number = 1;
pageSize: number = 6;
fundersNumber: number = 0;
researchProductsNumber: number = 0;
projectsNumber: number = 0;
fundersMap = new Map<string, {
"id": string,
"name": string,
"alias": string,
"researchProducts": number,
"openAccessResearchProducts": number,
"projects": number,
"monitorDashboard": string,
"monitorDashboardStatus": string,
"logoUrl": string
}>();
constructor(private router: Router,
private meta: Meta,
private title: Title,
private seoService: SEOService,
private piwikService: PiwikService,
private refineFieldResultsService: RefineFieldResultsService,
private stakeholderService: StakeholderService) {
}
ngOnInit() {
this.title.setTitle('OpenAIRE - Explore | Funders');
this.properties = properties;
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push( this.piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
}
this.url = this.properties.domain + this.router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);
this.updateTitle(this.pageTitle);
this.updateDescription(this.pageDescription);
this.options = [
{value: 'all', label: 'All funders'},
{value: 'dashboard', label: 'Funders with dashboard'}
];
this.getFunders();
}
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
subscription.unsubscribe();
}
});
}
private updateDescription(description: string) {
this.meta.updateTag({content: description}, "name='description'");
this.meta.updateTag({content: description}, "property='og:description'");
}
private updateTitle(title: string) {
var title = ((title.length > 50) ? title.substring(0, 50) : title);
this.title.setTitle(title);
this.meta.updateTag({content: title}, "property='og:title'");
}
private updateUrl(url: string) {
this.meta.updateTag({content: url}, "property='og:url'");
}
private getFunders() {
let refineParams = '&fq=resultbestaccessright%20exact%20%22Open%20Access%22';
this.subscriptions.push(
zip(
this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['relfunder'], 'result', this.properties),
this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['relfunder'], 'result', this.properties, refineParams),
this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['funder'], 'project', this.properties),
this.stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL, 'funder')
).subscribe((data: any[]) => {
// storing all needed data to a map
// 1st call
let queriedFunders1 = data[0][1][0].values;
queriedFunders1.forEach(queriedFunder => {
this.fundersMap.set(queriedFunder.id, {
"id": queriedFunder.id,
"name": queriedFunder.name,
"alias": '',
"researchProducts": +queriedFunder.number,
"openAccessResearchProducts": 0,
"projects": 0,
"monitorDashboard": '',
"monitorDashboardStatus": '',
"logoUrl": ''
});
});
// 2nd call
let queriedFunders2 = data[1][1][0].values;
queriedFunders2.forEach(queriedFunder => {
if(this.fundersMap.has(queriedFunder.id)) {
this.fundersMap.get(queriedFunder.id).openAccessResearchProducts = +queriedFunder.number;
}
});
// 3rd call
let queriedFunders3 = data[2][1][0].values;
queriedFunders3.forEach(queriedFunder => {
if(this.fundersMap.has(queriedFunder.id)) {
this.fundersMap.get(queriedFunder.id).projects = +queriedFunder.number;
} else {
this.fundersMap.set(queriedFunder.id, {
"id": queriedFunder.id,
"name": queriedFunder.name,
"alias": '',
"researchProducts": 0,
"openAccessResearchProducts": 0,
"projects": +queriedFunder.number,
"monitorDashboard": '',
"monitorDashboardStatus": '',
"logoUrl": ''
});
}
});
// 4th call
let queriedFunders4 = data[3];
queriedFunders4.forEach(queriedFunder => {
let id = queriedFunder.index_id + '||' + queriedFunder.index_name + '||' + queriedFunder.index_shortName;
if(this.fundersMap.has(id)) {
this.fundersMap.get(id).alias = queriedFunder.alias;
this.fundersMap.get(id).monitorDashboard = queriedFunder.alias;
this.fundersMap.get(id).monitorDashboardStatus = queriedFunder.visibility;
this.fundersMap.get(id).logoUrl = queriedFunder.logoUrl;
} else {
this.fundersMap.set(id, {
"id": queriedFunder.id,
"name": queriedFunder.name,
"alias": queriedFunder.alias,
"researchProducts": 0,
"openAccessResearchProducts": 0,
"projects": 0,
"monitorDashboard": queriedFunder.alias,
"monitorDashboardStatus": queriedFunder.visibility,
"logoUrl": queriedFunder.logoUrl
});
}
});
// convert funders map into an array
this.funders = Array.from(this.fundersMap.values());
// group funders based on their initial letter
this.groupFunders(this.funders);
// calculate total numbers for intro content
this.calculateNumbers();
this.showLoading = false;
})
);
}
private groupFunders(funders) {
if(funders.length === 0) {
return [];
}
funders.sort((a, b) => a['name'].localeCompare(b['name']));
this.index = 0;
this.groupedFunders = Object.values(
funders.reduce((acc, funder) => {
let firstLetter = funder['name'][0].toLocaleUpperCase();
if(!acc[firstLetter]) {
acc[firstLetter] = {group: firstLetter, data: [funder]};
} else {
acc[firstLetter].data.push(funder);
}
return acc;
},{})
)
if(funders.length > 1) {
this.groupedFunders.unshift({group: 'All', data: funders});
}
}
private calculateSum(array, property) {
let sum = 0;
array.forEach(element => {
sum += element[property];
});
return sum;
}
private calculateNumbers() {
this.fundersNumber = this.funders.length;
this.researchProductsNumber = this.calculateSum(this.funders, 'researchProducts');
this.projectsNumber = this.calculateSum(this.funders, 'projects');
}
get showContentWithNumbers() {
return this.fundersNumber && this.researchProductsNumber && this.projectsNumber;
}
formatNumber(num: number | string) {
let formatted = NumberUtils.roundNumber(+num);
return formatted.number + formatted.size;
}
changeDisplayedFunders(i) {
this.currentPage = 1;
this.index = i;
}
urlEncodeAndQuote(str: string): string {
return StringUtils.quote(StringUtils.URIEncode(str));
}
sortByChanged() {
let displayedFunders = this.funders;
if(this.sortBy == 'dashboard') {
displayedFunders = this.funders.filter(funder => funder.monitorDashboard && funder.monitorDashboard?.length > 0 && funder.monitorDashboardStatus != 'PRIVATE');
}
this.currentPage = 1;
this.groupFunders(displayedFunders);
}
public updateCurrentPage($event) {
this.currentPage = $event.value;
HelperFunctions.scrollToId('target');
}
}

View File

@ -0,0 +1,46 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {RouterModule} from '@angular/router';
import {FundersComponent} from './funders.component';
import {FundersRoutingModule} from "./funders-routing.module";
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {RefineFieldResultsServiceModule} from '../openaireLibrary/services/refineFieldResultsService.module';
import {LogoUrlPipeModule} from '../openaireLibrary/utils/pipes/logoUrlPipe.module';
import {IconsModule} from '../openaireLibrary/utils/icons/icons.module';
import {IconsService} from '../openaireLibrary/utils/icons/icons.service';
import {open_access} from '../openaireLibrary/utils/icons/icons';
import {closed_access} from '../openaireLibrary/utils/icons/icons';
import {InputModule} from '../openaireLibrary/sharedComponents/input/input.module';
import {PagingModule} from '../openaireLibrary/utils/paging.module';
@NgModule({
imports: [
FundersRoutingModule, CommonModule, RouterModule, AlertModalModule,
Schema2jsonldModule, SEOServiceModule, BreadcrumbsModule, LoadingModule,
RefineFieldResultsServiceModule, LogoUrlPipeModule, IconsModule, InputModule,
PagingModule
],
declarations: [
FundersComponent
],
providers: [
PiwikService, IsRouteEnabled
],
exports: [
FundersComponent
]
})
export class FundersModule {
constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([open_access, closed_access]);
}
}

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 315.47 315.47"><defs><style>.cls-1{fill:#241983;}.cls-2,.cls-3{fill:#00d8c4;}.cls-3{fill-rule:evenodd;}</style></defs><g id="Layer_1-2"><g><circle class="cls-1" cx="157.73" cy="157.73" r="157.73"/><g><ellipse class="cls-2" cx="116.85" cy="98.6" rx="63.94" ry="37.92"/><ellipse class="cls-2" cx="199.59" cy="167.66" rx="63.94" ry="37.92"/><path class="cls-3" d="M260.39,185.84c1.25-1.88,2.51-3.76,3.13-5.95-.31,13.48,1.25,14.42-.94,21.63-5.01,17.24-38.86,29.77-64.25,29.15-21.63-.31-39.18-2.82-54.85-15.98-4.39-3.76-9.4-7.52-9.72-12.85,0-10.03,0-11.6,.31-23.82,10.34,38.86,102.8,41.37,126.31,7.84Z"/><path class="cls-3" d="M262.58,209.66c.94,8.78-1.57,13.79-1.88,20.06-.94,14.73-35.1,24.76-61.43,25.07-31.34,.31-63.62-12.22-64.25-24.76-.63-11.28,0-5.33-.94-20.06,21.31,32.28,105.31,31.97,128.5-.31Z"/><path class="cls-3" d="M116.85,140.71c38.55,.31,57.67-17.86,61.74-25.07,1.88-3.45-.31,12.85-.94,13.16-14.1,4.07-31.03,10.03-40.43,21.94-2.82,3.45-3.76,7.52-5.01,12.54,0,.31-13.48-.31-14.42-.31-28.21,0-61.12-13.48-65.82-35.73-.63-4.39,0-8.15,0-17.55,10.03,19.75,36.67,30.71,64.88,31.03Z"/><path class="cls-3" d="M116.85,166.72c5.01,.31,15.04,0,15.04,0-.94,8.78-.63,12.85-1.25,23.19,0,.31-71.15,3.76-78.67-33.85-.63-4.07,0-7.84,0-17.55,15.67,21.31,42.94,27.27,64.88,28.21Z"/><path class="cls-3" d="M130.01,194.3s.94,12.54,.63,21.94c0,.31-68.95,1.88-78.04-27.58l-.63-21.31c16.92,23.51,52.65,27.58,78.04,26.95Z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 349.02 349.02"><defs><style>.cls-1{fill:#241983;}.cls-2{fill:#00d8c4;}</style></defs><g id="Layer_1-2"><g><circle class="cls-1" cx="157.73" cy="191.29" r="157.73"/><circle class="cls-2" cx="191.29" cy="157.73" r="157.73"/><g><path class="cls-1" d="M256.1,204.17c-2.11,2.33-6.37,2.17-9.98,1.47-.48-.08-.92-.31-1.28-.63l-32.35-27.83c-1.19-1.02-2.98-.89-4,.3l-.09,.12c-1.03,1.19-.89,2.97,.3,3.99l30.02,25.77c2.65,2.28,4.22,5.62,4.02,9.11-.07,1.13-.33,2.12-.88,2.75-1.59,1.81-5.94,1.91-11.98,.31-.39-.11-.76-.3-1.06-.55l-29.86-24.26c-1.21-.98-2.99-.8-3.98,.41l-.1,.14c-.99,1.21-.81,3,.4,3.98l27.98,22.8c1.06,.86,1.35,2.35,.71,3.55-1.73,3.19-4.15,6.39-6.5,7.07-1.26,.32-2.6-.04-3.53-.95-7.32-5.58-19.43-16.03-24.3-20.25-1.18-1.03-2.96-.9-3.99,.27l-.11,.14c-1.03,1.18-.91,2.98,.27,4l.62,.53,1.89,1.65c3.54,3.05,8.35,7.14,12.98,10.95,1.86,1.53,1.08,4.59-1.3,4.98-4.14,.67-8.61,.56-11.87-1.65-7.97-5.42-54.63-39.44-68.11-49.28-1.09-.63-2.87-1.45-5.62-2.17-.23-.06-.49-.12-.74-.18-1.61-.38-3.55-.72-5.83-.98l-40.65-6.77c-2.22-.37-3.6-2.63-2.9-4.77l20.33-62.82c.49-1.52,2.14-2.34,3.65-1.81l32.32,11.51s7.68,1.65,18.24,1.56l13.52-.1c2.18-.01,3.57,2.35,2.48,4.25l-7.31,12.76,.04,.79c.01,1.83,.34,18.11,7.32,23.57,7.63,5.9,16.14,3.97,25.24-5.76l1.57-1.66c6.95-7.4,14.03-13.31,26.54-4.4,1.64,1.17,3.21,2.44,4.71,3.79l6.97,6.65,.68,.63,3.07,2.75,1.05,.99,2.48,2.4,1.35,1.27,2.45,2.18,1.3,1.24,2.4,2.29,1.05,1.05,2.32,2.23,1.18,1.14,2.28,2.27,.87,.82,2.5,2.43,.56,.55,2.59,2.48,.24,.26,8.24,7.98c.4,.39,.67,.86,.79,1.4,.69,3.06,1.31,8.49-1.18,11.29Z"/><path class="cls-1" d="M317.97,154.23c1.2,2.26,.16,5.06-2.22,5.99l-42.33,16.43h-.04c-.37,.04-3.24,.46-8.83,4.49l-5.07,5.23-.92-.92-.72-.69-1.02-.99-1.42-1.37-.58-.59-1.99-1.92-.31-.25-1.18-.82-.29-.24-1.87-1.79-1.08-1.05-1.91-1.82-1.17-1.14-1.98-1.9-1.3-1.24-2.19-2.1-1.13-1.11-7-6.64-.9-.83-2.65-2.48-1.11-1.05-2.58-2.42-.93-.86-3.08-2.74-.52-.5-3.45-3.16c-.89-.83-1.78-1.56-2.66-2.28l-.59-.5c-.85-.68-1.71-1.31-2.53-1.87l-.45-.3c-.75-.5-1.5-.97-2.24-1.4l-.39-.21c-.79-.45-1.57-.84-2.35-1.18l-.5-.2c-.78-.34-1.56-.64-2.3-.87-.71-.22-1.44-.4-2.18-.55l-.41,.02c-.69-.12-1.39-.21-2.09-.26l-.29,.02c-.64,0-1.29,.04-1.93,.11h-.17c-1.04,.07-2.06,.21-3.07,.45-.98,.22-1.94,.54-2.87,.91-1.85,.78-3.6,1.78-5.2,2.98-1.6,1.18-3.11,2.48-4.52,3.87l-1.96,1.98-1.71,1.82c-8.92,9.55-13.96,7.76-17.4,5.12-3.3-2.52-4.79-11.54-5.05-17.43-.03-.53,.11-1.05,.37-1.5l8.85-15.47c1.69-2.93,4.63-4.93,7.98-5.4l18.75-2.64c3.84-.53,7.74-.37,11.53,.5l32.18,7.43s.06,.02,.09,.02c.84,.24,7.71,1.93,16.41-3.05l34.34-19.52c1.39-.8,3.16-.29,3.91,1.12l30.21,56.76Z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -33,6 +33,14 @@
/* Landing */
@landing-portal-color: @explore-color;
.deposit {
.deposit, .funders {
@import (multiple) "~src/assets/openaire-theme/less/_import";
}
.monitor-dashboard-link {
color: @monitor-color;
}
.funders-title {
color: @primary-color;
}

View File

@ -61,6 +61,7 @@ export let properties: EnvProperties = {
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/api/",
monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service",
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity: "openaire",

View File

@ -65,6 +65,7 @@ export let properties: EnvProperties = {
datasourcesAPI: "https://services.openaire.eu/openaire/ds/api/",
monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service",
adminToolsAPIURL: "https://services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity: "openaire",

View File

@ -66,6 +66,7 @@ export let properties: EnvProperties = {
cacheUrl: "http://dl170.madgik.di.uoa.gr:3000/get?url=",
monitorServiceAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service",
adminToolsAPIURL: "http://duffy.di.uoa.gr:19280/uoa-admin-tools/",
adminToolsCommunity: "openaire",