Compare commits

...

73 Commits

Author SHA1 Message Date
Konstantinos Triantafyllou 78d2bee5cb Merge remote-tracking branch 'origin/develop' 2023-11-30 10:27:00 +02:00
Konstantinos Triantafyllou 6712e54462 [develop]: Init version in package.json 2023-11-30 10:23:30 +02:00
Konstantinos Triantafyllou 9c7e018a7e [master]: Update libraries 2023-11-30 10:22:21 +02:00
Konstantinos Triantafyllou d1ab314ef2 [develop]: Update libraries 2023-11-30 10:16:49 +02:00
Konstantina Galouni aa8dd09ae2 [develop | DONE | FIXED] home.component.ts: Updated method called in refine query to get funders of projects (getNumbers) from "getRefineFieldsResultsByEntityName()" to "getAllRefineFieldResultsByFieldName()" to be able to get more than 100 funders each time. 2023-11-24 13:19:18 +02:00
Konstantinos Triantafyllou 8f31ec3612 Merge develop to master 2023-11-08 13:57:48 +02:00
Konstantinos Triantafyllou 37046a25fc [develop | TEMP]: Remove uk-parallax from home page until is fixed from browsers. 2023-11-08 13:50:39 +02:00
Konstantinos Triantafyllou 7e9c42eff4 [develop | DONE]: Removed deleted properties. Update libraries. Revert version of UIKit to version 3.16.24 2023-11-08 13:49:54 +02:00
Konstantinos Triantafyllou 5a36ee219e [develop | DONE | CHANGED]: Revert version of UIkit to version 3.16.14 because of parallax. 2023-10-30 16:57:54 +02:00
Konstantinos Triantafyllou 37aff3ed4d [develp]: Update libraries 2023-10-30 12:17:16 +02:00
Konstantinos Triantafyllou c992788ff1 Merge pull request 'Update to Angular-16' (#10) from angular-16 into develop
Reviewed-on: #10
2023-10-30 11:05:20 +01:00
Konstantinos Triantafyllou f31e1ce23c Update libraries before beta deplooy 2023-10-16 20:21:12 +03:00
Konstantinos Triantafyllou 4827140fd4 Update library 2023-09-15 15:20:48 +03:00
Konstantinos Triantafyllou a8faaf98ad Update readme with angular version 2023-09-15 14:43:17 +03:00
Konstantinos Triantafyllou cf47c65341 Change tablet section with new mocks 2023-09-15 14:40:06 +03:00
Konstantinos Triantafyllou db14d732e4 Update types/node to version 16 2023-09-15 13:18:04 +03:00
Konstantinos Triantafyllou b62adbb0df Add hasStickyHeader in Mobile for home page and support. Fix missing asset in get-started. Close canvas on click of get-started button. 2023-08-30 12:29:02 +03:00
Konstantinos Triantafyllou 6784297127 Update uikit to version 3.16.24 2023-08-23 15:37:03 +03:00
Konstantinos Triantafyllou 94d5b1ed1c Update material to angular 16. 2023-08-04 14:46:43 +03:00
Konstantinos Triantafyllou cd4f8a10fe Update angular to version 16 2023-08-04 14:45:56 +03:00
Konstantinos Triantafyllou cead11a42f Update Zone to 0.13.1 2023-08-04 14:40:55 +03:00
Konstantinos Triantafyllou 0e0fe849db Update material to angular 15. 2023-08-04 14:40:22 +03:00
Konstantinos Triantafyllou ca488b5459 Migrate angular core and cli to version 15 and update dependencies to be compatible with the newer version. 2023-08-04 14:38:45 +03:00
Konstantinos Triantafyllou 21f170b13c Update typescript to version 4.9.5 2023-08-04 14:37:25 +03:00
Konstantinos Triantafyllou 8fe46184d3 Update libraries 2023-08-04 14:36:10 +03:00
Konstantinos Triantafyllou 85d5f7ba0f Update library 2023-07-13 14:45:21 +03:00
Konstantinos Triantafyllou d25fcc6c04 Change piwik base on the new dynamic piwik. 2023-07-13 12:22:07 +03:00
Konstantinos Triantafyllou ec66503544 Merge remote-tracking branch 'origin/develop' 2023-07-12 13:08:47 +03:00
Konstantinos Triantafyllou a516a4bf6e Update libraries before merge from develop 2023-07-12 13:08:08 +03:00
Konstantinos Triantafyllou af937b8ee5 Add redirects from old routes to new ones 2023-07-12 11:59:57 +03:00
Konstantinos Triantafyllou ce77b73300 Update libraries 2023-07-12 09:41:24 +03:00
Konstantina Galouni 19f6419027 [Monitor | develop]: [Bug fix] home.component.ts: In ngOnDestroy, set quickContactService.setDisplay(true) - true is the default value. 2023-07-06 16:06:01 +03:00
Konstantina Galouni b6de9c6d70 [Monitor & Library | develop]: [Bug fix] Refactor code for showing help button or not.
1. quick-contact.service.ts: Initialize display to true (assume it is not intersecting, otherwise in pages without this section, it can't be initialized correctly).
2. home.component.ts: Removed field "showQuickContact" | In constructor set quickContactService.setDisplay(false) | Refactor intersectionObserver.
3. app-routing.module.ts: In "contact-us" route, set data: {hasQuickContact: false}.
4. app.component.ts: Updated checks for <quick-contact> | Added public showQuickContact: boolean; to be initialized by layoutService.hasQuickContact.
2023-07-06 15:28:53 +03:00
Konstantinos Triantafyllou cab7d72843 Rename FAQs page to Support and add contact-us button and How it works to about and Change the menu items in Navbar. 2023-07-06 13:45:12 +03:00
Konstantinos Triantafyllou 896e14fd7e Update before deploy 2023-06-28 11:49:22 +03:00
Konstantinos Triantafyllou d7af18fc7e Resolved Monitor release 16th May 2023 #8 2023-05-16 17:31:54 +03:00
Konstantinos Triantafyllou a9d452ea89 Update before deploy 2023-05-16 17:21:22 +03:00
Konstantinos Triantafyllou da8bbd3701 Rename OpenAIRE Research graph in to OpenAIRE Graph 2023-05-15 17:24:09 +03:00
Konstantinos Triantafyllou ef46a72d3f Merge remote-tracking branch 'origin/develop' 2023-05-09 13:12:49 +03:00
Konstantinos Triantafyllou d8f94cfd18 Update library 2023-05-09 13:11:42 +03:00
Konstantinos Triantafyllou 32ea650c6f Fix IntersectionObserver error for server 2023-05-09 12:26:15 +03:00
Konstantina Galouni 23131ac2fd [Monitor & Library | develop]: [Bug fix] Show quick contact button when not in contacts us and not intersecting either with contact us section (home page), nor with bottom.
1. layout.service.ts: Initialize hasQuickContactSubject to false (Don't ever show it unless it should be there).
2. quick-contact.service.ts: Initialize display to false (Assume it is intersecting, until it is proved it is not).
3. app.component.ts: Updated checks for <quick-contact> and added public bottomNotIntersecting: boolean; and public displayQuickContact: boolean;
2023-05-08 17:50:39 +03:00
Konstantinos Triantafyllou 2db3855cbb Update Uikit to version 3.13.10. Update library 2023-05-02 18:10:40 +03:00
Konstantinos Triantafyllou 3fba042c95 Update UIKit to version 3.13.0 2023-04-25 17:10:09 +03:00
Konstantinos Triantafyllou 20eadf6ab6 Sync library 2023-04-24 13:48:04 +03:00
Konstantinos Triantafyllou 24762681f3 Fix quick contact curators images. 2023-04-24 13:46:46 +03:00
Konstantinos Triantafyllou 1c7a2e6bd4 Update library 2023-04-19 17:32:25 +03:00
Konstantinos Triantafyllou 8443c25ecd Update libraries before deploy 2023-04-19 16:39:53 +03:00
Konstantinos Triantafyllou 1bd9bbb923 Merge pull request 'Update before Production April Release' (#5) from develop into master
Reviewed-on: #5
2023-04-19 15:38:54 +02:00
Konstantinos Triantafyllou 1e712a365d Fix image position for curators 2023-04-06 15:30:27 +03:00
Konstantinos Triantafyllou 59fa0150b8 Add curators' photos in contact-us section in home page 2023-04-06 15:22:50 +03:00
Konstantinos Triantafyllou 33fa38c3d4 Update before beta deploy 2023-04-05 12:59:07 +03:00
Konstantinos Triantafyllou 1b9cffc198 Merge pull request 'Latest Changes' (#3) from develop into master
Reviewed-on: #3
2023-03-28 14:57:18 +02:00
Konstantinos Triantafyllou af3dfcc6d1 Update libraries 2023-03-28 15:55:42 +03:00
Konstantinos Triantafyllou 6312a0db19 Update libraries before beta deploy 2023-03-27 18:01:23 +03:00
Konstantinos Triantafyllou 5c924393ba 1. Update UIkit to 3.12.2. 2. Add home in mobile menu. 3. Fix overflow: clip if not supported in how-it-works. 4. Add padding in stakeholder logo cards 2023-03-22 17:16:14 +02:00
Konstantinos Triantafyllou 745a4bab10 Update submodules 2023-03-22 00:53:12 +02:00
Konstantinos Triantafyllou cce347981f Merge pull request 'Complete mobile redesign' (#1) from develop into master
Reviewed-on: #1
2023-03-21 19:20:49 +01:00
Konstantinos Triantafyllou b83105355a Update submodules 2023-03-21 19:47:49 +02:00
Konstantinos Triantafyllou fc99f97397 Fix some paddings in slider tabs in home and how it works 2023-03-21 19:42:03 +02:00
Alex Martzios 01b153e1f7 fix text issue in 'About' page, update submodules 2023-03-17 11:49:09 +02:00
Konstantinos Triantafyllou 1c634dc0d7 Change table image in scrolling section of home page 2023-01-16 10:30:32 +02:00
Konstantinos Triantafyllou b73363206a Update libraries before beta deploy 2023-01-04 11:57:55 +02:00
Alex Martzios c10d316b35 fix an error in homepage, update submodules 2022-12-12 11:27:40 +02:00
Konstantinos Triantafyllou 9f6409ecf3 Home: Fix browse Dashboards sections in mobile 2022-12-09 18:19:14 +02:00
Alex Martzios d3a390802a minor tweak for homepage's hero section width on tablet view 2022-12-08 11:56:58 +02:00
Alex Martzios 017a38c667 reduce faq's page title, tweaks for homepage's scrolling section on mobile view, update submodules 2022-12-08 11:52:26 +02:00
Konstantinos Triantafyllou e5b7d4b5ba Merge branch 'mobile' of code-repo.d4science.org:MaDgIK/monitor into mobile 2022-12-07 16:58:22 +02:00
Konstantinos Triantafyllou ffabb68501 Search stakeholders apply mobile changes 2022-12-07 16:58:11 +02:00
Alex Martzios 2bcbfa2ac2 changes for scrolling-text section in homepage 2022-12-06 15:19:02 +02:00
Alex Martzios 2ea6834f50 progress on mobile pages, update submodules 2022-12-06 09:38:08 +02:00
Konstantinos Triantafyllou 44999ab06d Change get started button on mobile 2022-11-30 17:53:33 +02:00
Alex Martzios 289694288b start on mobile pages 2022-11-28 10:59:14 +02:00
49 changed files with 1850 additions and 949 deletions

View File

@ -1,6 +1,6 @@
# Monitor
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.3.10 and has been updated to 11.2.14.
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.3.10 and has been updated to 16.2.4.
## Install packages

View File

@ -210,13 +210,16 @@
"main": "server.ts",
"tsConfig": "src/tsconfig.server.json",
"sourceMap": true,
"optimization": false
"optimization": false,
"buildOptimizer": false
},
"configurations": {
"development": {
"outputHashing": "media",
"sourceMap": false,
"optimization": true
"optimization": true,
"vendorChunk": true,
"buildOptimizer": true
},
"beta": {
"outputHashing": "media",
@ -227,7 +230,8 @@
}
],
"sourceMap": false,
"optimization": true
"optimization": true,
"buildOptimizer": true
},
"production": {
"outputHashing": "media",
@ -238,7 +242,8 @@
}
],
"sourceMap": false,
"optimization": true
"optimization": true,
"buildOptimizer": true
}
},
"defaultConfiguration": ""

View File

@ -1,6 +1,6 @@
{
"name": "monitor",
"version": "0.0.0",
"version": "1.0.0",
"scripts": {
"ng": "ng",
"start": " ng serve --port 4500 --disable-host-check --host 0.0.0.0",
@ -21,41 +21,41 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^14.2.3",
"@angular/cdk": "^14.2.2",
"@angular/common": "^14.2.3",
"@angular/compiler": "^14.2.3",
"@angular/core": "^14.2.3",
"@angular/forms": "^14.2.3",
"@angular/localize": "^14.2.3",
"@angular/material": "^14.2.2",
"@angular/platform-browser": "^14.2.3",
"@angular/platform-browser-dynamic": "^14.2.3",
"@angular/platform-server": "^14.2.3",
"@angular/router": "^14.2.3",
"@nguniversal/express-engine": "^14.2.0",
"@angular/animations": "^16.1.8",
"@angular/cdk": "^16.1.7",
"@angular/common": "^16.1.8",
"@angular/compiler": "^16.1.8",
"@angular/core": "^16.1.8",
"@angular/forms": "^16.1.8",
"@angular/localize": "^16.1.8",
"@angular/material": "^16.1.7",
"@angular/platform-browser": "^16.1.8",
"@angular/platform-browser-dynamic": "^16.1.8",
"@angular/platform-server": "^16.1.8",
"@angular/router": "^16.1.8",
"@nguniversal/express-engine": "^16.1.1",
"clipboard": "^1.5.16",
"core-js": "^2.5.4",
"express": "^4.15.2",
"jquery": "^3.4.1",
"ng-recaptcha": "^10.0.0",
"ng-recaptcha": "^12.0.2",
"rxjs": "^6.5.1",
"ts-md5": "^1.2.0",
"tslib": "^2.0.0",
"uikit": "3.12.0",
"zone.js": "~0.11.4"
"uikit": "3.16.24",
"zone.js": "~0.13.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^14.2.3",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.3",
"@angular/language-service": "^14.2.3",
"@nguniversal/builders": "^14.2.0",
"@angular-devkit/build-angular": "^16.1.7",
"@angular/cli": "^16.1.7",
"@angular/compiler-cli": "^16.1.8",
"@angular/language-service": "^16.1.8",
"@nguniversal/builders": "^16.1.1",
"@types/compression": "^1.7.0",
"@types/express": "^4.17.0",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"@types/node": "^16.18.50",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.8.0",
"jasmine-spec-reporter": "~5.0.0",
@ -66,6 +66,6 @@
"karma-jasmine-html-reporter": "^1.6.0",
"protractor": "~7.0.0",
"ts-node": "~7.0.0",
"typescript": "~4.6.4"
"typescript": "~4.9.5"
}
}

View File

@ -0,0 +1,667 @@
import {ChangeDetectorRef, Component} from "@angular/core";
import {Router} from '@angular/router';
import {Meta, Title} from '@angular/platform-browser';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
import {Subscriber} from "rxjs";
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../environments/environment";
import {StakeholderEntities} from "../openaireLibrary/monitor/entities/stakeholder";
@Component({
selector: 'about',
template: `
<div class="uk-visible@m">
<div class="uk-position-relative">
<div class="uk-background-muted">
<div class="uk-container uk-container-large uk-section uk-section-small">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-flex uk-flex-column uk-flex-center uk-margin-bottom" uk-scrollspy-class>
<h1 class="uk-margin-medium-top" uk-scrollspy-class>How it works<span class="uk-text-primary">.</span></h1>
<div class="uk-text-large uk-width-1-2@l uk-width-2-3" uk-scrollspy-class>
Join the OpenAIRE Monitor service and we will create for you a dashboard to track, understand and
position your organization's research activities and their impact, discover and evaluate Open Science
trends for your organization and make data-driven decisions. Here's how it works.
</div>
<div class="uk-margin-medium-top uk-margin-small-bottom" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get Started</a>
</div>
</div>
</div>
</div>
<div class="uk-padding"></div>
<img class="uk-position-bottom-right uk-width-1-3@xl uk-width-1-2@l"
src="assets/monitor-assets/about/hero.svg" loading="lazy">
</div>
<div class="uk-section uk-section-small">
<div class="uk-sticky uk-blur-background uk-visible@l" [attr.uk-sticky]="shouldSticky?'':null" [attr.offset]="offset">
<div class="uk-container">
<div class="uk-padding uk-padding-remove-right uk-padding-remove-bottom">
<slider-tabs flexPosition="center" customClass="uk-text-large" connect="#tabs-content">
<slider-tab *ngFor="let section of sections; let i = index" [tabTitle]="section"
[tabId]="section"></slider-tab>
</slider-tabs>
</div>
</div>
</div>
<ul id="tabs-content" class="uk-switcher uk-margin-large-bottom">
<li>
<you-we [type]="stakeholderEntities.FUNDER" id="funder">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You provide Information about your funded projects and
<a href="https://www.openaire.eu/funders-how-to-join-guide" target="_blank">join OpenAIRE</a>.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You validate the results and approve for them to be shown
on the <a href="https://explore.openaire.eu" target="_blank">Explore</a> portal.</p>
<p>Examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/funder" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-overflow-hidden uk-position-relative uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">We ingest your project metadata and mine the <a
href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Graph</a>.
</p>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
funded research activities.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
<li>
<you-we [type]="stakeholderEntities.RI" id="ri">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You state your interest in having a research initiative
dashboard.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You configure the criteria to identify the research
products that you want to be accounted for.</p>
<p>You use the administration dashboard we created for you. If this is not enough, you give us input for
the implementation of a customised full-text mining algorithm.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/ri" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">We set up an administration dashboard that you can use
to specify which research products of the <a href="https://graph.openaire.eu" target="_blank"
class="text-graph">OpenAIRE Graph</a> are
relevant for you.</p>
<p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
<li>
<!-- RESEARCH INSTITUTION -->
<you-we [type]="stakeholderEntities.ORGANIZATION" id="organizations">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You state your interest in having an institutional
dashboard for your institution.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You validate and approve the results.</p>
<p>You examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/organization" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">Starting from the
<a href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Graph</a> we check for existing data for your institution.</p>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
institutions research activities.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
</ul>
</div>
</div>
<div class="uk-hidden@m">
<div class="uk-background-muted">
<div class="uk-container uk-container-large">
<div class="uk-text-center" uk-scrollspy-class>
<h1 class="uk-margin-medium-top uk-margin-medium-bottom" uk-scrollspy-class>How it works<span class="uk-text-primary">.</span></h1>
<div class="uk-text-large" uk-scrollspy-class>
Join the OpenAIRE Monitor service and we will create for you a dashboard to track, understand and
position your organization's research activities and their impact, discover and evaluate Open Science
trends for your organization and make data-driven decisions. Here's how it works.
</div>
<div class="uk-margin-medium-top" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get Started</a>
</div>
</div>
</div>
<div class="uk-position-relative uk-height-medium" style="overflow-x: hidden; overflow-x: clip;">
<img class="uk-width-large uk-position-absolute" src="assets/monitor-assets/about/hero.svg" loading="lazy"
style="bottom: -70px; right: -80px;">
</div>
<!-- style="transform: translate(60px, 40px);" -->
</div>
<div class="uk-section uk-section-large uk-margin-medium-top">
<div class="uk-sticky uk-blur-background" [attr.uk-sticky]="shouldSticky?'':null">
<div class="uk-padding-small uk-padding-remove-right uk-padding-remove-bottom">
<slider-tabs flexPosition="center" customClass="uk-text-large" connect="#tabs-content-mobile">
<slider-tab *ngFor="let section of sections; let i = index" [tabTitle]="section"
[tabId]="section"></slider-tab>
</slider-tabs>
</div>
</div>
<div class="uk-container uk-container-large">
<ul id="tabs-content-mobile" class="uk-switcher uk-margin-large-bottom">
<li id="funder">
<div class="uk-h1 uk-text-center uk-margin-xlarge-top uk-margin-xlarge-bottom">
Are you a <span class="uk-text-primary">Funder?</span>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 1a</span>
<h5 class="uk-margin-xsmall-top">You provide Information about your funded projects and
<a href="https://www.openaire.eu/funders-how-to-join-guide" target="_blank">join OpenAIRE</a>.</h5>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 1b</span>
<h5 class="uk-margin-xsmall-top">We ingest your project metadata and mine the <a
href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Graph</a>.
</h5>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 2a</span>
<h5 class="uk-margin-xsmall-top">You validate the results and approve for them to be shown
on the <a href="https://explore.openaire.eu" target="_blank">Explore</a> portal.</h5>
<p>Examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 2b</span>
<h5 class="uk-margin-xsmall-top">We present the results to you on our Beta portal.</h5>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 3a</span>
<h5 class="uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</h5>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 3b</span>
<h5 class="uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</h5>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
funded research activities.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 4a</span>
<h5 class="uk-margin-xsmall-top">Customise your dashboard and make your own profile.</h5>
<p>Select the <a href="https://monitor.openaire.eu/indicators/funder" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 4b</span>
<h5 class="uk-margin-xsmall-top">We refine until we are happy with the results.</h5>
<p>We present your dashboard to you.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 5a</span>
<h5 class="uk-margin-xsmall-top">Select your team</h5>
<p>And make them collaborators of the service.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 5b</span>
<h5 class="uk-margin-xsmall-top">Notify you about new metrics and indicators</h5>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</div>
</li>
<li id="ri">
<div class="uk-h1 uk-text-center uk-margin-xlarge-top uk-margin-xlarge-bottom">
Are you a <span class="uk-text-primary">Research Initiative?</span>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 1a</span>
<h5 class="uk-margin-xsmall-top">You state your interest in having a research initiative
dashboard.</h5>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 1b</span>
<h5 class="uk-margin-xsmall-top">We set up an administration dashboard that you can use
to specify which research products of the <a href="https://graph.openaire.eu" target="_blank"
class="text-graph">OpenAIRE Graph</a> are
relevant for you.</h5>
<p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 2a</span>
<h5 class="uk-margin-xsmall-top">You configure the criteria to identify the research
products that you want to be accounted for.</h5>
<p>You use the administration dashboard we created for you. If this is not enough, you give us input for
the implementation of a customised full-text mining algorithm.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 2b</span>
<h5 class="uk-margin-xsmall-top">We present the results to you on our Beta portal.</h5>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 3a</span>
<h5 class="uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</h5>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 3b</span>
<h5 class="uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</h5>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
institutions research activities.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 4a</span>
<h5 class="uk-margin-xsmall-top">Customise your dashboard and make your own profile.</h5>
<p>Select the <a href="https://monitor.openaire.eu/indicators/ri" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 4b</span>
<h5 class="uk-margin-xsmall-top">We refine until we are happy with the results.</h5>
<p>We present your dashboard to you.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 5a</span>
<h5 class="uk-margin-xsmall-top">Select your team</h5>
<p>And make them collaborators of the service.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 5b</span>
<h5 class="uk-margin-xsmall-top">Notify you about new metrics and indicators</h5>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</div>
</li>
<li id="organizations">
<div class="uk-h1 uk-text-center uk-margin-xlarge-top uk-margin-xlarge-bottom">
Are you a <span class="uk-text-primary">Research Institution?</span>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 1a</span>
<h5 class="uk-margin-xsmall-top">You state your interest in having an institutional
dashboard for your institution.</h5>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 1b</span>
<h5 class="uk-margin-xsmall-top">Starting from the <a href="https://graph.openaire.eu"
target="_blank" class="text-graph">OpenAIRE
Research Graph</a> we check for existing data for your institution.</h5>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 2a</span>
<h5 class="uk-margin-xsmall-top">You validate and approve the results.</h5>
<p>You examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 2b</span>
<h5 class="uk-margin-xsmall-top">We present the results to you on our Beta portal.</h5>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 3a</span>
<h5 class="uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</h5>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 3b</span>
<h5 class="uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</h5>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
institutions research activities.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 4a</span>
<h5 class="uk-margin-xsmall-top">Customise your dashboard and make your own profile.</h5>
<p>Select the <a href="https://monitor.openaire.eu/indicators/organization" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 4b</span>
<h5 class="uk-margin-xsmall-top">We refine until we are happy with the results.</h5>
<p>We present your dashboard to you.</p>
</div>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<div>
<span class="uk-text-primary">Step 5a</span>
<h5 class="uk-margin-xsmall-top">Select your team</h5>
<p>And make them collaborators of the service.</p>
</div>
<div class="uk-margin-large-top">
<span class="uk-text-primary">Step 5b</span>
<h5 class="uk-margin-xsmall-top">Notify you about new metrics and indicators</h5>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
`,
styles: [`
.custom-translate-bottom-left {
transform: translate(-20%, 20%);
}
`]
})
export class AboutComponent {
public url: string = null;
public pageTitle: string = "OpenAIRE - Monitor | About";
public description: string = "OpenAIRE - Monitor | About - How it works";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'About'}];
public properties: EnvProperties = properties;
public sections: string[] = [StakeholderEntities.FUNDERS, StakeholderEntities.RIS, StakeholderEntities.ORGANIZATIONS];
public offset: number;
public stakeholderEntities = StakeholderEntities;
public shouldSticky: boolean = true;
subscriptions = [];
constructor(
private _router: Router,
private _meta: Meta,
private _title: Title,
private seoService: SEOService,
private _piwikService: PiwikService,
private helper: HelperService,
private cdr: ChangeDetectorRef) {
}
ngOnInit() {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);
this.updateTitle(this.pageTitle);
this.updateDescription(this.description);
}
ngAfterViewInit() {
if (typeof document !== 'undefined') {
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height'));
this.cdr.detectChanges();
this.observeBottom();
}
}
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
subscription.unsubscribe();
}
});
}
private observeBottom() {
let bottom = document.getElementById('bottom');
if (bottom) {
let bottomObs = new IntersectionObserver(entries => {
entries.forEach(entry => {
this.shouldSticky = !entry.isIntersecting;
this.cdr.detectChanges();
})
});
this.subscriptions.push(bottomObs);
bottomObs.observe(bottom);
}
}
private updateDescription(description: string) {
this._meta.updateTag({content: description}, "name='description'");
this._meta.updateTag({content: description}, "property='og:description'");
}
private updateTitle(title: string) {
var _title = ((title.length > 50) ? title.substring(0, 50) : title);
this._title.setTitle(_title);
this._meta.updateTag({content: _title}, "property='og:title'");
}
private updateUrl(url: string) {
this._meta.updateTag({content: url}, "property='og:url'");
}
}

