[Usage Counts | Trunk]: Usage counts pages have been changed base on new Design

This commit is contained in:
k.triantafyllou 2020-09-14 15:09:23 +00:00
parent c13a0cf14a
commit 74901fa45d
66 changed files with 2831 additions and 2187 deletions

View File

@ -1,6 +1,115 @@
@media only screen and (min-width: 1200px) {
.about > div:first-child {
min-height: calc(100vh - 100px);
overflow: visible;
}
}
@media only screen and (max-width: 1199px) and (min-width: 960px) {
.about > div:first-child {
min-height: calc(50vh - 100px);
overflow: visible;
}
}
.about-background {
background-image: url("/assets/usage-statistics-assets/about/about.svg");
background-image: url("/assets/usage-statistics-assets/about/1.svg");
background-repeat: no-repeat;
background-position: 0 -30px;
background-size: contain;
position: relative;
}
@media only screen and (max-width: 959px) {
.about-background {
background-size: cover;
}
}
.about-background a.next {
position: absolute;
bottom: 10%;
right: 10%;
color: var(--portal-main-color);
line-height: 24px;
font-size: 18px;
letter-spacing: 1.8px;
text-transform: uppercase;
}
.about-background a.next svg path {
fill: var(--portal-main-color);
}
.about-background a.next:hover {
color: var(--portal-dark-color);
}
.about-background a.next:hover svg path {
fill: var(--portal-dark-color);
}
.architecture {
background-image: url("/assets/usage-statistics-assets/about/2.1.png");
background-repeat: no-repeat;
background-position: 0 0;
background-size: cover;
}
background-size: contain;
height: 45vh;
}
@media only screen and (min-width: 1200px) {
.architecture {
position: relative;
}
.architecture > div {
top: -30px;
right: -10vw;
width: 400px;
background-image: url("/assets/usage-statistics-assets/about/2.2.svg");
background-repeat: no-repeat;
background-position: 0 0;
background-size: contain;
position: absolute;
}
}
@media only screen and (min-width: 1200px) {
.workflows img {
margin-left: -10%;
}
}
@media only screen and (min-width: 960px) {
.push-pull {
background-image: url("/assets/usage-statistics-assets/about/4.svg");
background-repeat: no-repeat;
background-position: top right;
background-size: auto;
}
}
.faqs {
background-image: url("/assets/usage-statistics-assets/about/5.svg");
background-repeat: no-repeat;
background-position: top right;
background-size: auto;
}
.faqs li {
background: #FFFFFF no-repeat padding-box;
padding: 24px;
border: 1px solid #D1D1D1;
border-radius: 4px;
opacity: 1;
color: rgba(33, 33, 33, 0.8);
}
.faqs li > .uk-accordion-title {
font-family: Roboto, sans-serif;
font-size: 20px;
font-weight: 700;
line-height: 30px;
color: rgba(33, 33, 33, 0.76);
}

View File

@ -1,28 +1,111 @@
<!--class="uk-margin-left uk-margin-right"-->
<div>
<div class="uk-section uk-container about-background">
<div class="uk-margin-large-left uk-margin-top">
<h1 class="uk-text-bold">Monthly Usage Events</h1>
<div class="uk-width-1-1 uk-width-4-5@m uk-margin-medium-top uk-margin-medium-bottom">
<p>
{{
'OpenAIREs Usage Statistics Service contributes towards impact evaluation of usage activity in Open Access Repositories.'
| titlecase }}
</p>
<p>
{{
'The service collects and analyzes usage data from the repository and exploits usage metrics like downloads and metadata views. ' +
'Counters about the usage of a repository and its individual items are available in the relative detail page on the OpenAIRE Discovery Portal.'
| titlecase }}
</p>
<p>
{{
'Taking advantage of OpenAIREs Graph service de-duplication mechanism, the service aggregates/merges usage statistics that come from different repositories and relate to the same object.' +
'OpenAIREs Usage Statistics service uses the Matomo Open Source Analytics platform (matomo.org) to track usage activity.' +
'Statistics are generated using the COUNTER Code of practice directives and reports can be collected from SUSHI-Lite compatible endpoints.'
| titlecase }}
</p>
<div class="about">
<div class="uk-container uk-container-large about-background">
<div class="uk-container uk-section uk-section-small uk-visible@l">
<h2 class="uk-text-bold">About</h2>
<div class="uk-padding uk-width-3-4">
UsageCounts service is an OpenAIRE service built after the development of the Usage Statistics Service within
OpenAIRE. UsageCounts forms metrics of usage activity of Open Access Repositories categorizing the data
retrieved by country, number of downloads, number of views, number of repositories and all derivative
quantitative open metrics, in a comprehensive way for all stakeholders.
</div>
</div>
<a class="uk-visible@l next uk-flex uk-flex-middle" (click)="goTo('architecture')">
Architecture
<svg height="17.155" viewBox="0 0 17.155 17.155" width="17.155" class="uk-margin-left"
xmlns="http://www.w3.org/2000/svg">
<g data-name="Group 2442" id="Group_2442" transform="translate(-1221 -675)">
<path d="M14.405,4.3,6.022,12.68V9.055A1.011,1.011,0,0,0,4,9.055V15.12a1.009,1.009,0,0,0,1.011,1.01h6.065a1.011,1.011,0,1,0,0-2.022H7.451l8.383-8.383A1.011,1.011,0,0,0,14.405,4.3h0Z"
fill="#e95420" id="arrow-down-left2" transform="translate(1215.343 683.578) rotate(-45)"></path>
</g>
</svg>
</a>
<div class="uk-hidden@l">
<h2 class="uk-text-bold">About</h2>
<div class="uk-padding uk-padding-remove-horizontal">
UsageCounts service is an OpenAIRE service built after the development of the Usage Statistics Service within
OpenAIRE. UsageCounts forms metrics of usage activity of Open Access Repositories categorizing the data
retrieved by country, number of downloads, number of views, number of repositories and all derivative
quantitative open metrics, in a comprehensive way for all stakeholders.
</div>
</div>
</div>
<div id="architecture" class="uk-container uk-section">
<div class="uk-section uk-padding-remove-top">
<h2 class="uk-text-bold">Architecture</h2>
<div class="architecture uk-margin-large-top">
<div class="uk-visible@l">
<div class="uk-padding-large uk-padding-remove-bottom uk-padding-remove-right uk-margin-small-bottom">
UsageCounts service collects usage activity from OpenAIRE content providers for usage events related to
research products of the OpenAIRE graph, creates and deploys aggregated statistics for these products.
</div>
</div>
</div>
<div class="uk-hidden@l uk-padding uk-margin-top">
UsageCounts service collects usage activity from OpenAIRE content providers for usage events related to
research products of the OpenAIRE graph, creates and deploys aggregated statistics for these products.
</div>
</div>
<div class="uk-section uk-margin-large-top workflows">
<h2 class="uk-text-bold">Architecture & Workflows</h2>
<div class="uk-flex uk-grid uk-grid-collapse uk-child-width-1-2@l uk-margin-large-top" uk-grid>
<img src="assets/usage-statistics-assets/about/3.png" class="uk-margin-medium-top uk-width-3-5@l">
<div>
<h3 class="uk-text-bold portal-color">Architecture functionalities</h3>
<div class="uk-margin-large-left">
<ol class="light-blue">
<li>Constant tracking of views and downloads of open science repositories registered on OpenAIRE PROVIDE
</li>
<li>Creation of downloadable reports available only for content providers</li>
<li>Instant connection with the OpenAIRE Research Graph</li>
<li>Compatibility with COUNTER Code of Practice that provides standards based usage statistics and enables
comparability with statistics from other data sources
</li>
<li>Anonymisation of IP-addresses</li>
</ol>
</div>
</div>
</div>
<div class="uk-section uk-margin-large-top push-pull">
<div class=" uk-grid uk-child-width-1-2@m" uk-grid>
<div>
<h5 class="uk-text-primary uk-text-bold">
<span class="uk-text-normal portal-color">Push</span>
Usage Statistics Tracking Workflow
</h5>
<ul class="light-blue-circle uk-margin-medium-top">
<li>An institutional repository is registered in OpenAIRE.</li>
<li>Server side tracking: Plugins (Dspace) or patches (Eprints) using Matomos Web Analytics HTTP API.
</li>
<li>Usage Activity is tracked and logged in real time.</li>
<li>Ιnformation is transferred offline to OpenAIREs DBs for statistical analysis.</li>
<li>Statistics are deployed for human (OpenAIREs Portal) and machine (Sushi-Lite API) consumption.</li>
</ul>
</div>
<div class="uk-margin-medium-top">
<h5 class="uk-text-primary uk-text-bold uk-width-2-3@m">
Collecting <span class="uk-text-normal portal-color">(Pull)</span> Consolidated Usage Statistics Reports
</h5>
<ul class="light-blue-circle uk-margin-medium-top">
<li>Gathering of consolidated statistics reports from aggregation services, such as IRUS-UK, using
protocols such as SUSHI-Lite.
</li>
<li>Statistics are stored in OpenAIREs DB for statistical analysis.</li>
<li>Statistics are deployed via OpenAIREs Portal or Sushi-Lite API.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="faqs" class="uk-container uk-section" [class.uk-hidden]="faqs.length == 0">
<h2 class="uk-text-bold">About - FAQs</h2>
<ul class="faqs uk-margin-medium-top" uk-accordion="multiple: true">
<li *ngFor="let faq of faqs;let i=index" [class.uk-open]="i===0">
<a class="uk-accordion-title">{{faq.question}}</a>
<div class="uk-accordion-content">
{{faq.answer}}
</div>
</li>
</ul>
</div>
</div>

View File

