diff --git a/src/app/about/about.component.css b/src/app/about/about.component.css index cbac054..24b821a 100644 --- a/src/app/about/about.component.css +++ b/src/app/about/about.component.css @@ -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; -} \ No newline at end of file + 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); +} + diff --git a/src/app/about/about.component.html b/src/app/about/about.component.html index 562d4b1..10ccb4a 100644 --- a/src/app/about/about.component.html +++ b/src/app/about/about.component.html @@ -1,28 +1,111 @@ - -
-
-
-

Monthly Usage Events

-
-

- {{ - 'OpenAIRE’s Usage Statistics Service contributes towards impact evaluation of usage activity in Open Access Repositories.' - | titlecase }} -

-

- {{ - '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 }} -

-

- {{ - '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 }} -

+
+
+
+

About

+
+ 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. +
+
+ +
+

About

+
+ 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.
+
+
+

Architecture

+
+
+
+ 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. +
+
+
+
+ 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. +
+
+
+

Architecture & Workflows

+
+ +
+

Architecture functionalities

+
+
    +
  1. Constant tracking of views and downloads of open science repositories registered on OpenAIRE PROVIDE +
  2. +
  3. Creation of downloadable reports available only for content providers
  4. +
  5. Instant connection with the OpenAIRE Research Graph
  6. +
  7. Compatibility with COUNTER Code of Practice that provides standards based usage statistics and enables + comparability with statistics from other data sources +
  8. +
  9. Anonymisation of IP-addresses
  10. +
+
+
+
+
+
+
+
+ Push + Usage Statistics Tracking Workflow +
+
    +
  • An institutional repository is registered in OpenAIRE.
  • +
  • Server side tracking: Plugins (Dspace) or patches (Eprints) using Matomo’s Web Analytics HTTP API. +
  • +
  • Usage Activity is tracked and logged in real time.
  • +
  • Ιnformation is transferred offline to OpenAIRE’s DBs for statistical analysis.
  • +
  • Statistics are deployed for human (OpenAIRE’s Portal) and machine (Sushi-Lite API) consumption.
  • +
+
+
+
+ Collecting (Pull) Consolidated Usage Statistics Reports +
+
    +
  • Gathering of consolidated statistics reports from aggregation services, such as IRUS-UK, using + protocols such as SUSHI-Lite. +
  • +
  • Statistics are stored in OpenAIRE’s DB for statistical analysis.
  • +
  • Statistics are deployed via OpenAIRE’s Portal or Sushi-Lite API.
  • +
+
+
+
+
+
+
+

About - FAQs

+ +
diff --git a/src/app/about/about.component.ts b/src/app/about/about.component.ts index f03561d..a26d339 100644 --- a/src/app/about/about.component.ts +++ b/src/app/about/about.component.ts @@ -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'}); + } } diff --git a/src/app/about/faqs.ts b/src/app/about/faqs.ts new file mode 100644 index 0000000..b8bf5f8 --- /dev/null +++ b/src/app/about/faqs.ts @@ -0,0 +1,6 @@ +export const faqs = [ +/* { + question: 'Test', + answer: 'Test' + }*/ +]; diff --git a/src/app/analytics/analytics.component.css b/src/app/analytics/analytics.component.css new file mode 100644 index 0000000..d8ddbd6 --- /dev/null +++ b/src/app/analytics/analytics.component.css @@ -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%); +} diff --git a/src/app/analytics/analytics.component.html b/src/app/analytics/analytics.component.html new file mode 100644 index 0000000..6a5c777 --- /dev/null +++ b/src/app/analytics/analytics.component.html @@ -0,0 +1,111 @@ + +
+
+

Track Countries Usage Activity

+
+
+
+
+ + + + {{option}} + + +
+
+ +
+
+
{{(country) ? country : 'world wide'}}
+
Results
+
+ +
+
+
+
+ Repositories +
+

+ {{display.total_repos | number}} +

+ +
+
+
+
+
+ Repositories +
+

+ {{display.repositories | number}} +

+ +
+
+
+
+
+ Views +
+

+ {{display.total_views | number}} +

+ +
+
+
+
+
+ Views +
+

+ {{display.views | number}} +

+ +
+
+
+
+
+ Downloads +
+

+ {{display.total_downloads | number}} +

+ +
+
+
+
+
+ Downloads +
+

+ {{display.downloads | number}} +

+ +
+
+
+
+
+ No results found for that country +
+
+
+
+
diff --git a/src/app/analytics/analytics.component.ts b/src/app/analytics/analytics.component.ts new file mode 100644 index 0000000..a191240 --- /dev/null +++ b/src/app/analytics/analytics.component.ts @@ -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; + 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); + } + } +} diff --git a/src/app/analytics/analytics.module.ts b/src/app/analytics/analytics.module.ts new file mode 100644 index 0000000..ddb4c4d --- /dev/null +++ b/src/app/analytics/analytics.module.ts @@ -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 { + +} diff --git a/src/app/app.component.css b/src/app/app.component.css deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/app.component.html b/src/app/app.component.html index 0feca51..7367eb0 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,4 +1,4 @@ -
diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 4bb4d24..6847816 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -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); } } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index ef5e2c5..3096a72 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -26,5 +26,4 @@ import {EnvironmentSpecificService} from "./openaireLibrary/utils/properties/env providers: [EnvironmentSpecificService], bootstrap: [ AppComponent ] }) - export class AppModule { } diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 5525b5d..6d8b55f 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -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 {} diff --git a/src/app/contact/contact.component.css b/src/app/contact/contact.component.css new file mode 100644 index 0000000..f6cdd13 --- /dev/null +++ b/src/app/contact/contact.component.css @@ -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; +} diff --git a/src/app/contact/contact.component.html b/src/app/contact/contact.component.html new file mode 100644 index 0000000..d38e827 --- /dev/null +++ b/src/app/contact/contact.component.html @@ -0,0 +1,43 @@ +
+
+