View File

@ -2,8 +2,7 @@ import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";
import {RouterModule} from "@angular/router";
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
import {HowItWorksComponent} from "./how-it-works.component";
import {FaqsComponent} from "./faqs.component";
import {AboutComponent} from "./about.component";
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
import {SliderTabsModule} from "../openaireLibrary/sharedComponents/tabs/slider-tabs.module";
@ -11,25 +10,23 @@ import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
import {YouWeComponent} from "./you-we.component";
@NgModule({
declarations: [HowItWorksComponent, FaqsComponent, YouWeComponent],
declarations: [AboutComponent, YouWeComponent],
imports: [CommonModule, RouterModule.forChild([
{
path: '',
redirectTo: 'how-it-works',
canDeactivate: [PreviousRouteRecorder],
pathMatch: 'full'
},
{
path: 'how-it-works',
component: HowItWorksComponent,
component: AboutComponent,
data: {extraOffset: 50}
},
{
path: 'faqs',
component: FaqsComponent
path: 'how-it-works',
redirectTo: '/about'
},
{
path: 'faqs',
redirectTo: '/support'
}
]), BreadcrumbsModule, SliderTabsModule, HelperModule],
exports: [HowItWorksComponent, FaqsComponent],
exports: [AboutComponent],
providers: [PreviousRouteRecorder, PiwikService]
})
export class AboutModule {}

View File

@ -1,12 +0,0 @@
<div class="uk-background-muted">
<div class="uk-container uk-container-large uk-section uk-section-small">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-text-center" uk-scrollspy-class>
<h1 class="uk-margin-medium-top uk-margin-medium-bottom">Frequently Asked <br> Questions<span
class="uk-text-primary">.</span></h1>
</div>
</div>
</div>
<helper *ngIf="pageContents" [texts]="pageContents.top"></helper>

View File