@ -1,10 +1,33 @@
import {Component} from "@angular/core";
import {Component, OnInit} from '@angular/core';
import {faqs} from './faqs';
import {ActivatedRoute} from '@angular/router';
import {Title} from '@angular/platform-browser';
@Component({
selector: 'about',
templateUrl: 'about.component.html',
styleUrls: ['about.component.css'],
})
export class AboutComponent {
export class AboutComponent implements OnInit{
faqs: any[] = faqs;
constructor(private route: ActivatedRoute,
private title: Title) {
}
ngOnInit() {
this.title.setTitle('OpenAIRE - UsageCounts | About');
this.route.params.subscribe(params => {
if(params && params['section']) {
this.goTo(params['section']);
}
});
}
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}

6
src/app/about/faqs.ts Normal file
View File

@ -0,0 +1,6 @@
export const faqs = [
/* {
question: 'Test',
answer: 'Test'
}*/
];

View File

@ -0,0 +1,51 @@
.countries {
background-image: url("/assets/usage-statistics-assets/analytics/1.svg");
background-size: contain;
background-repeat: no-repeat;
background-position: bottom center;
min-height: 60vh;
}
.countries input, .countries input:focus {
background: transparent 0 0 no-repeat padding-box;
border-radius: 4px;
padding: 15px;
border: none;
outline: none;
}
.countries input::placeholder {
color: #a3a3a3;
font-weight: 600;
}
button.search, button.search:hover {
color: #333333;
font-weight: 700;
border: none;
outline: none;
background-color: transparent;
font-family: "Roboto", sans-serif;
font-size: 12px;
}
button.search:hover {
color: var(--portal-main-color);
}
.card {
background: #FFFFFF 0 0 no-repeat padding-box;
box-shadow: 0 3px 6px #00000029;
border-radius: 4px;
padding: 50px 0;
text-align: center;
position: relative;
height: 113px;
}
.card > img {
position: absolute;
bottom: 0;
left: 50%;
transform: translate(-50%, 50%);
}

View File

@ -0,0 +1,111 @@
<!--class="uk-margin-left uk-margin-right"-->
<div>
<div *ngIf="countryFb" class="uk-section uk-section-small uk-container countries uk-text-center uk-text-bold">
<h2 class="uk-margin-medium-bottom portal-color uk-text-bold">Track Countries Usage Activity</h2>
<div class="uk-container uk-container-small">
<div class="uk-flex uk-flex-middle uk-flex-center uk-align-center uk-margin-large-bottom">
<div class="uk-width-3-5">
<form [formGroup]="countryFb" (ngSubmit)="search()">
<input #input type="text" class="uk-animation-slide-right-medium uk-width-1-1"
[class.uk-hidden]="!showSearch"
[disabled]="loading"
placeholder="SEARCH FOR A COUNTRY"
aria-label="Number"
formControlName="country"
[matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="search()">
<mat-option *ngFor="let option of countries | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
</form>
</div>
<button [disabled]="loading" class="uk-width-1-6 uk-margin-medium-left search" (click)="toggle()">
<img src="assets/usage-statistics-assets/analytics/search.svg">
<span class="uk-text-uppercase">search</span>
</button>
</div>
<div class="uk-margin-medium-bottom">
<div class="uk-text-uppercase">{{(country) ? country : 'world wide'}}</div>
<div class="uk-text-muted uk-text-uppercase uk-text-small">Results</div>
</div>
<div *ngIf="loading" class="uk-animation-fade uk-margin-large-top uk-width-1-1" role="alert">
<span class="loading-gif uk-align-center"></span>
</div>
<div *ngIf="display && !loading" class="uk-grid uk-child-width-1-3@m uk-child-width-1-2@s uk-grid-large"
uk-grid>
<div *ngIf="display.total_repos">
<div class="card">
<div class="uk-margin-medium-bottom">
Repositories
</div>
<h3>
{{display.total_repos | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/2.svg">
</div>
</div>
<div *ngIf="display.repositories">
<div class="card">
<div class="uk-margin-medium-bottom">
Repositories
</div>
<h3>
{{display.repositories | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/2.svg">
</div>
</div>
<div *ngIf="display.total_views">
<div class="card">
<div class="uk-margin-medium-bottom">
Views
</div>
<h3>
{{display.total_views | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/3.svg">
</div>
</div>
<div *ngIf="display.views">
<div class="card">
<div class="uk-margin-medium-bottom">
Views
</div>
<h3>
{{display.views | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/3.svg">
</div>
</div>
<div *ngIf="display.total_downloads">
<div class="card">
<div class="uk-margin-medium-bottom">
Downloads
</div>
<h3>
{{display.total_downloads | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/4.svg">
</div>
</div>
<div *ngIf="display.downloads">
<div class="card">
<div class="uk-margin-medium-bottom">
Downloads
</div>
<h3>
{{display.downloads | number}}
</h3>
<img src="assets/usage-statistics-assets/analytics/4.svg">
</div>
</div>
</div>
<div *ngIf="!display && !loading" class="card">
<div class="uk-position-center">
No results found for that country
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,87 @@
import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
import {CountryUsageStat, UsageStat} from '../entities/usage-stat';
import {FormControl, FormGroup} from '@angular/forms';
import {Observable} from 'rxjs';
import {UsageStatsService} from '../services/usage-stats.service';
import {map, startWith} from 'rxjs/operators';
import {countries} from '../services/countries';
import {Title} from '@angular/platform-browser';
@Component({
selector: 'analytics',
templateUrl: 'analytics.component.html',
styleUrls: ['analytics.component.css'],
})
export class AnalyticsComponent implements OnInit{
public countryFb: FormGroup;
public countries: Observable<string[]>;
public country: string;
public loading: boolean = true;
public display: UsageStat | CountryUsageStat;
public showSearch: boolean = false;
@ViewChild("input") input: ElementRef;
constructor(private usageStatsService: UsageStatsService,
private title: Title) {}
ngOnInit() {
this.title.setTitle('OpenAIRE - UsageCounts | Analytics');
this.init();
this.usageStatsService.getAllMetrics().subscribe(stats => {
this.display = stats;
this.loading = false;
}, error => {
this.display = null;
this.loading = false;
});
}
private init() {
this.countryFb= new FormGroup({
country: new FormControl('')
});
this.countries = this.countryFb.get('country').valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
}
public search() {
this.country = this.countryFb.value.country;
this.loading = true;
if(this.country && this.country != '') {
this.usageStatsService.getCountryMetrics(this.country).subscribe(stats => {
this.display = stats;
this.loading = false;
this.init();
}, error => {
this.display = null;
this.loading = false;
});
} else {
this.usageStatsService.getAllMetrics().subscribe(stats => {
this.display = stats;
this.loading = false;
this.init();
},error => {
this.display = null;
this.loading = false;
});
}
}
private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
return countries.map(value => value.name).filter(option => filterValue && option.toLowerCase().includes(filterValue));
}
toggle() {
this.showSearch = !this.showSearch;
if(this.showSearch) {
setTimeout(()=>{ // this will make the execution after the above boolean has changed
this.input.nativeElement.focus();
},0);
}
}
}

View File

@ -0,0 +1,27 @@
import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {RouterModule} from "@angular/router";
import {AnalyticsComponent} from "./analytics.component";
import {MatAutocompleteModule} from '@angular/material/autocomplete';
import {ReactiveFormsModule} from '@angular/forms';
import {MatFormFieldModule} from '@angular/material/form-field';
import {MatInputModule} from '@angular/material/input';
@NgModule({
imports: [
CommonModule,
MatAutocompleteModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule,
RouterModule.forChild([{
path: '', component: AnalyticsComponent
}])
],
declarations: [AnalyticsComponent],
exports: [AnalyticsComponent]
})
export class AnalyticsModule {
}

View File

@ -1,4 +1,4 @@
<navbar *ngIf= "showMenu" portal="usage-statistics" [onlyTop]="false" [userMenu]="false" [showLogo]="!isHome.value"
<navbar *ngIf= "showMenu" portal="usage-counts" [onlyTop]="false" [userMenu]="false" [showLogo]="!isHome.value"
[user]="user" [userMenuItems]=userMenuItems [menuItems]=menuItems [properties]=properties></navbar>
<div class="custom-main-content">
<main [class.full-height]="isHome.value">

View File

@ -1,13 +1,10 @@
import {Component, OnInit} from '@angular/core';
import {MenuItem, RootMenuItem, SideMenuItem} from './openaireLibrary/sharedComponents/menu';
import {MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
import {ActivatedRoute, NavigationStart, Router} from '@angular/router';
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
import {User} from './openaireLibrary/login/utils/helper.class';
import {UserManagementService} from './openaireLibrary/services/user-management.service';
import {properties} from "../environments/environment";
import {BehaviorSubject} from "rxjs";
declare var UIkit: any;
import {properties} from '../environments/environment';
import {BehaviorSubject} from 'rxjs';
@Component({
selector: 'app',
@ -45,36 +42,37 @@ export class AppComponent implements OnInit {
}
buildMenu(isHome) {
this.menuItems = [
{
rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}),
items: [
new MenuItem("provide", "OpenAIRE Provide", "", "/resources", false, [], null, {}),
new MenuItem("apis", "APIs and Reports", "", "/resources/apis", false, [], null, {})
]
},
{
rootItem: new MenuItem("analytics", "Analytics", "", "/analytics", false, [], null, {}),
items: []
},
{
rootItem: new MenuItem("contact", "Contact", "", "/contact", false, [], null, {}),
items: []
},
{
rootItem: new MenuItem("about", "About", "", "/about", false, [], null, {}),
items: [
new MenuItem("architecture", "Architecture", "", "/about/architecture", false, [], null, {}),
/*
new MenuItem("faqs", "FAQs", "", "/about/faqs", false, [], null, {})
*/
]
}
];
if(!isHome) {
this.menuItems = [
{
rootItem: new MenuItem("home", "Home", "", "/", false, [], null, {}),
items: [
new MenuItem("intro", "Usage Statistics Intro", "", "/", false, [], null, {}),
new MenuItem("countries", "Track Countries Usage Activity", "", "/", false, [], null, {slide: 2}),
new MenuItem("chart", "Monthly Usage Events", "", "/", false, [], null, {slide: 3})
]
},
{
rootItem: new MenuItem("about", "About", "", "/about", false, [], null, {}),
items: []
},
{
rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}),
items: []
}
];
} else {
this.menuItems = [
{
rootItem: new MenuItem("about", "About", "", "/about", false, [], null, {}),
items: []
},
{
rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}),
items: []
}
];
this.menuItems = [{
rootItem: new MenuItem("home", "Home", "", "/", false, [], null, {}),
items: []
}].concat(this.menuItems);
}
}
}

View File

@ -26,5 +26,4 @@ import {EnvironmentSpecificService} from "./openaireLibrary/utils/properties/env
providers: [EnvironmentSpecificService],
bootstrap: [ AppComponent ]
})
export class AppModule { }

View File

@ -1,23 +1,42 @@
import { NgModule} from '@angular/core';
import { Routes, RouterModule} from '@angular/router';
import {Routes, RouterModule, PreloadAllModules} from '@angular/router';
const appRoutes: Routes = [
{
path: '',
loadChildren: './home/home.module#HomeModule'
},
{
path: 'resources',
loadChildren: './resources/resources.module#ResourcesModule'
},
{
path: 'resources/:section',
loadChildren: './resources/resources.module#ResourcesModule'
},
{
path: 'analytics',
loadChildren: './analytics/analytics.module#AnalyticsModule'
},
{
path: 'contact',
loadChildren: './contact/contact.module#ContactModule'
},
{
path: 'about',
loadChildren: './about/about.module#AboutModule'
},
{
path: 'resources',
loadChildren: './resources/resources.module#ResourcesModule'
path: 'about/:section',
loadChildren: './about/about.module#AboutModule'
}
];
@NgModule({
imports: [ RouterModule.forRoot(appRoutes) ],
imports: [ RouterModule.forRoot(appRoutes, {
preloadingStrategy: PreloadAllModules,
scrollPositionRestoration: "top"
}) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}

View File

@ -0,0 +1,14 @@
.contact {
background-image: url("/assets/usage-statistics-assets/contact/1.svg");
background-size: auto;
background-repeat: no-repeat;
background-position: 0 0;
}
.contact-card {
background: rgba(255, 255, 255, 0.5) 0 0 no-repeat padding-box;
box-shadow: 1px 3px 6px #00000029;
border: 1px solid #E0E0E0;
border-radius: 5px;
padding: 20px 80px;
}

View File

@ -0,0 +1,43 @@
<div class="uk-section uk-section-small uk-container uk-container-large contact">
<div class="uk-container">
<h2 class="uk-text-bold">Contact Us</h2>
<div class="uk-grid uk-flex uk-flex-bottom" uk-grid>
<div class="uk-width-expand">
<div class="uk-margin-large-left contact-card uk-visible@s">
<div *ngIf="showLoading" class="uk-margin-large">
<div class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert"><span
class="loading-gif uk-align-center"></span></div>
</div>
<div *ngIf="!showLoading">
<contact-us [properties]="properties" [errorMessage]="errorMessage"
[right]="false" buttonClass="uk-button-primary"
[contactForm]="contactForm" (sendEmitter)="send($event)"></contact-us>
</div>
</div>
<div class="uk-hidden@s">
<div *ngIf="showLoading" class="uk-margin-large">
<div class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert"><span
class="loading-gif uk-align-center"></span></div>
</div>
<div *ngIf="!showLoading">
<contact-us [properties]="properties" [errorMessage]="errorMessage"
[right]="false" buttonClass="uk-button-primary"
[contactForm]="contactForm" (sendEmitter)="send($event)"></contact-us>
</div>
</div>
</div>
<div class="uk-width-1-5@m uk-visible@m uk-flex uk-flex-center">
<img src="assets/usage-statistics-assets/contact/2.svg">
</div>
</div>
</div>
<div class="uk-align-center">
</div>
</div>
<modal-alert #AlertModal (alertOutput)="goToHome()">
<div class="uk-text-center">
Our team will respond to your submission soon.<br>
Press OK to redirect to OpenAIRE UsageCounts home page.
</div>
</modal-alert>

View File

@ -0,0 +1,104 @@
import {Component, OnInit, ViewChild} from '@angular/core';
import {Router} from '@angular/router';
import {EmailService} from '../openaireLibrary/utils/email/email.service';
import {Email} from '../openaireLibrary/utils/email/email';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import {Composer} from '../openaireLibrary/utils/email/composer';
import {Title} from '@angular/platform-browser';
import {HelperFunctions} from '../openaireLibrary/utils/HelperFunctions.class';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {properties} from '../../environments/environment';
@Component({
selector: 'contact',
templateUrl: './contact.component.html',
styleUrls: ['contact.component.css']
})
export class ContactComponent implements OnInit {
public showLoading = true;
public errorMessage = '';
public email: Email;
public properties: EnvProperties = properties;
public contactForm: FormGroup;
@ViewChild('AlertModal') modal;
@ViewChild('recaptcha') recaptcha;
constructor(private router: Router,
private emailService: EmailService,
private title: Title,
private fb: FormBuilder) {
}
ngOnInit() {
this.title.setTitle('OpenAIRE - UsageCounts | Contact Us');
this.email = {body: '', subject: '', recipients: []};
this.reset();
this.showLoading = false;
}
public send(event) {
HelperFunctions.scroll();
if (event.valid === true) {
this.sendMail(this.properties.admins);
} else {
this.errorMessage = 'Please fill in all the required fields!';
}
}
public reset() {
this.contactForm = this.fb.group({
name: this.fb.control('', Validators.required),
email: this.fb.control('', [Validators.required, Validators.email]),
affiliation: this.fb.control('', Validators.required),
organization: this.fb.control('', Validators.required),
description: this.fb.control('', Validators.required),
recaptcha: this.fb.control('', Validators.required),
});
this.errorMessage = '';
}
private sendMail(admins: any) {
this.showLoading = true;
this.emailService.contact(this.properties,
Composer.composeEmailForUsageCounts(this.contactForm.value, admins),
this.contactForm.value.recaptcha).subscribe(
res => {
this.showLoading = false;
if (res) {
this.reset();
this.modalOpen();
} else {
this.errorMessage = 'Email sent failed! Please try again.';
this.contactForm.get('recaptcha').setValue('');
}
},
error => {
this.handleError('Email sent failed! Please try again.', error);
this.showLoading = false;
this.contactForm.get('recaptcha').setValue('');
}
);
}
public modalOpen() {
this.modal.okButton = true;
this.modal.alertTitle = 'Your request has been successfully submitted';
this.modal.alertMessage = false;
this.modal.cancelButton = false;
this.modal.okButtonLeft = false;
this.modal.okButtonText = 'OK';
this.modal.open();
}
handleError(message: string, error) {
this.errorMessage = message;
console.log('Server responded: ' + error);
this.showLoading = false;
}
public goToHome() {
this.router.navigate(['/']);
}
}

View File

@ -0,0 +1,37 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {RouterModule} from '@angular/router';
import {ContactComponent} from './contact.component';
import {EmailService} from '../openaireLibrary/utils/email/email.service';
import {RecaptchaModule} from 'ng-recaptcha';
import {AlertModalModule} from '../openaireLibrary/utils/modal/alertModal.module';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {HelperModule} from '../openaireLibrary/utils/helper/helper.module';
import {IsRouteEnabled} from '../openaireLibrary/error/isRouteEnabled.guard';
import {Schema2jsonldModule} from '../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module';
import {SEOServiceModule} from '../openaireLibrary/sharedComponents/SEO/SEOService.module';
import {ContactUsModule} from '../openaireLibrary/contact-us/contact-us.module';
import {BreadcrumbsModule} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.module';
@NgModule({
imports: [
RouterModule.forChild([{
path: '', component: ContactComponent
}]), CommonModule, RouterModule,
AlertModalModule, RecaptchaModule.forRoot(), HelperModule,
Schema2jsonldModule, SEOServiceModule, ContactUsModule, BreadcrumbsModule
],
declarations: [
ContactComponent
],
providers: [
EmailService, PiwikService, IsRouteEnabled
],
exports: [
ContactComponent
]
})
export class ContactModule { }

View File

@ -1,6 +1,12 @@
export interface UsageStat {
country: string;
total_repositories: string;
total_views: string;
repositories: string;
total_downloads: string;
total_views: string;
}
export interface CountryUsageStat {
country: string;
views: string;
downloads:string;
total_repos: string;
}

View File

@ -1,65 +1,92 @@
.first {
background-image: url("/assets/usage-statistics-assets/home/1.svg");
background-size: auto;
background-repeat: no-repeat;
background-position: center top;
height: 336px;
@media only screen and (min-width: 1200px) {
.first {
position: relative;
background-image: url("/assets/usage-statistics-assets/home/1.svg");
background-size: cover;
background-repeat: no-repeat;
background-position: 0 -100px;
}
}
.second {
.second h4 {
background-image: url("/assets/usage-statistics-assets/home/2.svg");
background-size: contain;
background-repeat: no-repeat;
background-position: bottom center;
background-position: 0 0;
padding: 25px 0 0 25px;
}
.second input, .second input:focus {
background: #FFFFFF 0 0 no-repeat padding-box;
box-shadow: 0 3px 6px #00000029;
border-radius: 4px;
padding: 15px;
border: none;
outline: none;
/*.first > object {
top: -100px;
width: 1100px;
position: absolute;
}
.second input::placeholder {
color: #a3a3a3;
@media only screen and (min-width: 1200px) {
.first:before {
top: -100px;
width: 1100px;
height: 703px;
position: absolute;
z-index: 1;
background: transparent;
}
}*/
@media only screen and (min-width: 1200px) {
.third .first-column {
background-image: url("/assets/usage-statistics-assets/home/3.1.svg"), url("/assets/usage-statistics-assets/home/3.2.svg");
background-repeat: no-repeat;
background-size: contain, auto;
background-position: top left, bottom center;
font-size: 14px;
padding: 40px 0 40px 50px;
position: relative;
}
.third .first-column > .divider {
background-image: url("/assets/usage-statistics-assets/home/3.3.svg");
background-repeat: no-repeat;
background-size: contain;
position: absolute;
height: 100%;
bottom: -10%;
right: calc(-12vw - 30px);
width: 100%;
}
.third .second-column {
background-image: url("/assets/usage-statistics-assets/home/3.4.svg"), url("/assets/usage-statistics-assets/home/3.5.svg");
background-repeat: no-repeat;
background-size: auto, contain;
background-position: top center, bottom right;
font-size: 14px;
margin-top: 100px;
padding: 40px 40px 40px 40px;
}
.third .third-column {
background-image: url("/assets/usage-statistics-assets/home/3.6.svg");
background-size: auto;
background-repeat: no-repeat;
background-position: top left;
padding-top: 10px;
padding-left: 40px;
padding-right: 90px;
}
.third .third-column > div {
margin-left: 100px;
}
}
.third {
background-image: url("/assets/usage-statistics-assets/home/3.svg");
.features {
background-image: url("/assets/usage-statistics-assets/home/4.svg");
background-size: contain;
background-repeat: no-repeat;
background-position: bottom center;
}
button.search, button.search:hover {
color: #333333;
font-weight: 700;
border: none;
outline: none;
background-color: transparent;
}
button.search:hover {
color: var(--portal-main-color);
}
.card {
background: #FFFFFF 0 0 no-repeat padding-box;
box-shadow: 0 3px 6px #00000029;
border-radius: 4px;
padding: 50px;
text-align: center;
position: relative;
height: 113px;
}
.card > img {
position: absolute;
bottom: 0;
left: 50%;
transform: translate(-50%, 50%);
background-position: 0 0;
padding: 40px 70px;
}
iframe {

View File

@ -1,106 +1,115 @@
<ng-template #first>
<div class="uk-section">
<div class="uk-container">
<div class="uk-grid uk-flex uk-flex-top" uk-grid>
<div class="uk-width-1-2@m">
<h1 class="uk-text-bold">OpenAIRE Usage Statistics Service</h1>
<div class="uk-margin-medium-top uk-margin-medium-bottom">
OpenAIREs Usage Statistic service contributes towards impact evaluation of usage activity in Open Access
Repositories.
This is realized by the generation of comparable, consistent, standards based usage statistics across
publishing platforms that
take into account different levels of scholarly information: the usage of data sources, the usage of
individual items in the
context of their resource type, the usage of individual web resources or files and the usage of resources
among different repositories.
</div>
<a routerLink="/about" class="uk-button portal-button">Learn More</a>
<div class="uk-container uk-section first">
<div class="uk-grid uk-flex uk-flex-top" uk-grid>
<div class="uk-width-2-3@m">
<h1 class="uk-text-bold">UsageCounts Service by <span class="uk-text-primary">OpenAIRE</span></h1>
<div class="uk-margin-medium-top uk-margin-medium-bottom">
UsageCounts service collects usage data from repositories, journals and other scientific data sources,
aggregates them and delivers standardized activity reports about research usage and uptake. It complements
existing citation mechanisms and assists institutional repository managers, research communities, research
organizations, funders and policy makers track and evaluate research from an early stage.
</div>
<div class="uk-width-expand first"></div>
<a routerLink="/about" class="uk-button portal-button">Learn More</a>
</div>
<div class="uk-hidden@m uk-flex uk-flex-center uk-width-1-1">
<img src="assets/usage-statistics-assets/home/1-static.svg"/>
</div>
</div>
</div>
</ng-template>
<ng-template #second>
<div class="uk-section second uk-text-center">
<h3 class="uk-margin-medium-bottom">Track Countries Usage Activity</h3>
<div class="uk-container uk-container-small">
<form [formGroup]="countryFb" (ngSubmit)="search()">
<div class="uk-flex uk-flex-middle uk-flex-center uk-align-center uk-margin-large-bottom">
<input type="text" class="uk-width-3-5"
[placeholder]="(country)?country:'SEARCH FOR A COUNTRY'"
aria-label="Number"
formControlName="country"
[matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="search()">
<mat-option *ngFor="let option of countries | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
<button class="uk-width-1-6 uk-margin-medium-left search" type="submit">
<img src="assets/usage-statistics-assets/home/search.svg">
<span class="uk-text-small uk-text-uppercase">search</span>
</button>
</div>
</form>
<div class="uk-text-bold uk-margin-medium-bottom">
<div class="uk-text-uppercase">{{(country) ? country : 'world wide'}}</div>
<div class="uk-text-muted uk-text-uppercase uk-text-small">Results</div>
<div class="uk-container second">
<div class="uk-grid uk-child-width-1-2@m" uk-grid>
<div class="uk-flex uk-flex-last@m uk-margin-large-top">
<h2 class="uk-text-bold portal-color uk-text-right@m">Why OpenAIRE UsageCounts?</h2>
</div>
<div *ngIf="display" class="uk-grid uk-child-width-1-3@m uk-child-width-1-2@s uk-text-bold uk-grid-large"
uk-grid>
<div *ngIf="display.total_repositories">
<div class="card">
<div class="uk-margin-medium-bottom">
Repositories
</div>
<h3>
{{display.total_repositories | number}}
</h3>
<img src="assets/usage-statistics-assets/home/4.svg">
</div>
</div>
<div *ngIf="display.total_views">
<div class="card">
<div class="uk-margin-medium-bottom">
Views
</div>
<h3>
{{display.total_views | number}}
</h3>
<img src="assets/usage-statistics-assets/home/5.svg">
</div>
</div>
<div *ngIf="display.total_downloads">
<div class="card">
<div class="uk-margin-medium-bottom">
Downloads
</div>
<h3>
{{display.total_downloads | number}}
</h3>
<img src="assets/usage-statistics-assets/home/6.svg">
</div>
</div>
<div>
Register in OpenAIRE (via PROVIDE), share usage activity from your repository and receive cleaned and combined
statistics from aggregated usage data from sources around the world. Share COUNTER compliant reports via
standard SUSHI-Lite APIs.
</div>
<div *ngIf="!display" class="card uk-text-bold">
<div class="uk-position-center">
No results found for that country
</div>
</div>
<div class="uk-grid uk-child-width-1-2@m uk-margin-medium-top uk-padding" uk-grid>
<div>
<h4 class="uk-text-bold">Providers</h4>
<ul class="light-blue-triangle uk-margin-top">
<li>Accurate and objective performance measures monitoring of repository content</li>
<li>Evidence based analytical metrics of views, downloads of research, aggregated from all over the world</li>
<li>Activity and trends of open science topics</li>
</ul>
</div>
<div>
<h4 class="uk-text-bold">Consumers</h4>
<ul class="light-blue-triangle uk-margin-top">
<li>Overview of research outcomes per country or domain</li>
<li>Trustable, accurate statistics of open science research</li>
<li>Evaluate the result of invested funds, policies, measures and view impact</li>
</ul>
</div>
</div>
</div>
</ng-template>
<ng-template #third>
<div class="uk-section third uk-text-center">
<h3 class="uk-margin-medium-bottom">Monthly Usage Events</h3>
<div class="uk-container">
<iframe width="742" height="453" seamless frameborder="0" scrolling="no"
src="https://docs.google.com/spreadsheets/d/e/2PACX-1vRN9KbdyQSnWrC-yNpZj3C0U6_Qp-XQBSm9KY0G1Pz5UMoi1Q0bL5RaC1-oBw3o6kYoT7drlGCjUNCy/pubchart?oid=82603024&amp;format=interactive"></iframe>
<div class="uk-container uk-container-large third">
<div class="uk-grid uk-child-width-1-3@m" uk-grid>
<div class="uk-flex-last@m ">
<div class="third-column">
<h2 class="portal-color uk-text-bold">Who is it for?</h2>
<div>
UsageCounts offers standardized and comparable reports that measure the uptake
of research outcomes. Below are the two main categories of users that can benefit from UsageCounts and the
actions they can perform.
</div>
</div>
</div>
<div>
<div class="first-column">
<div class="divider"></div>
<h5 class="uk-text-primary">Repository managers, publishers</h5>
<div class="uk-margin-top">
Register in OpenAIRE (via PROVIDE), share usage activity from your repository and receive cleaned and combined
statistics from aggregated usage data from sources around the world. Share COUNTER compliant reports via
standard SUSHI-Lite APIs.
</div>
<div class="uk-margin-medium-top uk-text-center">
<a class="uk-button uk-button-primary" routerLink="/resources">Learn More</a>
</div>
</div>
</div>
<div>
<div class="second-column">
<h5 class="uk-text-primary">Research performing & funding organizations, research infrastructures, policy makers</h5>
<div class="uk-margin-top">
View research uptake, identify science trends based on user activity, examine the engagement and evolution or research popularity.
</div>
<div class="uk-margin-medium-top uk-text-center">
<a class="uk-button uk-button-primary" routerLink="/resources/apis">Learn More</a>
</div>
</div>
</div>
</div>
</div>
</ng-template>
<fp-slider class="uk-visible@m" [initSlide]="initSlide" logoURL="/assets/common-assets/logo-small-usage-statistics.png">
<ng-template #fourth>
<div class="uk-container">
<div class="uk-grid uk-grid-large uk-flex uk-flex-middle uk-flex-center" uk-grid>
<div class="uk-width-expand@m uk-width-1-2 uk-flex uk-flex-last@m features">
<h1 class="uk-text-bold portal-color">Features</h1>
</div>
<div class="uk-width-2-3@m">
<ul class="light-blue-circle large">
<li>Provides standards for usage data exchange (OpenAIRE Usage Statistics Guidelines)</li>
<li>Complies to COUNTER Code of Practice for reliable and comparable reports</li>
<li>Follows GDPR for trusted</li>
<li>Offers global coverage with partners in</li>
<li>Supports analysis via advanced visualizations</li>
<li>Exports different types of reports via standard APIs (Sushi-Lite)</li>
</ul>
</div>
</div>
</div>
</ng-template>
<fp-slider class="uk-visible@m" [initSlide]="initSlide" topBar="top-bar-background" logoURL="/assets/common-assets/logo-small-usage-counts.png">
<slide>
<ng-container *ngTemplateOutlet="first"></ng-container>
</slide>
@ -110,9 +119,28 @@
<slide>
<ng-container *ngTemplateOutlet="third"></ng-container>
</slide>
<slide>
<ng-container *ngTemplateOutlet="fourth"></ng-container>
</slide>
</fp-slider>
<div class="uk-hidden@m uk-margin-left uk-margin-right">
<ng-container *ngTemplateOutlet="first"></ng-container>
<ng-container *ngTemplateOutlet="second"></ng-container>
<ng-container *ngTemplateOutlet="third"></ng-container>
<div class="uk-section uk-section-large">
<ng-container *ngTemplateOutlet="first"></ng-container>
</div>
<div class="uk-section uk-section-large">
<ng-container *ngTemplateOutlet="second"></ng-container>
</div>
<div class="uk-section uk-section-large">
<ng-container *ngTemplateOutlet="third"></ng-container>
</div>
<div class="uk-section uk-section-large">
<ng-container *ngTemplateOutlet="fourth"></ng-container>
</div>
</div>
<!--<div class="uk-section third uk-text-center">
<h3 class="uk-margin-medium-bottom">Monthly Usage Events</h3>
<div class="uk-container">
<iframe width="742" height="453" seamless frameborder="0" scrolling="no"
src="https://docs.google.com/spreadsheets/d/e/2PACX-1vRN9KbdyQSnWrC-yNpZj3C0U6_Qp-XQBSm9KY0G1Pz5UMoi1Q0bL5RaC1-oBw3o6kYoT7drlGCjUNCy/pubchart?oid=82603024&amp;format=interactive"></iframe>
</div>
</div>-->

View File

@ -1,11 +1,6 @@
import {Component, OnInit} from "@angular/core";
import {UsageStatsService} from "../services/usage-stats.service";
import {UsageStat} from "../entities/usage-stat";
import {countries} from "../services/countries";
import {FormControl, FormGroup} from "@angular/forms";
import {Observable} from "rxjs";
import {map, startWith} from "rxjs/operators";
import {ActivatedRoute} from "@angular/router";
import {Component, OnInit} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {Title} from '@angular/platform-browser';
@Component({
selector: 'home',
@ -14,42 +9,17 @@ import {ActivatedRoute} from "@angular/router";
})
export class HomeComponent implements OnInit{
public stats: UsageStat[] = [];
public countryFb: FormGroup = new FormGroup({
country: new FormControl('')
});
public countries: Observable<string[]>;
public country: String;
public display: UsageStat;
public initSlide: number = 1;
constructor(private usageStatsService: UsageStatsService,
private route: ActivatedRoute) {}
constructor(private route: ActivatedRoute,
private title: Title) {}
ngOnInit() {
this.title.setTitle('OpenAIRE - UsageCounts');
this.route.queryParams.subscribe(params => {
if(params['slide']) {
this.initSlide = params['slide'];
}
});
this.usageStatsService.getUsageStats().subscribe(stats => {
this.stats = stats;
this.search();
});
this.countries = this.countryFb.get('country').valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
}
public search() {
this.country = this.countryFb.value.country;
this.display = this.stats.filter(stat => !this.country || stat.country === this.country)[0];
}
private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
return countries.map(value => value.name).filter(option => filterValue && option.toLowerCase().includes(filterValue));
}
}

View File

@ -1,12 +1,8 @@
import {NgModule} from "@angular/core";
import {HomeComponent} from "./home.component";
import {CommonModule} from "@angular/common";
import {RouterModule} from "@angular/router";
import {FullPageSliderModule} from "../openaireLibrary/utils/full-page-slider/full-page-slider.module";
import {MatAutocompleteModule} from "@angular/material/autocomplete";
import {ReactiveFormsModule} from "@angular/forms";
import {MatFormFieldModule} from "@angular/material/form-field";
import {MatInputModule} from "@angular/material/input";
import {NgModule} from '@angular/core';
import {HomeComponent} from './home.component';
import {CommonModule} from '@angular/common';
import {RouterModule} from '@angular/router';
import {FullPageSliderModule} from '../openaireLibrary/utils/full-page-slider/full-page-slider.module';
@NgModule({
imports: [
@ -15,10 +11,6 @@ import {MatInputModule} from "@angular/material/input";
path: '', component: HomeComponent
}]),
FullPageSliderModule,
MatAutocompleteModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule
],
declarations: [HomeComponent],
exports: [HomeComponent]

View File

@ -1,25 +1,62 @@
.how-background {
background-image: url("/assets/usage-statistics-assets/resources/how.svg");
@media only screen and (min-width: 1200px) {
.resources > div:first-child {
min-height: calc(100vh - 100px);
overflow: visible;
}
}
@media only screen and (max-width: 1199px) and (min-width: 960px) {
.resources > div:first-child {
min-height: calc(50vh - 100px);
overflow: visible;
}
}
.provide-background {
background-image: url("/assets/usage-statistics-assets/resources/1.svg");
background-repeat: no-repeat;
background-position: 0 0;
background-size: contain;
position: relative;
}
.card-text {
font-size: 14px;
}
.card-title {
font-weight: bold;
color: #212121;
}
.border-top {
border-top: 1px solid #BFBFBF;
}
@media only screen and (min-width: 960px) {
.border-right {
border-right: 1px solid #BFBFBF;
@media only screen and (max-width: 959px) {
.provide-background {
background-size: cover;
}
}
}
.provide-background a.next {
position: absolute;
bottom: 10%;
right: 10%;
color: var(--portal-main-color);
line-height: 24px;
font-size: 18px;
letter-spacing: 1.8px;
}
.provide-background a.next svg path {
fill: var(--portal-main-color);
}
.provide-background a.next:hover {
color: var(--portal-dark-color);
}
.provide-background a.next:hover svg path {
fill: var(--portal-dark-color);
}
.provide-definition {
padding: 20px;
background: #E7F0FA 0 0 no-repeat padding-box;
border: 1px solid #23247E;
border-radius: 5px;
font-style: italic;
font-size: 14px;
margin-left: 20px;
width: 85%;
}

View File

@ -1,120 +1,115 @@
<div>
<div class="uk-section uk-container">
<div class="uk-margin-large-left uk-margin-top">
<h1 class="uk-text-bold">How Can Be Used</h1>
<div class="uk-width-1-1 uk-width-4-5@m uk-margin-medium-top uk-margin-medium-bottom">
<div class="resources">
<div class="uk-container uk-container-large provide-background">
<div class="uk-container uk-section uk-section-small uk-padding-remove-bottom">
<h2 class="uk-margin-remove-vertical">OpenAIRE Provide</h2>
<div class="uk-padding uk-width-3-4@l">
<p>
{{
'The service has to be enabled for the repository. This step results in the generation of two unique identifiers:'
| titlecase }}
The <span class="uk-text-primary uk-text-bold">resources</span> of the OpenAIRE UsageCounts Service are
available through the OpenAIRE PROVIDE product, which is serving the content providers.
</p>
<ul class="uk-list uk-list-bullet">
<li>a Matomo-ID that associates the repository with its usage events in Matomo platform;</li>
<li>an authentication-ID that allows to track usage activity on the Matomo platform.</li>
</ul>
<p>After the generation of the identifiers the repository manager has to perform the following steps:</p>
<p>1. Download the tracking code for the repository platform. The code is maintained on Github:</p>
<ul class="uk-list uk-list-bullet">
<li>
<span>as a patch for various versions of DSpace (</span>
<a href="https://github.com/openaire/OpenAIRE-Piwik-DSpace" target="_blank">
<span>https://github.com/openaire/OpenAIRE-Piwik-DSpace</span>
</a>
<span>)</span>
</li>
<li>
<span>as an Eprints plugin for version 3 (</span>
<a href="https://github.com/openaire/EPrints-OAPiwik" target="_blank">
<span>https://github.com/openaire/EPrints-OAPiwik</span>
</a>
<span>)</span>
</li>
<li>
<span>as a python script for all other cases (</span>
<a href="https://github.com/openaire/Generic-Matomo-Tracker" target="_blank">
<span>https://github.com/openaire/Generic-Matomo-Tracker</span>
</a>
<span>)</span>
</li>
</ul>
<div>
2. Follow the instructions in the code README files and configure the tracker;
</div>
<div>
3. Deploy the tracking code in the repository.
<div class="provide-definition uk-margin-bottom">
“OpenAIRE PROVIDE is a product that enables data providers to register and observe their data activity on
OpenAIRE, by accessing the OpenAIRE Provide Dashboard”.
</div>
<p>
<span>
A notification e-mail will be sent to inform the repository administrator that
the installation of the tracking code has been validated and when the usage statistics will be available in the
</span>
<a href="https://provide.openaire.eu/" target="_blank">OpenAIRE Content Provider Dashboard</a>
<span>.</span>
The OpenAIRE Provide supports the following <span class="uk-text-bold">functionalities</span> for the
UsageCounts Service:
</p>
<ol class="openaire-list">
<li>A registration process to the service for repository managers.</li>
<li> The required resources and instructions to deploy the service.</li>
<li>Visualization and exporting tools for publishing and downloading usage statistics reports.</li>
</ol>
<p class="uk-margin-top">
<span class="portal-color uk-text-bold">Important:</span> All the information that content providers offer to
OpenAIRE, is first validated, enriched, and
then indexed on the OpenAIRE PROVIDE. Only then, after this verification and if needed, enhancement process,
the metadata records are indexed on OpenAIRE PROVIDE, ensuring transparency, security, and trust of data.
</p>
<div class="uk-flex uk-flex-center">
<a class="uk-button uk-button-primary uk-margin-small-top" href="https://provide.openaire.eu" target="_blank">
GO TO OpenAIRE PROVIDE
<span class="space">
<svg xmlns="http://www.w3.org/2000/svg" width="14.142" height="14.142" viewBox="0 0 14.142 14.142">
<path id="arrow-down-left2"
d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
transform="translate(7.071 19.799) rotate(-135)" fill="#fff"/>
</svg>
</span>
</a>
</div>
<a class="uk-visible@l next uk-flex uk-flex-middle" (click)="goTo('apis')">
APIs AND REPORTS
<svg height="17.155" viewBox="0 0 17.155 17.155" width="17.155" class="uk-margin-left"
xmlns="http://www.w3.org/2000/svg">
<g data-name="Group 2442" id="Group_2442" transform="translate(-1221 -675)">
<path
d="M14.405,4.3,6.022,12.68V9.055A1.011,1.011,0,0,0,4,9.055V15.12a1.009,1.009,0,0,0,1.011,1.01h6.065a1.011,1.011,0,1,0,0-2.022H7.451l8.383-8.383A1.011,1.011,0,0,0,14.405,4.3h0Z"
fill="#e95420" id="arrow-down-left2" transform="translate(1215.343 683.578) rotate(-45)"></path>
</g>
</svg>
</a>
</div>
</div>
</div>
<!-- <div class="uk-margin-left uk-margin-right">-->
<div class="uk-section uk-container uk-container-large how-background">
<div class="uk-card uk-card-default uk-card-body card-text uk-text-break
uk-margin-large-bottom uk-margin-medium-left uk-margin-medium-right">
<h6 class="card-title uk-text-uppercase uk-text-center">Follow USAGE STATISTICS guidelines</h6>
<div class="uk-grid uk-width-1-1 uk-child-width-1-2@m uk-padding">
<div class="uk-padding border-top border-right">
<img src="/assets/usage-statistics-assets/resources/guidelines.svg"/>
<p class="card-title">Guidelines</p>
<div>
<a href="https://openaire.github.io/usage-statistics-guidelines/" target="_blank">
https://openaire.github.io/usage-statistics-guidelines/
</a>
</div>
</div>
<div class="uk-padding border-top">
<img src="/assets/usage-statistics-assets/resources/software.svg"/>
<p class="card-title">Software</p>
<ul class="uk-list">
<li>
<span class="uk-text-bold">Generic Matomo Tracker - </span>
<a href="https://github.com/openaire/Generic-Matomo-Tracker" target="_blank">
https://github.com/openaire/Generic-Matomo-Tracker
</a>
</li>
<li>
<span class="uk-text-bold">Matomo tracker for DSpace - </span>
<a href=" https://github.com/openaire/OpenAIRE-Piwik-DSpace" target="_blank">
https://github.com/openaire/OpenAIRE-Piwik-DSpace
</a>
</li>
<li>
<span class="uk-text-bold">Matomo tracker for Eprints - </span>
<a href="https://github.com/openaire/EPrints-OAPiwik" target="_blank">
https://github.com/openaire/EPrints-OAPiwik
</a>
</li>
</ul>
</div>
<div class="uk-padding border-top border-right">
<img src="/assets/usage-statistics-assets/resources/services.svg"/>
<p class="card-title">Services API</p>
<div>
<span class="uk-text-bold">SUSHI Lite Endpoint - </span>
<a href="http://services.openaire.eu/usagestats/sushilite/" target="_blank">
http://services.openaire.eu/usagestats/sushilite/
</a>
</div>
</div>
<div class="uk-padding border-top">
<img src="/assets/usage-statistics-assets/resources/faq.svg"/>
<p class="card-title">FAQ</p>
<div>
<a href="https://docs.google.com/document/d/1404yRWhSzGUtqkrxydXsxUqMUEs2dWn8AJ-RCe7RZ7o/edit?usp=sharing"
target="_blank">
https://docs.google.com/document/d/1404yRWhSzGUtqkrxydXsxUqMUEs2dWn8AJ-RCe7RZ7o/edit?usp=sharing
</a>
</div>
<div id="apis" class="uk-container uk-section">
<div class="uk-flex uk-flex-middle">
<img src="assets/usage-statistics-assets/resources/2.svg">
<h2 class="uk-text-bold uk-margin-medium-left uk-margin-remove-vertical">APIs and Reports</h2>
</div>
<div class="uk-padding uk-margin-top uk-width-3-4@l">
<p>
There are a variety of reports generated via OpenAIRE UsageCounts Service and are available via a SUSHI-Lite
Endpoint (anchor). The reports comply with
<a href="https://www.projectcounter.org/code-of-practice-sections/general-information/" target="_blank">COUNTER
CoP Release 4.</a>
</p>
<ul class="portal-circle">
<li><span class="uk-text-primary">AR-1 - Article Report 1.</span> This report enables you to view the number of successful article download requests by
month and repository. There are filtering options to limit the results to a selected journal or repository. It
can provide results for an individual month or over a number of months and can be output in JSON format.
</li>
<li><span class="uk-text-primary">IR-1 - Item Report 1.</span> This report enables you to view the number of successful item download requests by
month and repository identifier. There are filtering options to limit the results to a selected item or
repository
identifier or item data type. It can provide results for an individual month or over a number of months and
can be output in JSON format.
</li>
<li><span class="uk-text-primary">JR-1 - Journal Report 1.</span> This report enables you to view the number of
successful full-text article requests by month and journal. There are filtering options to limit the results
to a selected journal or item data type. It can provide results for an individual month or over a number of
months and can be output in JSON format.
</li>
<li><span class="uk-text-primary">RR-1 - Repository Report 1.</span> This report enables you to view the
number of successful item downloads for all repositories participating in the usage statistics service. There
are filtering options to limit the results to a repository identifier or selected item type. It can provide
results for an individual month or over a number of months and can be output in JSON format.
</li>
<li><span class="uk-text-primary">BR-1 - Book Report 1.</span> This report enables you to view the number of successful book title requests by month and title.
There are filtering options to limit the results to a repository identifier or selected item identifier. It
can provide results for an individual month or over a number of months and can be output in JSON format.
</li>
<li><span class="uk-text-primary">BR-2 - Book Report 2.</span> This report enables you to download the number of successful book section requests by month
and title. There are filtering options to limit the results to a repository identifier or selected item
identifier. It can provide results for an individual month or over a number of months and can be output in
JSON format.
</li>
</ul>
<div class="uk-margin-top">
<span class="uk-text-bold">To download a report please visit - </span>
<a class="uk-link" href="http://services.openaire.eu/usagestats/sushilite/" target="_blank">http://services.openaire.eu/usagestats/sushilite/</a>
</div>
</div>
</div>
<div class="uk-container uk-section">
<div class="uk-flex uk-flex-top">
<img src="assets/usage-statistics-assets/resources/3.svg">
<div class="uk-margin-medium-left">
<h2 class="uk-text-bold">OpenAIRE UsageCounts Guidelines</h2>
<div class="uk-padding uk-padding-remove-vertical uk-margin-top">
<a href="https://openaire.github.io/usage-statistics-guidelines/" target="_blank">https://openaire.github.io/usage-statistics-guidelines/</a>
</div>
</div>
</div>
</div>
<!-- </div>-->
</div>

View File

@ -1,10 +1,31 @@
import {Component} from "@angular/core";
import {Component, OnInit} from '@angular/core';
import {Title} from '@angular/platform-browser';
import {ActivatedRoute} from '@angular/router';
@Component({
selector: 'resources',
templateUrl: 'resources.component.html',
styleUrls: ['resources.component.css'],
})
export class ResourcesComponent {
export class ResourcesComponent implements OnInit{
constructor(private title: Title,
private route: ActivatedRoute) {
}
ngOnInit() {
this.title.setTitle('OpenAIRE - UsageCounts | Resources');
this.route.params.subscribe(params => {
if(params && params['section']) {
this.goTo(params['section']);
}
});
}
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}

View File

@ -4,7 +4,7 @@ export const countries = [
{name: 'Albania', code: 'AL'},
{name: 'Algeria', code: 'DZ'},
{name: 'American Samoa', code: 'AS'},
{name: 'AndorrA', code: 'AD'},
{name: 'Andorra', code: 'AD'},
{name: 'Angola', code: 'AO'},
{name: 'Anguilla', code: 'AI'},
{name: 'Antarctica', code: 'AQ'},

View File

@ -1,82 +0,0 @@
import {UsageStat} from "../entities/usage-stat";
export const usageStats: UsageStat[] = [
{
country: "Argentina",
total_repositories: "1",
total_views: "2247436",
total_downloads: "3582638"
},
{
country: "Belgium",
total_repositories: "1",
total_views: "14456198",
total_downloads: "23116832"
},
{
country: "Colombia",
total_repositories: "1",
total_views: "970359",
total_downloads: "4498530"
},
{
country: "Croatia",
total_repositories: "1",
total_views: "249381",
total_downloads: "333919"
},
{
country: "France",
total_repositories: "3",
total_views: "1603924",
total_downloads: "2476151"
},
{
country: "Germany",
total_repositories: "4",
total_views: "4621752",
total_downloads: "10546441"
},
{
country: "Italy",
total_repositories: "1",
total_views: "262909",
total_downloads: "1448656"
},
{
country: "Portugal",
total_repositories: "35",
total_views: "24693739",
total_downloads: "38975148"
},
{
country: "Serbia",
total_repositories: "12",
total_views: "1499200",
total_downloads: "1814776"
},
{
country: "Spain",
total_repositories: "5",
total_views: "9664694",
total_downloads: "49317052"
},
{
country: "Switzerland",
total_repositories: "2",
total_views: "28912396",
total_downloads: "46233664"
},
{
country: "United Kingdom",
total_repositories: "80",
total_views: "0",
total_downloads: "257254413"
},
{
country: "all",
total_repositories: "146",
total_views: "163907778",
total_downloads: "858145808"
}
];

View File

@ -1,21 +1,31 @@
import {Injectable} from "@angular/core";
import {HttpClient} from "@angular/common/http";
import {UsageStat} from "../entities/usage-stat";
import {BehaviorSubject, Observable} from "rxjs";
import {usageStats} from "./usage-stats-dump";
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {CountryUsageStat, UsageStat} from '../entities/usage-stat';
import {Observable} from 'rxjs';
import {properties} from '../../environments/environment';
import {map} from 'rxjs/operators';
@Injectable({
providedIn: "root"
})
export class UsageStatsService {
private usageStats: BehaviorSubject<UsageStat[]>;
constructor(private http: HttpClient) {}
constructor(private http: HttpClient) {
this.usageStats = new BehaviorSubject<UsageStat[]>(usageStats);
getAllMetrics(): Observable<UsageStat> {
let url = properties.metricsAPIURL + 'allmetrics';
return this.http.get<UsageStat>((properties.useLongCache?(properties.cacheUrl + encodeURIComponent(url)):url));
}
getUsageStats(): Observable<UsageStat[]> {
return this.usageStats.asObservable();
getCountryMetrics(country: string): Observable<CountryUsageStat> {
let url = properties.metricsAPIURL + 'countryusagestats/' + country;
return this.http.get<CountryUsageStat>((properties.useLongCache?(properties.cacheUrl + encodeURIComponent(url)):url)).pipe(map(stat => {
if(stat.total_repos == "0" && !stat.views && !stat.downloads) {
return null;
} else {
return stat;
}
}));
}
}

View File

@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1366" height="678" viewBox="0 0 1366 678">
<g id="Group_11665" data-name="Group 11665" transform="translate(0 -87)">
<rect id="Rectangle_2626" data-name="Rectangle 2626" width="1366" height="678" transform="translate(0 87)" fill="#f9fbfc"/>
<g id="Group_11635" data-name="Group 11635" transform="translate(0 -104)">
<path id="Path_16420" data-name="Path 16420" d="M404.212,210.66,373.2,222.145l-31.869,11.8-55.058,20.384-15.4,5.709L238.96,271.857" transform="translate(886.727 245.484)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
<path id="Path_17201" data-name="Path 17201" d="M219.74,0,178.5,36.845,136.127,74.714l-73.212,65.4L42.435,158.427,0,196.331" transform="translate(1064.104 488.902) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17202" data-name="Path 17202" d="M183.655,0,149.191,30.795l-35.418,31.65L52.583,117.1,35.467,132.411,0,164.091" transform="translate(1173.188 487.172) rotate(50)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
</g>
<circle id="Ellipse_372" data-name="Ellipse 372" cx="105.5" cy="105.5" r="105.5" transform="translate(175 450)" fill="#e95420" opacity="0.1"/>
<g id="Rectangle_2623" data-name="Rectangle 2623" transform="translate(0 147)" fill="#4687e6" stroke="#707070" stroke-width="1" opacity="0.1">
<rect width="280" height="397" stroke="none"/>
<rect x="0.5" y="0.5" width="279" height="396" fill="none"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="211" height="211" viewBox="0 0 211 211">
<circle id="Ellipse_372" data-name="Ellipse 372" cx="105.5" cy="105.5" r="105.5" fill="#e95420" opacity="0.1"/>
</svg>

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="181.161" height="177.012" viewBox="0 0 181.161 177.012">
<g id="Group_11658" data-name="Group 11658" transform="translate(-1110.577 -1624.35)">
<path id="Path_17201" data-name="Path 17201" d="M131.667,0,106.959,22.078,81.567,44.768,37.7,83.954,25.427,94.929,0,117.641" transform="translate(1111.018 1669.848) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17202" data-name="Path 17202" d="M114.933,0,93.365,19.272,71.2,39.078,32.907,73.284,22.2,82.864,0,102.689" transform="translate(1217.361 1646.816) rotate(50)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 709 B

View File

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="191.962" height="276.39" viewBox="0 0 191.962 276.39">
<g id="icon1" transform="translate(-719.366 -1391.153)">
<line id="Line_427" data-name="Line 427" y1="29.01" x2="104.437" transform="translate(719.5 1408.906)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_431" data-name="Line 431" x1="59.471" y2="122.593" transform="translate(793.477 1431.596)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_429" data-name="Line 429" x2="150.854" y2="156.656" transform="translate(760.115 1391.5)" fill="none" stroke="#707070" stroke-width="1"/>
<circle id="Ellipse_371" data-name="Ellipse 371" cx="67" cy="67" r="67" transform="translate(722.396 1533.543)" fill="#e95420" opacity="0.3"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 792 B

View File

@ -1,13 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1165.181" height="660.829" viewBox="0 0 1165.181 660.829">
<g id="Group_3099" data-name="Group 3099" transform="translate(-173 -73)">
<g id="Group_3098" data-name="Group 3098">
<path id="Path_16420" data-name="Path 16420" d="M404.212,210.66,373.2,222.145l-31.869,11.8-55.058,20.384-15.4,5.709L238.96,271.857" transform="translate(886.726 245.485)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
<path id="Path_17201" data-name="Path 17201" d="M219.74,0,178.5,36.845,136.127,74.714l-73.212,65.4L42.435,158.427,0,196.331" transform="translate(1064.104 488.904) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17202" data-name="Path 17202" d="M183.655,0,149.191,30.795l-35.418,31.65L52.583,117.1,35.467,132.411,0,164.091" transform="translate(1173.187 487.171) rotate(50)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
</g>
<g id="Group_3097" data-name="Group 3097">
<circle id="Ellipse_360" data-name="Ellipse 360" cx="198.5" cy="198.5" r="198.5" transform="translate(173 73)" fill="#222080" opacity="0.1"/>
<circle id="Ellipse_372" data-name="Ellipse 372" cx="105.5" cy="105.5" r="105.5" transform="translate(419 399)" fill="#4687e6" opacity="0.1"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 232 KiB

View File

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="61.956" height="88.45" viewBox="0 0 61.956 88.45">
<g id="Group_3066" data-name="Group 3066" transform="translate(-299.402 -477.62)">
<g id="Path_17184" data-name="Path 17184" transform="translate(330.38 504.115) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
<g id="Path_17185" data-name="Path 17185" transform="translate(330.38 491.357) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
<g id="Path_17186" data-name="Path 17186" transform="translate(330.38 477.62) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 566 B

View File

Before

Width:  |  Height:  |  Size: 593 B

After

Width:  |  Height:  |  Size: 593 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="397" height="397" viewBox="0 0 397 397">
<circle id="Ellipse_375" data-name="Ellipse 375" cx="198.5" cy="198.5" r="198.5" fill="#222080" opacity="0.1"/>
</svg>

After

Width:  |  Height:  |  Size: 209 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="78.774" height="103.774" viewBox="0 0 78.774 103.774">
<g id="Group_11666" data-name="Group 11666" transform="translate(-1159.715 -725.365)">
<path id="Path_16423" data-name="Path 16423" d="M331.578,102.724a20.4,20.4,0,1,1-20.4-20.4A20.4,20.4,0,0,1,331.578,102.724Z" transform="translate(906.91 643.045)" fill="#222080" opacity="0.8"/>
<path id="Path_17208" data-name="Path 17208" d="M369.544,121.707A39.387,39.387,0,1,1,330.157,82.32,39.387,39.387,0,0,1,369.544,121.707Z" transform="translate(868.945 668.045)" fill="#e95420" opacity="0.6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 614 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 110 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 380 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 357 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="421.721" height="380.332" viewBox="120 50 421.721 380.332">
<g id="Group_11663" data-name="Group 11663" transform="translate(-56.866 -85.644)">
<path id="Path_17211" data-name="Path 17211" d="M234.449,209.473l-44-39.312-45.214-40.4L67.126,59.984,45.276,40.441,0,0" transform="translate(213.035 151.084) rotate(48)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
<path id="Path_16420" data-name="Path 16420" d="M514.27,312.614,462.606,293.48l-53.094-19.665-91.727-33.96-25.658-9.512L238.96,210.66" transform="translate(-113.887 73.773) rotate(-21)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 742 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="334.383" height="82.429" viewBox="0 90 334.383 82.429">
<path id="Path_17202" data-name="Path 17202" d="M248.614,222.129l-46.654-41.687L154.014,137.6,71.181,63.608,48.011,42.884,0,0" transform="translate(0.497 166.855) rotate(-42)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 373 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="383.074" height="414.36" viewBox="0 0 383.074 414.36">
<path id="Path_17201" data-name="Path 17201" d="M362.8,324.149l-68.082-60.833L224.75,200.794,103.874,92.822,70.062,62.581,0,0" transform="matrix(0.174, 0.985, -0.985, 0.174, 319.65, 0.393)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 386 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="355.298" height="83.221" viewBox="0 170 355.298 83.221">
<path id="Path_17214" data-name="Path 17214" d="M264.21,236.064l-49.581-44.3L163.676,146.23,75.647,67.6,51.023,45.575,0,0" transform="translate(0.497 177.291) rotate(-42)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 370 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="177.993" height="247.021" viewBox="0 0 287.993 137.021">
<g id="Group_11664" data-name="Group 11664" transform="translate(478.587 432.662) rotate(-180)">
<path id="Path_17212" data-name="Path 17212" d="M168.592,150.632l-31.638-28.269L104.441,93.309,48.27,43.134,32.558,29.081,0,0" transform="translate(213.035 206.084) rotate(48)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
<path id="Path_17213" data-name="Path 17213" d="M514.27,312.614,462.606,293.48l-53.094-19.665-91.727-33.96-25.658-9.512L238.96,210.66" transform="translate(-113.887 73.771) rotate(-21)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1" opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 758 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="211" height="211" viewBox="0 0 211 211">
<circle id="Ellipse_372" data-name="Ellipse 372" cx="105.5" cy="105.5" r="105.5" fill="#4687e6" opacity="0.1"/>
</svg>

After

Width:  |  Height:  |  Size: 209 B

View File

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="774.918" height="524.574" viewBox="0 0 774.918 524.574">
<g id="Group_3101" data-name="Group 3101" transform="translate(-313.57 -185.225)">
<path id="Path_17210" data-name="Path 17210" d="M226.039,119.789a72.814,72.814,0,0,0-30.892-38.86,62.41,62.41,0,0,0-5.836-3.236,72.206,72.206,0,0,0-31.1-7.492h-1.09a72.688,72.688,0,0,0-46.29,128.651,73.468,73.468,0,0,0,7.185,5.242,72.688,72.688,0,0,0,108.025-84.3ZM157.1,184.544A41.544,41.544,0,1,1,198.641,143,41.544,41.544,0,0,1,157.1,184.544Z" transform="translate(304.271 115.025)" fill="#4687e6"/>
<path id="Path_17205" data-name="Path 17205" d="M422.615,374.751l-34.464-30.795-35.418-31.65-61.19-54.658L274.427,242.34,238.96,210.66" transform="translate(17.412 438.913) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17204" data-name="Path 17204" d="M434.678,283.139l-36.728-13.6-37.744-13.98L295,231.415l-18.24-6.762-37.8-13.993" transform="matrix(0.891, 0.454, -0.454, 0.891, 234.282, 175.495)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="2"/>
<path id="Path_17207" data-name="Path 17207" d="M519.555,336.774,466.9,313.106l-54.113-24.325L319.3,246.773l-26.151-11.766L238.96,210.66" transform="translate(642.233 163.117) rotate(87)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
<path id="Path_16423" data-name="Path 16423" d="M331.578,102.724a20.4,20.4,0,1,1-20.4-20.4A20.4,20.4,0,0,1,331.578,102.724Z" transform="translate(756.91 457.045)" fill="#e95420" opacity="0.8"/>
<path id="Path_17208" data-name="Path 17208" d="M369.544,121.707A39.387,39.387,0,1,1,330.157,82.32,39.387,39.387,0,0,1,369.544,121.707Z" transform="translate(718.944 482.045)" fill="#222080" opacity="0.8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,16 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="61.956" height="88.45" viewBox="0 0 61.956 88.45">
<g id="Group_3066" data-name="Group 3066" transform="translate(-299.402 -477.62)">
<g id="Path_17184" data-name="Path 17184" transform="translate(330.38 504.115) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
<g id="Path_17185" data-name="Path 17185" transform="translate(330.38 491.357) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
<g id="Path_17186" data-name="Path 17186" transform="translate(330.38 477.62) rotate(45)" fill="#4687e6">
<path d="M 0.7209541201591492 43.08832931518555 L 9.984533309936523 9.984533309936523 L 43.08832931518555 0.7209541201591492 L 33.82474899291992 33.82474899291992 L 0.7209541201591492 43.08832931518555 Z" stroke="none"/>
<path d="M 42.36736297607422 1.441921234130859 L 10.39022064208984 10.39022064208984 L 1.441921234130859 42.36736297607422 L 33.41905975341797 33.41905975341797 L 42.36736297607422 1.441921234130859 M 43.80928039550781 3.814697265625e-06 L 34.23043060302734 34.23043060302734 L 3.814697265625e-06 43.80928039550781 L 9.578853607177734 9.578853607177734 L 43.80928039550781 3.814697265625e-06 Z" stroke="none" fill="#d5e4f8"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" width="156.902" height="171.197" viewBox="0 0 156.902 171.197">
<g id="Group_11669" data-name="Group 11669" transform="translate(-1007.098 -292)">
<rect id="Rectangle_2621" data-name="Rectangle 2621" width="140" height="140" rx="2" transform="translate(1164 292) rotate(90)" fill="#e7f0fa"/>
<path id="Path_16424" data-name="Path 16424" d="M325.708,191.3,304.24,217.6l41.966.77Z" transform="translate(702.858 191.158)" fill="#4687e6"/>
<path id="Path_16425" data-name="Path 16425" d="M326.028,224.83,309.62,251.214l31.829.585Z" transform="translate(701.793 184.518)" fill="#4687e6"/>
<path id="Path_16426" data-name="Path 16426" d="M325.25,258.4l-14.7,26.408,28.429.521Z" transform="translate(701.609 177.867)" fill="#4687e6"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 800 B

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1088.182" height="485" viewBox="0 0 1088.182 485">
<g id="Group_11668" data-name="Group 11668" transform="translate(-136 -121)">
<g id="Group_11660" data-name="Group 11660" transform="translate(8.514 -252)">
<path id="Path_16420" data-name="Path 16420" d="M334.461,210.66,316.539,217.3l-18.417,6.822L266.3,235.9l-8.9,3.3-18.443,6.828" transform="translate(853.719 227.589)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
<path id="Path_17201" data-name="Path 17201" d="M126.99,0,103.159,21.293,78.669,43.178,36.359,80.971,24.524,91.557,0,113.462" transform="translate(1057.09 457.18) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17202" data-name="Path 17202" d="M106.136,0,86.219,17.8,65.75,36.087,30.388,67.675,20.5,76.522,0,94.83" transform="translate(1120.13 456.18) rotate(50)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
</g>
<circle id="Ellipse_360" data-name="Ellipse 360" cx="122.5" cy="122.5" r="122.5" transform="translate(136 121)" fill="#e95420" opacity="0.05"/>
<circle id="Ellipse_372" data-name="Ellipse 372" cx="43.5" cy="43.5" r="43.5" transform="translate(215 519)" fill="#4687e6" opacity="0.1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="96" viewBox="0 0 120 96">
<g id="icon4" transform="translate(-222 -1402.5)">
<rect id="Rectangle_2209" data-name="Rectangle 2209" width="81" height="82" rx="4" transform="translate(222 1402.5)" fill="#e95420" opacity="0.3"/>
<rect id="Rectangle_2210" data-name="Rectangle 2210" width="81" height="81" rx="4" transform="translate(261 1417.5)" fill="#e95420" opacity="0.3"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 457 B

View File

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="149.135" height="115.707" viewBox="0 0 149.135 115.707">
<g id="icon3" transform="translate(-222 -1040.146)">
<rect id="Rectangle_2208" data-name="Rectangle 2208" width="99.318" height="69.697" rx="4" transform="translate(222 1048.341)" fill="#e95420" opacity="0.3"/>
<line id="Line_419" data-name="Line 419" y1="108.03" x2="108.03" transform="translate(228.098 1040.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_420" data-name="Line 420" x1="94.091" y1="94.091" transform="translate(242.038 1061.409)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_421" data-name="Line 421" y1="33.106" x2="99.318" transform="translate(271.659 1108.455)" fill="none" stroke="#707070" stroke-width="1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 804 B

View File

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33.494" height="47.847" viewBox="0 0 33.494 47.847">
<g id="icon1" transform="translate(-719.366 -1391.153)">
<line id="Line_427" data-name="Line 427" y1="5" x2="18" transform="translate(719.5 1394.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_431" data-name="Line 431" x1="10.25" y2="21.129" transform="translate(732.25 1398.411)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_429" data-name="Line 429" x2="26" y2="27" transform="translate(726.5 1391.5)" fill="none" stroke="#707070" stroke-width="1"/>
<circle id="Ellipse_371" data-name="Ellipse 371" cx="11.5" cy="11.5" r="11.5" transform="translate(720 1416)" fill="#e95420" opacity="0.3"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 762 B

View File

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="85.658" height="66.707" viewBox="0 0 85.658 66.707">
<g id="icon3" transform="translate(-222 -1040.146)">
<rect id="Rectangle_2208" data-name="Rectangle 2208" width="57" height="40" rx="4" transform="translate(222 1045)" fill="#e95420" opacity="0.3"/>
<line id="Line_419" data-name="Line 419" y1="62" x2="62" transform="translate(225.5 1040.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_420" data-name="Line 420" x1="54" y1="54" transform="translate(233.5 1052.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_421" data-name="Line 421" y1="19" x2="57" transform="translate(250.5 1079.5)" fill="none" stroke="#707070" stroke-width="1"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 754 B

View File

@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1278.682" height="836.121" viewBox="0 0 1278.682 836.121">
<g id="how" transform="translate(-19.57 -923.403)">
<g id="Group_3100" data-name="Group 3100">
<path id="Path_17205" data-name="Path 17205" d="M183.656,0,149.191,30.795l-35.418,31.65L52.583,117.1,35.467,132.411,0,164.091" transform="translate(76.133 1081.775) rotate(20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
<path id="Path_17204" data-name="Path 17204" d="M195.719,0,158.99,13.6l-37.744,13.98L56.037,51.724,37.8,58.486,0,72.479" transform="matrix(0.891, -0.454, 0.454, 0.891, 24.655, 1254.85)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="2"/>
<path id="Path_17207" data-name="Path 17207" d="M280.595,0,227.939,23.668,173.826,47.993,80.338,90,54.188,101.766,0,126.114" transform="translate(24.428 1371.734) rotate(-87)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
</g>
<path id="Path_16422" data-name="Path 16422" d="M281.764,139.315a101.486,101.486,0,0,0-43.057-54.162,86.986,86.986,0,0,0-8.134-4.51A100.638,100.638,0,0,0,187.223,70.2H185.7a101.31,101.31,0,0,0-64.517,179.31,102.4,102.4,0,0,0,10.014,7.306,101.31,101.31,0,0,0,150.563-117.5Zm-96.089,90.254a57.9,57.9,0,1,1,57.9-57.9,57.9,57.9,0,0,1-57.9,57.9Z" transform="translate(1011.271 853.203)" fill="#e95420"/>
<path id="Path_17209" data-name="Path 17209" d="M231.718,121.779a75.736,75.736,0,0,0-32.132-40.42,64.915,64.915,0,0,0-6.07-3.366,75.1,75.1,0,0,0-32.35-7.793h-1.134a75.605,75.605,0,0,0-48.147,133.814,76.416,76.416,0,0,0,7.473,5.452,75.605,75.605,0,0,0,112.361-87.687ZM160.01,189.133a43.211,43.211,0,1,1,43.211-43.211,43.211,43.211,0,0,1-43.211,43.211Z" transform="translate(352.271 1538.203)" fill="#4687e6"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="59" height="47" viewBox="0 0 59 47">
<g id="icon4" transform="translate(-222 -1403)">
<rect id="Rectangle_2209" data-name="Rectangle 2209" width="40" height="40" rx="4" transform="translate(222 1403)" fill="#e95420" opacity="0.3"/>
<rect id="Rectangle_2210" data-name="Rectangle 2210" width="40" height="40" rx="4" transform="translate(241 1410)" fill="#e95420" opacity="0.3"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 449 B

View File

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="56.707" height="45" viewBox="0 0 56.707 45">
<g id="icon2" transform="translate(-716.146 -1048)">
<circle id="Ellipse_370" data-name="Ellipse 370" cx="22.5" cy="22.5" r="22.5" transform="translate(722 1048)" fill="#e95420" opacity="0.3"/>
<line id="Line_422" data-name="Line 422" x1="25" y2="25" transform="translate(716.5 1052.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_424" data-name="Line 424" x2="25" y2="25" transform="translate(747.5 1054.5)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_423" data-name="Line 423" x1="25" y2="25" transform="translate(716.5 1086.5) rotate(-90)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_425" data-name="Line 425" x1="25" y1="25" transform="translate(747.5 1090.5) rotate(-90)" fill="none" stroke="#707070" stroke-width="1"/>
<line id="Line_426" data-name="Line 426" x1="36" y2="36" transform="translate(726.5 1054.5)" fill="none" stroke="#707070" stroke-width="2"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,85 +1,16 @@
import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-properties';
export let properties: EnvProperties = {
environment: "beta",
enablePiwikTrack: false,
useCache: false,
metricsAPIURL: "https://beta.services.openaire.eu/usagestats/",
framesAPIURL: "https://beta.openaire.eu/stats3/",
claimsAPIURL: "https://beta.services.openaire.eu/claims/rest/claimsService/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "http://marilyn.athenarc.gr:8080/stats-api/",
useNewStatistisTool: false,
searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "https://beta.services.openaire.eu/search/v2/api/reports",
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/",
orcidURL: "https://orcid.org/",
doiURL: "https://dx.doi.org/",
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
sherpaURL: "http://www.sherpa.ac.uk/romeo/search.php?issn=",
zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/",
openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
helpdesk: "https://www.openaire.eu/support/helpdesk",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "https://demo.openaire.eu/utils-service",
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: " https://analytics.openaire.eu/piwik.php?idsite=6",
environment: 'beta',
useCache: true,
useLongCache: true,
metricsAPIURL: 'https://beta.services.openaire.eu/usagestats/',
loginUrl: "https://beta.services.openaire.eu/admin-user-management/openid_connect_login",
userInfoUrl: "https://beta.services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=",
logoutUrl: "https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
cookieDomain: ".openaire.eu",
feedbackmail: "openaire.test@gmail.com",
feedbackmailForMissingEntities: "feedback@openaire.eu",
cacheUrl: "https://demo.openaire.eu/cache/get?url=",
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity: "openaire",
communityAPI: "https://beta.services.openaire.eu/openaire/community/",
miningBackendURL: "https://beta.services.openaire.eu/interactive-mining",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink: "https://beta.admin.connect.openaire.eu/",
baseOpenaireLink: "https://beta.explore.openaire.eu",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
searchLinkToDatasets: "/search/find/datasets",
searchLinkToSoftware: "/search/find/software",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table",
searchLinkToJournals: "/search/journals",
searchLinkToJournalsTable: "/search/journals-table",
searchLinkToAdvancedPublications: "/search/advanced/publications",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDatasets: "/search/advanced/datasets",
searchLinkToAdvancedSoftware: "/search/advanced/software",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
showLastIndexInformationLink: false,
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
claimsInformationLink: "https://beta.openaire.eu/linking",
lastIndexUpdate: "2019-11-01",
indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/",
adminPortalURL: "https://beta.admin.connect.openaire.eu",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["rcd-helpdesk@openaire.eu"]
};

View File

@ -2,100 +2,15 @@ import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-propert
export let properties: EnvProperties = {
environment:"production",
enablePiwikTrack: false,
useCache: false,
useCache: true,
useLongCache: true,
metricsAPIURL: "https://services.openaire.eu/usagestats/",
framesAPIURL: "https://www.openaire.eu/stats3/",
claimsAPIURL: "https://services.openaire.eu/claims/rest/claimsService/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL:"https://www.openaire.eu/stats/",
statisticsFrameNewAPIURL: "http://marilyn.athenarc.gr:8080/stats-api/",
useNewStatistisTool:false,
searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "https://services.openaire.eu/search/v2/api/reports",
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/",
orcidURL: "https://orcid.org/",
doiURL: "https://dx.doi.org/",
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
sherpaURL: "http://www.sherpa.ac.uk/romeo/search.php?issn=",
zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/",
openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
helpdesk: "https://www.openaire.eu/support/helpdesk",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "https://explore.openaire.eu/utils-service",
vocabulariesAPI:"https://services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl:" https://analytics.openaire.eu/piwik.php?idsite=6",
loginUrl:"https://services.openaire.eu/admin-user-management/openid_connect_login",
userInfoUrl: " https://services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=",
logoutUrl:"https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
cookieDomain:".openaire.eu",
feedbackmail:"openaire.test@gmail.com",
feedbackmailForMissingEntities: "feedback@openaire.eu",
cacheUrl:"https://explore.openaire.eu/cache/get?url=",
adminToolsAPIURL:"https://services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity:"openaire",
communityAPI: "https://services.openaire.eu/openaire/community/",
miningBackendURL: "https://beta.services.openaire.eu/interactive-mining",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink: "https://admin.explore.openaire.eu/",
baseOpenaireLink: "https://explore.openaire.eu",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
searchLinkToDatasets: "/search/find/datasets",
searchLinkToSoftware: "/search/find/software",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table",
searchLinkToJournals: "/search/journals",
searchLinkToJournalsTable: "/search/journals-table",
searchLinkToAdvancedPublications: "/search/advanced/publications",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDatasets: "/search/advanced/datasets",
searchLinkToAdvancedSoftware: "/search/advanced/software",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows",
showLastIndexInformationLink: false,
widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
claimsInformationLink: "https://www.openaire.eu/linking",
lastIndexUpdate: "2019-07-24",
indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/",
adminPortalURL: "https://admin.connect.openaire.eu",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["rcd-helpdesk@openaire.eu"]
};

View File

@ -7,98 +7,15 @@ import {EnvProperties} from '../app/openaireLibrary/utils/properties/env-propert
export let properties: EnvProperties = {
environment: 'development',
enablePiwikTrack: false,
useCache: false,
metricsAPIURL: 'https://beta.services.openaire.eu/usagestats/',
framesAPIURL: 'https://beta.openaire.eu/stats3/',
claimsAPIURL: 'http://dl170.madgik.di.uoa.gr:8180/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/',
statisticsAPIURL: 'https://beta.services.openaire.eu/stats-api/',
statisticsFrameAPIURL: 'https://beta.openaire.eu/stats/',
statisticsFrameNewAPIURL: 'http://marilyn.athenarc.gr:8080/stats-api/',
useNewStatistisTool: false,
searchAPIURLLAst: 'https://beta.services.openaire.eu/search/v2/api/',
searchResourcesAPIURL: 'https://beta.services.openaire.eu/search/v2/api/resources',
openCitationsAPIURL: 'https://services.openaire.eu/opencitations/getCitations?id=',
csvAPIURL: 'http://rudie.di.uoa.gr:8080/dnet-functionality-services-2.0.0-SNAPSHOT/rest/v2/reports',
searchCrossrefAPIURL: 'https://api.crossref.org/works',
searchDataciteAPIURL: 'https://api.datacite.org/works',
searchOrcidURL: 'https://pub.orcid.org/',
orcidURL: 'https://orcid.org/',
doiURL: 'https://dx.doi.org/',
cordisURL: 'http://cordis.europa.eu/projects/',
openDoarURL: 'http://v2.sherpa.ac.uk/id/repository/',
r3DataURL: 'http://service.re3data.org/repository/',
sherpaURL: 'http://www.sherpa.ac.uk/romeo/search.php?issn=',
zenodo: 'https://zenodo.org/',
zenodoCommunities: 'https://zenodo.org/api/communities/',
openAccess: 'https://www.openaire.eu/support/faq#article-id-234',
openAccessRepo: 'https://www.openaire.eu/support/faq#article-id-310',
fp7Guidlines: 'https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme',
h2020Guidlines: 'https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020',
ercGuidlines: 'http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf',
helpdesk: 'https://www.openaire.eu/support/helpdesk',
helpdeskEmail: 'helpdesk@openaire.eu',
utilsService: 'http://mpagasas.di.uoa.gr:8000',
vocabulariesAPI: 'https://beta.services.openaire.eu/provision/mvc/vocabularies/',
piwikBaseUrl: ' https://analytics.openaire.eu/piwik.php?idsite=6',
useLongCache: true,
metricsAPIURL: 'https://services.openaire.eu/usagestats/',
loginUrl: 'http://dl170.madgik.di.uoa.gr:8180/dnet-login/openid_connect_login',
userInfoUrl: 'http://dl170.madgik.di.uoa.gr:8180/dnet-openaire-users-1.0.0-SNAPSHOT/api/users/getUserInfo?accessToken=',
logoutUrl: 'https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=',
cookieDomain: '.di.uoa.gr',
feedbackmail: 'openaire.test@gmail.com',
feedbackmailForMissingEntities: 'feedback@openaire.eu',
cacheUrl: 'http://scoobydoo.di.uoa.gr:3000/get?url=',
cacheUrl: "http://mpagasas.di.uoa.gr:3200/get?url=",
adminToolsAPIURL: 'http://duffy.di.uoa.gr:8080/uoa-admin-tools/',
adminToolsCommunity: 'openaire',
communityAPI: 'https://dev-openaire.d4science.org/openaire/community/',
miningBackendURL: 'https://beta.services.openaire.eu/interactive-mining',
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink: 'https://demo.openaire.eu',
baseOpenaireLink: 'https://beta.explore.openaire.eu',
searchLinkToPublication: '/search/publication?articleId=',
searchLinkToProject: '/search/project?projectId=',
searchLinkToDataProvider: '/search/dataprovider?datasourceId=',
searchLinkToDataset: '/search/dataset?datasetId=',
searchLinkToOrganization: '/search/organization?organizationId=',
searchLinkToPublications: '/search/find/publications',
searchLinkToDataProviders: '/search/find/dataproviders',
searchLinkToProjects: '/search/find/projects',
searchLinkToDatasets: '/search/find/datasets',
searchLinkToSoftware: '/search/find/software',
searchLinkToOrganizations: '/search/find/organizations',
searchLinkToCompatibleDataProviders: '/search/content-providers',
searchLinkToEntityRegistriesDataProviders: '/search/entity-registries',
searchLinkToEntityRegistriesDataProvidersTable: '/search/entity-registries-table',
searchLinkToJournals: '/search/journals',
searchLinkToJournalsTable: '/search/journals-table',
searchLinkToAdvancedPublications: '/search/advanced/publications',
searchLinkToAdvancedProjects: '/search/advanced/projects',
searchLinkToAdvancedDatasets: '/search/advanced/datasets',
searchLinkToAdvancedSoftware: '/search/advanced/software',
searchLinkToAdvancedDataProviders: '/search/advanced/dataproviders',
searchLinkToAdvancedOrganizations: '/search/advanced/organizations',
lastIndexInformationLink: 'https://www.openaire.eu/aggregation-and-content-provision-workflows',
showLastIndexInformationLink: false,
widgetLink: 'https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=',
claimsInformationLink: 'https://www.openaire.eu/linking-beta',
lastIndexUpdate: '2019-05-16',
indexInfoAPI: 'http://beta.services.openaire.eu/openaire/info/',
admins: ['kostis30fylloy@gmail.com'],
adminPortalURL: 'https://beta.admin.connect.openaire.eu'
reCaptchaSiteKey: '6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu',
admins: ['kostis30fylloy@gmail.com']
};

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/">
<title>OpenAIRE | Usage Statistics</title>
<title>OpenAIRE - UsageCounts</title>
<meta charset="UTF-8">
<link rel="apple-touch-icon" sizes="57x57" href="assets/common-assets/logo/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="assets/common-assets/logo/apple-icon-60x60.png">

View File

@ -3,18 +3,27 @@
@import "assets/common-assets/common/custom.css";
@import "assets/common-assets/library.css";
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
@import "assets/common-assets/common/theme-changes.css";
:root {
--portal-main-color: #e95420;
--portal-main-contrast: white;
--portal-dark-color: #a0462c;
}
.top-bar-background {
background-color: #F9FBFC;
}
main {
background-color: #F9FBFC;
color: #333333;
min-height: calc(100vh - 100px);
font-size: 16px;
font-family: Roboto, sans-serif;
line-height: 21px;
letter-spacing: 0.48px;
}
navbar > * {
@ -24,3 +33,124 @@ navbar > * {
main.full-height {
min-height: 100vh;
}
/* Order list */
ol.light-blue {
counter-reset: counter;
list-style: none;
}
ol.light-blue li {
margin: 0 0 20px 0;
counter-increment: counter;
position: relative;
}
ol.light-blue li::before {
content: counter(counter);
color: #4687E6;
font-size: 27px;
position: absolute;
--size: 22px;
left: calc(-1 * var(--size) - 10px);
line-height: var(--size);
width: var(--size);
height: var(--size);
top: 0;
text-align: center;
}
ol.openaire-list {
list-style: none;
counter-reset: counter;
padding-left: 0;
}
ol.openaire-list li {
counter-increment: counter;
}
ol.openaire-list li::before {
content: counter(counter) ". ";
color: #222080;
font-weight: bold;
}
/* Unordered list*/
ul.light-blue-circle {
list-style: none;
}
ul.light-blue-circle li {
margin: 0 0 20px 0;
position: relative;
}
ul.light-blue-circle.large li {
margin: 0 0 50px 0;
}
ul.light-blue-circle li:last-child {
margin: 0;
}
ul.light-blue-circle li:before {
content: "";
border: 10px #4687E6 solid !important;
border-radius: 50px;
line-height: 21px;
margin-left: -40px;
position: absolute;
}
ul.light-blue-triangle {
list-style: none;
}
ul.light-blue-triangle li {
margin: 0 0 20px 0;
position: relative;
}
ul.light-blue-triangle.large li {
margin: 0 0 50px 0;
}
ul.light-blue-triangle li:last-child {
margin: 0;
}
ul.light-blue-triangle li:before {
content: "";
border-top: 12px solid transparent;
border-bottom: 12px solid transparent;
border-left: 15px solid #4687E6;
line-height: 21px;
margin-left: -40px;
position: absolute;
}
ul.portal-circle {
list-style: none;
padding-left: 40px;
}
ul.portal-circle li {
margin: 0 0 20px 0;
position: relative;
}
ul.portal-circle li:before {
content: "";
border: 5px var(--portal-main-color) solid !important;
border-radius: 50px;
line-height: 21px;
margin-left: -20px;
position: absolute;
top: 4px;
}
contact .uk-text-danger {
color: #B50000 !important;
font-size: 12px;
}