[Usage Counts | Trunk]: Usage counts pages have been changed base on new Design
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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>
|
||||
{{
|
||||
'OpenAIRE’s 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 OpenAIRE’s Graph service de-duplication mechanism, the service aggregates/merges usage statistics that come from different repositories and relate to the same object.' +
|
||||
'OpenAIRE’s 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 Matomo’s Web Analytics HTTP API.
|
||||
</li>
|
||||
<li>Usage Activity is tracked and logged in real time.</li>
|
||||
<li>Ιnformation is transferred offline to OpenAIRE’s DBs for statistical analysis.</li>
|
||||
<li>Statistics are deployed for human (OpenAIRE’s 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 OpenAIRE’s DB for statistical analysis.</li>
|
||||
<li>Statistics are deployed via OpenAIRE’s 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>
|
||||
|
|
|
@ -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'});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
export const faqs = [
|
||||
/* {
|
||||
question: 'Test',
|
||||
answer: 'Test'
|
||||
}*/
|
||||
];
|
|
@ -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%);
|
||||
}
|
|
@ -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>
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 {
|
||||
|
||||
}
|
|
@ -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">
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,5 +26,4 @@ import {EnvironmentSpecificService} from "./openaireLibrary/utils/properties/env
|
|||
providers: [EnvironmentSpecificService],
|
||||
bootstrap: [ AppComponent ]
|
||||
})
|
||||
|
||||
export class AppModule { }
|
||||
|
|
|
@ -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 {}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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>
|
|
@ -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(['/']);
|
||||
}
|
||||
}
|
|
@ -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 { }
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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">
|
||||
OpenAIRE’s 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&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&format=interactive"></iframe>
|
||||
</div>
|
||||
</div>-->
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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%;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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'});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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'},
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
];
|
|
@ -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;
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 |
After Width: | Height: | Size: 887 KiB |
|
@ -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 |
After Width: | Height: | Size: 457 KiB |
|
@ -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 |
|
@ -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 |
|
@ -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 |
After Width: | Height: | Size: 232 KiB |
|
@ -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 |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 566 B After Width: | Height: | Size: 566 B |
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 593 B |
|
@ -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 |
|
@ -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 |
After Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 357 B |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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"]
|
||||
};
|
||||
|
|
|
@ -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"]
|
||||
};
|
||||
|
|
|
@ -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']
|
||||
};
|
||||
|
|
|
@ -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">
|
||||
|
|
130
src/styles.css
|
@ -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;
|
||||
}
|
||||
|
|