@ -1,400 +0,0 @@
import {ChangeDetectorRef, Component} from "@angular/core";
import {Router} from '@angular/router';
import {Meta, Title} from '@angular/platform-browser';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
import {Subscriber} from "rxjs";
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../environments/environment";
import {StakeholderEntities} from "../openaireLibrary/monitor/entities/stakeholder";
@Component({
selector: 'how-it-works',
template: `
<div class="uk-position-relative">
<div class="uk-background-muted">
<div class="uk-container uk-container-large uk-section uk-section-small">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-flex uk-flex-column uk-flex-center uk-margin-bottom" uk-scrollspy-class>
<h1 class="uk-margin-medium-top" uk-scrollspy-class>How it works<span class="uk-text-primary">.</span></h1>
<div class="uk-text-large uk-width-1-2@l uk-width-2-3" uk-scrollspy-class>
Join the OpenAIRE Monitor service and we will create for you a dashboard to track, understand and
position your organization's research activities and their impact, discover and evaluate Open Science
trends for your organization and make data-driven decisions. Here's how it works.
</div>
<div class="uk-margin-medium-top uk-margin-small-bottom" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get Started</a>
</div>
</div>
</div>
</div>
<div class="uk-padding"></div>
<img class="uk-visible@l uk-position-bottom-right uk-width-1-3@xl uk-width-1-2@l"
src="assets/monitor-assets/about/hero.svg" loading="lazy">
</div>
<div class="uk-section uk-section-small">
<div class="uk-sticky uk-blur-background uk-visible@l" [attr.uk-sticky]="shouldSticky?'':null"
[attr.offset]="offset">
<div class="uk-container">
<div class="uk-padding uk-padding-remove-horizontal uk-padding-remove-bottom">
<slider-tabs flexPosition="center" customClass="uk-text-large" connect="#tabs-content">
<slider-tab *ngFor="let section of sections; let i = index" [tabTitle]="section"
[tabId]="section"></slider-tab>
</slider-tabs>
</div>
</div>
</div>
<div class="uk-sticky uk-blur-background uk-hidden@l" [attr.uk-sticky]="shouldSticky?'':null">
<div class="uk-container">
<slider-tabs flexPosition="center">
<slider-tab *ngFor="let section of sections; let i = index" [tabTitle]="section"
[tabId]="section"></slider-tab>
</slider-tabs>
</div>
</div>
<ul id="tabs-content" class="uk-switcher uk-margin-large-bottom">
<li>
<you-we [type]="stakeholderEntities.FUNDER" id="funder">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You provide Information about your funded projects and
<a href="https://www.openaire.eu/funders-how-to-join-guide" target="_blank">join OpenAIRE</a>.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You validate the results and approve for them to be shown
on the <a href="https://explore.openaire.eu" target="_blank">Explore</a> portal.</p>
<p>Examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/funder" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-overflow-hidden uk-position-relative uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">We ingest your project metadata and mine the <a
href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Research Graph</a>.
</p>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
funded research activities.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
<li>
<you-we [type]="stakeholderEntities.RI" id="ri">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You state your interest on having a research initiative
dashboard.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You configure the criteria to identify the research
products that you want to be accounted for.</p>
<p>You use the administration dashboard we created for you. If this is not enough, you give us input for
the implementation of a customised full-text mining algorithm.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/ri" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">We set up an administration dashboard that you can use
to specify which research products of the <a href="https://graph.openaire.eu" target="_blank"
class="text-graph">OpenAIRE Research Graph</a> are
relevant for you.</p>
<p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
<li>
<!-- RESEARCH INSTITUTION -->
<you-we [type]="stakeholderEntities.ORGANIZATION" id="organizations">
<ng-container you>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1a</span>
<p class="uk-text-large uk-margin-xsmall-top">You state your interest on having an institutional
dashboard for your institution.</p>
<p>All information is exchanged under confidential agreements and we only make public what you agree
on.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left custom-translate-bottom-left"
src="assets/monitor-assets/about/icon1.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2a</span>
<p class="uk-text-large uk-margin-xsmall-top">You validate and approve the results.</p>
<p>You examine your dashboard and the showcased information to ensure you are satisfied with what you
see.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3a</span>
<p class="uk-text-large uk-margin-xsmall-top">Through 1-on-1 expert consultations you interact with
us</p>
<ul class="uk-list uk-list-disc">
<li>to understand any gaps and deviations within the dashboard</li>
<li>to verify the data integrity</li>
<li>to discuss the addition of any new metrics and indicators that might interest you</li>
</ul>
</div>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-medium-bottom">
<span class="uk-text-primary">Step 4a</span>
<p class="uk-text-large uk-margin-xsmall-top">Customise your dashboard and make your own profile.</p>
<p>Select the <a href="https://monitor.openaire.eu/indicators/organization" target="_blank">metrics</a> of
interest to you and the ones you want to publish, to keep private, or to share just with colleagues.
</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-left" src="assets/monitor-assets/about/icon3.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5a</span>
<p class="uk-text-large uk-margin-xsmall-top">Select your team</p>
<p>And make them collaborators of the service.</p>
</div>
</ng-container>
<ng-container we>
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom">
<div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">Starting from the <a href="https://graph.openaire.eu"
target="_blank" class="text-graph">OpenAIRE
Research Graph</a> we check for existing data for your institution.</p>
<p>We infer links to research results: publications, datasets, software, etc.</p>
</div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 2b</span>
<p class="uk-text-large uk-margin-xsmall-top">We present the results to you on our Beta portal.</p>
<p>We refine until you are happy with the results. We allocate the hardware resources needed to create
your dashboard.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 3b</span>
<p class="uk-text-large uk-margin-xsmall-top">We produce well-documented visualisations of simple & more
advanced composite indicators.</p>
<p>Aligned with the Open Science principles and following an evidence-based approach, and based on the
institutions research activities.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-margin-large-bottom">
<span class="uk-text-primary">Step 4b</span>
<p class="uk-text-large uk-margin-xsmall-top">We refine until we are happy with the results.</p>
<p>We present your dashboard to you.</p>
</div>
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<span class="uk-text-primary">Step 5b</span>
<p class="uk-text-large uk-margin-xsmall-top">Notify you about new metrics and indicators</p>
<p>as we keep enriching the Graph, which you may find useful and add to your profile</p>
</div>
</ng-container>
</you-we>
</li>
</ul>
</div>
`,
styles: [`
.custom-translate-bottom-left {
transform: translate(-20%, 20%);
}
`]
})
export class HowItWorksComponent {
public url: string = null;
public pageTitle: string = "OpenAIRE - Monitor | How it works";
public description: string = "OpenAIRE - Monitor | How it works";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'About - How it works'}];
public properties: EnvProperties = properties;
public sections: string[] = [StakeholderEntities.FUNDERS, StakeholderEntities.RIS, StakeholderEntities.ORGANIZATIONS];
public activeSection: string = StakeholderEntities.FUNDERS;
public offset: number;
public stakeholderEntities = StakeholderEntities;
public shouldSticky: boolean = true;
subscriptions = [];
constructor(
private _router: Router,
private _meta: Meta,
private _title: Title,
private seoService: SEOService,
private _piwikService: PiwikService,
private helper: HelperService,
private cdr: ChangeDetectorRef) {
}
ngOnInit() {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
}
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);
this.updateTitle(this.pageTitle);
this.updateDescription(this.description);
}
ngAfterViewInit() {
if (typeof document !== 'undefined') {
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height'));
this.cdr.detectChanges();
this.observeBottom();
}
}
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
subscription.unsubscribe();
}
});
}
private observeBottom() {
let bottom = document.getElementById('bottom');
if (bottom) {
let bottomObs = new IntersectionObserver(entries => {
entries.forEach(entry => {
this.shouldSticky = !entry.isIntersecting;
this.cdr.detectChanges();
})
});
this.subscriptions.push(bottomObs);
bottomObs.observe(bottom);
}
}
private updateDescription(description: string) {
this._meta.updateTag({content: description}, "name='description'");
this._meta.updateTag({content: description}, "property='og:description'");
}
private updateTitle(title: string) {
var _title = ((title.length > 50) ? title.substring(0, 50) : title);
this._title.setTitle(_title);
this._meta.updateTag({content: _title}, "property='og:title'");
}
private updateUrl(url: string) {
this._meta.updateTag({content: url}, "property='og:url'");
}
}

View File

@ -20,8 +20,8 @@ declare var UIkit;
class="uk-text-primary">{{type}}?</span></h2>
</div>
<div [id]="'sticky-' + id" #sticky class="uk-background-default uk-blur-background uk-sticky uk-visible@l"
uk-sticky="animation: uk-animation-slide-bottom" [attr.bottom]="'#' + id"
[attr.top]="'100vh -' + height + 'px'" [attr.offset]="offset">
uk-sticky="animation: uk-animation-slide-bottom" [attr.end]="'#' + id"
[attr.start]="'100vh -' + height + 'px'" [attr.offset]="offset">
<div class="uk-container">
<div class="uk-grid uk-grid-large uk-child-width-1-2@l" [class.uk-grid-divider]="!isSticky">
<div class="uk-text-center uk-first-column">

View File