Contact Us

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+ Our team will respond to your submission soon.
+ Press OK to redirect to OpenAIRE UsageCounts home page. +
+
diff --git a/src/app/contact/contact.component.ts b/src/app/contact/contact.component.ts new file mode 100644 index 0000000..54492f8 --- /dev/null +++ b/src/app/contact/contact.component.ts @@ -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(['/']); + } +} diff --git a/src/app/contact/contact.module.ts b/src/app/contact/contact.module.ts new file mode 100644 index 0000000..ca6aa21 --- /dev/null +++ b/src/app/contact/contact.module.ts @@ -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 { } diff --git a/src/app/entities/usage-stat.ts b/src/app/entities/usage-stat.ts index 4f22ef3..ec94c42 100644 --- a/src/app/entities/usage-stat.ts +++ b/src/app/entities/usage-stat.ts @@ -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; } diff --git a/src/app/home/home.component.css b/src/app/home/home.component.css index 818f750..fa00cca 100644 --- a/src/app/home/home.component.css +++ b/src/app/home/home.component.css @@ -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 { diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html index 7a2a303..1530bd0 100644 --- a/src/app/home/home.component.html +++ b/src/app/home/home.component.html @@ -1,106 +1,115 @@ -
-
-
-
-

OpenAIRE Usage Statistics Service

-
- 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. -
- Learn More +
+
+
+

UsageCounts Service by OpenAIRE

+
+ 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.
-
+ Learn More +
+
+
-
-

Track Countries Usage Activity

-
-
-
- - - - {{option}} - - - -
-
-
-
{{(country) ? country : 'world wide'}}
-
Results
+
+
+
+

Why OpenAIRE UsageCounts?

-
-
-
-
- Repositories -
-

- {{display.total_repositories | number}} -

- -
-
-
-
-
- Views -
-

- {{display.total_views | number}} -

- -
-
-
-
-
- Downloads -
-

- {{display.total_downloads | number}} -

- -
-
+
+ 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.
-
-
- No results found for that country -
+
+
+
+

Providers

+
    +
  • Accurate and objective performance measures monitoring of repository content
  • +
  • Evidence based analytical metrics of views, downloads of research, aggregated from all over the world
  • +
  • Activity and trends of open science topics
  • +
+
+
+

Consumers

+
    +
  • Overview of research outcomes per country or domain
  • +
  • Trustable, accurate statistics of open science research
  • +
  • Evaluate the result of invested funds, policies, measures and view impact
  • +
-
-

Monthly Usage Events

-
- +
+
+
+
+

Who is it for?

+
+ 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. +
+
+
+
+
+
+
Repository managers, publishers
+
+ 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. +
+ +
+
+
+
+
Research performing & funding organizations, research infrastructures, policy makers
+
+ View research uptake, identify science trends based on user activity, examine the engagement and evolution or research popularity. +
+ +
+
- + +
+
+
+

Features

+
+
+
    +
  • Provides standards for usage data exchange (OpenAIRE Usage Statistics Guidelines)
  • +
  • Complies to COUNTER Code of Practice for reliable and comparable reports
  • +
  • Follows GDPR for trusted
  • +
  • Offers global coverage with partners in
  • +
  • Supports analysis via advanced visualizations
  • +
  • Exports different types of reports via standard APIs (Sushi-Lite)
  • +
+
+
+
+
+ @@ -110,9 +119,28 @@ + + +
- - - +
+ +
+
+ +
+
+ +
+
+ +
+ diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts index ae73261..0a0e153 100644 --- a/src/app/home/home.component.ts +++ b/src/app/home/home.component.ts @@ -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; - 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)); } } diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts index b45697b..62a5e24 100644 --- a/src/app/home/home.module.ts +++ b/src/app/home/home.module.ts @@ -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] diff --git a/src/app/resources/resources.component.css b/src/app/resources/resources.component.css index 4ae86e1..474c934 100644 --- a/src/app/resources/resources.component.css +++ b/src/app/resources/resources.component.css @@ -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; } -} \ No newline at end of file +} + +.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%; +} diff --git a/src/app/resources/resources.component.html b/src/app/resources/resources.component.html index d0c5caa..672f21f 100644 --- a/src/app/resources/resources.component.html +++ b/src/app/resources/resources.component.html @@ -1,120 +1,115 @@ -
-
-
-