@ -1,15 +1,19 @@
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {OpenaireErrorPageComponent} from './error/errorPage.component';
import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.guard';
const routes: Routes = [
{path: '', loadChildren: () => import('./home/home.module').then(m => m.HomeModule)},
{path: '', loadChildren: () => import('./home/home.module').then(m => m.HomeModule), data: {hasStickyHeaderOnMobile: true}},
{path: 'about/learn-how', redirectTo: 'about', pathMatch: 'full'},
{
path: 'about',
loadChildren: () => import('./about/about.module').then(m => m.AboutModule)
},
{
path: 'support',
loadChildren: () => import('./support/support.module').then(m => m.SupportModule),
data: {hasStickyHeaderOnMobile: true}
},
{
path: 'methodology',
loadChildren: () => import('./openaireLibrary/monitor/methodology/methodology.module').then(m => m.MethodologyModule)
@ -24,7 +28,8 @@ const routes: Routes = [
},
{
path: 'contact-us',
loadChildren: () => import('./contact/contact.module').then(m => m.ContactModule)
loadChildren: () => import('./contact/contact.module').then(m => m.ContactModule),
data: {hasQuickContact: false}
},
{
path: 'get-started',

View File

@ -1,4 +1,4 @@
import {Component, ElementRef, ViewChild} from '@angular/core';
import {ChangeDetectorRef, Component, ElementRef, ViewChild} from '@angular/core';
import {ActivatedRoute, NavigationEnd, Router} from '@angular/router';
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
@ -21,20 +21,20 @@ import {QuickContactComponent} from "./openaireLibrary/sharedComponents/quick-co
import {AlertModal} from "./openaireLibrary/utils/modal/alert";
import {StakeholderEntities} from './openaireLibrary/monitor/entities/stakeholder';
import {ResourcesService} from "./openaireLibrary/monitor/services/resources.service";
import {LayoutService} from "./openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {ConfigurationService} from "./openaireLibrary/utils/configuration/configuration.service";
@Component({
selector: 'app-root',
template: `
<div>
<div id="modal-container"></div>
<navbar *ngIf="properties && showMenu && header" portal="monitor" [header]="header" [onlyTop]="false"
<navbar *ngIf="properties && showMenu && header" #navbar portal="monitor" [header]="header" [onlyTop]="false"
[userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user"
[showMenu]=showMenu [properties]="properties">
<ul extra-s class="uk-nav uk-nav-default uk-margin-small-top">
<li routerLinkActive="uk-active">
<a routerLink="/get-started">Get Started</a>
</li>
</ul>
<div *ngIf="showGetStarted" extra-s class="uk-margin-large-top uk-margin-left">
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started" (click)="navbar.closeCanvas()">Get Started</a>
</div>
<a *ngIf="showGetStarted" extra-m class="uk-button uk-button-small uk-button-primary uk-text-uppercase uk-margin-left" routerLink="/get-started">Get Started</a>
</navbar>
<schema2jsonld *ngIf="properties " [URL]="properties.domain + properties.baseLink"
@ -62,9 +62,11 @@ import {ResourcesService} from "./openaireLibrary/monitor/services/resources.ser
</cookie-law>
<bottom #bottom *ngIf="properties && showMenu" id="bottom" [grantAdvance]="false"
[properties]="properties"></bottom>
<quick-contact #quickContact *ngIf="showQuickContact && contactForm" (sendEmitter)="send($event)"
<quick-contact #quickContact *ngIf="bottomNotIntersecting && displayQuickContact && showQuickContact && contactForm"
(sendEmitter)="send($event)"
[contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'"
[organizationTypes]="organizationTypes"></quick-contact>
[organizationTypes]="organizationTypes"
class="uk-visible@m"></quick-contact>
<modal-alert #modal [overflowBody]="false"></modal-alert>
</div>
`
@ -81,6 +83,8 @@ export class AppComponent {
logoPath: string = 'assets/common-assets/logo-services/monitor/';
/* Contact */
public showQuickContact: boolean;
public bottomNotIntersecting: boolean;
public displayQuickContact: boolean; // intersecting with specific section in home page
public showGetStarted: boolean = true;
public contactForm: UntypedFormGroup;
public organizationTypes: string[] = [
@ -88,7 +92,8 @@ export class AppComponent {
'Research Infrastructure', 'Government',
'Non-profit', 'Industry', 'Other'
];
public images: string[] = ['assets/monitor-assets/avatar1.jpg', 'assets/monitor-assets/avatar2.jpg']
public images: string[] = ['assets/monitor-assets/curators/1.jpg', 'assets/monitor-assets/curators/2.jpg',
'assets/monitor-assets/curators/3.jpg', 'assets/monitor-assets/curators/4.jpg']
public sending = false;
@ViewChild('modal') modal: AlertModal;
@ViewChild('quickContact') quickContact: QuickContactComponent;
@ -97,19 +102,17 @@ export class AppComponent {
public stakeholderEntities = StakeholderEntities;
constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService,
private configurationService: ConfigurationService,
private router: Router, private stakeholderService: StakeholderService, private smoothScroll: SmoothScroll,
private userManagementService: UserManagementService,
private quickContactService: QuickContactService,
private layoutService: LayoutService,
private fb: UntypedFormBuilder,
private emailService: EmailService,
private resourcesService: ResourcesService) {
private resourcesService: ResourcesService,
private cdr: ChangeDetectorRef) {
this.subscriptions.push(router.events.forEach((event) => {
if (event instanceof NavigationEnd) {
if (event.url === '/contact-us') {
this.quickContactService.setDisplay(false);
} else if (event.url !== '/contact-us' && !this.showQuickContact) {
this.quickContactService.setDisplay(true);
}
this.showGetStarted = event.url !== '/get-started';
}
@ -117,6 +120,7 @@ export class AppComponent {
}
ngOnInit() {
this.configurationService.initPortal(this.properties, "monitor");
this.userManagementService.fixRedirectURL = properties.afterLoginRedirectLink;
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.user = user;
@ -134,8 +138,17 @@ export class AppComponent {
this.buildMenu();
this.reset();
}));
this.subscriptions.push(this.layoutService.hasQuickContact.subscribe(hasQuickContact => {
if(this.showQuickContact !== hasQuickContact) {
this.showQuickContact = hasQuickContact;
this.cdr.detectChanges();
}
}));
this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => {
this.showQuickContact = display;
if(this.displayQuickContact !== display) {
this.displayQuickContact = display;
this.cdr.detectChanges();
}
}));
}
@ -145,25 +158,26 @@ export class AppComponent {
rootMargin: '0px',
threshold: 0.1
};
let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting && this.showQuickContact) {
this.showQuickContact = false;
this.quickContactService.setDisplay(this.showQuickContact);
} else if (!entry.isIntersecting && !this.showQuickContact) {
this.showQuickContact = true;
this.quickContactService.setDisplay(this.showQuickContact);
let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
// if (entry.isIntersecting && this.showQuickContact) {
if(this.bottomNotIntersecting !== (!entry.isIntersecting)) {
this.bottomNotIntersecting = !entry.isIntersecting;
this.cdr.detectChanges();
}
});
}, options);
intersectionObserver.observe(this.bottom.nativeElement);
this.subscriptions.push(intersectionObserver);
}, options);
intersectionObserver.observe(this.bottom.nativeElement);
this.subscriptions.push(intersectionObserver);
}
public ngOnDestroy() {
this.subscriptions.forEach(value => {
if (value instanceof Subscriber) {
value.unsubscribe();
} else if (typeof IntersectionObserver !== "undefined" && value instanceof IntersectionObserver) {
value.disconnect();
}
});
this.userManagementService.clearSubscriptions();
@ -173,22 +187,24 @@ export class AppComponent {
public buildMenu() {
this.menuItems = [];
this.menuItems.push(
new MenuItem("home", "Home", "", "/", false, [], null, {}, null, null, "uk-hidden@m")
);
this.menuItems.push(
new MenuItem("stakeholders", "Browse " + this.stakeholderEntities.STAKEHOLDERS, "", "/browse", false, [], null, {})
);
this.resourcesService.setResources(this.menuItems);
let about = new MenuItem("about", "About", "", "", false, [], null, {});
about.items = [
new MenuItem("how-it-works", "How it works", "", "/about/how-it-works", false, [], null, {}),
new MenuItem("faqs", "FAQs", "", "/about/faqs", false, [], null, {})
]
this.menuItems.push(about);
this.menuItems.push(new MenuItem("support", "Support", "", "/support", false, [], null, {}));
this.menuItems.push(new MenuItem("about", "About", "", "/about", false, [], null, {}));
this.bottomMenuItems = [
new MenuItem("", "About", "https://beta.openaire.eu/project-factsheets", "", false, [], [], {}),
new MenuItem("", "News - Events", "https://beta.openaire.eu/news-events", "", false, [], [], {}),
new MenuItem("", "Blog", "https://blogs.openaire.eu/", "", false, [], [], {}),
new MenuItem("", "Contact us", "https://beta.openaire.eu/contact-us", "", false, [], [], {})
];
this.menuItems.push(
new MenuItem("contact-us", "Contact us", "", "/contact-us", false, [], null, {}, null, null, "uk-hidden@m")
);
this.showMenu = true;
if(typeof document !== 'undefined') {
setTimeout(() => {

View File

@ -1,8 +1,8 @@
import {NgModule} from '@angular/core';
import {APP_ID, NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {CommonModule} from '@angular/common';
import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http";
import {BrowserModule, BrowserTransferStateModule} from '@angular/platform-browser';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {AppComponent} from './app.component';
import {OpenaireErrorPageComponent} from './error/errorPage.component';
@ -34,8 +34,7 @@ import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.gua
QuickContactModule,
BottomModule,
CookieLawModule,
BrowserTransferStateModule,
BrowserModule.withServerTransition({appId: 'monitor'}),
BrowserModule,
AppRoutingModule,
Schema2jsonldModule,
AlertModalModule
@ -44,6 +43,7 @@ import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.gua
exports: [AppComponent],
providers: [
isDevelopmentGuard,
{provide: APP_ID, useValue: 'monitor'},
{
provide: HTTP_INTERCEPTORS,
useClass: HttpInterceptorService,

View File

@ -1,5 +1,5 @@
import { NgModule } from '@angular/core';
import {ServerModule, ServerTransferStateModule} from '@angular/platform-server';
import {ServerModule} from '@angular/platform-server';
import { AppModule } from './app.module';
import { AppComponent } from './app.component';
@ -7,8 +7,7 @@ import { AppComponent } from './app.component';
@NgModule({
imports: [
AppModule,
ServerModule,
ServerTransferStateModule
ServerModule
],
bootstrap: [AppComponent],
})

View File

@ -9,11 +9,11 @@
<ng-template #card>
<div class="uk-card uk-card-default uk-card-hover uk-card-body" [ngClass]="stakeholder.type" [class.uk-disabled]="!hasPermission()">
<div *ngIf="stakeholder.visibility && stakeholder.visibility !== 'PUBLIC'"
class="uk-position-top-right uk-margin-small-top uk-margin-small-right uk-flex uk-flex-column uk-flex-middle">
class="uk-position-top-right uk-margin-small-top uk-margin-small-right uk-flex uk-flex-column uk-flex-middle uk-position-z-index">
<icon [name]="visibilityIcon.get(stakeholder.visibility)" ratio="1.2" [flex]="true"></icon>
<span class="uk-text-small uk-text-capitalize">{{stakeholder.visibility.toLowerCase()}}</span>
</div>
<div class="uk-card-media-top uk-padding-small uk-padding-remove-vertical uk-flex uk-flex-center uk-flex-middle uk-height-xsmall">
<div class="uk-card-media-top uk-padding-large uk-padding-remove-vertical uk-flex uk-flex-center uk-flex-middle uk-height-xsmall">
<img *ngIf="stakeholder.logoUrl; else elseBlock" [src]="stakeholder | logoUrl" [alt]="stakeholder.name + ' logo'" class="uk-height-max-xsmall uk-blend-multiply">
<ng-template #elseBlock>
<img src="assets/common-assets/placeholder.png" alt="OpenAIRE placeholder logo" class="uk-height-max-xsmall uk-blend-multiply">

View File

@ -7,6 +7,7 @@ import {properties} from "../../environments/environment"
import {LocalStorageService} from "../openaireLibrary/services/localStorage.service";
import {Subscriber} from "rxjs";
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
@Component({
selector: 'browse-stakeholder',
@ -27,15 +28,23 @@ export class BrowseStakeholderComponent {
constructor(private route: ActivatedRoute,
private router: Router,
private location: Location,
private localStorageService: LocalStorageService) {
private localStorageService: LocalStorageService,
private layoutService: LayoutService) {
}
public ngOnInit() {
this.properties = properties;
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
this.directLink = value;
this.subscriptions.push(this.layoutService.isMobile.subscribe(value => {
if(value) {
this.directLink = true;
} else {
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
this.directLink = value;
}));
}
}));
}
ngOnDestroy() {

View File

@ -1,6 +1,6 @@
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
<div>
<div class="uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
<div class="uk-visible@m uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
@ -10,7 +10,10 @@
<div class="uk-padding-small uk-width-1-2@l uk-width-2-3@m uk-width-1-1">
<contact-us [organizationTypes]="organizationTypes" [sending]="sending" [scrollspy]="true"
[contactForm]="contactForm" (sendEmitter)="send($event)">
<h1 page-title class="uk-margin-auto uk-text-center" uk-scrollspy-class>
<h1 page-title class="uk-visible@m uk-margin-auto uk-text-center" uk-scrollspy-class>
Contact us<span class="uk-text-primary">.</span>
</h1>
<h1 page-title class="uk-hidden@m uk-heading-large uk-margin-auto uk-text-center" uk-scrollspy-class>
Contact us<span class="uk-text-primary">.</span>
</h1>
<div page-description class="uk-text-large uk-text-center" uk-scrollspy-class>

View File

@ -57,9 +57,7 @@ export class ContactComponent implements OnInit {
}
ngOnInit() {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);

View File

@ -1,67 +1,120 @@
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
<div class="uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
</div>
<div class="uk-container uk-container-large uk-section" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-margin-small-top uk-text-center uk-flex uk-flex-middle uk-child-width-1-1 uk-flex-column">
<h1 class="uk-width-3-4@m" uk-scrollspy-class>Get started with <br> OpenAIRE Monitor Dashboard <span class="uk-text-primary">.</span></h1>
<div class="uk-text-large uk-width-2-3@m" uk-scrollspy-class>
The OpenAIRE Monitor Dashboard is an <span class="uk-text-bold">open tracking platform</span> with all the tools you need
to understand and make insightful decisions — whether you are a <span class="uk-text-bold">funder</span>, a <span class="uk-text-bold">research initiative</span>
or a <span class="uk-text-bold">community</span>, and want to measure or increase uptake
of Open Science, understand your costs, gaps and strengths, or build a community around it.
<div class="uk-visible@m">
<div class="uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
</div>
<div class="uk-section uk-section-large uk-padding-remove-bottom" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-margin-auto uk-width-1-1 uk-width-3-4@l uk-grid uk-grid-large uk-child-width-1-2" uk-grid>
<div class="uk-flex uk-flex-center uk-flex-top" uk-scrollspy-class>
<img class="uk-visible@m" src="assets/monitor-assets/get-started/1.svg" alt="Step 1" loading="lazy">
<div class="uk-flex uk-flex-column uk-padding-small uk-margin-small-left">
<icon name="description" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-text-uppercase">Provide some <br> information</span>
</div>
<div class="uk-container uk-container-large uk-section" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-margin-small-top uk-text-center uk-flex uk-flex-middle uk-child-width-1-1 uk-flex-column">
<h1 class="uk-width-3-4@m" uk-scrollspy-class>Get started with <br> OpenAIRE Monitor Dashboard <span class="uk-text-primary">.</span></h1>
<div class="uk-text-large uk-width-2-3@m" uk-scrollspy-class>
The OpenAIRE Monitor Dashboard is an <span class="uk-text-bold">open tracking platform</span> with all the tools you need
to understand and make insightful decisions — whether you are a <span class="uk-text-bold">funder</span>, a <span class="uk-text-bold">research initiative</span>
or a <span class="uk-text-bold">community</span>, and want to measure or increase uptake
of Open Science, understand your costs, gaps and strengths, or build a community around it.
</div>
<div class="uk-flex uk-flex-center uk-flex-top" uk-scrollspy-class>
<img class="uk-visible@m" src="assets/monitor-assets/get-started/2.svg" alt="Step 2" loading="lazy">
<div class="uk-flex uk-flex-column uk-padding-small uk-margin-small-left">
<icon name="email" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-margin-small-top uk-text-uppercase">We contact <br> you</span>
</div>
<div class="uk-section uk-section-large uk-padding-remove-bottom" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-margin-auto uk-width-1-1 uk-width-3-4@l uk-grid uk-grid-large uk-child-width-1-2" uk-grid>
<div class="uk-flex uk-flex-center uk-flex-top" uk-scrollspy-class>
<img class="uk-visible@m" src="assets/monitor-assets/get-started/1.svg" alt="Step 1" loading="lazy">
<div class="uk-flex uk-flex-column uk-padding-small uk-margin-small-left">
<icon name="description" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-text-uppercase">Provide some <br> information</span>
</div>
</div>
<div class="uk-flex uk-flex-center uk-flex-top" uk-scrollspy-class>
<img class="uk-visible@m" src="assets/monitor-assets/get-started/2.svg" alt="Step 2" loading="lazy">
<div class="uk-flex uk-flex-column uk-padding-small uk-margin-small-left">
<icon name="email" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-margin-small-top uk-text-uppercase">We contact <br> you</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-section uk-section-large">
<div class="uk-padding-small">
<h2 class="uk-h1 uk-text-center">Provide some information<span class="uk-text-primary">.</span></h2>
<div class="uk-flex uk-flex-center uk-width-1-1">
<div class="uk-width-1-2@m uk-width-1-1 uk-margin-large-top">
<contact-us [organizationTypes]="organizationTypes" [sending]="sending"
[contactForm]="contactForm" alignButton="center" (sendEmitter)="send($event)">
</contact-us>
<div class="uk-container uk-container-large uk-section uk-section-large">
<div class="uk-padding-small">
<h2 class="uk-h1 uk-text-center">Provide some information<span class="uk-text-primary">.</span></h2>
<div class="uk-flex uk-flex-center uk-width-1-1">
<div class="uk-width-1-2@m uk-width-1-1 uk-margin-large-top">
<contact-us [organizationTypes]="organizationTypes" [sending]="sending"
[contactForm]="contactForm" alignButton="center" (sendEmitter)="send($event)">
</contact-us>
</div>
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-section">
<div class="uk-grid uk-grid-large uk-flex-middle" uk-grid>
<div class="uk-width-1-2@m uk-width-1-1">
<div class="uk-padding-small">
<h2>Need more information?<br>View details on the process<span class="uk-text-primary">.</span></h2>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
<span class="uk-flex uk-flex-middle">
<span>Learn More</span>
</span>
</a>
</div>
</div>
<div class="uk-width-expand uk-flex uk-flex-center">
<img src="assets/monitor-assets/get-started/steps.svg" loading="lazy">
</div>
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-section">
<div class="uk-grid uk-grid-large uk-flex-middle" uk-grid>
<div class="uk-width-1-2@m uk-width-1-1">
<div class="uk-padding-small">
<h2>Need more information?<br>View details on the process<span class="uk-text-primary">.</span></h2>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
<div class="uk-hidden@m">
<div class="uk-container uk-container-large uk-section" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-text-center">
<h1 class="uk-heading-small uk-padding-small uk-padding-remove-vertical" uk-scrollspy-class>Get started with <br>OpenAIRE Monitor Dashboard<span class="uk-text-primary">.</span></h1>
<div class="uk-text-large uk-margin-large-top" uk-scrollspy-class>
The OpenAIRE Monitor Dashboard is an <span class="uk-text-bold">open tracking platform</span> with all the tools you need
to understand and make insightful decisions — whether you are a <span class="uk-text-bold">funder</span>, a <span class="uk-text-bold">research initiative</span>
or a <span class="uk-text-bold">community</span>, and want to measure or increase uptake
of Open Science, understand your costs, gaps and strengths, or build a community around it.
</div>
</div>
<div class="uk-section uk-section-large uk-padding-remove-bottom" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-flex uk-flex-column uk-flex-middle uk-text-center uk-padding-small uk-position-relative">
<img class="uk-position-absolute number-step number-step-1" src="assets/monitor-assets/get-started/1.svg" alt="Step 1" loading="lazy">
<icon name="description" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-text-uppercase">Provide some <br> information</span>
</div>
<div class="uk-flex uk-flex-column uk-flex-middle uk-text-center uk-padding-small uk-position-relative">
<img class="uk-position-absolute number-step number-step-2" src="assets/monitor-assets/get-started/2.svg" alt="Step 2" loading="lazy">
<icon name="email" type="outlined" ratio="2" visuallyHidden="Provide some information"
customClass="uk-text-background"></icon>
<span class="uk-h5 uk-margin-remove uk-margin-small-top uk-text-uppercase">We contact you</span>
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-section uk-section-large">
<div class="uk-padding-small">
<h2 class="uk-heading-small uk-text-center">Provide some information<span class="uk-text-primary">.</span></h2>
<div class="uk-flex uk-flex-center uk-width-1-1">
<div class="uk-width-1-2@m uk-width-1-1 uk-margin-large-top">
<contact-us [organizationTypes]="organizationTypes" [sending]="sending"
[contactForm]="contactForm" alignButton="center" (sendEmitter)="send($event)">
</contact-us>
</div>
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-section">
<div class="uk-flex uk-flex-column uk-flex-middle uk-text-center uk-padding uk-padding-remove-vertical">
<h2>Need more information?<br>View details on the process<span class="uk-text-primary">.</span></h2>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text uk-margin-large-top uk-margin-large-bottom"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
<span class="uk-flex uk-flex-middle">
<span>Learn More</span>
</span>
</a>
</div>
</div>
<div class="uk-width-expand uk-flex uk-flex-center">
<img src="assets/common-assets/monitor-assets/how/steps.svg" loading="lazy">
</a>
<img src="assets/monitor-assets/get-started/steps.svg" loading="lazy">
</div>
</div>
</div>

View File

@ -0,0 +1,14 @@
.number-step {
height: 70px;
opacity: 0.1;
top: 50%;
transform: translateY(-50%) rotate(20deg);
}
.number-step-1 {
right: 10%;
}
.number-step-2 {
left: 10%;
}

View File

@ -17,7 +17,8 @@ import {StakeholderEntities} from '../openaireLibrary/monitor/entities/stakehold
@Component({
selector: 'get-started',
templateUrl: './get-started.component.html'
templateUrl: './get-started.component.html',
styleUrls: ['./get-started.component.less']
})
export class GetStartedComponent implements OnInit {
public url: string = null;
@ -59,9 +60,7 @@ export class GetStartedComponent implements OnInit {
}
ngOnInit() {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);

View File

@ -1,304 +1,595 @@
<div>
<div class="uk-section uk-padding-remove-bottom uk-overflow-hidden home-background">
<div class="uk-container uk-container-large" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-grid uk-flex-middle" uk-grid>
<div class="uk-width-3-5@l uk-margin-large-bottom">
<h1 class="uk-heading-large" uk-scrollspy-class>
A new era of <span class="uk-text-primary">monitoring</span> research<span class="uk-text-primary">.</span>
</h1>
<div class="uk-text-large uk-margin-medium-top" uk-scrollspy-class>
<div>Discover, track and understand trends and impact</div>
<div>pathways for your organization.</div>
<div>Make informed decisions.</div>
</div>
<div class="uk-margin-medium-top" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get Started</a>
</div>
</div>
<div class="uk-visible@m uk-width-expand" uk-scrollspy-class>
<div class="uk-position-relative">
<img style="padding: 1px" src="assets/monitor-assets/home/monitor.jpg" uk-parallax="y: 300">
<img class="uk-position-top-left" src="assets/monitor-assets/home/mask.svg">
</div>
</div>
</div>
<ng-template #tablet_text>
<div>
<h6 class="uk-margin-xsmall-bottom">
Monitor, discover and understand.
</h6>
<div>Track your organizations research output in a comprehensive manner. Identify research pathways across key
dimensions with granular and timely indicators.</div>
</div>
</div>
<ng-template #scrolling_text let-position_class="position_class">
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 0vh; end: 100% + 100vh - 150vh; opacity: 0,1 20%,1 99%,0">
<h3 class="uk-h2 uk-text-primary">
Monitor, discover and understand.
</h3>
<p class="uk-text-large">Track your organizations research output in a comprehensive manner. Identify research pathways across key dimensions with granular and timely indicators.</p>
<div>
<h6 class="uk-margin-xsmall-bottom">
<span class="uk-text-primary">Enhance</span> open science uptake<span class="uk-text-primary">.</span>
</h6>
<div>Work with the Open Science expert community for open and transparent metrics. Discover Open Science costs and
trends for your organization. See how you fare in the European Open Science Cloud.</div>
</div>
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 200vh; opacity: 0,1 20%,1 99%,0">
<h3 class="uk-h2">
<span class="uk-text-primary">Enhance</span> open science uptake<span class="uk-text-primary">.</span>
</h3>
<p class="uk-text-large">Work with the Open Science expert community for open and transparent metrics. Discover Open Science costs and trends for your organization. See how you fare in the European Open Science Cloud.</p>
<div>
<h6 class="uk-margin-xsmall-bottom">
Turn data into <span class="uk-text-primary">actionable insights.</span>
</h6>
<div>See what works and what not, reveal hidden potential. Measure research impact, discover trends, connections
and collaborations to improve and optimize your future actions.</div>
</div>
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 200vh; end: 100% + 100vh - 250vh; opacity: 0,1 20%,1">
<h3 class="uk-h2">
Turn data into <span class="uk-text-primary">actionable insights.</span>
</h3>
<p class="uk-text-large">See what works and what not, reveal hidden potential. Measure research impact, discover trends, connections and collaborations to improve and optimize your future actions.</p>
</div>
</ng-template>
<div class="uk-section uk-section-secondary">
<div class="uk-container uk-container-large">
<div class="uk-width-1-1">
<span class="uk-h6 uk-text-primary">Funders. Research Institutions. Research Initiatives.</span>
<h2 class="uk-h1 uk-margin-remove-top uk-width-3-5@l">Simplify research monitoring & evaluation<span class="uk-text-primary">.</span></h2>
</div>
<div id="js-sticky-parallax-images-all" style="min-height: 300vh">
<div class="uk-visible@m uk-height-viewport monitor-dark-logo-background uk-sticky" uk-sticky="bottom: #js-sticky-parallax-images-all; target-offset: true">
<div class="uk-grid" uk-grid style="height: 100vh;">
<div class="uk-width-expand uk-first-column uk-position-relative uk-height-1-1">
<div class="monitor-dark-logo-background"><!-- uk-sticky="bottom: #js-sticky-parallax-images-all; target-offset: true"-->
<div uk-parallax="target: #js-sticky-parallax-images-all;"> <!-- y: 55vh, 45vh; -->
<img class="uk-position-center" src="assets/monitor-assets/home/ipad.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; opacity: 1; easing:0"
style="height: 75vh;">
<!-- <img class="uk-position-center-left" src="assets/monitor-assets/home/ipad.png" width="1800" height="1200" alt=""-->
<!-- uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; end: 100% + 100vh - 160vh; opacity: 1,1 99%,0; easing:0">-->
<!-- <img class="uk-position-center-left" src="assets/monitor-assets/home/monitor.jpg" width="1800" height="1200" alt=""-->
<!-- uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 210vh; opacity: 0,1 16.666%,1 99%,0; easing:0">-->
<!-- <img class="uk-position-center-left" src="assets/monitor-assets/home/ipad.png" width="1800" height="1200" alt=""-->
<!-- uk-parallax="target: #js-sticky-parallax-images-all; start: 200vh; end: 100% + 100vh - 250vh; opacity: 0,1 20%,1; easing:0">-->
</ng-template>
<div *ngIf="!isMobile" class="uk-visible@m">
<div class="uk-section uk-padding-remove-bottom uk-overflow-hidden home-background">
<div class="uk-container uk-container-large"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-grid uk-flex-middle" uk-grid>
<div class="uk-width-3-5@l uk-margin-large-bottom">
<h1 class="uk-heading-large" uk-scrollspy-class>
A new era of <span class="uk-text-primary">monitoring</span> research<span
class="uk-text-primary">.</span>
</h1>
<div class="uk-text-large uk-margin-medium-top" uk-scrollspy-class>
<div>Discover, track and understand trends and impact</div>
<div>pathways for your organization.</div>
<div>Make informed decisions.</div>
</div>
<div class="uk-margin-medium-top" uk-scrollspy-class>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get
Started</a>
</div>
</div>
</div>
</div>
<div class="uk-inline uk-width-expand uk-height-1-1">
<div><!-- uk-sticky="bottom: #js-sticky-parallax-images-all"-->
<div uk-parallax="target: #js-sticky-parallax-images-all; y: 55vh, 45vh;">
<ng-container *ngTemplateOutlet="scrolling_text; context: {position_class: 'uk-position-center-left'}"></ng-container>
<div class="uk-width-expand" uk-scrollspy-class>
<div class="uk-position-relative">
<img style="padding: 1px" src="assets/monitor-assets/home/monitor.jpg">
<img class="uk-position-top-left" src="assets/monitor-assets/home/mask.svg">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-hidden@m uk-height-viewport monitor-dark-logo-background" uk-sticky="bottom: #js-sticky-parallax-images-all">
<div class="uk-flex uk-flex-column uk-flex-middle">
<div class="monitor-dark-logo-background uk-inline uk-width-1-1" style="height: 50vh;">
<div class="uk-position-center uk-height-1-1" uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; opacity: 1; easing:0">
<img class="uk-height-1-1" src="assets/monitor-assets/home/ipad.png" alt="ipad" loading="lazy">
</div>
</div>
<div class="uk-inline uk-width-2-3">
<ng-container *ngTemplateOutlet="scrolling_text; context: {position_class: 'uk-position-top-center'}"></ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-background-norepeat graph-background">
<div class="uk-section uk-section-large uk-container uk-container-large uk-margin-large-top uk-margin-large-bottom uk-overflow-hidden">
<div class="uk-flex uk-flex-column uk-flex-middle">
<h2 class="uk-h1 uk-width-1-2@m uk-text-center" uk-parallax="scale: 1.7, 1.3, 1,1">
Tap into the OpenAIRE Research Graph<span class="uk-text-primary">.</span>
</h2>
<div class="uk-width-1-2@m uk-text-center uk-margin-top" uk-parallax="y: 80, 40, 0, 0">
The OpenAIRE Research Graph is one of the largest open scholarly record collections
worldwide, key in fostering Open Science and establishing its practices in the daily
research activities. Conceived as a public and transparent good, populated out of data
sources trusted by scientists, the Graph aims at bringing discovery, monitoring, and
assessment of science back in the hands of the scientific community.
<div class="uk-section tablet-section">
<div class="uk-container">
<div class="uk-text-center">
<span class="uk-h6 uk-text-primary">Funders. Research Institutions. Research Initiatives.</span>
<h2 class="uk-h1 uk-margin-remove-top">Simplify research<br> monitoring & evaluation<span
class="uk-text-primary">.</span></h2>
</div>
<div class="uk-grid uk-child-width-1-2 uk-flex uk-flex-middle uk-margin-medium-top" uk-grid>
<div>
<img src="assets/monitor-assets/home/ipad.png" alt="ipad" loading="lazy">
</div>
<div class="uk-margin-medium-bottom">
<div class="uk-grid uk-child-width-1-1" uk-grid>
<ng-container *ngTemplateOutlet="tablet_text"></ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-flex uk-flex-center uk-margin-top uk-margin-medium-bottom" uk-parallax="y: 80, 40, 0, 0">
<div class="uk-width-1-1 uk-flex-center uk-grid" uk-grid uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<ng-template #numberCard let-numberSize="numberSize" let-name="name" let-url="url">
<a class="uk-card uk-card-default uk-card-hover uk-position-relative uk-padding-small uk-display-block uk-link-reset"
[href]="url" target="_blank" uk-scrollspy-class>
<div class="uk-height-small uk-width-small uk-flex uk-flex-center uk-flex-column">
<div class="uk-text-center">
<div
class="uk-text-background uk-text-bold number">{{(numberSize.number|number) + numberSize.size}}</div>
<div class="uk-margin-small-top uk-text-large">{{name}}</div>
</div>
</div>
</a>
</ng-template>
<div *ngIf="publicationsSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: publicationsSize, name: openaireEntities.PUBLICATIONS,
</div>
<div class="uk-background-norepeat graph-background">
<div class="uk-section uk-section-large uk-container uk-container-large uk-margin-large-top uk-margin-large-bottom uk-overflow-hidden">
<div class="uk-flex uk-flex-column uk-flex-middle">
<h2 class="uk-h1 uk-width-1-2@m uk-text-center">
Tap into the OpenAIRE Graph<span class="uk-text-primary">.</span>
</h2>
<div class="uk-width-1-2@m uk-text-center uk-margin-top">
The OpenAIRE Graph is one of the largest open scholarly record collections
worldwide, key in fostering Open Science and establishing its practices in the daily
research activities. Conceived as a public and transparent good, populated out of data
sources trusted by scientists, the Graph aims at bringing discovery, monitoring, and
assessment of science back in the hands of the scientific community.
</div>
</div>
<div class="uk-flex uk-flex-center uk-margin-top uk-margin-medium-bottom">
<div class="uk-width-1-1 uk-flex-center uk-grid" uk-grid uk-height-match="target: .targetName;"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<ng-template #numberCard let-numberSize="numberSize" let-name="name" let-url="url">
<a class="uk-card uk-card-default uk-card-hover uk-position-relative uk-padding-small uk-display-block uk-link-reset"
[href]="url" target="_blank" uk-scrollspy-class>
<div class="uk-height-small uk-width-small uk-flex uk-flex-center uk-flex-column">
<div class="uk-text-center">
<div class="uk-text-background uk-text-bold number">{{(numberSize.number|number) + numberSize.size}}</div>
<div class="uk-margin-small-top uk-text-large targetName">{{name}}</div>
</div>
</div>
</a>
</ng-template>
<div *ngIf="publicationsSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: publicationsSize, name: openaireEntities.PUBLICATIONS,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=publications'}">
</ng-container>
</div>
<div *ngIf="datasetsSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: datasetsSize, name: openaireEntities.DATASETS,
</ng-container>
</div>
<div *ngIf="datasetsSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: datasetsSize, name: openaireEntities.DATASETS,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=datasets'}">
</ng-container>
</div>
<div *ngIf="softwareSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: softwareSize, name: openaireEntities.SOFTWARE,
</ng-container>
</div>
<div *ngIf="softwareSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: softwareSize, name: openaireEntities.SOFTWARE,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=software'}">
</ng-container>
</div>
<div *ngIf="otherSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: otherSize, name: openaireEntities.OTHER,
</ng-container>
</div>
<div *ngIf="otherSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: otherSize, name: openaireEntities.OTHER,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=other'}">
</ng-container>
</div>
<div *ngIf="fundersSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: fundersSize, name: stakeholderEntities.FUNDERS,
</ng-container>
</div>
<div *ngIf="fundersSize">
<ng-container *ngTemplateOutlet="numberCard; context: {numberSize: fundersSize, name: stakeholderEntities.FUNDERS,
url: 'https://explore.openaire.eu/search/find/projects'}">
</ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-container uk-container-large uk-margin-large-bottom">
<div class="uk-grid uk-grid-xlarge" uk-grid>
<div class="uk-width-1-3@m uk-width-1-1 uk-text-left@m uk-text-center">
<h3 class="uk-margin-small-top">Openness. Usability. Replicability. <span class="uk-text-primary">Trust</span><span class="uk-margin-right">.</span></h3>
<div class="uk-text-large uk-margin-bottom">Learn and work with a thriving community behind you.</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
</ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-container uk-container-large uk-margin-large-bottom">
<div class="uk-grid uk-grid-xlarge" uk-grid>
<div class="uk-width-1-3@m uk-width-1-1 uk-text-left@m uk-text-center">
<h3 class="uk-margin-small-top">Openness. Usability. Replicability. <span
class="uk-text-primary">Trust</span><span class="uk-margin-right">.</span></h3>
<div class="uk-text-large uk-margin-bottom">Learn and work with a thriving community behind you.</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
<span class="uk-flex uk-flex-middle">
<span>Learn More</span>
</span>
</a>
</div>
<div class="uk-width-expand uk-margin-large-left" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; delay: 250">
<div class="uk-grid uk-child-width-1-2@s uk-child-width-1-1 uk-grid-large" uk-grid>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Global outlook"
customClass="uk-text-background"></icon>
</a>
</div>
<h5 class="uk-margin-remove-top">Comprehensive outlook</h5>
<div>
Monitor is built on the <a href="https://graph.openaire.eu/" class="text-graph" target="_blank">OpenAIRE Research
Graph</a>. A global linked research graph, a shared data resource from open initiatives around the world. Our indicators cover a wide range of themes from input to impact.
<div class="uk-width-expand uk-margin-large-left"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; delay: 250">
<div class="uk-grid uk-child-width-1-2@s uk-child-width-1-1 uk-grid-large" uk-grid>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Global outlook"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Comprehensive outlook</h5>
<div>
Monitor is built on the <a href="https://graph.openaire.eu/" class="text-graph"
target="_blank">OpenAIRE Graph</a>. A global linked research
graph, a shared data resource from open initiatives around the world. Our indicators cover a
wide range of themes from input to impact.
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Showcasing, monitoring, analysis</h5>
<div>
Customize your dashboard by choosing from a variety of pre-defined metrics and select which
ones to show publicly, which to invited team members, and which are still work in progress
(private).
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Transparent methodology"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Transparent methodology</h5>
<div>
We base our service on Open Science principles. We rely on open data sources, and document
our algorithms for every metric and indicator we publish.
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Minimum effort to join"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Minimum effort to join</h5>
<div>
You only share some information with us to include in our backend aggregating and data
mining, and we deliver a view of your world.
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Tailor-made monitoring, responsive to your needs</h5>
<div>
Our experts work with you on demand in one-on-one sessions to provide additional indicators
and curate your data.
</div>
</div>
</div>
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Showcasing, monitoring, analysis</h5>
<div>
Customize your dashboard by choosing from a variety of pre-defined metrics and select which ones to show publicly, which to invited team members, and which are still work in progress (private).</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Transparent methodology"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Transparent methodology</h5>
<div>
We base our service on Open Science principles. We rely on open data sources, and document our algorithms for every metric and indicator we publish.
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Minimum effort to join"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Minimum effort to join</h5>
<div>
You only share some information with us to include in our backend aggregating and data mining, and we deliver a view of your world.
</div>
</div>
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-bottom">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-remove-top">Tailor-made monitoring, responsive to your needs</h5>
<div>
Our experts work with you on demand in one-on-one sessions to provide additional indicators and curate your data.</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-container uk-container-large uk-margin-large-bottom">
<div class="uk-width-1-2@m uk-margin-bottom">
<h2 class="uk-heading-xlarge">{{stakeholderEntities.STAKEHOLDERS}} in action<span class="uk-text-primary">.</span></h2>
<div class="uk-text-large">
View existing {{stakeholderEntities.STAKEHOLDERS | lowercase}} from collaborating organizations. Get a preview on how they work and how our service can be customized to serve you.
</div>
</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/browse">
<div class="uk-section uk-container uk-container-large uk-margin-large-bottom">
<div class="uk-width-1-2@m uk-margin-bottom">
<h2 class="uk-heading-xlarge">{{stakeholderEntities.STAKEHOLDERS}} in action<span
class="uk-text-primary">.</span></h2>
<div class="uk-text-large">
View existing {{stakeholderEntities.STAKEHOLDERS | lowercase}} from collaborating organizations. Get a
preview on how they work and how our service can be customized to serve you.
</div>
</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/browse">
<span class="uk-flex uk-flex-middle">
<span>Browse</span>
</span>
</a>
<div class="uk-margin-large-top">
<div *ngIf="loading" class="uk-height-large uk-flex uk-flex-column uk-flex-center">
<loading></loading>
</div>
<ng-container *ngIf="!loading">
<ul class="uk-tab" uk-tab>
<li><a>All</a></li>
<li><a>{{stakeholderEntities.FUNDERS | titlecase}}</a></li>
<li><a>{{stakeholderEntities.RIS | titlecase}}</a></li>
<li><a>{{stakeholderEntities.ORGANIZATIONS | titlecase}}</a></li>
</ul>
<ul class="uk-switcher">
<li>
<ng-container *ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.stakeholders}"></ng-container>
</li>
<li>
<ng-container *ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.funders}"></ng-container>
</li>
<li>
<ng-container *ngTemplateOutlet="sliderTemplate; context: {slides:stakeholdersSlider.ris}"></ng-container>
</li>
<li>
<ng-container *ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.organizations}"></ng-container>
</li>
</ul>
</ng-container>
<!-- Slider Template for Tab Content -->
<ng-template #sliderTemplate let-slides="slides">
<div uk-slider class="uk-slider uk-margin-medium-top">
<ul class="uk-slider-items" uk-height-match="target: .uk-card; row: false">
<!-- Margin right -->
<li *ngFor="let slide of slides; let i=index" class="uk-width-1-1">
<div class="uk-padding-small">
<div uk-grid class="uk-grid uk-child-width-1-3@l uk-child-width-1-2@m" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<ng-container *ngIf="i === 0">
<div *ngFor="let stakeholder of slide" uk-scrollspy-class>
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
</div>
</ng-container>
<ng-container *ngIf="i !== 0">
<div *ngFor="let stakeholder of slide">
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
</div>
</ng-container>
</a>
<div class="uk-margin-large-top">
<div *ngIf="loading" class="uk-height-large uk-flex uk-flex-column uk-flex-center">
<loading></loading>
</div>
<ng-container *ngIf="!loading">
<div>
<slider-tabs position="horizontal">
<slider-tab [tabId]="'all'" tabTitle="All"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.FUNDERS"
tabTitle="{{stakeholderEntities.FUNDERS | titlecase}}"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.RIS"
tabTitle="{{stakeholderEntities.RIS | titlecase}}"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.ORGANIZATIONS"
tabTitle="{{stakeholderEntities.ORGANIZATIONS | titlecase}}"></slider-tab>
</slider-tabs>
</div>
</div>
</li>
</ul>
<ul class="uk-slider-nav uk-dotnav uk-flex-center uk-margin-medium-top"></ul>
<ul class="uk-switcher">
<li>
<ng-container
*ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.stakeholders}"></ng-container>
</li>
<li>
<ng-container
*ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.funders}"></ng-container>
</li>
<li>
<ng-container
*ngTemplateOutlet="sliderTemplate; context: {slides:stakeholdersSlider.ris}"></ng-container>
</li>
<li>
<ng-container
*ngTemplateOutlet="sliderTemplate; context: {slides: stakeholdersSlider.organizations}"></ng-container>
</li>
</ul>
</ng-container>
<!-- Slider Template for Tab Content -->
<ng-template #sliderTemplate let-slides="slides">
<div uk-slider class="uk-slider uk-margin-medium-top">
<ul class="uk-slider-items" uk-height-match="target: .uk-card; row: false">
<!-- Margin right -->
<li *ngFor="let slide of slides; let i=index" class="uk-width-1-1">
<div class="uk-padding-small">
<div uk-grid class="uk-grid uk-child-width-1-3@l uk-child-width-1-2@m"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<ng-container *ngIf="i === 0">
<div *ngFor="let stakeholder of slide" uk-scrollspy-class>
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
</div>
</ng-container>
<ng-container *ngIf="i !== 0">
<div *ngFor="let stakeholder of slide">
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
</div>
</ng-container>
</div>
</div>
</li>
</ul>
<ul class="uk-slider-nav uk-dotnav uk-flex-center uk-margin-medium-top"></ul>
</div>
</ng-template>
</div>
</ng-template>
</div>
</div>
<div #contact class="uk-section uk-container uk-container-large uk-margin-large-bottom contact-us">
<div class="uk-grid" uk-grid>
<div class="left uk-position-relative uk-width-1-1 uk-width-1-5@m">
<img class="uk-box-shadow-large" src="assets/monitor-assets/avatar1.jpg">
</div>
<div class="uk-text-center uk-width-expand">
<h3>
Need more information or a demo? Get in touch and let us show you in practice how you can apply OpenAIRE Monitor to your needs<span class="uk-text-primary">.</span>
</h3>
<a class="uk-button uk-button-primary uk-text-uppercase uk-margin-medium-top uk-margin-medium-bottom"
routerLink="/contact-us">Contact us</a></div>
<div class="right uk-position-relative uk-width-1-1 uk-width-1-5@m">
<img class="uk-box-shadow-large" src="assets/monitor-assets/avatar2.jpg">
</div>
<div #contact
class="uk-section uk-container uk-container-large uk-margin-large-bottom uk-flex uk-flex-center uk-position-relative contact-us">
<img class="uk-box-shadow-large one" src="assets/monitor-assets/curators/1.jpg">
<img class="uk-box-shadow-large two" src="assets/monitor-assets/curators/2.jpg">
<img class="uk-box-shadow-large three" src="assets/monitor-assets/curators/3.jpg">
<img class="uk-box-shadow-large four" src="assets/monitor-assets/curators/4.jpg">
<div class="uk-text-center uk-width-2-3@l uk-width-1-2">
<h3>
Need more information or a demo? Get in touch and let us show you in practice how you can apply OpenAIRE
Monitor to your needs<span class="uk-text-primary">.</span>
</h3>
<a class="uk-button uk-button-primary uk-text-uppercase uk-margin-medium-top uk-margin-medium-bottom"
routerLink="/contact-us">Contact us</a>
</div>
</div>
</div>
<div *ngIf="isMobile || isServer" class="uk-hidden@m">
<div class="uk-section uk-padding-remove-bottom uk-overflow-hidden home-background">
<div class="uk-container uk-container-large"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-margin-large-bottom" style="max-width: 500px;">
<h1 class="uk-heading-small" uk-scrollspy-class>
A new era of <span class="uk-text-primary">monitoring</span> research<span
class="uk-text-primary">.</span>
</h1>
<div class="uk-text-large uk-margin-medium-top" uk-scrollspy-class>
<div>Discover, track and understand trends and impact pathways for your organization.</div>
<div>Make informed decisions.</div>
</div>
</div>
</div>
<div class="uk-container uk-padding-remove-right uk-height-medium uk-position-relative">
<img class="uk-position-absolute" style="width: 250px; right: -10%; bottom:-35%; padding: 1px;"
src="assets/monitor-assets/home/monitor.jpg">
<img class="uk-position-absolute" style="width: 250px; right: -10%; bottom:-35%;"
src="assets/monitor-assets/home/mask.svg">
<div>
<a class="uk-button uk-button-primary uk-text-uppercase uk-position-relative" routerLink="/get-started">Get
Started</a>
</div>
</div>
</div>
<div class="uk-section uk-section-small tablet-section">
<div class="uk-container">
<div>
<span class="uk-text-large uk-text-primary">Funders. Research Institutions. Research Initiatives.</span>
<h2 class="uk-h1 uk-margin-remove-top">Simplify research<br> monitoring & evaluation<span
class="uk-text-primary">.</span></h2>
</div>
<div class="uk-grid uk-child-width-1-1 uk-child-width-1-2@s uk-flex uk-flex-middle uk-margin-medium-top" uk-grid>
<div class="uk-visible@s">
<img src="assets/monitor-assets/home/ipad.png" alt="ipad" loading="lazy">
</div>
<div class="uk-hidden@s uk-margin-medium-left">
<img src="assets/monitor-assets/home/ipad.png" alt="ipad" loading="lazy">
</div>
<div class="uk-margin-medium-bottom">
<div class="uk-grid uk-child-width-1-1" uk-grid>
<ng-container *ngTemplateOutlet="tablet_text"></ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-section-large uk-position-relative uk-overflow-hidden">
<img class="uk-position-absolute" src="assets/monitor-assets/home/graph.svg" alt="OpenAIRE Graph" loading="lazy"
style="width: 200px; top: -80px; left: -80px;">
<img class="uk-position-absolute" src="assets/monitor-assets/home/graph.svg" alt="OpenAIRE Graph" loading="lazy"
style="width: 200px; top: 60px; right: -145px; transform: rotate(-25deg)">
<div class="uk-container uk-container-large uk-section uk-section-large uk-padding-remove-bottom">
<div class="uk-flex uk-flex-column uk-flex-middle">
<h2 class="uk-h1 uk-text-center uk-padding uk-padding-remove-vertical uk-margin-top">
Tap into the OpenAIRE Research Graph<span class="uk-text-primary">.</span>
</h2>
<div class="uk-text-center">
The OpenAIRE Graph is one of the largest open scholarly record collections
worldwide, key in fostering Open Science and establishing its practices in the daily
research activities. Conceived as a public and transparent good, populated out of data
sources trusted by scientists, the Graph aims at bringing discovery, monitoring, and
assessment of science back in the hands of the scientific community.
</div>
</div>
</div>
<div class="uk-container uk-container-large uk-position-relative uk-overflow-hidden">
<img class="uk-position-absolute" src="assets/monitor-assets/home/graph.svg" alt="OpenAIRE Graph"
loading="lazy"
style="width: 200px; top: 35%; right: -170px; transform: rotate(-100deg);">
<div class="uk-flex uk-flex-center uk-margin-medium-top uk-margin-medium-bottom">
<div class="uk-width-1-1 uk-flex-center uk-grid uk-child-width-1-2" uk-grid
uk-height-match="target: .targetName;"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<ng-template #numberCardMobile let-numberSize="numberSize" let-name="name" let-url="url">
<a class="uk-position-relative uk-display-block uk-link-reset"
[href]="url" target="_blank" uk-scrollspy-class>
<div class="uk-flex uk-flex-center uk-flex-column uk-margin-auto uk-margin-top">
<div class="uk-text-center">
<div class="uk-text-background uk-text-bold number">{{(numberSize.number|number) + numberSize.size}}</div>
<div class="uk-margin-small-top uk-text-bolder targetName">{{name}}</div>
</div>
</div>
</a>
</ng-template>
<div *ngIf="publicationsSize">
<ng-container *ngTemplateOutlet="numberCardMobile; context: {numberSize: publicationsSize, name: openaireEntities.PUBLICATIONS,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=publications'}">
</ng-container>
</div>
<div *ngIf="datasetsSize">
<ng-container *ngTemplateOutlet="numberCardMobile; context: {numberSize: datasetsSize, name: openaireEntities.DATASETS,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=datasets'}">
</ng-container>
</div>
<div *ngIf="softwareSize">
<ng-container *ngTemplateOutlet="numberCardMobile; context: {numberSize: softwareSize, name: openaireEntities.SOFTWARE,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=software'}">
</ng-container>
</div>
<div *ngIf="otherSize">
<ng-container *ngTemplateOutlet="numberCardMobile; context: {numberSize: otherSize, name: openaireEntities.OTHER,
url: 'https://explore.openaire.eu/search/find/research-outcomes?type=other'}">
</ng-container>
</div>
<div *ngIf="fundersSize">
<ng-container *ngTemplateOutlet="numberCardMobile; context: {numberSize: fundersSize, name: stakeholderEntities.FUNDERS,
url: 'https://explore.openaire.eu/search/find/projects'}">
</ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-section-large uk-container uk-container-large uk-background-muted">
<div class="uk-text-center">
<div class="">
<h3 class="uk-heading-small uk-margin-remove">Openness.</h3>
<h3 class="uk-heading-small uk-margin-remove">Usability.</h3>
<h3 class="uk-heading-small uk-margin-remove">Replicability.</h3>
<h3 class="uk-heading-small uk-text-primary uk-margin-remove">Trust.</h3>
<div class="uk-text-large uk-margin-medium-top uk-margin-medium-bottom">Learn and work with a thriving
community behind you.
</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/about/learn-how">
<span class="uk-flex uk-flex-middle">
<span>Learn More</span>
</span>
</a>
</div>
<div class="uk-margin-xlarge-top"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; delay: 250">
<div class="">
<div uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-auto">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Global outlook"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-top">Comprehensive outlook</h5>
<div>
Monitor is built on the <a href="https://graph.openaire.eu/" class="text-graph"
target="_blank">OpenAIRE Graph</a>. A global linked research
graph, a shared data resource from open initiatives around the world. Our indicators cover a
wide range of themes from input to impact.
</div>
</div>
<div class="uk-margin-large-top" uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-auto">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-top">Showcasing, monitoring, analysis</h5>
<div>
Customize your dashboard by choosing from a variety of pre-defined metrics and select which
ones to show publicly, which to invited team members, and which are still work in progress
(private).
</div>
</div>
<div class="uk-margin-large-top" uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-auto">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Transparent methodology"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-top">Transparent methodology</h5>
<div>
We base our service on Open Science principles. We rely on open data sources, and document
our algorithms for every metric and indicator we publish.
</div>
</div>
<div class="uk-margin-large-top" uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-auto">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Minimum effort to join"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-top">Minimum effort to join</h5>
<div>
You only share some information with us to include in our backend aggregating and data
mining, and we deliver a view of your world.
</div>
</div>
<div class="uk-margin-large-top" uk-scrollspy-class>
<div class="uk-icon-bg-shadow uk-margin-auto">
<icon name="done" [flex]="true" ratio="1.5" visuallyHidden="Customised to your needs"
customClass="uk-text-background"></icon>
</div>
<h5 class="uk-margin-top">Tailor-made monitoring, responsive to your needs</h5>
<div>
Our experts work with you on demand in one-on-one sessions to provide additional indicators
and curate your data.
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-section-large uk-padding-remove-bottom uk-container uk-container-large">
<div class="uk-margin-bottom">
<h2 class="uk-heading-xlarge">{{stakeholderEntities.STAKEHOLDERS}} in action<span
class="uk-text-primary">.</span></h2>
<div class="uk-text-large">
View existing {{stakeholderEntities.STAKEHOLDERS | lowercase}} from collaborating organizations. Get a
preview on how they work and how our service can be customized to serve you.
</div>
</div>
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/browse">
<span class="uk-flex uk-flex-middle">
<span>Browse</span>
</span>
</a>
</div>
<div class="uk-margin-xlarge-top uk-margin-xlarge-bottom">
<div *ngIf="loading" class="uk-height-large uk-flex uk-flex-column uk-flex-center">
<loading></loading>
</div>
<ng-container *ngIf="!loading">
<div class="uk-padding-small uk-padding-remove-right">
<slider-tabs position="horizontal">
<slider-tab [tabId]="'all'" tabTitle="All"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.FUNDERS"
tabTitle="{{stakeholderEntities.FUNDERS | titlecase}}"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.RIS"
tabTitle="{{stakeholderEntities.RIS | titlecase}}"></slider-tab>
<slider-tab [tabId]="stakeholderEntities.ORGANIZATIONS"
tabTitle="{{stakeholderEntities.ORGANIZATIONS | titlecase}}"></slider-tab>
</slider-tabs>
</div>
<ul class="uk-switcher uk-margin-top uk-overflow-hidden">
<li [id]="'all'" class="uk-overflow-auto">
<div class="uk-padding-small uk-padding-remove-right"
uk-height-match="target: .uk-card; row: false">
<div class="uk-grid uk-grid-small uk-flex-nowrap"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<div *ngFor="let stakeholder of stakeholders"
class="uk-width-4-5 uk-width-2-5@s uk-flex-none" uk-scrollspy-class>
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
</div>
</div>
</div>
</li>
<li [id]="stakeholderEntities.FUNDERS" class="uk-overflow-auto">
<div class="uk-padding-small uk-padding-remove-right"
uk-height-match="target: .uk-card; row: false">
<div class="uk-flex uk-grid uk-grid-small uk-flex-nowrap"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<div *ngFor="let funder of funders" class="uk-width-4-5 uk-width-2-5@s uk-flex-none"
uk-scrollspy-class>
<browse-stakeholder [stakeholder]="funder"></browse-stakeholder>
</div>
</div>
</div>
</li>
<li [id]="stakeholderEntities.RIS" class="uk-overflow-auto">
<div class="uk-padding-small uk-padding-remove-right"
uk-height-match="target: .uk-card; row: false">
<div class="uk-flex uk-grid uk-grid-small uk-flex-nowrap"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<div *ngFor="let ri of ris" class="uk-width-4-5 uk-width-2-5@s uk-flex-none"
uk-scrollspy-class>
<browse-stakeholder [stakeholder]="ri"></browse-stakeholder>
</div>
</div>
</div>
</li>
<li [id]="stakeholderEntities.ORGANIZATIONS" class="uk-overflow-auto">
<div class="uk-padding-small uk-padding-remove-right"
uk-height-match="target: .uk-card; row: false">
<div class="uk-flex uk-grid uk-grid-small uk-flex-nowrap"
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-fade; repeat: true">
<div *ngFor="let organization of organizations"
class="uk-width-4-5 uk-width-2-5@s uk-flex-none" uk-scrollspy-class>
<browse-stakeholder [stakeholder]="organization"></browse-stakeholder>
</div>
</div>
</div>
</li>
</ul>
</ng-container>
</div>
<div class="uk-section uk-container uk-container-large uk-margin-large-bottom contact-us">
<div class="uk-position-relative">
<h2 class="uk-margin-medium-bottom">
Need more information or a demo?
</h2>
<div class="uk-text-large">
Get in touch and let us show you in practice how you can apply OpenAIRE Monitor to your needs<span
class="uk-text-primary">.</span>
</div>
<a class="uk-button uk-button-primary uk-text-uppercase uk-margin-medium-top uk-margin-medium-bottom"
routerLink="/contact-us">Contact us</a>
</div>
</div>
</div>
</div>

View File

@ -1,15 +1,24 @@
@import (reference) "~src/assets/openaire-theme/less/_import-variables";
@home-curator-image-size: 136px;
.home-background {
background-color: @global-inverse-color;
}
.tablet-section {
background-image:linear-gradient(180deg, @global-inverse-color 0%, @global-muted-background 100%);
background-repeat: no-repeat;
background-position: top;
background-size: cover;
}
@media only screen and (min-width: @breakpoint-medium) {
.monitor-dark-logo-background {
background-image: url("~src/assets/monitor-assets/home/monitor-dark-logo.svg");
.tablet-section {
background-image:url("~src/assets/monitor-assets/home/monitor-dark-logo.svg"), linear-gradient(180deg, @global-inverse-color 0%, @global-muted-background 100%);
background-repeat: no-repeat;
background-position: left 95%;
background-size: 65%;
background-position: -5% 95%, top;
background-size: 60%, cover;
}
}
@ -28,26 +37,39 @@
.contact-us {
.left img {
img {
position: absolute;
top: 0;
left: 0;
width: 160px;
height: 190px;
width: @home-curator-image-size;
height: @home-curator-image-size;
object-fit: cover;
border-radius: 18px;
transform: matrix(1, -0.07, 0.07, 1, 0, 0);
}
.right img {
position: absolute;
bottom: 0;
right: 0;
width: 160px;
height: 190px;
object-fit: cover;
border-radius: 18px;
transform: matrix(1, 0.07, -0.07, 1, 0, 0);
}
&.one {
top: 0;
left: @global-medium-gutter + (@home-curator-image-size/2);
transform: rotate(10deg);
}
&.two {
bottom: 0;
left: @global-medium-gutter;
transform: rotate(-10deg);
object-position: top;
}
&.three {
top: 0;
right: @global-medium-gutter;
transform: rotate(-10deg);
object-position: -60px;
}
&.four {
bottom: 0;
right: @global-medium-gutter + (@home-curator-image-size/2);
transform: rotate(-10deg);
object-position: 0;
}
}
}

View File

@ -1,9 +1,12 @@
import {
AfterViewInit,
ChangeDetectorRef,
Component,
ElementRef,
Inject,
OnDestroy,
OnInit,
PLATFORM_ID,
QueryList,
ViewChild,
ViewChildren
@ -12,7 +15,6 @@ import {ActivatedRoute, Router} from '@angular/router';
import {Meta, Title} from '@angular/platform-browser';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
import {ErrorMessagesComponent} from '../openaireLibrary/utils/errorMessages.component';
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
@ -30,6 +32,8 @@ import {Subscriber} from "rxjs";
import {QuickContactService} from '../openaireLibrary/sharedComponents/quick-contact/quick-contact.service';
import {IDeactivateComponent} from "../openaireLibrary/utils/can-exit.guard";
import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields";
import {isPlatformServer} from '@angular/common';
import {LayoutService} from '../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service';
@Component({
selector: 'home',
@ -62,16 +66,15 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
public softwareSize: any = null;
public otherSize: any = null;
public fundersSize: any = null;
public showQuickContact: boolean = true;
@ViewChild('AlertModal') modal;
private errorMessages: ErrorMessagesComponent;
private subscriptions = [];
private mutationObserver: MutationObserver;
private user: User;
@ViewChildren('scrolling_element') elements: QueryList<ElementRef>;
@ViewChild('contact') contact: ElementRef;
isMobile: boolean = false;
isServer: boolean;
constructor(
private route: ActivatedRoute,
private _router: Router,
private _meta: Meta,
private _title: Title,
@ -83,7 +86,10 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
private seoService: SEOService,
private _refineFieldResultsService: RefineFieldResultsService,
private _searchResearchResultsService: SearchResearchResultsService,
private quickContactService: QuickContactService) {
private quickContactService: QuickContactService,
private layoutService: LayoutService,
private cdr: ChangeDetectorRef,
@Inject(PLATFORM_ID) private platform: any) {
this._meta.updateTag({content: this.description}, "name='description'");
this._meta.updateTag({content: this.description}, "property='og:description'");
this._meta.updateTag({content: this.pageTitle}, "property='og:title'");
@ -91,15 +97,15 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
this.errorCodes = new ErrorCodes();
this.errorMessages = new ErrorMessagesComponent();
this.status = this.errorCodes.LOADING;
this.isServer = isPlatformServer(this.platform);
this.quickContactService.setDisplay(false);
}
public ngOnInit() {
let url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(url, false);
this._meta.updateTag({content: url}, "property='og:url'");
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Monitor", this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Monitor").subscribe());
this.getNumbers();
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
this.directLink = value;
@ -108,6 +114,10 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
this.user = user;
this.getStakeholders();
}));
this.layoutService.isMobile.subscribe(isMobile => {
this.isMobile = isMobile;
this.cdr.detectChanges();
});
}
canExit(): boolean {
@ -116,6 +126,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
}
ngOnDestroy() {
this.quickContactService.setDisplay(true);
this.clear();
}
@ -127,6 +138,9 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
value.disconnect();
}
});
if(this.mutationObserver) {
this.mutationObserver.disconnect();
}
}
ngAfterViewInit() {
@ -143,36 +157,13 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
};
let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting && this.showQuickContact) {
this.showQuickContact = false;
this.quickContactService.setDisplay(this.showQuickContact);
} else if (!entry.isIntersecting && !this.showQuickContact) {
this.showQuickContact = true;
this.quickContactService.setDisplay(this.showQuickContact);
}
this.quickContactService.setDisplay(!entry.isIntersecting);
});
}, options);
intersectionObserver.observe(this.contact.nativeElement);
let mutationObserver = new MutationObserver(entries => {
entries.forEach(entry => {
if (entry.attributeName === 'style') {
let opacities: number[] = this.elements.map(element => +element.nativeElement.style.opacity);
let active: number = opacities.indexOf(Math.max(...opacities));
this.elements.forEach((element, index) => {
if (index === active) {
element.nativeElement.classList.remove('uk-disabled');
} else {
element.nativeElement.classList.add('uk-disabled');
}
})
}
})
});
this.elements.forEach(element => {
mutationObserver.observe(element.nativeElement, {attributes: true});
});
if(this.contact) {
intersectionObserver.observe(this.contact.nativeElement);
}
this.subscriptions.push(intersectionObserver);
this.subscriptions.push(mutationObserver);
}
private getPageContents() {
@ -188,7 +179,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
}
getNumbers() {
this.subscriptions.push(this._refineFieldResultsService.getRefineFieldsResultsByEntityName(["funder"], "project", this.properties).subscribe(
this.subscriptions.push(this._refineFieldResultsService.getAllRefineFieldResultsByFieldName("funder", "project", this.properties).subscribe(
data => {
if (data[1].length > 0 && data[1][0].filterId == "funder" && data[1][0].values) {
this.fundersSize = NumberUtils.roundNumber(data[1][0].values.length);

View File

@ -2,11 +2,8 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {RouterModule} from '@angular/router';
import {HomeComponent} from './home.component';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
import {ErrorMessagesModule} from '../openaireLibrary/utils/errorMessages.module';
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
@ -23,12 +20,14 @@ import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.modu
import {SectionScrollModule} from '../openaireLibrary/utils/section-scroll/section-scroll.module';
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {BrowseStakeholderModule} from "../browse-stakeholder/browse-stakeholder.module";
import {SliderTabsModule} from '../openaireLibrary/sharedComponents/tabs/slider-tabs.module';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule, ErrorMessagesModule, OtherPortalsModule,
HelperModule, Schema2jsonldModule, SEOServiceModule, HomeRoutingModule, SearchResearchResultsServiceModule,
RefineFieldResultsServiceModule, AlertModalModule, IconsModule, UrlPrefixModule, LogoUrlPipeModule, SectionScrollModule, LoadingModule, BrowseStakeholderModule
RefineFieldResultsServiceModule, AlertModalModule, IconsModule, UrlPrefixModule, LogoUrlPipeModule,
SectionScrollModule, LoadingModule, BrowseStakeholderModule, SliderTabsModule
],
declarations: [
HomeComponent

View File

@ -64,9 +64,7 @@ export class MyStakeholdersComponent {
var url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(url, false);
this._meta.updateTag({content: url}, "property='og:url'");
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Connect", this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Connect").subscribe());
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.user = user;
if (this.user) {

@ -1 +1 @@
Subproject commit 10b386179c34b3e33e4466b17a9622c7c81e67fc
Subproject commit 1a7624eed148c35659891198c403580dd48e3619

View File

@ -1,4 +1,4 @@
import {Component, ViewChild} from "@angular/core";
import {ChangeDetectorRef, Component, ViewChild} from "@angular/core";
import {SearchUtilsClass} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ErrorMessagesComponent} from "../openaireLibrary/utils/errorMessages.component";
import {ErrorCodes} from "../openaireLibrary/utils/properties/errorCodes";
@ -16,13 +16,14 @@ import {properties} from "../../environments/environment";
import {Subscriber} from "rxjs";
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {TitleCasePipe} from "@angular/common";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
@Component({
selector: 'search-stakeholders',
template: `
<new-search-page pageTitle="OpenAIRE-Monitor | Browse {{this.stakeholderEntities.STAKEHOLDERS}}"
[hasPrefix]=false [piwikSiteId]="piwikSiteId"
[formPlaceholderText]="'Search OpenAIRE Monitor ' + this.stakeholderEntities.STAKEHOLDERS"
[hasPrefix]=false
[formPlaceholderText]="'Search ' + (!isMobile?'OpenAIRE Monitor ':'') + this.stakeholderEntities.STAKEHOLDERS"
[type]="(results.length > 1) ? this.stakeholderEntities.STAKEHOLDERS:this.stakeholderEntities.STAKEHOLDER"
entityType="stakeholder"
[results]="results" [searchUtils]="searchUtils"
@ -38,7 +39,6 @@ import {TitleCasePipe} from "@angular/common";
`
})
export class SearchStakeholdersComponent {
public piwikSiteId = null;
private errorCodes: ErrorCodes;
private errorMessages: ErrorMessagesComponent;
public results: StakeholderInfo[] = [];
@ -67,6 +67,7 @@ export class SearchStakeholdersComponent {
public stakeholderEntities = StakeholderEntities;
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Browse ' + this.stakeholderEntities.STAKEHOLDERS}];
public searchForm: SearchForm = {class: 'uk-background-muted', dark: false};
public isMobile: boolean = false;
properties: EnvProperties = properties;
@ViewChild(NewSearchPageComponent, {static: true}) searchPage: NewSearchPageComponent;
private user: User;
@ -74,14 +75,15 @@ export class SearchStakeholdersComponent {
constructor(private route: ActivatedRoute,
private _stakeholderService: StakeholderService,
private userManagementService: UserManagementService,
public titleCasePipe: TitleCasePipe) {
public titleCasePipe: TitleCasePipe,
private layoutService: LayoutService,
private cdr: ChangeDetectorRef) {
this.errorCodes = new ErrorCodes();
this.errorMessages = new ErrorMessagesComponent();
this.searchUtils.status = this.errorCodes.LOADING;
}
public ngOnInit() {
this.piwikSiteId = this.properties.piwikSiteId;
this.baseUrl = this.properties.searchLinkToStakeholders;
this.subscriptions.push(this.route.queryParams.subscribe(params => {
this.searchPage.resultsPerPage = 10;
@ -109,6 +111,10 @@ export class SearchStakeholdersComponent {
this.initFunders(queryParams);
}
}));
this.layoutService.isMobile.subscribe(isMobile => {
this.isMobile = isMobile;
this.cdr.detectChanges();
})
}
ngOnDestroy() {

View File

@ -0,0 +1,41 @@
<div class="uk-visible@m">
<div class="uk-background-muted">
<div class="uk-container uk-container-large uk-section uk-section-small">
<div class="uk-padding-small uk-padding-remove-horizontal">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-flex uk-flex-middle" uk-scrollspy-class>
<div class="uk-width-1-2 uk-margin-medium-bottom">
<h1 class="uk-margin-medium-top">How can we help you?</h1>
<div class="uk-margin-medium-bottom">Monitor expert support team is ready and excited to help.</div>
<a routerLink="/contact-us" class="uk-button uk-button-primary">Contact Us</a>
</div>
<div class="uk-position-relative uk-width-1-2 uk-visible@l contact-us">
<img class="uk-box-shadow-large one" src="../../assets/monitor-assets/curators/1.jpg">
<img class="uk-box-shadow-large two" src="../../assets/monitor-assets/curators/2.jpg">
<img class="uk-box-shadow-large three" src="../../assets/monitor-assets/curators/3.jpg">
<img class="uk-box-shadow-large four" src="../../assets/monitor-assets/curators/4.jpg">
</div>
</div>
</div>
</div>
<div class="uk-margin-large-top">
<h3 class="uk-text-center">Frequently Asked Questions</h3>
</div>
<helper *ngIf="pageContents" [texts]="pageContents.top"></helper>
</div>
<div class="uk-hidden@m">
<div class="uk-background-muted">
<div class="uk-section-small uk-container uk-container-large">
<div class="uk-text-center" uk-scrollspy-class>
<h1 class="uk-margin-top">How can we help you?</h1>
<div class="uk-margin-medium-bottom">Monitor expert support team is ready and excited to help.</div>
<a routerLink="/contact-us" class="uk-button uk-button-small uk-button-primary">Contact Us</a>
</div>
</div>
</div>
<div class="uk-margin-medium-top">
<h3 class="uk-text-center">Frequently Asked Questions</h3>
</div>
<helper *ngIf="pageContents" [texts]="pageContents.top"></helper>
</div>

View File

@ -0,0 +1,44 @@
@import (reference) "~../../assets/openaire-theme/less/_import-variables";
@faqs-curator-image-size: 136px;
@faqs-contact-us-height: 450px;
.contact-us {
height: @faqs-contact-us-height;
img {
position: absolute;
width: @faqs-curator-image-size;
height: @faqs-curator-image-size;
object-fit: cover;
border-radius: 18px;
&.one {
top: @global-medium-gutter;
right: @global-medium-gutter + (@faqs-curator-image-size/2);
transform: rotate(10deg);
}
&.two {
bottom: @global-medium-gutter;
right: @global-medium-gutter + (@faqs-curator-image-size);
transform: rotate(-10deg);
object-position: top;
}
&.three {
top: 0;
left: @global-medium-gutter + (@faqs-curator-image-size);
transform: rotate(-10deg);
object-position: -60px;
}
&.four {
bottom: 2*@global-medium-gutter;
left: 2*@global-medium-gutter;
transform: rotate(-10deg);
object-position: 0;
}
}
}

View File

@ -10,17 +10,18 @@ import {Subscriber} from "rxjs";
import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component';
@Component({
selector: 'faqs',
templateUrl: 'faqs.component.html'
selector: 'support',
templateUrl: 'support.component.html',
styleUrls: ['support.component.less']
})
export class FaqsComponent {
export class SupportComponent {
public pageContents = null;
public divContents = null;
public url: string = null;
public pageTitle: string = "OpenAIRE - Monitor | FAQs";
public description: string = "OpenAIRE - Monitor | FAQs";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'FAQs'}];
public pageTitle: string = "OpenAIRE - Monitor | Support";
public description: string = "OpenAIRE - Monitor | Support";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Support'}];
public properties: EnvProperties = properties;
subscriptions = [];
@ -35,9 +36,7 @@ export class FaqsComponent {
}
public ngOnInit() {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);

View File

@ -0,0 +1,22 @@
import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";
import {RouterModule} from "@angular/router";
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
import {SupportComponent} from "./support.component";
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
@NgModule({
declarations: [SupportComponent],
imports: [CommonModule, RouterModule.forChild([
{
path: '',
component: SupportComponent,
data: {extraOffset: 50}
}
]), BreadcrumbsModule, HelperModule],
exports: [SupportComponent],
providers: [PreviousRouteRecorder, PiwikService]
})
export class SupportModule {}

@ -1 +1 @@
Subproject commit 24779729b6f6bd4f099ed5645786b6452120d3d6
Subproject commit e77e591bbb8264895adb9934210844e70f01e219

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

View File

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

View File

@ -0,0 +1,159 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="418.875" height="364.357" viewBox="0 0 418.875 364.357">
<defs>
<filter id="dark" x="228.772" y="231.79" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light" x="198.772" y="201.79" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-2"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-2"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="dark-2" x="65.992" y="30" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-3"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur-3"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light-2" x="35.992" y="0" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-4"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-4"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="dark-3" x="30" y="185.9" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-5"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur-5"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light-3" x="0" y="155.9" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-6"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-6"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="dark-4" x="165.979" y="45.9" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-7"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur-7"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light-4" x="135.979" y="15.9" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-8"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-8"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="dark-5" x="264.764" y="75.891" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-9"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur-9"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light-5" x="234.764" y="45.891" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-10"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-10"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="dark-6" x="128.412" y="208.621" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="15" dy="15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-11"/>
<feFlood flood-opacity="0.102"/>
<feComposite operator="in" in2="blur-11"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="light-6" x="98.412" y="178.621" width="132.567" height="132.567" filterUnits="userSpaceOnUse">
<feOffset dx="-15" dy="-15" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="12.5" result="blur-12"/>
<feFlood flood-color="#fff"/>
<feComposite operator="in" in2="blur-12"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g id="Group_13415" data-name="Group 13415" transform="translate(-799.043 -94.379)">
<g id="Group_12983" data-name="Group 12983" transform="translate(86.549 -222.191) rotate(13)">
<path id="Path_104359" data-name="Path 104359" d="M-18163.937-17731.363s95.709-17.684,176.221-17.684,199.334,3.746,180.857,26.24-236.955,67.047-236.955,67.047-182.137,44.2-120.123,64.879,357.078,0,357.078,0" transform="translate(19010.223 17943)" fill="none" stroke="#dedede" stroke-width="1"/>
<g id="Group_12980" data-name="Group 12980" transform="translate(931.002 -818)">
<g id="Group_12847" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -312.56, -188.82)" filter="url(#dark)">
<rect id="dark-7" data-name="dark" width="48" height="48" rx="24" transform="translate(262.07 254.29) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -312.56, -188.82)" filter="url(#light)">
<rect id="light-7" data-name="light" width="48" height="48" rx="24" transform="translate(262.07 254.29) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
</g>
<g id="Group_12979" data-name="Group 12979" transform="translate(1014.92 -1011.586) rotate(13)">
<g id="Group_12847-2" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -108.56, -28.82)" filter="url(#dark-2)">
<rect id="dark-8" data-name="dark" width="48" height="48" rx="24" transform="translate(99.29 52.5) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -108.56, -28.82)" filter="url(#light-2)">
<rect id="light-8" data-name="light" width="48" height="48" rx="24" transform="translate(99.29 52.5) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral-2" data-name="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
<g id="Group_12982" data-name="Group 12982" transform="translate(978.928 -855.686) rotate(13)">
<g id="Group_12847-3" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -108.56, -188.82)" filter="url(#dark-3)">
<rect id="dark-9" data-name="dark" width="48" height="48" rx="24" transform="translate(63.3 208.4) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -108.56, -188.82)" filter="url(#light-3)">
<rect id="light-9" data-name="light" width="48" height="48" rx="24" transform="translate(63.3 208.4) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral-3" data-name="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
<g id="Group_12977" data-name="Group 12977" transform="translate(1114.906 -995.686) rotate(13)">
<g id="Group_12847-4" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -209.56, -21.82)" filter="url(#dark-4)">
<rect id="dark-10" data-name="dark" width="48" height="48" rx="24" transform="translate(199.28 68.4) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -209.56, -21.82)" filter="url(#light-4)">
<rect id="light-10" data-name="light" width="48" height="48" rx="24" transform="translate(199.28 68.4) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral-4" data-name="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
<g id="Group_12978" data-name="Group 12978" transform="translate(1213.691 -965.695) rotate(13)">
<g id="Group_12847-5" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -312.56, -28.82)" filter="url(#dark-5)">
<rect id="dark-11" data-name="dark" width="48" height="48" rx="24" transform="translate(298.06 98.39) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -312.56, -28.82)" filter="url(#light-5)">
<rect id="light-11" data-name="light" width="48" height="48" rx="24" transform="translate(298.06 98.39) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral-5" data-name="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
<g id="Group_12981" data-name="Group 12981" transform="translate(1077.34 -832.965) rotate(13)">
<g id="Group_12847-6" data-name="Group 12847" transform="translate(147 1155)">
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -209.56, -188.82)" filter="url(#dark-6)">
<rect id="dark-12" data-name="dark" width="48" height="48" rx="24" transform="translate(161.71 231.12) rotate(13)" fill="#f9f9f9"/>
</g>
<g transform="matrix(0.97, -0.22, 0.22, 0.97, -209.56, -188.82)" filter="url(#light-6)">
<rect id="light-12" data-name="light" width="48" height="48" rx="24" transform="translate(161.71 231.12) rotate(13)" fill="#f9f9f9"/>
</g>
<rect id="neutral-6" data-name="neutral" width="48" height="48" rx="24" transform="translate(-0.001 -0.001)" fill="#f9f9f9"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

@ -1 +1 @@
Subproject commit a9acdff7b3249794e002bffff52c07babc3d9d06
Subproject commit 5b2ec5ad3c5d43fcd69f82ddfa3a841a0d34ba0c

View File

@ -5,7 +5,6 @@ export let properties: EnvProperties = {
enablePiwikTrack: true,
useCache: true,
showContent: true,
framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/",
@ -28,11 +27,6 @@ export let properties: EnvProperties = {
r3DataURL: "http://service.re3data.org/repository/",
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",
utilsService: "https://demo.openaire.eu/utils-service",
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",

View File

@ -5,7 +5,6 @@ export let properties: EnvProperties = {
enablePiwikTrack: true,
useCache: true,
showContent: true,
framesAPIURL: "https://www.openaire.eu/stats3/",
statisticsAPIURL: "https://services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
statisticsFrameNewAPIURL: "",
@ -28,11 +27,6 @@ export let properties: EnvProperties = {
r3DataURL: "http://service.re3data.org/repository/",
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",
utilsService: "https://explore.openaire.eu/utils-service",
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",

View File

@ -5,7 +5,6 @@ export let properties: EnvProperties = {
enablePiwikTrack: false,
useCache: false,
showContent: true,
framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "http://88.197.53.71:8080/stats-api/",
@ -28,11 +27,6 @@ export let properties: EnvProperties = {
r3DataURL: "http://service.re3data.org/repository/",
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",
utilsService: "http://mpagasas.di.uoa.gr:8000",
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",

View File

@ -12,4 +12,4 @@ if (properties.environment !== "development") {
}
export {AppServerModule} from './app/app.server.module';
export {renderModule} from '@angular/platform-server';

View File

@ -7,8 +7,6 @@ import {
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
@ -16,7 +14,3 @@ getTestBed().initTestEnvironment(
teardown: { destroyAfterEach: false }
}
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -2,7 +2,6 @@
"extends": "./tsconfig.app.json",
"compilerOptions": {
"outDir": "../out-tsc/app-server",
"target": "es2016",
"types": [
"node"
]

View File

@ -10,13 +10,14 @@
"moduleResolution": "node",
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2020",
"target": "ES2022",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
],
"useDefineForClassFields": false
}
}