How Can Be Used

-
+
+
+
+

OpenAIRE Provide

+

- {{ - 'The service has to be enabled for the repository. This step results in the generation of two unique identifiers:' - | titlecase }} + The resources of the OpenAIRE UsageCounts Service are + available through the OpenAIRE PROVIDE product, which is serving the content providers.

-
    -
  • a Matomo-ID that associates the repository with its usage events in Matomo platform;
  • -
  • an authentication-ID that allows to track usage activity on the Matomo platform.
  • -
-

After the generation of the identifiers the repository manager has to perform the following steps:

-

1. Download the tracking code for the repository platform. The code is maintained on Github:

- -
- 2. Follow the instructions in the code README files and configure the tracker; -
-
- 3. Deploy the tracking code in the repository. +
+ “OpenAIRE PROVIDE is a product that enables data providers to register and observe their data activity on + OpenAIRE, by accessing the OpenAIRE Provide Dashboard”.

- - 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 - - OpenAIRE Content Provider Dashboard - . + The OpenAIRE Provide supports the following functionalities for the + UsageCounts Service:

+
    +
  1. A registration process to the service for repository managers.
  2. +
  3. The required resources and instructions to deploy the service.
  4. +
  5. Visualization and exporting tools for publishing and downloading usage statistics reports.
  6. +
+

+ Important: 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. +

+ +
- -
-
-
Follow USAGE STATISTICS guidelines
-
- -
- -

Software

- -
-
- -

Services API

- -
-
- -

FAQ

- +
+
+ +

APIs and Reports

+
+
+

+ There are a variety of reports generated via OpenAIRE UsageCounts Service and are available via a SUSHI-Lite + Endpoint (anchor). The reports comply with + COUNTER + CoP Release 4. +

+
    +
  • AR-1 - Article Report 1. 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. +
  • +
  • IR-1 - Item Report 1. 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. +
  • +
  • JR-1 - Journal Report 1. 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. +
  • +
  • RR-1 - Repository Report 1. 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. +
  • +
  • BR-1 - Book Report 1. 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. +
  • +
  • BR-2 - Book Report 2. 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. +
  • +
+
+ To download a report please visit - + http://services.openaire.eu/usagestats/sushilite/ +
+
+
+
+
+ +
+

OpenAIRE UsageCounts Guidelines

+
-
diff --git a/src/app/resources/resources.component.ts b/src/app/resources/resources.component.ts index d873ea2..7934f2d 100644 --- a/src/app/resources/resources.component.ts +++ b/src/app/resources/resources.component.ts @@ -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'}); + } } diff --git a/src/app/services/countries.ts b/src/app/services/countries.ts index bb533d5..c6ff590 100644 --- a/src/app/services/countries.ts +++ b/src/app/services/countries.ts @@ -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'}, diff --git a/src/app/services/usage-stats-dump.ts b/src/app/services/usage-stats-dump.ts deleted file mode 100644 index f08e6e0..0000000 --- a/src/app/services/usage-stats-dump.ts +++ /dev/null @@ -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" - } -]; diff --git a/src/app/services/usage-stats.service.ts b/src/app/services/usage-stats.service.ts index f6812e8..91f464b 100644 --- a/src/app/services/usage-stats.service.ts +++ b/src/app/services/usage-stats.service.ts @@ -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; + constructor(private http: HttpClient) {} - constructor(private http: HttpClient) { - this.usageStats = new BehaviorSubject(usageStats); + + getAllMetrics(): Observable { + let url = properties.metricsAPIURL + 'allmetrics'; + return this.http.get((properties.useLongCache?(properties.cacheUrl + encodeURIComponent(url)):url)); } - getUsageStats(): Observable { - return this.usageStats.asObservable(); + getCountryMetrics(country: string): Observable { + let url = properties.metricsAPIURL + 'countryusagestats/' + country; + return this.http.get((properties.useLongCache?(properties.cacheUrl + encodeURIComponent(url)):url)).pipe(map(stat => { + if(stat.total_repos == "0" && !stat.views && !stat.downloads) { + return null; + } else { + return stat; + } + })); } } diff --git a/src/assets/usage-statistics-assets/about/1.svg b/src/assets/usage-statistics-assets/about/1.svg new file mode 100644 index 0000000..d4de9f3 --- /dev/null +++ b/src/assets/usage-statistics-assets/about/1.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/usage-statistics-assets/about/2.1.png b/src/assets/usage-statistics-assets/about/2.1.png new file mode 100644 index 0000000..033015c Binary files /dev/null and b/src/assets/usage-statistics-assets/about/2.1.png differ diff --git a/src/assets/usage-statistics-assets/about/2.2.svg b/src/assets/usage-statistics-assets/about/2.2.svg new file mode 100644 index 0000000..1071bd5 --- /dev/null +++ b/src/assets/usage-statistics-assets/about/2.2.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/about/3.png b/src/assets/usage-statistics-assets/about/3.png new file mode 100644 index 0000000..4a6bf4d Binary files /dev/null and b/src/assets/usage-statistics-assets/about/3.png differ diff --git a/src/assets/usage-statistics-assets/about/4.svg b/src/assets/usage-statistics-assets/about/4.svg new file mode 100644 index 0000000..8a75693 --- /dev/null +++ b/src/assets/usage-statistics-assets/about/4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/usage-statistics-assets/about/5.svg b/src/assets/usage-statistics-assets/about/5.svg new file mode 100644 index 0000000..651eaab --- /dev/null +++ b/src/assets/usage-statistics-assets/about/5.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/usage-statistics-assets/about/about.svg b/src/assets/usage-statistics-assets/about/about.svg deleted file mode 100644 index a5eba63..0000000 --- a/src/assets/usage-statistics-assets/about/about.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/assets/usage-statistics-assets/analytics/1.svg b/src/assets/usage-statistics-assets/analytics/1.svg new file mode 100644 index 0000000..4dc09af --- /dev/null +++ b/src/assets/usage-statistics-assets/analytics/1.svg @@ -0,0 +1,1375 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/usage-statistics-assets/analytics/2.svg b/src/assets/usage-statistics-assets/analytics/2.svg new file mode 100644 index 0000000..7a3b611 --- /dev/null +++ b/src/assets/usage-statistics-assets/analytics/2.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/assets/usage-statistics-assets/home/5.svg b/src/assets/usage-statistics-assets/analytics/3.svg similarity index 100% rename from src/assets/usage-statistics-assets/home/5.svg rename to src/assets/usage-statistics-assets/analytics/3.svg diff --git a/src/assets/usage-statistics-assets/home/6.svg b/src/assets/usage-statistics-assets/analytics/4.svg similarity index 100% rename from src/assets/usage-statistics-assets/home/6.svg rename to src/assets/usage-statistics-assets/analytics/4.svg diff --git a/src/assets/usage-statistics-assets/home/search.svg b/src/assets/usage-statistics-assets/analytics/search.svg similarity index 100% rename from src/assets/usage-statistics-assets/home/search.svg rename to src/assets/usage-statistics-assets/analytics/search.svg diff --git a/src/assets/usage-statistics-assets/contact/1.svg b/src/assets/usage-statistics-assets/contact/1.svg new file mode 100644 index 0000000..3ab7779 --- /dev/null +++ b/src/assets/usage-statistics-assets/contact/1.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/contact/2.svg b/src/assets/usage-statistics-assets/contact/2.svg new file mode 100644 index 0000000..6d7acd1 --- /dev/null +++ b/src/assets/usage-statistics-assets/contact/2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/usage-statistics-assets/home/1-static.svg b/src/assets/usage-statistics-assets/home/1-static.svg new file mode 100644 index 0000000..6cb02a2 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/1-static.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/usage-statistics-assets/home/1.svg b/src/assets/usage-statistics-assets/home/1.svg index 6cb02a2..17af146 100644 --- a/src/assets/usage-statistics-assets/home/1.svg +++ b/src/assets/usage-statistics-assets/home/1.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/usage-statistics-assets/home/2.svg b/src/assets/usage-statistics-assets/home/2.svg index 4dc09af..1503ab2 100644 --- a/src/assets/usage-statistics-assets/home/2.svg +++ b/src/assets/usage-statistics-assets/home/2.svg @@ -1,1375 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/assets/usage-statistics-assets/home/3.1.svg b/src/assets/usage-statistics-assets/home/3.1.svg new file mode 100644 index 0000000..f5260e5 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.1.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/usage-statistics-assets/home/3.2.svg b/src/assets/usage-statistics-assets/home/3.2.svg new file mode 100644 index 0000000..f611604 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.2.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/home/3.3.svg b/src/assets/usage-statistics-assets/home/3.3.svg new file mode 100644 index 0000000..5872e21 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.3.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/home/3.4.svg b/src/assets/usage-statistics-assets/home/3.4.svg new file mode 100644 index 0000000..49da91d --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.4.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/home/3.5.svg b/src/assets/usage-statistics-assets/home/3.5.svg new file mode 100644 index 0000000..9438ed7 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.5.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/usage-statistics-assets/home/3.6.svg b/src/assets/usage-statistics-assets/home/3.6.svg new file mode 100644 index 0000000..a20ea11 --- /dev/null +++ b/src/assets/usage-statistics-assets/home/3.6.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/usage-statistics-assets/home/3.svg b/src/assets/usage-statistics-assets/home/3.svg deleted file mode 100644 index e4d206a..0000000 --- a/src/assets/usage-statistics-assets/home/3.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/assets/usage-statistics-assets/home/4.svg b/src/assets/usage-statistics-assets/home/4.svg index 7a3b611..5477883 100644 --- a/src/assets/usage-statistics-assets/home/4.svg +++ b/src/assets/usage-statistics-assets/home/4.svg @@ -1,16 +1,8 @@ - - - - - - - - - - - - - - + + + + + + diff --git a/src/assets/usage-statistics-assets/resources/1.svg b/src/assets/usage-statistics-assets/resources/1.svg new file mode 100644 index 0000000..5085d69 --- /dev/null +++ b/src/assets/usage-statistics-assets/resources/1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/usage-statistics-assets/resources/2.svg b/src/assets/usage-statistics-assets/resources/2.svg new file mode 100644 index 0000000..91900f2 --- /dev/null +++ b/src/assets/usage-statistics-assets/resources/2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/usage-statistics-assets/resources/3.svg b/src/assets/usage-statistics-assets/resources/3.svg new file mode 100644 index 0000000..f97774d --- /dev/null +++ b/src/assets/usage-statistics-assets/resources/3.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/usage-statistics-assets/resources/faq.svg b/src/assets/usage-statistics-assets/resources/faq.svg deleted file mode 100644 index ad06267..0000000 --- a/src/assets/usage-statistics-assets/resources/faq.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/assets/usage-statistics-assets/resources/guidelines.svg b/src/assets/usage-statistics-assets/resources/guidelines.svg deleted file mode 100644 index d7fbf44..0000000 --- a/src/assets/usage-statistics-assets/resources/guidelines.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/assets/usage-statistics-assets/resources/how.svg b/src/assets/usage-statistics-assets/resources/how.svg deleted file mode 100644 index d32fb56..0000000 --- a/src/assets/usage-statistics-assets/resources/how.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/usage-statistics-assets/resources/services.svg b/src/assets/usage-statistics-assets/resources/services.svg deleted file mode 100644 index 1359262..0000000 --- a/src/assets/usage-statistics-assets/resources/services.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/assets/usage-statistics-assets/resources/software.svg b/src/assets/usage-statistics-assets/resources/software.svg deleted file mode 100644 index ae4649a..0000000 --- a/src/assets/usage-statistics-assets/resources/software.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/environments/environment.beta.ts b/src/environments/environment.beta.ts index 4dfc853..39b052e 100644 --- a/src/environments/environment.beta.ts +++ b/src/environments/environment.beta.ts @@ -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"] }; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 4bc64f5..a3925c6 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -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"] }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 0a79897..f608ca7 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -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'] }; diff --git a/src/index.html b/src/index.html index d9348b2..1df0bc7 100644 --- a/src/index.html +++ b/src/index.html @@ -5,7 +5,7 @@ - OpenAIRE | Usage Statistics + OpenAIRE - UsageCounts diff --git a/src/styles.css b/src/styles.css index 9d043c7..5821c5c 100644 --- a/src/styles.css +++ b/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; +}