Compare commits
213 Commits
production
...
master
|
@ -1,3 +1,4 @@
|
||||||
|
.angular/
|
||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
dist/
|
||||||
.idea/
|
.idea/
|
||||||
|
|
|
@ -4,3 +4,6 @@
|
||||||
[submodule "src/assets/common-assets"]
|
[submodule "src/assets/common-assets"]
|
||||||
path = src/assets/common-assets
|
path = src/assets/common-assets
|
||||||
url = gitea@code-repo.d4science.org:MaDgIK/openaire-assets.git
|
url = gitea@code-repo.d4science.org:MaDgIK/openaire-assets.git
|
||||||
|
[submodule "src/assets/openaire-theme"]
|
||||||
|
path = src/assets/openaire-theme
|
||||||
|
url = gitea@code-repo.d4science.org:MaDgIK/openaire-theme.git
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Monitor
|
# 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
|
## Install packages
|
||||||
|
|
||||||
|
|
94
angular.json
|
@ -22,7 +22,6 @@
|
||||||
"skipTests": true
|
"skipTests": true
|
||||||
},
|
},
|
||||||
"@schematics/angular:module": {
|
"@schematics/angular:module": {
|
||||||
"skipTests": true
|
|
||||||
},
|
},
|
||||||
"@schematics/angular:pipe": {
|
"@schematics/angular:pipe": {
|
||||||
"skipTests": true
|
"skipTests": true
|
||||||
|
@ -35,7 +34,6 @@
|
||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:browser",
|
"builder": "@angular-devkit/build-angular:browser",
|
||||||
"options": {
|
"options": {
|
||||||
"aot": true,
|
|
||||||
"outputPath": "dist/monitor/browser",
|
"outputPath": "dist/monitor/browser",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
|
@ -47,23 +45,34 @@
|
||||||
"src/sitemap.xml"
|
"src/sitemap.xml"
|
||||||
],
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"src/styles.css",
|
"src/styles.less",
|
||||||
"src/material.scss"
|
"src/assets/common-assets/library-css/material.scss"
|
||||||
],
|
],
|
||||||
"scripts": [
|
"scripts": [
|
||||||
"src/assets/common-assets/common/jquery.js",
|
"node_modules/uikit/dist/js/uikit.min.js",
|
||||||
"src/assets/common-assets/common/uikit.min.js",
|
"node_modules/uikit/dist/js/uikit-icons.min.js",
|
||||||
"src/assets/common-assets/common/uikit-icons.min.js",
|
|
||||||
"node_modules/jquery/dist/jquery.js"
|
"node_modules/jquery/dist/jquery.js"
|
||||||
]
|
],
|
||||||
|
"vendorChunk": true,
|
||||||
|
"extractLicenses": false,
|
||||||
|
"buildOptimizer": false,
|
||||||
|
"sourceMap": true,
|
||||||
|
"optimization": false,
|
||||||
|
"namedChunks": true
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"development": {
|
"development": {
|
||||||
"optimization": true,
|
"optimization": {
|
||||||
|
"scripts": true,
|
||||||
|
"styles": {
|
||||||
|
"minify": true,
|
||||||
|
"inlineCritical": false
|
||||||
|
},
|
||||||
|
"fonts": true
|
||||||
|
},
|
||||||
"outputHashing": "all",
|
"outputHashing": "all",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"namedChunks": false,
|
"namedChunks": false,
|
||||||
"aot": true,
|
|
||||||
"extractLicenses": true,
|
"extractLicenses": true,
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
|
@ -86,11 +95,17 @@
|
||||||
"with": "src/environments/environment.beta.ts"
|
"with": "src/environments/environment.beta.ts"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"optimization": true,
|
"optimization": {
|
||||||
|
"scripts": true,
|
||||||
|
"styles": {
|
||||||
|
"minify": true,
|
||||||
|
"inlineCritical": false
|
||||||
|
},
|
||||||
|
"fonts": true
|
||||||
|
},
|
||||||
"outputHashing": "all",
|
"outputHashing": "all",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"namedChunks": false,
|
"namedChunks": false,
|
||||||
"aot": true,
|
|
||||||
"extractLicenses": true,
|
"extractLicenses": true,
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
|
@ -126,11 +141,17 @@
|
||||||
"with": "src/environments/environment.prod.ts"
|
"with": "src/environments/environment.prod.ts"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"optimization": true,
|
"optimization": {
|
||||||
|
"scripts": true,
|
||||||
|
"styles": {
|
||||||
|
"minify": true,
|
||||||
|
"inlineCritical": false
|
||||||
|
},
|
||||||
|
"fonts": true
|
||||||
|
},
|
||||||
"outputHashing": "all",
|
"outputHashing": "all",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"namedChunks": false,
|
"namedChunks": false,
|
||||||
"aot": true,
|
|
||||||
"extractLicenses": true,
|
"extractLicenses": true,
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
|
@ -146,7 +167,8 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"defaultConfiguration": ""
|
||||||
},
|
},
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular-devkit/build-angular:dev-server",
|
||||||
|
@ -181,30 +203,23 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": [
|
|
||||||
"src/tsconfig.app.json",
|
|
||||||
"src/tsconfig.spec.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"server": {
|
"server": {
|
||||||
"builder": "@angular-devkit/build-angular:server",
|
"builder": "@angular-devkit/build-angular:server",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist/monitor/server",
|
"outputPath": "dist/monitor/server",
|
||||||
"main": "server.ts",
|
"main": "server.ts",
|
||||||
"tsConfig": "src/tsconfig.server.json"
|
"tsConfig": "src/tsconfig.server.json",
|
||||||
|
"sourceMap": true,
|
||||||
|
"optimization": false,
|
||||||
|
"buildOptimizer": false
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"development": {
|
"development": {
|
||||||
"outputHashing": "media",
|
"outputHashing": "media",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"optimization": true
|
"optimization": true,
|
||||||
|
"vendorChunk": true,
|
||||||
|
"buildOptimizer": true
|
||||||
},
|
},
|
||||||
"beta": {
|
"beta": {
|
||||||
"outputHashing": "media",
|
"outputHashing": "media",
|
||||||
|
@ -215,7 +230,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"optimization": true
|
"optimization": true,
|
||||||
|
"buildOptimizer": true
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"outputHashing": "media",
|
"outputHashing": "media",
|
||||||
|
@ -226,9 +242,11 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"optimization": true
|
"optimization": true,
|
||||||
|
"buildOptimizer": true
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"defaultConfiguration": ""
|
||||||
},
|
},
|
||||||
"serve-ssr": {
|
"serve-ssr": {
|
||||||
"builder": "@nguniversal/builders:ssr-dev-server",
|
"builder": "@nguniversal/builders:ssr-dev-server",
|
||||||
|
@ -274,18 +292,8 @@
|
||||||
"devServerTarget": "monitor:serve:production"
|
"devServerTarget": "monitor:serve:production"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": "e2e/tsconfig.e2e.json",
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"defaultProject": "monitor"
|
|
||||||
}
|
}
|
||||||
|
|
53
package.json
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "monitor",
|
"name": "monitor",
|
||||||
"version": "0.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"start": " ng serve --port 4500 --disable-host-check --host 0.0.0.0",
|
"start": " ng serve --port 4500 --disable-host-check --host 0.0.0.0",
|
||||||
"build": "ng build",
|
"build": "ng build",
|
||||||
"build-dev": "ng build --configuration=development",
|
"build-dev": "ng build --configuration=development",
|
||||||
"build-beta": "ng build --configuration=beta",
|
"build-beta": "ng build --configuration=beta",
|
||||||
"build-prod": "ng build --prod",
|
"build-prod": "ng build --configuration production",
|
||||||
"webpack-bundle-analyzer": "ng build --stats-json && webpack-bundle-analyzer dist/monitor/browser/stats-es2015.json --host 0.0.0.0",
|
"webpack-bundle-analyzer": "ng build --stats-json && webpack-bundle-analyzer dist/monitor/browser/stats-es2015.json --host 0.0.0.0",
|
||||||
"test": "ng test",
|
"test": "ng test",
|
||||||
"e2e": "ng e2e",
|
"e2e": "ng e2e",
|
||||||
|
@ -17,44 +17,45 @@
|
||||||
"build:ssr-beta": "npm run build-beta && ng run monitor:server:beta",
|
"build:ssr-beta": "npm run build-beta && ng run monitor:server:beta",
|
||||||
"build:ssr-prod": "npm run build-prod && ng run monitor:server:production",
|
"build:ssr-prod": "npm run build-prod && ng run monitor:server:production",
|
||||||
"prerender": "ng run monitor:prerender",
|
"prerender": "ng run monitor:prerender",
|
||||||
"after-build-clean": "rm -rf dist/monitor/browser/assets/common-assets/.git/ src/app/openaireLibrary/.git node_modules src/assets/common-assets/.git/ .git/"
|
"after-build-clean": "rm -rf dist/monitor/browser/assets/common-assets/.git/ src/app/openaireLibrary/.git node_modules .angular src/assets/common-assets/.git/ .git/"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "~11.2.14",
|
"@angular/animations": "^16.1.8",
|
||||||
"@angular/cdk": "^11.2.13",
|
"@angular/cdk": "^16.1.7",
|
||||||
"@angular/common": "~11.2.14",
|
"@angular/common": "^16.1.8",
|
||||||
"@angular/compiler": "~11.2.14",
|
"@angular/compiler": "^16.1.8",
|
||||||
"@angular/core": "~11.2.14",
|
"@angular/core": "^16.1.8",
|
||||||
"@angular/forms": "~11.2.14",
|
"@angular/forms": "^16.1.8",
|
||||||
"@angular/localize": "^11.2.14",
|
"@angular/localize": "^16.1.8",
|
||||||
"@angular/material": "^11.2.13",
|
"@angular/material": "^16.1.7",
|
||||||
"@angular/platform-browser": "~11.2.14",
|
"@angular/platform-browser": "^16.1.8",
|
||||||
"@angular/platform-browser-dynamic": "~11.2.14",
|
"@angular/platform-browser-dynamic": "^16.1.8",
|
||||||
"@angular/platform-server": "~11.2.14",
|
"@angular/platform-server": "^16.1.8",
|
||||||
"@angular/router": "~11.2.14",
|
"@angular/router": "^16.1.8",
|
||||||
"@nguniversal/express-engine": "^11.2.1",
|
"@nguniversal/express-engine": "^16.1.1",
|
||||||
"clipboard": "^1.5.16",
|
"clipboard": "^1.5.16",
|
||||||
"core-js": "^2.5.4",
|
"core-js": "^2.5.4",
|
||||||
"express": "^4.15.2",
|
"express": "^4.15.2",
|
||||||
"jquery": "^3.4.1",
|
"jquery": "^3.4.1",
|
||||||
"ng-recaptcha": "^7.0.1",
|
"ng-recaptcha": "^12.0.2",
|
||||||
"rxjs": "^6.5.1",
|
"rxjs": "^6.5.1",
|
||||||
"ts-md5": "^1.2.0",
|
"ts-md5": "^1.2.0",
|
||||||
"tslib": "^2.0.0",
|
"tslib": "^2.0.0",
|
||||||
"zone.js": "~0.10.2"
|
"uikit": "3.16.24",
|
||||||
|
"zone.js": "~0.13.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "~0.1102.14",
|
"@angular-devkit/build-angular": "^16.1.7",
|
||||||
"@angular/cli": "~11.2.14",
|
"@angular/cli": "^16.1.7",
|
||||||
"@angular/compiler-cli": "~11.2.14",
|
"@angular/compiler-cli": "^16.1.8",
|
||||||
"@angular/language-service": "~11.2.14",
|
"@angular/language-service": "^16.1.8",
|
||||||
"@nguniversal/builders": "^11.2.1",
|
"@nguniversal/builders": "^16.1.1",
|
||||||
"@types/express": "^4.17.0",
|
|
||||||
"@types/compression": "^1.7.0",
|
"@types/compression": "^1.7.0",
|
||||||
"@types/node": "^12.11.1",
|
"@types/express": "^4.17.0",
|
||||||
"@types/jasmine": "~3.6.0",
|
"@types/jasmine": "~3.6.0",
|
||||||
"@types/jasminewd2": "~2.0.3",
|
"@types/jasminewd2": "~2.0.3",
|
||||||
|
"@types/node": "^16.18.50",
|
||||||
"codelyzer": "^6.0.0",
|
"codelyzer": "^6.0.0",
|
||||||
"jasmine-core": "~3.8.0",
|
"jasmine-core": "~3.8.0",
|
||||||
"jasmine-spec-reporter": "~5.0.0",
|
"jasmine-spec-reporter": "~5.0.0",
|
||||||
|
@ -65,6 +66,6 @@
|
||||||
"karma-jasmine-html-reporter": "^1.6.0",
|
"karma-jasmine-html-reporter": "^1.6.0",
|
||||||
"protractor": "~7.0.0",
|
"protractor": "~7.0.0",
|
||||||
"ts-node": "~7.0.0",
|
"ts-node": "~7.0.0",
|
||||||
"typescript": "~4.0.7"
|
"typescript": "~4.9.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import 'zone.js/dist/zone-node';
|
import 'zone.js/node';
|
||||||
|
|
||||||
import { ngExpressEngine } from '@nguniversal/express-engine';
|
import { ngExpressEngine } from '@nguniversal/express-engine';
|
||||||
import * as express from 'express';
|
import * as express from 'express';
|
||||||
|
@ -20,6 +20,7 @@ export function app() {
|
||||||
// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
|
// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
|
||||||
server.engine('html', ngExpressEngine({
|
server.engine('html', ngExpressEngine({
|
||||||
bootstrap: AppServerModule,
|
bootstrap: AppServerModule,
|
||||||
|
inlineCriticalCss: false
|
||||||
}));
|
}));
|
||||||
|
|
||||||
server.set('view engine', 'html');
|
server.set('view engine', 'html');
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
@import "~src/assets/openaire-theme/less/_import-variables";
|
||||||
|
|
||||||
|
.custom-translate-bottom-left {
|
||||||
|
transform: translate(-20%, 20%);
|
||||||
|
}
|
|
@ -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
|
||||||
|
institution’s 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
|
||||||
|
institution’s 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
|
||||||
|
institution’s 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'");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
import {CommonModule} from "@angular/common";
|
||||||
|
import {NgModule} from "@angular/core";
|
||||||
|
import {RouterModule} from "@angular/router";
|
||||||
|
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
|
||||||
|
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";
|
||||||
|
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
||||||
|
import {YouWeComponent} from "./you-we.component";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [AboutComponent, YouWeComponent],
|
||||||
|
imports: [CommonModule, RouterModule.forChild([
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: AboutComponent,
|
||||||
|
data: {extraOffset: 50}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'how-it-works',
|
||||||
|
redirectTo: '/about'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'faqs',
|
||||||
|
redirectTo: '/support'
|
||||||
|
}
|
||||||
|
]), BreadcrumbsModule, SliderTabsModule, HelperModule],
|
||||||
|
exports: [AboutComponent],
|
||||||
|
providers: [PreviousRouteRecorder, PiwikService]
|
||||||
|
})
|
||||||
|
export class AboutModule {}
|
|
@ -0,0 +1,115 @@
|
||||||
|
import {
|
||||||
|
AfterContentChecked, AfterViewInit,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
ElementRef,
|
||||||
|
Input,
|
||||||
|
OnDestroy,
|
||||||
|
ViewChild
|
||||||
|
} from "@angular/core";
|
||||||
|
import {StakeholderEntities} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
|
|
||||||
|
declare var UIkit;
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'you-we',
|
||||||
|
template: `
|
||||||
|
<div>
|
||||||
|
<div class="uk-container">
|
||||||
|
<h2 class="uk-text-center uk-margin-large-top uk-margin-large-bottom">Are you a <span
|
||||||
|
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.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">
|
||||||
|
<h3 class="uk-margin-remove uk-margin-small-top uk-margin-small-bottom">You</h3>
|
||||||
|
</div>
|
||||||
|
<div class="uk-text-center">
|
||||||
|
<h3 class="uk-margin-remove uk-margin-small-top uk-margin-small-bottom">We</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div [id]="id" class="uk-container">
|
||||||
|
<div class="uk-padding uk-padding-remove-vertical">
|
||||||
|
<div class="uk-grid uk-grid-large uk-grid-divider uk-child-width-1-2@l" uk-grid
|
||||||
|
uk-height-match="target: .uk-card">
|
||||||
|
<div class="uk-flex uk-flex-column uk-flex-middle uk-child-width-1-1">
|
||||||
|
<div class="uk-margin-top uk-margin-xlarge-bottom">
|
||||||
|
<span class="uk-h3 uk-text-center uk-margin-bottom uk-hidden@l">You</span>
|
||||||
|
<ng-content select="[you]"></ng-content>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-flex uk-flex-column uk-flex-middle uk-child-width-1-1">
|
||||||
|
<div class="uk-margin-top uk-margin-xlarge-bottom">
|
||||||
|
<span class="uk-h3 uk-text-center uk-margin-bottom uk-hidden@l">We</span>
|
||||||
|
<ng-content select="[we]"></ng-content>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
export class YouWeComponent implements AfterViewInit, AfterContentChecked, OnDestroy {
|
||||||
|
@Input()
|
||||||
|
public type: StakeholderEntities.FUNDER | StakeholderEntities.RI | StakeholderEntities.ORGANIZATION = StakeholderEntities.FUNDER;
|
||||||
|
@Input()
|
||||||
|
public id;
|
||||||
|
@ViewChild('sticky') sticky: ElementRef;
|
||||||
|
public isSticky: boolean = false;
|
||||||
|
public offset: number
|
||||||
|
public height: number;
|
||||||
|
private subscriptions: any[] = [];
|
||||||
|
|
||||||
|
constructor(private cdr: ChangeDetectorRef) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngAfterViewInit() {
|
||||||
|
if (this.sticky) {
|
||||||
|
this.observeSticky();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngAfterContentChecked() {
|
||||||
|
if (this.sticky && typeof document !== 'undefined') {
|
||||||
|
this.offset = this.calcOffset(this.sticky.nativeElement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.subscriptions.forEach(subscription => {
|
||||||
|
if (subscription instanceof (ResizeObserver || IntersectionObserver)) {
|
||||||
|
subscription.disconnect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public observeSticky() {
|
||||||
|
let resizeObs = new ResizeObserver(entries => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.offset = this.calcOffset(entry.target);
|
||||||
|
this.cdr.detectChanges();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
this.subscriptions.push(resizeObs);
|
||||||
|
resizeObs.observe(this.sticky.nativeElement);
|
||||||
|
this.subscriptions.push(UIkit.util.on('#sticky-' + this.id, 'active', (): void => {
|
||||||
|
this.isSticky = true;
|
||||||
|
}));
|
||||||
|
this.subscriptions.push(UIkit.util.on('#sticky-' + this.id, 'inactive', () => {
|
||||||
|
this.isSticky = false;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
calcOffset(element) {
|
||||||
|
this.height = element.offsetHeight;
|
||||||
|
return window.innerHeight - this.height;
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,20 +3,41 @@ import {RouterModule, Routes} from '@angular/router';
|
||||||
import {OpenaireErrorPageComponent} from './error/errorPage.component';
|
import {OpenaireErrorPageComponent} from './error/errorPage.component';
|
||||||
|
|
||||||
const routes: Routes = [
|
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)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'indicators',
|
||||||
|
loadChildren: () => import('./openaireLibrary/monitor/indicators/indicators.module').then(m => m.IndicatorsModule)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'browse',
|
path: 'browse',
|
||||||
loadChildren: () => import('./search-stakeholders/search-stakeholders.module').then(m => m.SearchStakeholdersModule)
|
loadChildren: () => import('./search-stakeholders/search-stakeholders.module').then(m => m.SearchStakeholdersModule)
|
||||||
},
|
},
|
||||||
{path: 'about', redirectTo: 'about/learn-how', pathMatch: 'full'},
|
|
||||||
{
|
|
||||||
path: 'about/learn-how',
|
|
||||||
loadChildren: () => import('./learn-how/learn-how.module').then(m => m.LearnHowModule)
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: 'contact-us',
|
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',
|
||||||
|
loadChildren: () => import('./get-started/get-started.module').then(m => m.GetStartedModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'my-dashboards',
|
||||||
|
loadChildren: () => import('./my-stakeholders/my-stakeholders.module').then(m => m.MyStakeholdersModule)},
|
||||||
{
|
{
|
||||||
path: 'reload',
|
path: 'reload',
|
||||||
loadChildren: () => import('./reload/libReload.module').then(m => m.LibReloadModule)
|
loadChildren: () => import('./reload/libReload.module').then(m => m.LibReloadModule)
|
||||||
|
|
|
@ -1,32 +1,50 @@
|
||||||
import {Component} from '@angular/core';
|
import {ChangeDetectorRef, Component, ElementRef, ViewChild} from '@angular/core';
|
||||||
import {ActivatedRoute, NavigationEnd, NavigationStart, Params, Router} from '@angular/router';
|
import {ActivatedRoute, NavigationEnd, Router} from '@angular/router';
|
||||||
|
|
||||||
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
||||||
import {MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
import {MenuItem} from './openaireLibrary/sharedComponents/menu';
|
||||||
import {EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
import {EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
||||||
import {Session, User} from './openaireLibrary/login/utils/helper.class';
|
import {Session, User} from './openaireLibrary/login/utils/helper.class';
|
||||||
import {HelperFunctions} from "./openaireLibrary/utils/HelperFunctions.class";
|
|
||||||
import {UserManagementService} from "./openaireLibrary/services/user-management.service";
|
import {UserManagementService} from "./openaireLibrary/services/user-management.service";
|
||||||
import {properties} from "../environments/environment";
|
import {properties} from "../environments/environment";
|
||||||
import {BehaviorSubject, Subscriber} from "rxjs";
|
import {Subscriber} from "rxjs";
|
||||||
import {StakeholderService} from "./openaireLibrary/monitor/services/stakeholder.service";
|
import {StakeholderService} from "./openaireLibrary/monitor/services/stakeholder.service";
|
||||||
import {Header} from "./openaireLibrary/sharedComponents/navigationBar.component";
|
import {Header} from "./openaireLibrary/sharedComponents/navigationBar.component";
|
||||||
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
||||||
|
import {QuickContactService} from './openaireLibrary/sharedComponents/quick-contact/quick-contact.service';
|
||||||
|
import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
|
||||||
|
import {Composer} from "./openaireLibrary/utils/email/composer";
|
||||||
|
import {NotificationHandler} from "./openaireLibrary/utils/notification-handler";
|
||||||
|
import {EmailService} from "./openaireLibrary/utils/email/email.service";
|
||||||
|
import {StringUtils} from "./openaireLibrary/utils/string-utils.class";
|
||||||
|
import {QuickContactComponent} from "./openaireLibrary/sharedComponents/quick-contact/quick-contact.component";
|
||||||
|
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({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
template: `
|
template: `
|
||||||
<div class="monitorApp">
|
<div>
|
||||||
<navbar *ngIf="properties && showMenu && header" portal="monitor" [header]="header" [onlyTop]="false"
|
<div id="modal-container"></div>
|
||||||
|
<navbar *ngIf="properties && showMenu && header" #navbar portal="monitor" [header]="header" [onlyTop]="false"
|
||||||
[userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user"
|
[userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user"
|
||||||
[showMenu]=showMenu [properties]="properties"></navbar>
|
[showMenu]=showMenu [properties]="properties">
|
||||||
|
<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"
|
<schema2jsonld *ngIf="properties " [URL]="properties.domain + properties.baseLink"
|
||||||
[logoURL]="properties.domain + properties.baseLink+'/assets/common-assets/logo-small-monitor.png'"
|
[logoURL]="properties.domain + properties.baseLink + logoPath + 'main.svg'"
|
||||||
type="home"
|
type="home"
|
||||||
description="OpenAIRE - Monitor, A new era of monitoring research. Open data. Open methodologies. Work together with us to view, understand and visualize research statistics and indicators. "
|
description="OpenAIRE - Monitor, A new era of monitoring research. Open data. Open methodologies. Work together with us to view, understand and visualize research statistics and indicators. "
|
||||||
name="OpenAIRE Monitor" [searchAction]="true" [searchActionRoute]="properties.domain + properties.baseLink + '/browse'">
|
name="OpenAIRE Monitor" [searchAction]="true"
|
||||||
|
[searchActionRoute]="properties.domain + properties.baseLink + '/browse'">
|
||||||
</schema2jsonld>
|
</schema2jsonld>
|
||||||
<div class="custom-main-content">
|
<div class="uk-background-default">
|
||||||
<main>
|
<main>
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</main>
|
</main>
|
||||||
|
@ -42,42 +60,68 @@ import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
||||||
points="7 4 13 10 7 16"></polyline></svg>
|
points="7 4 13 10 7 16"></polyline></svg>
|
||||||
</span></a>
|
</span></a>
|
||||||
</cookie-law>
|
</cookie-law>
|
||||||
<bottom *ngIf="properties && showMenu" [grantAdvance]="false"
|
<bottom #bottom *ngIf="properties && showMenu" id="bottom" [grantAdvance]="false"
|
||||||
[properties]="properties"></bottom>
|
[properties]="properties"></bottom>
|
||||||
|
<quick-contact #quickContact *ngIf="bottomNotIntersecting && displayQuickContact && showQuickContact && contactForm"
|
||||||
|
(sendEmitter)="send($event)"
|
||||||
|
[contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'"
|
||||||
|
[organizationTypes]="organizationTypes"
|
||||||
|
class="uk-visible@m"></quick-contact>
|
||||||
|
<modal-alert #modal [overflowBody]="false"></modal-alert>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
|
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
userMenuItems: MenuItem[] = [];
|
userMenuItems: MenuItem[] = [];
|
||||||
menuItems: RootMenuItem [] = [];
|
menuItems: MenuItem [] = [];
|
||||||
bottomMenuItems: MenuItem[] = [];
|
bottomMenuItems: MenuItem[] = [];
|
||||||
properties: EnvProperties = properties;
|
properties: EnvProperties = properties;
|
||||||
showMenu: boolean = false;
|
showMenu: boolean = false;
|
||||||
user: User;
|
user: User;
|
||||||
params: BehaviorSubject<Params> = new BehaviorSubject<Params>(null);
|
|
||||||
url: string;
|
|
||||||
header: Header;
|
header: Header;
|
||||||
logoPath: string = 'assets/common-assets/';
|
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[] = [
|
||||||
|
'Funding agency', 'University / Research Center',
|
||||||
|
'Research Infrastructure', 'Government',
|
||||||
|
'Non-profit', 'Industry', 'Other'
|
||||||
|
];
|
||||||
|
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;
|
||||||
|
@ViewChild('bottom', {read: ElementRef}) bottom: ElementRef;
|
||||||
private subscriptions: any[] = [];
|
private subscriptions: any[] = [];
|
||||||
|
public stakeholderEntities = StakeholderEntities;
|
||||||
|
|
||||||
constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService,
|
constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService,
|
||||||
|
private configurationService: ConfigurationService,
|
||||||
private router: Router, private stakeholderService: StakeholderService, private smoothScroll: SmoothScroll,
|
private router: Router, private stakeholderService: StakeholderService, private smoothScroll: SmoothScroll,
|
||||||
private userManagementService: UserManagementService) {
|
private userManagementService: UserManagementService,
|
||||||
|
private quickContactService: QuickContactService,
|
||||||
|
private layoutService: LayoutService,
|
||||||
|
private fb: UntypedFormBuilder,
|
||||||
|
private emailService: EmailService,
|
||||||
|
private resourcesService: ResourcesService,
|
||||||
|
private cdr: ChangeDetectorRef) {
|
||||||
this.subscriptions.push(router.events.forEach((event) => {
|
this.subscriptions.push(router.events.forEach((event) => {
|
||||||
if (event instanceof NavigationEnd) {
|
if (event instanceof NavigationEnd) {
|
||||||
this.url = event.url;
|
this.showGetStarted = event.url !== '/get-started';
|
||||||
let r = this.route;
|
|
||||||
while (r.firstChild) {
|
|
||||||
r = r.firstChild;
|
|
||||||
}
|
|
||||||
let params = r.snapshot.params;
|
|
||||||
this.params.next(params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
this.configurationService.initPortal(this.properties, "monitor");
|
||||||
|
this.userManagementService.fixRedirectURL = properties.afterLoginRedirectLink;
|
||||||
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
||||||
this.user = user;
|
this.user = user;
|
||||||
this.setUserMenu();
|
this.setUserMenu();
|
||||||
|
@ -85,47 +129,88 @@ export class AppComponent {
|
||||||
route: "/",
|
route: "/",
|
||||||
url: null,
|
url: null,
|
||||||
title: 'monitor',
|
title: 'monitor',
|
||||||
logoUrl: this.logoPath + 'logo-large-monitor.png',
|
logoUrl: this.logoPath + 'main.svg',
|
||||||
logoSmallUrl:this.logoPath + 'logo-small-monitor.png',
|
logoSmallUrl: this.logoPath + 'small.svg',
|
||||||
position:'left',
|
position: 'left',
|
||||||
badge:true
|
badge: true,
|
||||||
|
menuPosition: 'center'
|
||||||
};
|
};
|
||||||
this.buildMenu();
|
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 => {
|
||||||
|
if(this.displayQuickContact !== display) {
|
||||||
|
this.displayQuickContact = display;
|
||||||
|
this.cdr.detectChanges();
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createObservers() {
|
||||||
|
let options = {
|
||||||
|
root: null,
|
||||||
|
rootMargin: '0px',
|
||||||
|
threshold: 0.1
|
||||||
|
};
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
public ngOnDestroy() {
|
public ngOnDestroy() {
|
||||||
this.subscriptions.forEach(value => {
|
this.subscriptions.forEach(value => {
|
||||||
if (value instanceof Subscriber) {
|
if (value instanceof Subscriber) {
|
||||||
value.unsubscribe();
|
value.unsubscribe();
|
||||||
|
} else if (typeof IntersectionObserver !== "undefined" && value instanceof IntersectionObserver) {
|
||||||
|
value.disconnect();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.userManagementService.clearSubscriptions();
|
this.userManagementService.clearSubscriptions();
|
||||||
this.stakeholderService.clearSubscriptions();
|
this.stakeholderService.clearSubscriptions();
|
||||||
this.smoothScroll.clearSubscriptions();
|
this.smoothScroll.clearSubscriptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public buildMenu() {
|
public buildMenu() {
|
||||||
this.menuItems = [];
|
this.menuItems = [];
|
||||||
this.menuItems.push({
|
this.menuItems.push(
|
||||||
rootItem: new MenuItem("about", "About", "", "/about/learn-how", false, [], null, {}),
|
new MenuItem("home", "Home", "", "/", false, [], null, {}, null, null, "uk-hidden@m")
|
||||||
items: []
|
);
|
||||||
});
|
this.menuItems.push(
|
||||||
this.menuItems.push({
|
new MenuItem("stakeholders", "Browse " + this.stakeholderEntities.STAKEHOLDERS, "", "/browse", false, [], null, {})
|
||||||
rootItem: new MenuItem("stakeholders", "Browse", "", "browse", false, [], null, {}),
|
);
|
||||||
items: []
|
this.resourcesService.setResources(this.menuItems);
|
||||||
});
|
this.menuItems.push(new MenuItem("support", "Support", "", "/support", false, [], null, {}));
|
||||||
this.menuItems.push({
|
this.menuItems.push(new MenuItem("about", "About", "", "/about", false, [], null, {}));
|
||||||
rootItem: new MenuItem("contact-us", "Contact us", "", "/contact-us", false, [], null, {}),
|
|
||||||
items: []
|
|
||||||
});
|
|
||||||
this.bottomMenuItems = [
|
this.bottomMenuItems = [
|
||||||
new MenuItem("", "About", "https://beta.openaire.eu/project-factsheets", "", false, [], [], {}),
|
new MenuItem("", "About", "https://beta.openaire.eu/project-factsheets", "", false, [], [], {}),
|
||||||
new MenuItem("", "News - Events", "https://beta.openaire.eu/news-events", "", false, [], [], {}),
|
new MenuItem("", "News - Events", "https://beta.openaire.eu/news-events", "", false, [], [], {}),
|
||||||
new MenuItem("", "Blog", "https://blogs.openaire.eu/", "", false, [], [], {}),
|
new MenuItem("", "Blog", "https://blogs.openaire.eu/", "", false, [], [], {}),
|
||||||
new MenuItem("", "Contact us", "https://beta.openaire.eu/contact-us", "", 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;
|
this.showMenu = true;
|
||||||
|
if(typeof document !== 'undefined') {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.createObservers();
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public setUserMenu() {
|
public setUserMenu() {
|
||||||
|
@ -133,9 +218,72 @@ export class AppComponent {
|
||||||
if (this.user) {
|
if (this.user) {
|
||||||
if (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isKindOfMonitorManager(this.user)) {
|
if (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isKindOfMonitorManager(this.user)) {
|
||||||
this.userMenuItems.push(new MenuItem("", "Manage profiles",
|
this.userMenuItems.push(new MenuItem("", "Manage profiles",
|
||||||
this.properties.domain + properties.baseLink + "/dashboard/admin", "", false, [], [], {}))
|
this.properties.domain + properties.baseLink + "/dashboard/admin", "", false, [], [], {}, null, null, null, null, "_self"));
|
||||||
}
|
}
|
||||||
|
this.userMenuItems.push(new MenuItem("", "My " + this.stakeholderEntities.STAKEHOLDERS, "", "/my-dashboards", false, [], [], {}));
|
||||||
this.userMenuItems.push(new MenuItem("", "User information", "", "/user-info", false, [], [], {}));
|
this.userMenuItems.push(new MenuItem("", "User information", "", "/user-info", false, [], [], {}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public send(event) {
|
||||||
|
if (event.valid === true) {
|
||||||
|
this.sendMail(this.properties.admins);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public reset() {
|
||||||
|
if (this.quickContact) {
|
||||||
|
this.quickContact.close();
|
||||||
|
}
|
||||||
|
this.contactForm = this.fb.group({
|
||||||
|
name: this.fb.control('', Validators.required),
|
||||||
|
surname: this.fb.control('', Validators.required),
|
||||||
|
email: this.fb.control('', [Validators.required, Validators.email]),
|
||||||
|
job: this.fb.control('', Validators.required),
|
||||||
|
organization: this.fb.control('', Validators.required),
|
||||||
|
organizationType: this.fb.control('', [Validators.required, StringUtils.validatorType(this.organizationTypes)]),
|
||||||
|
message: this.fb.control('', Validators.required),
|
||||||
|
recaptcha: this.fb.control('', Validators.required),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private sendMail(admins: string[]) {
|
||||||
|
this.sending = true;
|
||||||
|
this.subscriptions.push(this.emailService.contact(this.properties,
|
||||||
|
Composer.composeEmailForMonitor(this.contactForm.value, admins),
|
||||||
|
this.contactForm.value.recaptcha).subscribe(
|
||||||
|
res => {
|
||||||
|
if (res) {
|
||||||
|
this.sending = false;
|
||||||
|
this.reset();
|
||||||
|
this.modalOpen();
|
||||||
|
} else {
|
||||||
|
this.handleError('Email <b>sent failed!</b> Please try again.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.handleError('Email <b>sent failed!</b> Please try again.', error);
|
||||||
|
}
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public modalOpen() {
|
||||||
|
this.modal.okButton = true;
|
||||||
|
this.modal.alertTitle = 'Your request has been successfully submitted';
|
||||||
|
this.modal.message = 'Our team will respond to your submission soon.';
|
||||||
|
this.modal.cancelButton = false;
|
||||||
|
this.modal.okButtonLeft = false;
|
||||||
|
this.modal.okButtonText = 'OK';
|
||||||
|
this.modal.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
handleError(message: string, error = null) {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
this.sending = false;
|
||||||
|
this.quickContact.close();
|
||||||
|
NotificationHandler.rise(message, 'danger');
|
||||||
|
this.contactForm.get('recaptcha').setValue('');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,25 @@
|
||||||
import {NgModule} from '@angular/core';
|
import {APP_ID, NgModule} from '@angular/core';
|
||||||
import {FormsModule} from '@angular/forms';
|
import {FormsModule} from '@angular/forms';
|
||||||
import {CommonModule} from '@angular/common';
|
import {CommonModule} from '@angular/common';
|
||||||
import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http";
|
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 {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
||||||
import {AppComponent} from './app.component';
|
import {AppComponent} from './app.component';
|
||||||
import {OpenaireErrorPageComponent} from './error/errorPage.component';
|
import {OpenaireErrorPageComponent} from './error/errorPage.component';
|
||||||
|
|
||||||
import {AppRoutingModule} from './app-routing.module';
|
import {AppRoutingModule} from './app-routing.module';
|
||||||
import {SharedModule} from './shared/shared.module';
|
|
||||||
import {CookieLawModule} from './openaireLibrary/sharedComponents/cookie-law/cookie-law.module';
|
import {CookieLawModule} from './openaireLibrary/sharedComponents/cookie-law/cookie-law.module';
|
||||||
import {BottomModule} from './openaireLibrary/sharedComponents/bottom.module';
|
import {BottomModule} from './openaireLibrary/sharedComponents/bottom.module';
|
||||||
import {ErrorModule} from './openaireLibrary/error/error.module';
|
import {ErrorModule} from './openaireLibrary/error/error.module';
|
||||||
import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';
|
import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';
|
||||||
|
import {QuickContactModule} from './openaireLibrary/sharedComponents/quick-contact/quick-contact.module';
|
||||||
import {DEFAULT_TIMEOUT, TimeoutInterceptor} from "./openaireLibrary/timeout-interceptor.service";
|
import {DEFAULT_TIMEOUT, TimeoutInterceptor} from "./openaireLibrary/timeout-interceptor.service";
|
||||||
import {Schema2jsonldModule} from "./openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
import {Schema2jsonldModule} from "./openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
||||||
import {HttpInterceptorService} from "./openaireLibrary/http-interceptor.service";
|
import {HttpInterceptorService} from "./openaireLibrary/http-interceptor.service";
|
||||||
import {ErrorInterceptorService} from "./openaireLibrary/error-interceptor.service";
|
import {ErrorInterceptorService} from "./openaireLibrary/error-interceptor.service";
|
||||||
|
import {SharedModule} from "./openaireLibrary/shared/shared.module";
|
||||||
|
import {AlertModalModule} from "./openaireLibrary/utils/modal/alertModal.module";
|
||||||
|
import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.guard';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|
||||||
|
@ -28,16 +31,19 @@ import {ErrorInterceptorService} from "./openaireLibrary/error-interceptor.servi
|
||||||
ErrorModule,
|
ErrorModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
NavigationBarModule,
|
NavigationBarModule,
|
||||||
|
QuickContactModule,
|
||||||
BottomModule,
|
BottomModule,
|
||||||
CookieLawModule,
|
CookieLawModule,
|
||||||
BrowserTransferStateModule,
|
BrowserModule,
|
||||||
BrowserModule.withServerTransition({ appId: 'monitor' }),
|
|
||||||
AppRoutingModule,
|
AppRoutingModule,
|
||||||
Schema2jsonldModule
|
Schema2jsonldModule,
|
||||||
|
AlertModalModule
|
||||||
],
|
],
|
||||||
declarations: [AppComponent, OpenaireErrorPageComponent],
|
declarations: [AppComponent, OpenaireErrorPageComponent],
|
||||||
exports: [AppComponent],
|
exports: [AppComponent],
|
||||||
providers: [
|
providers: [
|
||||||
|
isDevelopmentGuard,
|
||||||
|
{provide: APP_ID, useValue: 'monitor'},
|
||||||
{
|
{
|
||||||
provide: HTTP_INTERCEPTORS,
|
provide: HTTP_INTERCEPTORS,
|
||||||
useClass: HttpInterceptorService,
|
useClass: HttpInterceptorService,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import {ServerModule, ServerTransferStateModule} from '@angular/platform-server';
|
import {ServerModule} from '@angular/platform-server';
|
||||||
|
|
||||||
import { AppModule } from './app.module';
|
import { AppModule } from './app.module';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
|
@ -7,8 +7,7 @@ import { AppComponent } from './app.component';
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
AppModule,
|
AppModule,
|
||||||
ServerModule,
|
ServerModule
|
||||||
ServerTransferStateModule
|
|
||||||
],
|
],
|
||||||
bootstrap: [AppComponent],
|
bootstrap: [AppComponent],
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
<a *ngIf="directLink && stakeholder" [href]="getStakeholderPageUrl()" target="_blank"
|
||||||
|
class="uk-height-1-1 uk-link-reset uk-display-block" [class.uk-disabled]="!hasPermission()">
|
||||||
|
<ng-container [ngTemplateOutlet]="card"></ng-container>
|
||||||
|
</a>
|
||||||
|
<a *ngIf="!directLink && stakeholder" (click)="confirmModalOpen()"
|
||||||
|
class="uk-height-1-1 uk-link-reset uk-display-block" [class.uk-disabled]="!hasPermission()">
|
||||||
|
<ng-container [ngTemplateOutlet]="card"></ng-container>
|
||||||
|
</a>
|
||||||
|
<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 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-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">
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
<div class="uk-card-body uk-padding-remove-horizontal">
|
||||||
|
<div class="uk-text-capitalize uk-text-small type">{{mapType(stakeholder.type)}}</div>
|
||||||
|
<div class="uk-h6 uk-margin-remove multi-line-ellipsis lines-2">
|
||||||
|
<p *ngIf="stakeholder.name" class="uk-margin-remove">
|
||||||
|
{{stakeholder.name}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<modal-alert #AlertModal [overflowBody]="false" (alertOutput)="goToPage($event)"></modal-alert>
|
|
@ -0,0 +1,23 @@
|
||||||
|
@import (reference) "~src/assets/openaire-theme/less/color.less";
|
||||||
|
|
||||||
|
.setType(@color) {
|
||||||
|
border-bottom: 4px solid fade(@color, 30%);
|
||||||
|
|
||||||
|
& .type {
|
||||||
|
color: @color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.uk-card {
|
||||||
|
&.funder {
|
||||||
|
.setType(@funder-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ri {
|
||||||
|
.setType(@ri-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.organization {
|
||||||
|
.setType(@organization-color);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
import {Component, Input, ViewChild} from '@angular/core';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {Location} from '@angular/common';
|
||||||
|
import {StakeholderInfo, Visibility} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
|
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
||||||
|
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',
|
||||||
|
templateUrl: 'browse-stakeholder.component.html',
|
||||||
|
styleUrls: ['browse-stakeholder.component.less']
|
||||||
|
})
|
||||||
|
export class BrowseStakeholderComponent {
|
||||||
|
@Input() public stakeholder: StakeholderInfo = null;
|
||||||
|
@ViewChild('AlertModal', { static: true }) modal;
|
||||||
|
public properties: EnvProperties = properties;
|
||||||
|
public directLink: boolean = true;
|
||||||
|
public visibilityIcon: Map<Visibility, string> = new Map<Visibility, string> ([
|
||||||
|
["PRIVATE", 'incognito'],
|
||||||
|
["RESTRICTED", 'restricted']
|
||||||
|
]);
|
||||||
|
private subscriptions: any[] = [];
|
||||||
|
|
||||||
|
constructor(private route: ActivatedRoute,
|
||||||
|
private router: Router,
|
||||||
|
private location: Location,
|
||||||
|
private localStorageService: LocalStorageService,
|
||||||
|
private layoutService: LayoutService) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.properties = properties;
|
||||||
|
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() {
|
||||||
|
this.subscriptions.forEach(subscription => {
|
||||||
|
if (subscription instanceof Subscriber) {
|
||||||
|
subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
mapType(type: string) {
|
||||||
|
return StringUtils.getStakeholderType(type, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public confirmModalOpen() {
|
||||||
|
this.modal.cancelButton = true;
|
||||||
|
this.modal.okButton = true;
|
||||||
|
this.modal.alertTitle = 'You are going to visit ' + this.stakeholder.name + ' Monitor Dashboard';
|
||||||
|
this.modal.message = 'You will be navigated to a new tab. Are you sure that you want to proceed?';
|
||||||
|
this.modal.okButtonLeft = false;
|
||||||
|
this.modal.okButtonText = 'Yes';
|
||||||
|
this.modal.cancelButtonText = 'No';
|
||||||
|
this.modal.choice = true;
|
||||||
|
this.modal.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
public getStakeholderPageUrl() {
|
||||||
|
return this.properties.domain + this.properties.baseLink + '/dashboard/' + this.stakeholder.alias;
|
||||||
|
}
|
||||||
|
|
||||||
|
hasPermission() {
|
||||||
|
return this.stakeholder.visibility === "PUBLIC" ||
|
||||||
|
(this.stakeholder.visibility === "RESTRICTED" && (this.stakeholder.isManager || this.stakeholder.isMember)) ||
|
||||||
|
(this.stakeholder.visibility === "PRIVATE" && this.stakeholder.isManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
public goToPage(data: any) {
|
||||||
|
if (data.value == true) {
|
||||||
|
let url = this.getStakeholderPageUrl();
|
||||||
|
this.localStorageService.setCommunityDirectLink(data.choice);
|
||||||
|
window.open(url, '_blank');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {CommonModule} from '@angular/common';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
|
||||||
|
import {ManageModule} from "../openaireLibrary/utils/manage/manage.module";
|
||||||
|
import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.module";
|
||||||
|
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
|
||||||
|
import {BrowseStakeholderComponent} from "./browse-stakeholder.component";
|
||||||
|
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
|
||||||
|
import {incognito, restricted} from "../openaireLibrary/utils/icons/icons";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, RouterModule,
|
||||||
|
ManageModule, AlertModalModule, LogoUrlPipeModule, IconsModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
BrowseStakeholderComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
BrowseStakeholderComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class BrowseStakeholderModule {
|
||||||
|
constructor(private iconsService: IconsService) {
|
||||||
|
this.iconsService.registerIcons([incognito, restricted]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,28 +1,31 @@
|
||||||
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
|
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
|
||||||
<div class="uk-section">
|
<div>
|
||||||
<div class="uk-align-center">
|
<div class="uk-visible@m uk-container uk-container-large uk-section uk-section-small uk-padding-remove-bottom">
|
||||||
<div *ngIf="showLoading" class="uk-margin-large">
|
<div class="uk-padding-small uk-padding-remove-horizontal">
|
||||||
<div class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert"><span
|
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
|
||||||
class="loading-gif uk-align-center"></span></div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="!showLoading" class="uk-container uk-container-large">
|
|
||||||
<div class="uk-grid-divider uk-grid uk-flex-center" uk-grid>
|
|
||||||
<div class="uk-width-1-1 uk-width-1-2@m">
|
|
||||||
<div class="uk-text-center uk-margin-medium-bottom">
|
|
||||||
<h1 class="uk-h2">Contact us to learn more</h1>
|
|
||||||
<h6 class="uk-text-muted uk-margin-remove-top">
|
|
||||||
We’d be happy to provide more information on OpenAIRE Monitor – please fill in your details below to send your questions to our team.
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
<contact-us [properties]="properties" [errorMessage]="errorMessage" [organizationTypes]="organizationTypes"
|
|
||||||
[contactForm]="contactForm" (sendEmitter)="send($event)"></contact-us>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-section uk-padding-remove-top uk-container uk-container-large uk-flex uk-flex-center"
|
||||||
|
uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
|
||||||
|
<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-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>
|
||||||
|
We would be happy to open a discussion with you to better understand your needs and share examples of how
|
||||||
|
OpenAIRE MONITOR can help your organization in your open science needs.
|
||||||
|
</div>
|
||||||
|
</contact-us>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<modal-alert #AlertModal (alertOutput)="goToHome()">
|
<modal-alert #modal (alertOutput)="goToHome()">
|
||||||
<div class="uk-text-center">
|
<div class="uk-padding-small uk-padding-remove-horizontal">
|
||||||
Our team will respond to your submission soon.<br>
|
Our team will respond to your submission soon.<br>
|
||||||
Press OK to redirect to OpenAIRE Monitor home page.
|
Press OK to redirect to OpenAIRE Monitor home page.
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,52 +1,53 @@
|
||||||
import {Component, OnInit, ViewChild} from '@angular/core';
|
import {Component, OnInit, ViewChild} from '@angular/core';
|
||||||
import {ActivatedRoute, Router} from '@angular/router';
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
import {EmailService} from "../openaireLibrary/utils/email/email.service";
|
import {EmailService} from "../openaireLibrary/utils/email/email.service";
|
||||||
import {Email} from "../openaireLibrary/utils/email/email";
|
|
||||||
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
||||||
import {Composer} from "../openaireLibrary/utils/email/composer";
|
import {Composer} from "../openaireLibrary/utils/email/composer";
|
||||||
import {Meta, Title} from "@angular/platform-browser";
|
import {Meta, Title} from "@angular/platform-browser";
|
||||||
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
|
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
|
||||||
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class";
|
|
||||||
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
||||||
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
||||||
import {AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators} from "@angular/forms";
|
import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
|
||||||
import {Subscriber} from "rxjs";
|
import {Subscriber} from "rxjs";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
|
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
|
||||||
|
import {NotificationHandler} from "../openaireLibrary/utils/notification-handler";
|
||||||
|
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'contact',
|
selector: 'contact',
|
||||||
templateUrl: './contact.component.html',
|
templateUrl: './contact.component.html'
|
||||||
})
|
})
|
||||||
export class ContactComponent implements OnInit {
|
export class ContactComponent implements OnInit {
|
||||||
public url: string = null;
|
public url: string = null;
|
||||||
public pageTitle: string = "OpenAIRE - Monitor | Contact Us";
|
public pageTitle: string = "OpenAIRE - Monitor | Contact Us";
|
||||||
public description: string = "OpenAIRE - Monitor . Any Questions? Contact us to learn more";
|
public description: string = "OpenAIRE - Monitor . Any Questions? Contact us to learn more";
|
||||||
public piwiksub: any;
|
public piwiksub: any;
|
||||||
public showLoading = true;
|
public sending = false;
|
||||||
public errorMessage = '';
|
public properties: EnvProperties = properties;
|
||||||
public email: Email;
|
|
||||||
public properties: EnvProperties = null;
|
|
||||||
public pageContents = null;
|
public pageContents = null;
|
||||||
public divContents = null;
|
public divContents = null;
|
||||||
|
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Contact us'}];
|
||||||
public organizationTypes: string[] = [
|
public organizationTypes: string[] = [
|
||||||
'Funding agency', 'University / Research Center',
|
'Funding agency', 'University / Research Center',
|
||||||
'Research Infrastructure', 'Government',
|
'Research Infrastructure', 'Government',
|
||||||
'Non-profit', 'Industry', 'Other'
|
'Non-profit', 'Industry', 'Other'
|
||||||
];
|
];
|
||||||
public contactForm: FormGroup;
|
public contactForm: UntypedFormGroup;
|
||||||
@ViewChild('AlertModal') modal;
|
@ViewChild('modal') modal;
|
||||||
|
private subscriptions = [];
|
||||||
|
|
||||||
constructor(private route: ActivatedRoute,
|
constructor(private route: ActivatedRoute,
|
||||||
private _router: Router,
|
private _router: Router,
|
||||||
private _emailService: EmailService,
|
private emailService: EmailService,
|
||||||
private _meta: Meta,
|
private _meta: Meta,
|
||||||
private _title: Title,
|
private _title: Title,
|
||||||
private seoService: SEOService,
|
private seoService: SEOService,
|
||||||
private _piwikService: PiwikService,
|
private _piwikService: PiwikService,
|
||||||
private fb: FormBuilder,
|
private fb: UntypedFormBuilder,
|
||||||
private helper: HelperService) {
|
private helper: HelperService) {
|
||||||
}
|
}
|
||||||
subscriptions = [];
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
this.subscriptions.forEach(subscription => {
|
this.subscriptions.forEach(subscription => {
|
||||||
if (subscription instanceof Subscriber) {
|
if (subscription instanceof Subscriber) {
|
||||||
|
@ -54,12 +55,9 @@ export class ContactComponent implements OnInit {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.properties = properties;
|
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
|
||||||
this.email = {body: '', subject: '', recipients: []};
|
|
||||||
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.url = this.properties.domain + this.properties.baseLink + this._router.url;
|
||||||
this.seoService.createLinkForCanonicalURL(this.url);
|
this.seoService.createLinkForCanonicalURL(this.url);
|
||||||
this.updateUrl(this.url);
|
this.updateUrl(this.url);
|
||||||
|
@ -68,8 +66,6 @@ export class ContactComponent implements OnInit {
|
||||||
this.reset();
|
this.reset();
|
||||||
//this.getDivContents();
|
//this.getDivContents();
|
||||||
// this.getPageContents();
|
// this.getPageContents();
|
||||||
this.showLoading = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private getPageContents() {
|
private getPageContents() {
|
||||||
|
@ -85,20 +81,8 @@ export class ContactComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
public send(event) {
|
public send(event) {
|
||||||
HelperFunctions.scroll();
|
|
||||||
if(event.valid === true) {
|
if(event.valid === true) {
|
||||||
this.sendMail(this.properties.admins);
|
this.sendMail(this.properties.admins);
|
||||||
} else {
|
|
||||||
this.errorMessage = 'Please fill in all the required fields!';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private validatorType(options: string[]): ValidatorFn {
|
|
||||||
return (control: AbstractControl): { [key: string]: boolean } | null => {
|
|
||||||
if (options.filter(type => type === control.value).length === 0) {
|
|
||||||
return {'type': false};
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,32 +93,28 @@ export class ContactComponent implements OnInit {
|
||||||
email: this.fb.control('', [Validators.required, Validators.email]),
|
email: this.fb.control('', [Validators.required, Validators.email]),
|
||||||
job: this.fb.control('', Validators.required),
|
job: this.fb.control('', Validators.required),
|
||||||
organization: this.fb.control('', Validators.required),
|
organization: this.fb.control('', Validators.required),
|
||||||
organizationType: this.fb.control('', [Validators.required, this.validatorType(this.organizationTypes)]),
|
organizationType: this.fb.control('', [Validators.required, StringUtils.validatorType(this.organizationTypes)]),
|
||||||
message: this.fb.control('', Validators.required),
|
message: this.fb.control('', Validators.required),
|
||||||
recaptcha: this.fb.control('', Validators.required),
|
recaptcha: this.fb.control('', Validators.required),
|
||||||
});
|
});
|
||||||
this.errorMessage = '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private sendMail(admins: any) {
|
private sendMail(admins: any) {
|
||||||
this.showLoading = true;
|
this.sending = true;
|
||||||
this.subscriptions.push(this._emailService.contact(this.properties,
|
this.subscriptions.push(this.emailService.contact(this.properties,
|
||||||
Composer.composeEmailForMonitor(this.contactForm.value, admins),
|
Composer.composeEmailForMonitor(this.contactForm.value, admins),
|
||||||
this.contactForm.value.recaptcha).subscribe(
|
this.contactForm.value.recaptcha).subscribe(
|
||||||
res => {
|
res => {
|
||||||
this.showLoading = false;
|
|
||||||
if (res) {
|
if (res) {
|
||||||
|
this.sending = false;
|
||||||
this.reset();
|
this.reset();
|
||||||
this.modalOpen();
|
this.modalOpen();
|
||||||
} else {
|
} else {
|
||||||
this.errorMessage = 'Email sent failed! Please try again.';
|
this.handleError('Email <b>sent failed!</b> Please try again.');
|
||||||
this.contactForm.get('recaptcha').setValue('');
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
this.handleError('Email sent failed! Please try again.', error);
|
this.handleError('Email <b>sent failed!</b> Please try again.', error);
|
||||||
this.showLoading = false;
|
|
||||||
this.contactForm.get('recaptcha').setValue('');
|
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -149,10 +129,13 @@ export class ContactComponent implements OnInit {
|
||||||
this.modal.open();
|
this.modal.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
handleError(message: string, error) {
|
handleError(message: string, error = null) {
|
||||||
this.errorMessage = message;
|
if(error) {
|
||||||
console.log('Server responded: ' + error);
|
console.error(error);
|
||||||
this.showLoading = false;
|
}
|
||||||
|
NotificationHandler.rise(message, 'danger');
|
||||||
|
this.sending = false;
|
||||||
|
this.contactForm.get('recaptcha').setValue('');
|
||||||
}
|
}
|
||||||
|
|
||||||
public goToHome() {
|
public goToHome() {
|
||||||
|
|
|
@ -13,14 +13,15 @@ import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
|
||||||
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
||||||
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
|
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
|
||||||
import {ContactUsModule} from "../openaireLibrary/contact-us/contact-us.module";
|
import {ContactUsModule} from "../openaireLibrary/contact-us/contact-us.module";
|
||||||
|
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
ContactRoutingModule, CommonModule, RouterModule,
|
ContactRoutingModule, CommonModule, RouterModule,
|
||||||
AlertModalModule, RecaptchaModule, HelperModule,
|
AlertModalModule, RecaptchaModule, HelperModule,
|
||||||
Schema2jsonldModule, SEOServiceModule, ContactUsModule
|
Schema2jsonldModule, SEOServiceModule, ContactUsModule, BreadcrumbsModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
ContactComponent
|
ContactComponent
|
||||||
],
|
],
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {GetStartedComponent} from './get-started.component';
|
||||||
|
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: GetStartedComponent, canActivate: [], canDeactivate: [PreviousRouteRecorder]}
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class GetStartedRoutingModule { }
|
|
@ -0,0 +1,126 @@
|
||||||
|
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
|
||||||
|
<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-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>
|
||||||
|
<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 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-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>
|
||||||
|
<img src="assets/monitor-assets/get-started/steps.svg" loading="lazy">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<modal-alert #modal (alertOutput)="goToHome()">
|
||||||
|
<div class="uk-padding-small uk-padding-remove-horizontal">
|
||||||
|
Our team will respond to your submission soon.<br>
|
||||||
|
Press OK to redirect to OpenAIRE Monitor home page.
|
||||||
|
</div>
|
||||||
|
</modal-alert>
|
|
@ -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%;
|
||||||
|
}
|
|
@ -0,0 +1,163 @@
|
||||||
|
import {Component, OnInit, ViewChild} from '@angular/core';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {EmailService} from "../openaireLibrary/utils/email/email.service";
|
||||||
|
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
||||||
|
import {Composer} from "../openaireLibrary/utils/email/composer";
|
||||||
|
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 {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
|
||||||
|
import {Subscriber} from "rxjs";
|
||||||
|
import {properties} from "../../environments/environment";
|
||||||
|
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
|
||||||
|
import {NotificationHandler} from "../openaireLibrary/utils/notification-handler";
|
||||||
|
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
||||||
|
import {StakeholderEntities} from '../openaireLibrary/monitor/entities/stakeholder';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'get-started',
|
||||||
|
templateUrl: './get-started.component.html',
|
||||||
|
styleUrls: ['./get-started.component.less']
|
||||||
|
})
|
||||||
|
export class GetStartedComponent implements OnInit {
|
||||||
|
public url: string = null;
|
||||||
|
public pageTitle: string = "OpenAIRE - Monitor | Get Started";
|
||||||
|
public description: string = "OpenAIRE - Monitor . Any Questions? Contact us to learn more";
|
||||||
|
public piwiksub: any;
|
||||||
|
public sending = false;
|
||||||
|
public properties: EnvProperties = properties;
|
||||||
|
public pageContents = null;
|
||||||
|
public divContents = null;
|
||||||
|
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Get started'}];
|
||||||
|
public organizationTypes: string[] = [
|
||||||
|
'Funding agency', 'University / Research Center',
|
||||||
|
'Research Infrastructure', 'Government',
|
||||||
|
'Non-profit', 'Industry', 'Other'
|
||||||
|
];
|
||||||
|
public contactForm: UntypedFormGroup;
|
||||||
|
@ViewChild('modal') modal;
|
||||||
|
private subscriptions = [];
|
||||||
|
public stakeholderEntities = StakeholderEntities;
|
||||||
|
|
||||||
|
constructor(private route: ActivatedRoute,
|
||||||
|
private _router: Router,
|
||||||
|
private _emailService: EmailService,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _title: Title,
|
||||||
|
private seoService: SEOService,
|
||||||
|
private _piwikService: PiwikService,
|
||||||
|
private fb: UntypedFormBuilder,
|
||||||
|
private helper: HelperService) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.subscriptions.forEach(subscription => {
|
||||||
|
if (subscription instanceof Subscriber) {
|
||||||
|
subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
this.reset();
|
||||||
|
//this.getDivContents();
|
||||||
|
// this.getPageContents();
|
||||||
|
}
|
||||||
|
|
||||||
|
private getPageContents() {
|
||||||
|
this.subscriptions.push(this.helper.getPageHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
|
||||||
|
this.pageContents = contents;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private getDivContents() {
|
||||||
|
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
|
||||||
|
this.divContents = contents;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
public send(event) {
|
||||||
|
if (event.valid === true) {
|
||||||
|
this.sendMail(this.properties.admins);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public reset() {
|
||||||
|
this.contactForm = this.fb.group({
|
||||||
|
name: this.fb.control('', Validators.required),
|
||||||
|
surname: this.fb.control('', Validators.required),
|
||||||
|
email: this.fb.control('', [Validators.required, Validators.email]),
|
||||||
|
job: this.fb.control('', Validators.required),
|
||||||
|
organization: this.fb.control('', Validators.required),
|
||||||
|
organizationType: this.fb.control('', [Validators.required, StringUtils.validatorType(this.organizationTypes)]),
|
||||||
|
message: this.fb.control('', Validators.required),
|
||||||
|
recaptcha: this.fb.control('', Validators.required),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private sendMail(admins: any) {
|
||||||
|
this.sending = true;
|
||||||
|
this.subscriptions.push(this._emailService.contact(this.properties,
|
||||||
|
Composer.composeEmailForMonitor(this.contactForm.value, admins),
|
||||||
|
this.contactForm.value.recaptcha).subscribe(
|
||||||
|
res => {
|
||||||
|
if (res) {
|
||||||
|
this.sending = false;
|
||||||
|
this.reset();
|
||||||
|
this.modalOpen();
|
||||||
|
} else {
|
||||||
|
this.handleError('Email <b>sent failed!</b> Please try again.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.handleError('Email <b>sent failed!</b> Please try again.', error);
|
||||||
|
|
||||||
|
}
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public modalOpen() {
|
||||||
|
this.modal.okButton = true;
|
||||||
|
this.modal.alertTitle = 'Your request has been successfully submitted';
|
||||||
|
this.modal.alertMessage = false;
|
||||||
|
this.modal.cancelButton = false;
|
||||||
|
this.modal.okButtonLeft = false;
|
||||||
|
this.modal.okButtonText = 'OK';
|
||||||
|
this.modal.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
handleError(message: string, error = null) {
|
||||||
|
if(error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
NotificationHandler.rise(message, 'danger');
|
||||||
|
this.sending = false;
|
||||||
|
this.contactForm.get('recaptcha').setValue('');
|
||||||
|
}
|
||||||
|
|
||||||
|
public goToHome() {
|
||||||
|
this._router.navigate(['/']);
|
||||||
|
}
|
||||||
|
|
||||||
|
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'");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {CommonModule} from '@angular/common';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
|
||||||
|
import {GetStartedComponent} from './get-started.component';
|
||||||
|
import {GetStartedRoutingModule} from "./get-started-routing.module";
|
||||||
|
import {EmailService} from "../openaireLibrary/utils/email/email.service";
|
||||||
|
import {RecaptchaModule} from "ng-recaptcha";
|
||||||
|
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
|
||||||
|
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
|
||||||
|
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
||||||
|
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
|
||||||
|
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
||||||
|
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
|
||||||
|
import {ContactUsModule} from "../openaireLibrary/contact-us/contact-us.module";
|
||||||
|
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
|
||||||
|
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
|
||||||
|
import {IconsModule} from '../openaireLibrary/utils/icons/icons.module';
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
GetStartedRoutingModule, CommonModule, RouterModule,
|
||||||
|
AlertModalModule, RecaptchaModule, HelperModule,
|
||||||
|
Schema2jsonldModule, SEOServiceModule, ContactUsModule, BreadcrumbsModule, LoadingModule,
|
||||||
|
IconsModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
GetStartedComponent
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
EmailService, PiwikService, IsRouteEnabled
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
GetStartedComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
export class GetStartedModule { }
|
|
@ -4,11 +4,12 @@ import { RouterModule } from '@angular/router';
|
||||||
import{HomeComponent} from './home.component';
|
import{HomeComponent} from './home.component';
|
||||||
|
|
||||||
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {CanExitGuard} from "../openaireLibrary/utils/can-exit.guard";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{ path: '', component: HomeComponent, canDeactivate: [PreviousRouteRecorder] }
|
{ path: '', component: HomeComponent, canDeactivate: [PreviousRouteRecorder, CanExitGuard] }
|
||||||
|
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
@media only screen and (min-width:1200px) {
|
|
||||||
.girl-background {
|
|
||||||
background-size: 210px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 95% 50%;
|
|
||||||
background-image: url("/assets/monitor-assets/home/girl.png");
|
|
||||||
padding-bottom: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-section .dashboard {
|
|
||||||
background-image: url("/assets/monitor-assets/home/dashboard-background.svg");
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-section .info > div {
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-section .info > .uk-active > h5 {
|
|
||||||
color: var(--portal-main-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-section .info > div:hover {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (min-width:960px) {
|
|
||||||
.hologram {
|
|
||||||
background-image: url("/assets/monitor-assets/home/hologram.png");
|
|
||||||
background-size: 20%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: bottom center;
|
|
||||||
padding-bottom: 50px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hologram .part {
|
|
||||||
max-width: 370px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.graph-section {
|
|
||||||
background-image: url("/assets/monitor-assets/home/graph-background.svg");
|
|
||||||
background-size: cover;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
padding: 5vh 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .stakeholders {
|
|
||||||
min-height: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .uk-subnav-pill > li > a {
|
|
||||||
color: currentColor;
|
|
||||||
font-size: 13px;
|
|
||||||
text-transform: none;
|
|
||||||
opacity: 0.5;
|
|
||||||
border-radius: 40px;
|
|
||||||
border: 1px solid currentColor;
|
|
||||||
padding: 6px 18px;
|
|
||||||
line-height: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .uk-subnav-pill > li:hover > a {
|
|
||||||
border-color: var(--portal-main-color);
|
|
||||||
color: var(--portal-main-color);
|
|
||||||
background-color: var(--portal-main-contrast);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .uk-subnav-pill > li.uk-active > a {
|
|
||||||
opacity: 1;
|
|
||||||
border-color: var(--portal-main-color);
|
|
||||||
color: var(--portal-main-contrast);
|
|
||||||
background-color: var(--portal-main-color);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .uk-card {
|
|
||||||
border-radius: 20px;
|
|
||||||
color: currentColor;
|
|
||||||
font-family: "Roboto", sans-serif;
|
|
||||||
padding: 70px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stakeholder-section .uk-card img {
|
|
||||||
max-height: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width:639px) {
|
|
||||||
.stakeholder-section .uk-subnav-pill {
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,253 +1,595 @@
|
||||||
<div class="image-front-topbar"
|
<ng-template #tablet_text>
|
||||||
style="background: transparent linear-gradient(180deg, #F4F4F4 0%, #F5F5F5 83%, #FAFAFA 100%) no-repeat;">
|
<div>
|
||||||
<div
|
<h6 class="uk-margin-xsmall-bottom">
|
||||||
class="uk-section uk-container uk-container-large uk-text-center uk-section uk-section-small uk-margin-large-bottom"
|
Monitor, discover and understand.
|
||||||
uk-parallax="media: @l; y: -200; easing: 0.5">
|
</h6>
|
||||||
<div class="uk-padding-small">
|
<div>Track your organization’s research output in a comprehensive manner. Identify research pathways across key
|
||||||
<h1 class="uk-margin-top">A new era of monitoring research.</h1>
|
dimensions with granular and timely indicators.</div>
|
||||||
<div class="girl-background">
|
</div>
|
||||||
<h4 class="uk-margin-remove-top">Open data. Open methodologies.</h4>
|
<div>
|
||||||
<div class="uk-margin-medium-top uk-text-muted">
|
<h6 class="uk-margin-xsmall-bottom">
|
||||||
Work together with us to view, understand and visualize<br>research statistics and indicators.
|
<span class="uk-text-primary">Enhance</span> open science uptake<span class="uk-text-primary">.</span>
|
||||||
</div>
|
</h6>
|
||||||
</div>
|
<div>Work with the Open Science expert community for open and transparent metrics. Discover Open Science costs and
|
||||||
</div>
|
trends for your organization. See how you fare in the European Open Science Cloud.</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div>
|
||||||
<div class="uk-section uk-container uk-container-large dashboard-section">
|
<h6 class="uk-margin-xsmall-bottom">
|
||||||
<div class="uk-padding-small">
|
Turn data into <span class="uk-text-primary">actionable insights.</span>
|
||||||
<div class="dashboard uk-flex uk-flex-center">
|
</h6>
|
||||||
<img class="uk-width-1-2@l" src="/assets/monitor-assets/home/dashboard.png">
|
<div>See what works and what not, reveal hidden potential. Measure research impact, discover trends, connections
|
||||||
</div>
|
and collaborations to improve and optimize your future actions.</div>
|
||||||
<div class="uk-margin-large-top">
|
</div>
|
||||||
<div class="uk-margin-medium-left uk-margin-medium-right uk-margin-large-bottom">
|
|
||||||
<div class="uk-child-width-1-3@m uk-grid info" uk-grid>
|
|
||||||
<div [@1]="state.toString()" class="clickable" [class.uk-active]="state === 1" (click)="startAnimation()">
|
|
||||||
<h5>
|
|
||||||
Get a complete picture
|
|
||||||
</h5>
|
|
||||||
<div class="uk-text-muted">
|
|
||||||
Track and discover your organization’s research output. Use the OpenAIRE Research Graph to get a
|
|
||||||
360<span>°</span>
|
|
||||||
view of your publications-data-code.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div [@2]="state.toString()" class="clickable" [class.uk-active]="state === 2" (click)="startAnimation(2)">
|
|
||||||
<h5>
|
|
||||||
Monitor open science compliance
|
|
||||||
</h5>
|
|
||||||
<div class="uk-text-muted">
|
|
||||||
Work with the open science expert community for open and transparent metrics. Discover open science trends
|
|
||||||
for your organization and see how you fare in EOSC.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div [@3]="state.toString()" class="clickable" [class.uk-active]="state === 3" (click)="startAnimation(3)">
|
|
||||||
<h5>
|
|
||||||
Turn research results to insights
|
|
||||||
</h5>
|
|
||||||
<div class="uk-text-muted">
|
|
||||||
Understand your community. Measure impact, discover trends, connections and collaborations to improve
|
|
||||||
and optimize your future actions.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-section uk-container uk-container-large">
|
|
||||||
<div class="uk-padding-small hologram uk-position-relative">
|
|
||||||
<div class="uk-grid uk-grid-match uk-child-width-1-2 uk-visible@m" uk-grid>
|
|
||||||
<div uk-parallax="y: 40, -60; easing: 0.5">
|
|
||||||
<div class="uk-margin-large-left uk-margin-large-bottom uk-width-3-4 part">
|
|
||||||
<h5 class="uk-text-secondary">Global outlook</h5>
|
|
||||||
<div>
|
|
||||||
Monitor is built on the OpenAIRE Research Graph. An interconnected scholarly communication shared data
|
|
||||||
resource from open initiatives around the world, of global interest.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div uk-parallax="y: 40, -60; easing: 0.5" class="uk-flex uk-flex-right">
|
|
||||||
<div class="part uk-width-3-4 uk-margin-medium-right">
|
|
||||||
<h5 class="uk-text-secondary">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>
|
|
||||||
<div uk-parallax="y: -100; easing: 0.5">
|
|
||||||
<div class="part uk-width-3-4 uk-margin-medium-left">
|
|
||||||
<h5 class="uk-text-secondary">Customised to your needs</h5>
|
|
||||||
<div>
|
|
||||||
Choose from a variety of pre-defined metrics. Select how to visualize them, and who to share with. Use our
|
|
||||||
advanced tools and expertise add add your own metrics.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div uk-parallax="y: -100; easing: 2" class="uk-flex uk-flex-center">
|
|
||||||
<div class="part uk-width-3-4 uk-margin-large-left">
|
|
||||||
<h5 class="uk-text-secondary">Minimum effort to join</h5>
|
|
||||||
<div>
|
|
||||||
You only share some information with us to include in out backend aggregating and data mining, and we
|
|
||||||
deliver a view of your world. As you see fit.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-hidden@m uk-grid uk-child-width-1-1" uk-grid>
|
|
||||||
<div>
|
|
||||||
<h5 class="uk-text-secondary">Global outlook</h5>
|
|
||||||
<div>
|
|
||||||
Monitor is built on the OpenAIRE Research Graph. An interconnected scholarly communication shared data
|
|
||||||
resource from open initiatives around the world, of global interest.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h5 class="uk-text-secondary">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>
|
|
||||||
<h5 class="uk-text-secondary">Customised to your needs</h5>
|
|
||||||
<div>
|
|
||||||
Choose from a variety of pre-defined metrics. Select how to visualize them, and who to share with. Use our
|
|
||||||
advanced tools and expertise add add your own metrics.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h5 class="uk-text-secondary">Minimum effort to join</h5>
|
|
||||||
<div>
|
|
||||||
You only share some information with us to include in out backend aggregating and data mining, and we deliver
|
|
||||||
a view of your world. As you see fit.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-text-center uk-margin-large">
|
|
||||||
<a class="uk-button portal-button" routerLink="/about">Learn More</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="graph-section">
|
|
||||||
<div class="uk-section uk-container uk-margin-large">
|
|
||||||
<div class="uk-text-center uk-padding-small">
|
|
||||||
<h2>Tap into the OpenAIRE Research Graph</h2>
|
|
||||||
<div class="uk-flex uk-flex-center">
|
|
||||||
<div class="uk-width-3-4@m uk-margin-large-top uk-grid uk-child-width-1-5@m uk-child-width-1-2">
|
|
||||||
<div *ngIf="publicationsSize" class="uk-margin-medium-bottom uk-text-center">
|
|
||||||
<h3 class="uk-margin-remove portal-color">
|
|
||||||
<a class="uk-link-reset"
|
|
||||||
href="https://explore.openaire.eu/search/find/research-outcomes?type=publications" target=_blank>
|
|
||||||
<span class="uk-text-bold number">{{publicationsSize.number|number}}</span>{{publicationsSize.size}}
|
|
||||||
</a>
|
|
||||||
</h3>
|
|
||||||
<div class="uk-margin-small uk-text-large uk-text-uppercase">publications</div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="datasetsSize" class="uk-margin-medium-bottom uk-text-center">
|
|
||||||
<h3 class="uk-margin-remove portal-color">
|
|
||||||
<a class="uk-link-reset" href="https://explore.openaire.eu/search/find/research-outcomes?type=datasets"
|
|
||||||
target=_blank>
|
|
||||||
<span class="uk-text-bold number">{{datasetsSize.number|number}}</span>{{datasetsSize.size}}
|
|
||||||
</a>
|
|
||||||
</h3>
|
|
||||||
<div class="uk-margin-small uk-text-large uk-text-uppercase">datasets</div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="softwareSize" class="uk-margin-medium-bottom uk-text-center">
|
|
||||||
<h3 class="uk-margin-remove portal-color">
|
|
||||||
<a class="uk-link-reset" href="https://explore.openaire.eu/search/find/research-outcomes?type=software"
|
|
||||||
target="_blank">
|
|
||||||
<span class="uk-text-bold number">{{softwareSize.number|number}}</span>{{softwareSize.size}}
|
|
||||||
</a>
|
|
||||||
</h3>
|
|
||||||
<div class="uk-margin-small uk-text-large uk-text-uppercase">software</div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="otherSize" class="uk-margin-medium-bottom uk-text-center">
|
|
||||||
<h3 class="uk-margin-remove portal-color">
|
|
||||||
<a class="uk-link-reset" href="https://explore.openaire.eu/search/find/research-outcomes?type=other"
|
|
||||||
target="_blank">
|
|
||||||
<span class="uk-text-bold number">{{otherSize.number|number}}</span>{{otherSize.size}}
|
|
||||||
</a>
|
|
||||||
</h3>
|
|
||||||
<div class="uk-margin-small uk-text-large uk-text-uppercase">other</div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="fundersSize" class="uk-margin-medium-bottom uk-text-center">
|
|
||||||
<h3 class="uk-margin-remove portal-color">
|
|
||||||
<a class="uk-link-reset" href="https://explore.openaire.eu/search/find/projects" target="_blank">
|
|
||||||
<span class="uk-text-bold number">{{fundersSize.number|number}}</span>{{fundersSize.size}}
|
|
||||||
</a>
|
|
||||||
</h3>
|
|
||||||
<div class="uk-margin-small uk-text-large uk-text-uppercase">Funders</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="loading && stakeholders.length === 0" class="uk-container uk-container-large uk-margin-large-bottom">
|
|
||||||
<errorMessages [status]="[status]" [type]="'stakeholders'"></errorMessages>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="!loading && stakeholders && stakeholders.length > 0"
|
|
||||||
class="uk-section uk-section-large uk-margin-right uk-margin-left uk-margin-large-top stakeholder-section">
|
|
||||||
<div class="uk-container" uk-filter="target: .stakeholders">
|
|
||||||
<ul class="uk-subnav uk-subnav-pill">
|
|
||||||
<li class="uk-active" uk-filter-control><a (click)="type = null">All</a></li>
|
|
||||||
<li uk-filter-control="[data-type='funder']"><a (click)="type = 'funder'">Funders</a></li>
|
|
||||||
<li uk-filter-control="[data-type='ri']"><a (click)="type = 'ri'">Research Initiatives</a></li>
|
|
||||||
<!--<li uk-filter-control="[data-type='project']"><a (click)="type = 'project'">Projects</a></li>-->
|
|
||||||
<li uk-filter-control="[data-type='organization']"><a (click)="type = 'organization'">Institutions</a></li>
|
|
||||||
</ul>
|
|
||||||
<div class="stakeholders uk-margin-large-top uk-child-width-1-1 uk-child-width-1-2@s uk-child-width-1-3@m uk-grid uk-flex-top uk-flex-wrap-top"
|
|
||||||
uk-grid="masonry: true" uk-height-match="target: .uk-card; row: false;">
|
|
||||||
<div *ngFor="let stakeholder of stakeholders" [attr.data-type]="stakeholder.type">
|
|
||||||
<a *ngIf="directLink && hasPermission(stakeholder)" [href]="getStakeholderPageUrl(stakeholder)" target="_blank">
|
|
||||||
<ng-container *ngTemplateOutlet="stakeholderCard; context: {stakeholder: stakeholder}"></ng-container>
|
|
||||||
</a>
|
|
||||||
<a *ngIf="!directLink && hasPermission(stakeholder)" (click)="confirmModalOpen(stakeholder)">
|
|
||||||
<ng-container *ngTemplateOutlet="stakeholderCard; context: {stakeholder: stakeholder}"></ng-container>
|
|
||||||
</a>
|
|
||||||
<ng-container *ngIf="!hasPermission(stakeholder)">
|
|
||||||
<ng-container *ngTemplateOutlet="stakeholderCard; context: {stakeholder: stakeholder}"></ng-container>
|
|
||||||
</ng-container>
|
|
||||||
</div>
|
|
||||||
<div *ngIf="stakeholdersNumber === 0" [attr.data-type]="type"
|
|
||||||
class="uk-text-center uk-text-large uk-width-1-1 uk-margin-large-top uk-padding-large">
|
|
||||||
Nothing here yet.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div style="background: linear-gradient(0deg, #FFFFFF 0%, #EFF3F8 0%, #FAFAFA 100%);">
|
|
||||||
<div class="uk-section uk-container uk-text-center uk-margin-large-bottom">
|
|
||||||
<div class="uk-padding-small">
|
|
||||||
<h3>Contact us to help you.</h3>
|
|
||||||
<div class="uk-text-muted uk-margin-medium">
|
|
||||||
Are you looking for more? Get in touch with our team and let us help you.
|
|
||||||
</div>
|
|
||||||
<a class="uk-button portal-button" routerLink="/contact-us">CONTACT US</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-section-muted"
|
|
||||||
uk-scrollspy="{"target":"[uk-scrollspy-class]","cls":"uk-animation-fade","delay":false}">
|
|
||||||
<div class="uk-container uk-container-large">
|
|
||||||
<other-portals [properties]="properties" portal="monitor"></other-portals>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<modal-alert #AlertModal (alertOutput)="goToPage($event)">
|
|
||||||
<div class="uk-text-left">
|
|
||||||
You will be navigated to a new tab. Are you sure that you want to proceed?
|
|
||||||
</div>
|
|
||||||
</modal-alert>
|
|
||||||
<ng-template #stakeholderCard let-stakeholder="stakeholder">
|
|
||||||
<div class="uk-card uk-card-default uk-text-center uk-position-relative" [class.disabled]="!hasPermission(stakeholder)">
|
|
||||||
<div *ngIf="stakeholder.visibility && stakeholder.visibility !== 'PUBLIC'"
|
|
||||||
class="uk-position-top-right uk-margin-top uk-margin-right uk-flex uk-flex-middle">
|
|
||||||
<icon [name]="visibilityIcon.get(stakeholder.visibility)"></icon>
|
|
||||||
<span class="space uk-text-small uk-text-capitalize">{{stakeholder.visibility.toLowerCase()}}</span>
|
|
||||||
</div>
|
|
||||||
<img *ngIf="stakeholder.logoUrl" class="uk-margin-auto" [src]="stakeholder | logoUrl">
|
|
||||||
<div class="uk-text-light uk-margin-medium-top">{{stakeholder.name}}</div>
|
|
||||||
</div>
|
|
||||||
</ng-template>
|
</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 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 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-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,
|
||||||
|
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,
|
||||||
|
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,
|
||||||
|
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,
|
||||||
|
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">
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<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">
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
@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) {
|
||||||
|
.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: -5% 95%, top;
|
||||||
|
background-size: 60%, cover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.graph-background {
|
||||||
|
background-image: url('~src/assets/monitor-assets/home/graph.svg');
|
||||||
|
background-position-y: 50%;
|
||||||
|
background-position-x: -5%;
|
||||||
|
background-size: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bullets {
|
||||||
|
& > div {
|
||||||
|
max-width: 360px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-us {
|
||||||
|
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
width: @home-curator-image-size;
|
||||||
|
height: @home-curator-image-size;
|
||||||
|
object-fit: cover;
|
||||||
|
border-radius: 18px;
|
||||||
|
|
||||||
|
|
||||||
|
&.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,20 @@
|
||||||
import {Component, ViewChild} from '@angular/core';
|
import {
|
||||||
|
AfterViewInit,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
ElementRef,
|
||||||
|
Inject,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
PLATFORM_ID,
|
||||||
|
QueryList,
|
||||||
|
ViewChild,
|
||||||
|
ViewChildren
|
||||||
|
} from '@angular/core';
|
||||||
import {ActivatedRoute, Router} from '@angular/router';
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
import {Meta, Title} from '@angular/platform-browser';
|
import {Meta, Title} from '@angular/platform-browser';
|
||||||
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {StringUtils} from '../openaireLibrary/utils/string-utils.class';
|
|
||||||
|
|
||||||
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
import {ErrorMessagesComponent} from '../openaireLibrary/utils/errorMessages.component';
|
import {ErrorMessagesComponent} from '../openaireLibrary/utils/errorMessages.component';
|
||||||
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
||||||
|
@ -12,83 +22,59 @@ import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
||||||
import {RefineFieldResultsService} from "../openaireLibrary/services/refineFieldResults.service";
|
import {RefineFieldResultsService} from "../openaireLibrary/services/refineFieldResults.service";
|
||||||
import {NumberUtils} from "../openaireLibrary/utils/number-utils.class";
|
import {NumberUtils} from "../openaireLibrary/utils/number-utils.class";
|
||||||
import {SearchResearchResultsService} from "../openaireLibrary/services/searchResearchResults.service";
|
import {SearchResearchResultsService} from "../openaireLibrary/services/searchResearchResults.service";
|
||||||
import {animate, state, style, transition, trigger} from "@angular/animations";
|
|
||||||
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
||||||
import {LocalStorageService} from "../openaireLibrary/services/localStorage.service";
|
import {LocalStorageService} from "../openaireLibrary/services/localStorage.service";
|
||||||
import {Stakeholder, Visibility} from "../openaireLibrary/monitor/entities/stakeholder";
|
import {Stakeholder, StakeholderEntities, StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
import {Session, User} from "../openaireLibrary/login/utils/helper.class";
|
import {User} from "../openaireLibrary/login/utils/helper.class";
|
||||||
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
import {Subscriber} from "rxjs";
|
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({
|
@Component({
|
||||||
selector: 'home',
|
selector: 'home',
|
||||||
templateUrl: 'home.component.html',
|
templateUrl: 'home.component.html',
|
||||||
styleUrls: ['home.component.css'],
|
styleUrls: ['home.component.less']
|
||||||
animations: [
|
|
||||||
trigger('1', [
|
|
||||||
state('1', style({
|
|
||||||
opacity: 1
|
|
||||||
})),
|
|
||||||
transition('* => *', [
|
|
||||||
animate('0.3s')
|
|
||||||
])
|
|
||||||
]),
|
|
||||||
trigger('2', [
|
|
||||||
state('2', style({
|
|
||||||
opacity: 1
|
|
||||||
})),
|
|
||||||
transition('* => *', [
|
|
||||||
animate('0.3s')
|
|
||||||
])
|
|
||||||
]),
|
|
||||||
trigger('3', [
|
|
||||||
state('3', style({
|
|
||||||
opacity: 1
|
|
||||||
})),
|
|
||||||
transition('* => *', [
|
|
||||||
animate('0.3s')
|
|
||||||
])
|
|
||||||
])
|
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class HomeComponent {
|
export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactivateComponent {
|
||||||
public pageTitle = "OpenAIRE | Monitor";
|
public pageTitle = "OpenAIRE | Monitor";
|
||||||
public stakeholders: Stakeholder[] = [];
|
public description = "OpenAIRE - Monitor, A new era of monitoring research. Open data. Open methodologies. Work together with us to view, understand and visualize research statistics and indicators.";
|
||||||
|
public stakeholders: StakeholderInfo[] = [];
|
||||||
|
public stakeholdersSlider: {
|
||||||
|
stakeholders: StakeholderInfo[][];
|
||||||
|
funders: StakeholderInfo[][];
|
||||||
|
ris: StakeholderInfo[][];
|
||||||
|
organizations: StakeholderInfo[][];
|
||||||
|
};
|
||||||
public selected: Stakeholder = null;
|
public selected: Stakeholder = null;
|
||||||
public pageContents = null;
|
public pageContents = null;
|
||||||
public divContents = null;
|
public divContents = null;
|
||||||
// Message variables
|
// Message variables
|
||||||
public status: number;
|
public status: number;
|
||||||
public loading: boolean = true;
|
public loading: boolean = true;
|
||||||
public subscriberErrorMessage: string = "";
|
|
||||||
public errorCodes: ErrorCodes;
|
public errorCodes: ErrorCodes;
|
||||||
private errorMessages: ErrorMessagesComponent;
|
public properties: EnvProperties = properties;
|
||||||
|
public openaireEntities = OpenaireEntities;
|
||||||
properties: EnvProperties;
|
public stakeholderEntities = StakeholderEntities;
|
||||||
public keyword: string = "";
|
public directLink: boolean = true;
|
||||||
public type: string = null;
|
|
||||||
|
|
||||||
public publicationsSize: any = null;
|
public publicationsSize: any = null;
|
||||||
public datasetsSize: any = null;
|
public datasetsSize: any = null;
|
||||||
public softwareSize: any = null;
|
public softwareSize: any = null;
|
||||||
public otherSize: any = null;
|
public otherSize: any = null;
|
||||||
public fundersSize: any = null;
|
public fundersSize: any = null;
|
||||||
subscriptions = [];
|
private errorMessages: ErrorMessagesComponent;
|
||||||
|
private subscriptions = [];
|
||||||
public state = 1;
|
private mutationObserver: MutationObserver;
|
||||||
private timeouts: any[] = [];
|
|
||||||
@ViewChild('AlertModal') modal;
|
|
||||||
public directLink: boolean = true;
|
|
||||||
private user: User;
|
private user: User;
|
||||||
visibilityIcon: Map<Visibility, string> = new Map<Visibility, string> ([
|
@ViewChild('contact') contact: ElementRef;
|
||||||
["PUBLIC", 'earth'],
|
isMobile: boolean = false;
|
||||||
["PRIVATE", 'lock'],
|
isServer: boolean;
|
||||||
["RESTRICTED", 'group']
|
|
||||||
]);
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private route: ActivatedRoute,
|
|
||||||
private _router: Router,
|
private _router: Router,
|
||||||
private _meta: Meta,
|
private _meta: Meta,
|
||||||
private _title: Title,
|
private _title: Title,
|
||||||
|
@ -98,63 +84,86 @@ export class HomeComponent {
|
||||||
private userManagementService: UserManagementService,
|
private userManagementService: UserManagementService,
|
||||||
private helper: HelperService,
|
private helper: HelperService,
|
||||||
private seoService: SEOService,
|
private seoService: SEOService,
|
||||||
private _refineFieldResultsService: RefineFieldResultsService, private _searchResearchResultsService: SearchResearchResultsService) {
|
private _refineFieldResultsService: RefineFieldResultsService,
|
||||||
|
private _searchResearchResultsService: SearchResearchResultsService,
|
||||||
|
private quickContactService: QuickContactService,
|
||||||
var description = "OpenAIRE - Monitor, A new era of monitoring research. Open data. Open methodologies. Work together with us to view, understand and visualize research statistics and indicators. ";
|
private layoutService: LayoutService,
|
||||||
var title = "OpenAIRE - Monitor";
|
private cdr: ChangeDetectorRef,
|
||||||
|
@Inject(PLATFORM_ID) private platform: any) {
|
||||||
this._meta.updateTag({content: description}, "name='description'");
|
this._meta.updateTag({content: this.description}, "name='description'");
|
||||||
this._meta.updateTag({content: description}, "property='og:description'");
|
this._meta.updateTag({content: this.description}, "property='og:description'");
|
||||||
this._meta.updateTag({content: title}, "property='og:title'");
|
this._meta.updateTag({content: this.pageTitle}, "property='og:title'");
|
||||||
this._title.setTitle(title);
|
this._title.setTitle(this.pageTitle);
|
||||||
|
|
||||||
this.errorCodes = new ErrorCodes();
|
this.errorCodes = new ErrorCodes();
|
||||||
this.errorMessages = new ErrorMessagesComponent();
|
this.errorMessages = new ErrorMessagesComponent();
|
||||||
this.status = this.errorCodes.LOADING;
|
this.status = this.errorCodes.LOADING;
|
||||||
|
this.isServer = isPlatformServer(this.platform);
|
||||||
|
this.quickContactService.setDisplay(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
this.properties = properties;
|
let url = this.properties.domain + this.properties.baseLink + this._router.url;
|
||||||
var url = this.properties.domain + this.properties.baseLink + this._router.url;
|
|
||||||
this.seoService.createLinkForCanonicalURL(url, false);
|
this.seoService.createLinkForCanonicalURL(url, false);
|
||||||
this._meta.updateTag({content: url}, "property='og:url'");
|
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").subscribe());
|
||||||
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Monitor", this.properties.piwikSiteId).subscribe());
|
|
||||||
}
|
|
||||||
this.getNumbers();
|
this.getNumbers();
|
||||||
this.getStakeholders();
|
|
||||||
// this.createGifs();
|
|
||||||
//this.getDivContents();
|
|
||||||
// this.getPageContents();
|
|
||||||
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
|
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
|
||||||
this.directLink = value;
|
this.directLink = value;
|
||||||
}));
|
}));
|
||||||
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
||||||
this.user = user;
|
this.user = user;
|
||||||
|
this.getStakeholders();
|
||||||
}));
|
}));
|
||||||
|
this.layoutService.isMobile.subscribe(isMobile => {
|
||||||
if(typeof document != "undefined") {
|
this.isMobile = isMobile;
|
||||||
this.startAnimation();
|
this.cdr.detectChanges();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
canExit(): boolean {
|
||||||
|
this.clear();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.quickContactService.setDisplay(true);
|
||||||
|
this.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
clear() {
|
||||||
|
this.subscriptions.forEach(value => {
|
||||||
|
if (value instanceof Subscriber) {
|
||||||
|
value.unsubscribe();
|
||||||
|
} else if (value instanceof IntersectionObserver || value instanceof MutationObserver) {
|
||||||
|
value.disconnect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(this.mutationObserver) {
|
||||||
|
this.mutationObserver.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public startAnimation(state = 1) {
|
ngAfterViewInit() {
|
||||||
this.clearTimeouts();
|
if(typeof window !== "undefined") {
|
||||||
this.state = state;
|
this.createObservers();
|
||||||
this.timeouts.push(setTimeout(() => {
|
}
|
||||||
if (this.state < 3) {
|
|
||||||
this.startAnimation(this.state + 1);
|
|
||||||
} else {
|
|
||||||
this.startAnimation();
|
|
||||||
}
|
|
||||||
}, 6000));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private clearTimeouts() {
|
createObservers() {
|
||||||
this.timeouts.forEach(timeout => {
|
let options = {
|
||||||
clearTimeout(timeout);
|
root: null,
|
||||||
});
|
rootMargin: '200px',
|
||||||
|
threshold: 1.0
|
||||||
|
};
|
||||||
|
let intersectionObserver = new IntersectionObserver(entries => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
this.quickContactService.setDisplay(!entry.isIntersecting);
|
||||||
|
});
|
||||||
|
}, options);
|
||||||
|
if(this.contact) {
|
||||||
|
intersectionObserver.observe(this.contact.nativeElement);
|
||||||
|
}
|
||||||
|
this.subscriptions.push(intersectionObserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
private getPageContents() {
|
private getPageContents() {
|
||||||
|
@ -169,16 +178,8 @@ export class HomeComponent {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public get stakeholdersNumber(): number {
|
|
||||||
if(this.type === null) {
|
|
||||||
return this.stakeholders.length;
|
|
||||||
} else {
|
|
||||||
return this.stakeholders.filter(stakeholder => stakeholder.type === this.type).length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getNumbers() {
|
getNumbers() {
|
||||||
this.subscriptions.push(this._refineFieldResultsService.getRefineFieldsResultsByEntityName(["funder"], "project", this.properties).subscribe(
|
this.subscriptions.push(this._refineFieldResultsService.getAllRefineFieldResultsByFieldName("funder", "project", this.properties).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if (data[1].length > 0 && data[1][0].filterId == "funder" && data[1][0].values) {
|
if (data[1].length > 0 && data[1][0].filterId == "funder" && data[1][0].values) {
|
||||||
this.fundersSize = NumberUtils.roundNumber(data[1][0].values.length);
|
this.fundersSize = NumberUtils.roundNumber(data[1][0].values.length);
|
||||||
|
@ -188,7 +189,7 @@ export class HomeComponent {
|
||||||
//console.log(err);
|
//console.log(err);
|
||||||
this.handleError("Error getting 'funder' field results of projects", err);
|
this.handleError("Error getting 'funder' field results of projects", err);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("publication", "", this.properties).subscribe(
|
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("publication", "", this.properties).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if (data && data > 0) {
|
if (data && data > 0) {
|
||||||
|
@ -200,7 +201,7 @@ export class HomeComponent {
|
||||||
this.handleError("Error getting number of publications", err);
|
this.handleError("Error getting number of publications", err);
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("dataset", "", this.properties).subscribe(
|
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("dataset", "", this.properties).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if (data && data > 0) {
|
if (data && data > 0) {
|
||||||
|
@ -212,7 +213,7 @@ export class HomeComponent {
|
||||||
this.handleError("Error getting number of research data", err);
|
this.handleError("Error getting number of research data", err);
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("software", "", this.properties).subscribe(
|
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("software", "", this.properties).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if (data && data > 0) {
|
if (data && data > 0) {
|
||||||
|
@ -223,7 +224,7 @@ export class HomeComponent {
|
||||||
this.handleError("Error getting number of software data", err);
|
this.handleError("Error getting number of software data", err);
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("other", "", this.properties).subscribe(
|
this.subscriptions.push(this._searchResearchResultsService.numOfSearchResults("other", "", this.properties).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if (data && data > 0) {
|
if (data && data > 0) {
|
||||||
|
@ -241,107 +242,90 @@ export class HomeComponent {
|
||||||
public getStakeholders() {
|
public getStakeholders() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.status = this.errorCodes.LOADING;
|
this.status = this.errorCodes.LOADING;
|
||||||
this.subscriberErrorMessage = "";
|
|
||||||
this.subscriptions.push(this._stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL).subscribe(
|
this.subscriptions.push(this._stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL).subscribe(
|
||||||
stakeholders => {
|
stakeholders => {
|
||||||
if (!stakeholders || stakeholders.length == 0) {
|
if (!stakeholders || stakeholders.length == 0) {
|
||||||
this.status = this.errorCodes.NONE;
|
this.status = this.errorCodes.NONE;
|
||||||
} else {
|
} else {
|
||||||
// compare function for alphabetical order based on the 'name' property
|
this.stakeholders = StakeholderInfo.toStakeholderInfo(stakeholders, this.user);
|
||||||
function compare (a, b) {
|
this.sort(this.stakeholders);
|
||||||
if(a.name < b.name) {
|
this.stakeholders = this.publicStakeholders.concat(this.privateStakeholders);
|
||||||
return -1;
|
this.stakeholdersSlider = {
|
||||||
}
|
stakeholders: this.stakeholderSlider(this.stakeholders),
|
||||||
if(a.name > b.name) {
|
funders: this.stakeholderSlider(this.funders),
|
||||||
return 1;
|
ris: this.stakeholderSlider(this.ris),
|
||||||
}
|
organizations: this.stakeholderSlider(this.organizations)
|
||||||
return 0;
|
};
|
||||||
}
|
|
||||||
let publicStakeholders = [];
|
|
||||||
let restrictedStakeholders = [];
|
|
||||||
stakeholders.forEach(stakeholder => {
|
|
||||||
if(stakeholder.visibility == "PUBLIC") {
|
|
||||||
publicStakeholders.push(stakeholder);
|
|
||||||
} else {
|
|
||||||
restrictedStakeholders.push(stakeholder);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// actual sorting of the arrays
|
|
||||||
publicStakeholders.sort(compare);
|
|
||||||
restrictedStakeholders.sort(compare);
|
|
||||||
// joining the two arrays again
|
|
||||||
this.stakeholders = publicStakeholders.concat(restrictedStakeholders);
|
|
||||||
}
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
this.status = this.handleError("Error getting funders", error);
|
this.status = this.handleError("Error getting stakeholders", error);
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private isManager(stakeholder: Stakeholder) {
|
private sort(results: StakeholderInfo[]) {
|
||||||
return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isManager(stakeholder.type, stakeholder.alias, this.user);
|
results.sort((left, right): number => {
|
||||||
|
if (left.name > right.name) {
|
||||||
|
return 1;
|
||||||
|
} else if (left.name < right.name) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private isMember(stakeholder: Stakeholder) {
|
public stakeholderSlider(stakeholders: StakeholderInfo[], size: number = 6): StakeholderInfo[][] {
|
||||||
return Session.isMember(stakeholder.type, stakeholder.alias, this.user);
|
let slider: StakeholderInfo[][] = [];
|
||||||
|
for (let i = 0; i < (stakeholders.length / size); i++) {
|
||||||
|
slider.push(stakeholders.slice(i * size, ((i + 1) * size)));
|
||||||
|
}
|
||||||
|
return slider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public confirmModalOpen(result: Stakeholder) {
|
get publicStakeholders(): StakeholderInfo[] {
|
||||||
this.selected = result;
|
return this.stakeholders.filter(stakeholder => stakeholder.visibility === "PUBLIC");
|
||||||
this.modal.cancelButton = true;
|
|
||||||
this.modal.okButton = true;
|
|
||||||
this.modal.alertTitle = 'You are going to visit ' + result.name + ' Monitor Dashboard';
|
|
||||||
this.modal.alertMessage = false;
|
|
||||||
this.modal.okButtonLeft = false;
|
|
||||||
this.modal.okButtonText = 'Yes';
|
|
||||||
this.modal.cancelButtonText = 'No';
|
|
||||||
this.modal.choice = true;
|
|
||||||
this.modal.open();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public getStakeholderPageUrl(stakeholder: Stakeholder) {
|
get privateStakeholders(): StakeholderInfo[] {
|
||||||
return this.properties.domain + this.properties.baseLink + '/dashboard/' + stakeholder.alias;
|
return this.stakeholders.filter(stakeholder => stakeholder.visibility !== "PUBLIC");
|
||||||
}
|
}
|
||||||
|
|
||||||
public goToPage(data: any) {
|
get funders(): StakeholderInfo[] {
|
||||||
if (data.value == true) {
|
if (this.stakeholders) {
|
||||||
let url = this.getStakeholderPageUrl(this.selected);
|
return this.stakeholders.filter(stakeholder => stakeholder.type === "funder");
|
||||||
this.localStorageService.setCommunityDirectLink(data.choice);
|
} else {
|
||||||
window.open(url, '_blank');
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public quote(param: string): string {
|
get ris(): StakeholderInfo[] {
|
||||||
return StringUtils.quote(param);
|
if (this.stakeholders) {
|
||||||
}
|
return this.stakeholders.filter(stakeholder => stakeholder.type === "ri");
|
||||||
|
} else {
|
||||||
ngOnDestroy() {
|
return [];
|
||||||
this.subscriptions.forEach(subscription => {
|
}
|
||||||
if (subscription instanceof Subscriber) {
|
|
||||||
subscription.unsubscribe();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.clearTimeouts();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hasPermission(stakeholder: Stakeholder) {
|
get organizations(): StakeholderInfo[] {
|
||||||
return stakeholder.visibility === "PUBLIC" || this.isManager(stakeholder) || this.isMember(stakeholder);
|
if (this.stakeholders) {
|
||||||
|
return this.stakeholders.filter(stakeholder => stakeholder.type === "organization");
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleError(message: string, error): number {
|
private handleError(message: string, error): number {
|
||||||
var code = "";
|
let code = "";
|
||||||
if (!error.status) {
|
if (!error.status) {
|
||||||
var error = error.json();
|
|
||||||
code = error.code;
|
code = error.code;
|
||||||
} else {
|
} else {
|
||||||
code = error.status;
|
code = error.status;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.error("Home Component: " + message, error);
|
console.error("Home Component: " + message, error);
|
||||||
|
|
||||||
return this.errorMessages.getErrorCode(code);
|
return this.errorMessages.getErrorCode(code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,8 @@ import {NgModule} from '@angular/core';
|
||||||
import {CommonModule} from '@angular/common';
|
import {CommonModule} from '@angular/common';
|
||||||
import {FormsModule} from '@angular/forms';
|
import {FormsModule} from '@angular/forms';
|
||||||
import {RouterModule} from '@angular/router';
|
import {RouterModule} from '@angular/router';
|
||||||
|
|
||||||
import {HomeComponent} from './home.component';
|
import {HomeComponent} from './home.component';
|
||||||
|
|
||||||
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
import {ErrorMessagesModule} from '../openaireLibrary/utils/errorMessages.module';
|
import {ErrorMessagesModule} from '../openaireLibrary/utils/errorMessages.module';
|
||||||
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
||||||
|
@ -18,16 +15,19 @@ import {RefineFieldResultsServiceModule} from "../openaireLibrary/services/refin
|
||||||
import {SearchResearchResultsServiceModule} from "../openaireLibrary/services/searchResearchResultsService.module";
|
import {SearchResearchResultsServiceModule} from "../openaireLibrary/services/searchResearchResultsService.module";
|
||||||
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
|
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
|
||||||
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
|
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
|
||||||
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
|
|
||||||
import {group, lock} from "../openaireLibrary/utils/icons/icons";
|
|
||||||
import {UrlPrefixModule} from "../openaireLibrary/utils/pipes/url-prefix.module";
|
import {UrlPrefixModule} from "../openaireLibrary/utils/pipes/url-prefix.module";
|
||||||
import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.module";
|
import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.module";
|
||||||
|
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({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule, FormsModule, RouterModule, ErrorMessagesModule, OtherPortalsModule,
|
CommonModule, FormsModule, RouterModule, ErrorMessagesModule, OtherPortalsModule,
|
||||||
HelperModule, Schema2jsonldModule, SEOServiceModule, HomeRoutingModule, SearchResearchResultsServiceModule,
|
HelperModule, Schema2jsonldModule, SEOServiceModule, HomeRoutingModule, SearchResearchResultsServiceModule,
|
||||||
RefineFieldResultsServiceModule, AlertModalModule, IconsModule, UrlPrefixModule, LogoUrlPipeModule
|
RefineFieldResultsServiceModule, AlertModalModule, IconsModule, UrlPrefixModule, LogoUrlPipeModule,
|
||||||
|
SectionScrollModule, LoadingModule, BrowseStakeholderModule, SliderTabsModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
HomeComponent
|
HomeComponent
|
||||||
|
@ -41,7 +41,5 @@ import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.modu
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class HomeModule {
|
export class HomeModule {
|
||||||
constructor(private iconsService: IconsService) {
|
constructor() {}
|
||||||
this.iconsService.registerIcons([group, lock])
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
import {NgModule} from '@angular/core';
|
|
||||||
import {RouterModule} from '@angular/router';
|
|
||||||
|
|
||||||
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
|
||||||
import {LearnHowComponent} from "./learn-how.component";
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
RouterModule.forChild([
|
|
||||||
{ path: '', component: LearnHowComponent, canDeactivate: [PreviousRouteRecorder] }
|
|
||||||
|
|
||||||
])
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class LearnHowRoutingModule { }
|
|
|
@ -1,197 +0,0 @@
|
||||||
@media only screen and (min-width: 640px) {
|
|
||||||
.process .zero {
|
|
||||||
position: relative;
|
|
||||||
padding: 0 8% 0 3%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .zero::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/1.svg");
|
|
||||||
top: 57%;
|
|
||||||
right: -6%;
|
|
||||||
width: 30%;
|
|
||||||
height: 21%;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .first {
|
|
||||||
position: relative;
|
|
||||||
padding: 3% 6% 0 4%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .first::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/2.svg");
|
|
||||||
top: 78%;
|
|
||||||
right: -9%;
|
|
||||||
width: 30%;
|
|
||||||
height: 21%;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .second {
|
|
||||||
position: relative;
|
|
||||||
padding: 6% 6% 0 4.8%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .second::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/3.svg");
|
|
||||||
top: 100%;
|
|
||||||
left: 50%;
|
|
||||||
width: 30%;
|
|
||||||
height: 48%;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .third {
|
|
||||||
position: relative;
|
|
||||||
padding: 8% 9% 0 3%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .third::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/4.svg");
|
|
||||||
top: 68%;
|
|
||||||
left: -25%;
|
|
||||||
width: 30%;
|
|
||||||
height: 15%;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fourth {
|
|
||||||
position: relative;
|
|
||||||
padding: 14% 8% 0 3%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fourth::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/5.svg");
|
|
||||||
top: 87%;
|
|
||||||
left: -25%;
|
|
||||||
width: 30%;
|
|
||||||
height: 15%;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fifth {
|
|
||||||
padding: 16% 10% 0 2%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 639px) {
|
|
||||||
.process .zero {
|
|
||||||
position: relative;
|
|
||||||
padding: 0 12% 0 12%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .zero::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/1.svg");
|
|
||||||
top: 100%;
|
|
||||||
right: 11%;
|
|
||||||
width: 30%;
|
|
||||||
height: 21%;
|
|
||||||
-moz-transform: rotate(90deg);
|
|
||||||
-o-transform: rotate(90deg);
|
|
||||||
-webkit-transform: rotate(90deg);
|
|
||||||
transform: rotate(90deg);
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .first {
|
|
||||||
position: relative;
|
|
||||||
padding: 20% 7% 0 12%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .first::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/2.svg");
|
|
||||||
top: 105%;
|
|
||||||
left: 2%;
|
|
||||||
width: 30%;
|
|
||||||
height: 21%;
|
|
||||||
-moz-transform: rotate(35deg);
|
|
||||||
-o-transform: rotate(35deg);
|
|
||||||
-webkit-transform: rotate(35deg);
|
|
||||||
transform: rotate(35deg);
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .second {
|
|
||||||
position: relative;
|
|
||||||
padding: 20% 7% 0 12%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .second::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/3.svg");
|
|
||||||
top: 100%;
|
|
||||||
left: 66%;
|
|
||||||
width: 30%;
|
|
||||||
height: 48%;;
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .third {
|
|
||||||
position: relative;
|
|
||||||
padding: 20% 7% 0 16%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .third::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/4.svg");
|
|
||||||
top: 106%;
|
|
||||||
left: 5%;
|
|
||||||
width: 30%;
|
|
||||||
height: 15%;
|
|
||||||
-moz-transform: rotate(215deg) scaleY(-1);
|
|
||||||
-o-transform: rotate(215deg) scaleY(-1);
|
|
||||||
-webkit-transform: rotate(215deg) scaleY(-1);
|
|
||||||
transform: rotate(215deg) scaleY(-1);
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fourth {
|
|
||||||
position: relative;
|
|
||||||
padding: 20% 8% 0 16%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fourth::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
background-image: url("/assets/monitor-assets/about/arrows/5.svg");
|
|
||||||
top: 100%;
|
|
||||||
right: 0;
|
|
||||||
width: 30%;
|
|
||||||
height: 19%;
|
|
||||||
-moz-transform: rotate(310deg);
|
|
||||||
-o-transform: rotate(310deg);
|
|
||||||
-webkit-transform: rotate(310deg);
|
|
||||||
transform: rotate(310deg);
|
|
||||||
background-size: contain;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.process .fifth {
|
|
||||||
padding: 20% 7.6% 0 16%;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
<schema2jsonld *ngIf="url" [URL]="url" [name]="pageTitle" type="other" [description]="description"></schema2jsonld>
|
|
||||||
<div class="uk-section uk-container uk-container-large">
|
|
||||||
<div class="uk-padding-small">
|
|
||||||
<div class="uk-flex uk-flex-center">
|
|
||||||
<div class="uk-text-center uk-width-2-5@m uk-width-2-3@s">
|
|
||||||
<h1 class="uk-h2">Learn the process</h1>
|
|
||||||
<h6 class="uk-text-muted uk-margin-remove">
|
|
||||||
Use the Monitor Dashboard to view your research results, open science…
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="process uk-margin-large-top">
|
|
||||||
<div class="uk-flex uk-flex-wrap uk-child-width-1-3@s">
|
|
||||||
<div class="zero">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="90" src="../../assets/monitor-assets/about/process/0.png">
|
|
||||||
</div>
|
|
||||||
<h6>0. Starting from the OpenAIRE RESEARCH GRAPH</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
<a class="uk-link" href="https://graph.openaire.eu" target="_blank">OpenAIRE Research Graph</a> aggregates
|
|
||||||
a collection of research data properties for funders, organizations,
|
|
||||||
researchers, research communities and publishers to interlink information by using a semantic graph
|
|
||||||
database approach.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="first">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="110" src="../../assets/monitor-assets/about/process/1.png">
|
|
||||||
</div>
|
|
||||||
<h6>1. Provide us some information</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
You give us some simple (meta)data related to your organization function: e.g., funding database,
|
|
||||||
repositories, related projects, registry of people… All under confidential agreements.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="second">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="100" src="../../assets/monitor-assets/about/process/2.png">
|
|
||||||
</div>
|
|
||||||
<h6>2. We get the ball rolling</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
We ingest your data in our system and start the work: we clean and normalize your data, we identify and
|
|
||||||
extract related information, we infer links. We refine until we are happy of the results and present to
|
|
||||||
you.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-flex uk-flex-wrap uk-child-width-1-3@s">
|
|
||||||
<div class="third uk-flex-last@s">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="105" src="../../assets/monitor-assets/about/process/3.png">
|
|
||||||
</div>
|
|
||||||
<h6>3. You validate</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
After the first iteration you examine our results to ensure you are satisfied with what you see. As
|
|
||||||
numbers are important, we advise you to take your time and tell us of any deviations. We correct, you
|
|
||||||
check, you approve.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="fourth">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="135" src="../../assets/monitor-assets/about/process/4.png">
|
|
||||||
</div>
|
|
||||||
<h6>4. You set up your portal</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
Using our admin panel you set up your portal. You decide what metrics are of interest to you (full
|
|
||||||
documentation available). You decide what you want to publish, what to keep private, what to share with
|
|
||||||
colleagues.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="fifth uk-flex-first@s">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<img width="105" src="../../assets/monitor-assets/about/process/5.png">
|
|
||||||
</div>
|
|
||||||
<h6>5. You track, monitor, report</h6>
|
|
||||||
<div class="uk-text-small uk-text-muted">
|
|
||||||
Now your views are updated every two weeks, as new content and new providers join OpenAIRE. You are
|
|
||||||
notified about new metrics and indicators as we keep on enriching the OpenAIRE Research Graph and you may
|
|
||||||
add them as they come along.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="uk-section uk-container uk-container-large">
|
|
||||||
<div class="uk-padding-small">
|
|
||||||
<div class="uk-text-center">
|
|
||||||
<h2>See how it works</h2>
|
|
||||||
<h6 class="uk-text-muted uk-margin-remove">
|
|
||||||
Simplify research tracking & monitoring
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
<div class="uk-margin-large-top">
|
|
||||||
<how></how>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,30 +0,0 @@
|
||||||
import { NgModule} from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
|
||||||
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
|
||||||
|
|
||||||
import {LearnHowComponent} from "./learn-how.component";
|
|
||||||
import {LearnHowRoutingModule} from "./learn-how-routing.module";
|
|
||||||
import {GifSliderModule} from "../openaireLibrary/utils/gif-slider/gif-slider.module";
|
|
||||||
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
|
||||||
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
|
||||||
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
|
|
||||||
import {HowModule} from "../openaireLibrary/monitor/how/how.module";
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule, RouterModule, LearnHowRoutingModule, GifSliderModule, HelperModule,
|
|
||||||
Schema2jsonldModule, SEOServiceModule, HowModule
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
LearnHowComponent
|
|
||||||
],
|
|
||||||
exports: [
|
|
||||||
LearnHowComponent
|
|
||||||
],
|
|
||||||
providers:[
|
|
||||||
PreviousRouteRecorder, PiwikService
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class LearnHowModule { }
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
|
||||||
|
import {MyStakeholdersComponent} from "./my-stakeholders.component";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{path: '', component: MyStakeholdersComponent, canActivate: [LoginGuard], canDeactivate: [PreviousRouteRecorder]}
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class MyStakeholdersRoutingModule {
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
<schema2jsonld [URL]="properties.domain + properties.baseLink"
|
||||||
|
[logoURL]="properties.domain + properties.baseLink+'/assets/common-assets/logo-small-monitor.png'"
|
||||||
|
type="home"
|
||||||
|
name="OpenAIRE Monitor">
|
||||||
|
</schema2jsonld>
|
||||||
|
<div>
|
||||||
|
<div class="uk-section uk-container uk-container-large">
|
||||||
|
<div class="uk-padding-small uk-padding-remove-horizontal">
|
||||||
|
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
|
||||||
|
<div class="uk-margin-large-top uk-margin-large-bottom">
|
||||||
|
<div *ngIf="loading" class="uk-height-large uk-flex uk-flex-column uk-flex-center">
|
||||||
|
<loading></loading>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="!loading">
|
||||||
|
<div *ngIf="manager.length > 0 || member.length > 0">
|
||||||
|
<div *ngIf="manager.length > 0" [class.uk-margin-xlarge-bottom]="member.length > 0">
|
||||||
|
<h1 class="uk-h1">You are managing</h1>
|
||||||
|
<div class="uk-margin-large-top" uk-height-match="target: .uk-card">
|
||||||
|
<div class="uk-visible@xl">
|
||||||
|
<div class="uk-grid-match uk-grid-medium uk-child-width-1-4 uk-flex-center" uk-grid>
|
||||||
|
<div *ngFor="let stakeholder of manager.slice(0, 4); let i = index">
|
||||||
|
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="manager.length > 4" class="uk-text-center uk-margin-large-top">
|
||||||
|
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
|
||||||
|
routerLinkActive="router-link-active" routerLink="/browse"
|
||||||
|
[queryParams]="{role: quote('manager')}">
|
||||||
|
<span class="uk-flex uk-flex-middle">
|
||||||
|
<span>View All ({{manager.length}})</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-hidden@xl">
|
||||||
|
<div class="uk-grid-match uk-grid-medium uk-child-width-1-3@m uk-child-width-1-1 uk-flex-center" uk-grid>
|
||||||
|
<div *ngFor="let stakeholder of manager.slice(0, 3); let i = index">
|
||||||
|
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="manager.length > 3" class="uk-text-center uk-margin-large-top">
|
||||||
|
<a class="uk-hidden@xl uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
|
||||||
|
routerLinkActive="router-link-active" routerLink="/browse"
|
||||||
|
[queryParams]="{role: quote('manager')}">
|
||||||
|
<span class="uk-flex uk-flex-middle">
|
||||||
|
<span>View All ({{manager.length}})</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="member.length > 0">
|
||||||
|
<h1 class="uk-h1">You are member of</h1>
|
||||||
|
<div class="uk-margin-large-top" uk-height-match="target: .uk-card">
|
||||||
|
<div class="uk-visible@xl">
|
||||||
|
<div class="uk-grid-match uk-grid-medium uk-child-width-1-4 uk-flex-center" uk-grid>
|
||||||
|
<div *ngFor="let stakeholder of member.slice(0, 4); let i = index">
|
||||||
|
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="member.length > 4" class="uk-text-center uk-margin-large-top">
|
||||||
|
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
|
||||||
|
routerLinkActive="router-link-active" routerLink="/browse"
|
||||||
|
[queryParams]="{role: quote('member')}">
|
||||||
|
<span class="uk-flex uk-flex-middle">
|
||||||
|
<span>View All ({{member.length}})</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-hidden@xl">
|
||||||
|
<div class="uk-grid-match uk-grid-medium uk-child-width-1-3@m uk-child-width-1-1 uk-flex-center" uk-grid>
|
||||||
|
<div *ngFor="let stakeholder of member.slice(0, 3); let i = index">
|
||||||
|
<browse-stakeholder [stakeholder]="stakeholder"></browse-stakeholder>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="member.length > 3" class="uk-text-center uk-margin-large-top">
|
||||||
|
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
|
||||||
|
routerLinkActive="router-link-active" routerLink="/browse"
|
||||||
|
[queryParams]="{role: quote('member')}">
|
||||||
|
<span class="uk-flex uk-flex-middle">
|
||||||
|
<span>View All ({{member.length}})</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="manager.length === 0 && member.length === 0">
|
||||||
|
<div class="uk-flex uk-flex-center uk-margin-large-bottom">
|
||||||
|
<div class="uk-card uk-card-default">
|
||||||
|
<div class="uk-card-body uk-text-bold uk-text-center ">
|
||||||
|
You are not yet member in any {{stakeholderEntities.STAKEHOLDERS}}.<br>
|
||||||
|
Start by browsing and subscribing in those that you are interested in.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,151 @@
|
||||||
|
import {Component} from '@angular/core';
|
||||||
|
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 {User} from '../openaireLibrary/login/utils/helper.class';
|
||||||
|
import {StringUtils} from '../openaireLibrary/utils/string-utils.class';
|
||||||
|
|
||||||
|
import {ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
import {ErrorMessagesComponent} from '../openaireLibrary/utils/errorMessages.component';
|
||||||
|
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
||||||
|
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
||||||
|
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
||||||
|
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
|
||||||
|
import {properties} from "../../environments/environment";
|
||||||
|
import {Subscriber} from "rxjs";
|
||||||
|
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
||||||
|
import {StakeholderEntities, StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'my-stakeholders',
|
||||||
|
templateUrl: 'my-stakeholders.component.html',
|
||||||
|
})
|
||||||
|
|
||||||
|
export class MyStakeholdersComponent {
|
||||||
|
public stakeholderEntities = StakeholderEntities;
|
||||||
|
public pageTitle = "OpenAIRE | My " + this.stakeholderEntities.STAKEHOLDERS;
|
||||||
|
public description = "OpenAIRE - Monitor, A new era of monitoring research. Open data. Open methodologies | My managing and member of " + this.stakeholderEntities.STAKEHOLDERS;
|
||||||
|
public stakeholders: StakeholderInfo[] = [];
|
||||||
|
public pageContents = null;
|
||||||
|
public divContents = null;
|
||||||
|
// Message variables
|
||||||
|
public status: number;
|
||||||
|
public loading: boolean = true;
|
||||||
|
public subscriberErrorMessage: string = "";
|
||||||
|
public errorCodes: ErrorCodes;
|
||||||
|
private errorMessages: ErrorMessagesComponent;
|
||||||
|
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'My ' + this.stakeholderEntities.STAKEHOLDERS}];
|
||||||
|
public properties: EnvProperties = properties;
|
||||||
|
private user: User;
|
||||||
|
private subscriptions = [];
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _router: Router,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _title: Title,
|
||||||
|
private _piwikService: PiwikService,
|
||||||
|
private stakeholderService: StakeholderService,
|
||||||
|
private helper: HelperService,
|
||||||
|
private seoService: SEOService,
|
||||||
|
private userManagementService: UserManagementService) {
|
||||||
|
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'");
|
||||||
|
this._title.setTitle(this.pageTitle);
|
||||||
|
this.errorCodes = new ErrorCodes();
|
||||||
|
this.errorMessages = new ErrorMessagesComponent();
|
||||||
|
this.status = this.errorCodes.LOADING;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
var url = this.properties.domain + this.properties.baseLink + this._router.url;
|
||||||
|
this.seoService.createLinkForCanonicalURL(url, false);
|
||||||
|
this._meta.updateTag({content: url}, "property='og:url'");
|
||||||
|
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) {
|
||||||
|
this.getStakeholders();
|
||||||
|
}
|
||||||
|
//this.getDivContents();
|
||||||
|
//this.getPageContents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private getPageContents() {
|
||||||
|
this.subscriptions.push(this.helper.getPageHelpContents(this.properties, 'connect', this._router.url).subscribe(contents => {
|
||||||
|
this.pageContents = contents;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private getDivContents() {
|
||||||
|
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, 'connect', this._router.url).subscribe(contents => {
|
||||||
|
this.divContents = contents;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
get manager(): StakeholderInfo[] {
|
||||||
|
return (this.stakeholders)?this.stakeholders.filter(stakeholder => stakeholder.isManager):[];
|
||||||
|
}
|
||||||
|
|
||||||
|
get member(): StakeholderInfo[] {
|
||||||
|
return (this.stakeholders)?this.stakeholders.filter(stakeholder => stakeholder.isMember):[];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getStakeholders() {
|
||||||
|
this.loading = true;
|
||||||
|
this.status = this.errorCodes.LOADING;
|
||||||
|
this.subscriberErrorMessage = "";
|
||||||
|
this.stakeholders = [];
|
||||||
|
this.subscriptions.push(this.stakeholderService.getMyStakeholders(properties.monitorServiceAPIURL).subscribe(
|
||||||
|
stakeholders => {
|
||||||
|
this.stakeholders = StakeholderInfo.toStakeholderInfo(stakeholders, this.user);
|
||||||
|
this.sort(this.stakeholders);
|
||||||
|
this.loading = false;
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.status = this.handleError("Error getting communities", error);
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
private sort(results: StakeholderInfo[]) {
|
||||||
|
results.sort((left, right): number => {
|
||||||
|
if (left.name > right.name) {
|
||||||
|
return 1;
|
||||||
|
} else if (left.name < right.name) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
public quote(param: string): string {
|
||||||
|
return StringUtils.quote(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.subscriptions.forEach(subscription => {
|
||||||
|
if (subscription instanceof Subscriber) {
|
||||||
|
subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleError(message: string, error): number {
|
||||||
|
let code = "";
|
||||||
|
if (!error.status) {
|
||||||
|
code = error.code;
|
||||||
|
} else {
|
||||||
|
code = error.status;
|
||||||
|
}
|
||||||
|
console.error("Communities (component): " + message, error);
|
||||||
|
return this.errorMessages.getErrorCode(code);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {CommonModule} from '@angular/common';
|
||||||
|
import {FormsModule} from '@angular/forms';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {ManageModule} from '../openaireLibrary/utils/manage/manage.module';
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
import {ErrorMessagesModule} from '../openaireLibrary/utils/errorMessages.module';
|
||||||
|
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
|
||||||
|
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
|
||||||
|
import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
|
||||||
|
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
|
||||||
|
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
|
||||||
|
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
|
||||||
|
import {MyStakeholdersRoutingModule} from "./my-stakeholders-routing.module";
|
||||||
|
import {MyStakeholdersComponent} from "./my-stakeholders.component";
|
||||||
|
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
|
||||||
|
import {BrowseStakeholderModule} from "../browse-stakeholder/browse-stakeholder.module";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule, RouterModule, HelperModule,
|
||||||
|
ManageModule, ErrorMessagesModule, Schema2jsonldModule, SEOServiceModule,
|
||||||
|
MyStakeholdersRoutingModule, BreadcrumbsModule, LoadingModule, BrowseStakeholderModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
MyStakeholdersComponent
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
LoginGuard, PreviousRouteRecorder, PiwikService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
MyStakeholdersComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class MyStakeholdersModule {
|
||||||
|
}
|
|
@ -1 +1 @@
|
||||||
Subproject commit 965b1ee134bc56313b5912e83a2ae23387e4c493
|
Subproject commit 1a7624eed148c35659891198c403580dd48e3619
|
|
@ -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 {SearchUtilsClass} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class";
|
||||||
import {ErrorMessagesComponent} from "../openaireLibrary/utils/errorMessages.component";
|
import {ErrorMessagesComponent} from "../openaireLibrary/utils/errorMessages.component";
|
||||||
import {ErrorCodes} from "../openaireLibrary/utils/properties/errorCodes";
|
import {ErrorCodes} from "../openaireLibrary/utils/properties/errorCodes";
|
||||||
|
@ -10,30 +10,35 @@ import {Session, User} from "../openaireLibrary/login/utils/helper.class";
|
||||||
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
||||||
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
|
||||||
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
||||||
import {NewSearchPageComponent} from "../openaireLibrary/searchPages/searchUtils/newSearchPage.component";
|
import {NewSearchPageComponent, SearchForm} from "../openaireLibrary/searchPages/searchUtils/newSearchPage.component";
|
||||||
import {StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
|
import {StakeholderEntities, StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
import {Subscriber} from "rxjs";
|
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({
|
@Component({
|
||||||
selector: 'search-stakeholders',
|
selector: 'search-stakeholders',
|
||||||
template: `
|
template: `
|
||||||
<new-search-page pageTitle="OpenAIRE-Monitor | Browse"
|
<new-search-page pageTitle="OpenAIRE-Monitor | Browse {{this.stakeholderEntities.STAKEHOLDERS}}"
|
||||||
[hasPrefix]=false [piwikSiteId]="piwikSiteId"
|
[hasPrefix]=false
|
||||||
[formPlaceholderText]="'Search profiles'"
|
[formPlaceholderText]="'Search ' + (!isMobile?'OpenAIRE Monitor ':'') + this.stakeholderEntities.STAKEHOLDERS"
|
||||||
[type]="(results.length > 1)?'organizations':'organization'" entityType="stakeholder"
|
[type]="(results.length > 1) ? this.stakeholderEntities.STAKEHOLDERS:this.stakeholderEntities.STAKEHOLDER"
|
||||||
|
entityType="stakeholder"
|
||||||
[results]="results" [searchUtils]="searchUtils"
|
[results]="results" [searchUtils]="searchUtils"
|
||||||
[showResultCount]=true
|
[showResultCount]=true
|
||||||
[disableForms]="disableForms"
|
[disableForms]="disableForms"
|
||||||
[showIndexInfo]=false
|
[showIndexInfo]=false
|
||||||
[simpleView]="true"
|
[simpleView]="true"
|
||||||
|
[searchForm]="searchForm"
|
||||||
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
|
[fieldIds]="fieldIds" [fieldIdsMap]="fieldIdsMap" [selectedFields]="selectedFields"
|
||||||
|
[showBreadcrumb]="true" [breadcrumbs]="breadcrumbs"
|
||||||
[simpleSearchLink]="searchLink" [entitiesSelection]="false">
|
[simpleSearchLink]="searchLink" [entitiesSelection]="false">
|
||||||
</new-search-page>
|
</new-search-page>
|
||||||
`
|
`
|
||||||
})
|
})
|
||||||
export class SearchStakeholdersComponent {
|
export class SearchStakeholdersComponent {
|
||||||
public piwikSiteId = null;
|
|
||||||
private errorCodes: ErrorCodes;
|
private errorCodes: ErrorCodes;
|
||||||
private errorMessages: ErrorMessagesComponent;
|
private errorMessages: ErrorMessagesComponent;
|
||||||
public results: StakeholderInfo[] = [];
|
public results: StakeholderInfo[] = [];
|
||||||
|
@ -59,20 +64,26 @@ export class SearchStakeholdersComponent {
|
||||||
};
|
};
|
||||||
public keyword = "";
|
public keyword = "";
|
||||||
public searchLink;
|
public searchLink;
|
||||||
|
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;
|
properties: EnvProperties = properties;
|
||||||
@ViewChild(NewSearchPageComponent, {static: true}) searchPage: NewSearchPageComponent;
|
@ViewChild(NewSearchPageComponent, {static: true}) searchPage: NewSearchPageComponent;
|
||||||
private user: User;
|
private user: User;
|
||||||
|
|
||||||
constructor(private route: ActivatedRoute,
|
constructor(private route: ActivatedRoute,
|
||||||
private _stakeholderService: StakeholderService,
|
private _stakeholderService: StakeholderService,
|
||||||
private userManagementService: UserManagementService) {
|
private userManagementService: UserManagementService,
|
||||||
|
public titleCasePipe: TitleCasePipe,
|
||||||
|
private layoutService: LayoutService,
|
||||||
|
private cdr: ChangeDetectorRef) {
|
||||||
this.errorCodes = new ErrorCodes();
|
this.errorCodes = new ErrorCodes();
|
||||||
this.errorMessages = new ErrorMessagesComponent();
|
this.errorMessages = new ErrorMessagesComponent();
|
||||||
this.searchUtils.status = this.errorCodes.LOADING;
|
this.searchUtils.status = this.errorCodes.LOADING;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
this.piwikSiteId = this.properties.piwikSiteId;
|
|
||||||
this.baseUrl = this.properties.searchLinkToStakeholders;
|
this.baseUrl = this.properties.searchLinkToStakeholders;
|
||||||
this.subscriptions.push(this.route.queryParams.subscribe(params => {
|
this.subscriptions.push(this.route.queryParams.subscribe(params => {
|
||||||
this.searchPage.resultsPerPage = 10;
|
this.searchPage.resultsPerPage = 10;
|
||||||
|
@ -100,6 +111,10 @@ export class SearchStakeholdersComponent {
|
||||||
this.initFunders(queryParams);
|
this.initFunders(queryParams);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
this.layoutService.isMobile.subscribe(isMobile => {
|
||||||
|
this.isMobile = isMobile;
|
||||||
|
this.cdr.detectChanges();
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
|
@ -124,7 +139,7 @@ export class SearchStakeholdersComponent {
|
||||||
* @param params
|
* @param params
|
||||||
*/
|
*/
|
||||||
private initFunders(params) {
|
private initFunders(params) {
|
||||||
if(this.totalResults) {
|
if (this.totalResults) {
|
||||||
this.parseResults(this.totalResults);
|
this.parseResults(this.totalResults);
|
||||||
this._getResults(params);
|
this._getResults(params);
|
||||||
} else {
|
} else {
|
||||||
|
@ -435,7 +450,7 @@ export class SearchStakeholdersComponent {
|
||||||
let value_original_ids = [];
|
let value_original_ids = [];
|
||||||
filter_names.push("Type");
|
filter_names.push("Type");
|
||||||
filter_ids.push("type");
|
filter_ids.push("type");
|
||||||
value_names.push(["Funders", "Research Initiatives", "Institutions"]);
|
value_names.push([this.stakeholderEntities.FUNDERS, this.titleCasePipe.transform(this.stakeholderEntities.RIS), this.titleCasePipe.transform(this.stakeholderEntities.ORGANIZATIONS)]);
|
||||||
value_original_ids.push(["funder", "ri", "organization"]);
|
value_original_ids.push(["funder", "ri", "organization"]);
|
||||||
filter_names.push("Accessibility");
|
filter_names.push("Accessibility");
|
||||||
filter_ids.push("access");
|
filter_ids.push("access");
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import {NgModule} from "@angular/core";
|
import {NgModule} from "@angular/core";
|
||||||
import {CommonModule} from "@angular/common";
|
import {CommonModule, TitleCasePipe} from "@angular/common";
|
||||||
import {FormsModule} from "@angular/forms";
|
import {FormsModule} from "@angular/forms";
|
||||||
import {SearchStakeholdersComponent} from "./search-stakeholders.component";
|
import {SearchStakeholdersComponent} from "./search-stakeholders.component";
|
||||||
import {SearchFormModule} from "../openaireLibrary/searchPages/searchUtils/searchForm.module";
|
import {SearchFormModule} from "../openaireLibrary/searchPages/searchUtils/searchForm.module";
|
||||||
|
@ -16,7 +16,7 @@ import {NewSearchPageModule} from "../openaireLibrary/searchPages/searchUtils/ne
|
||||||
declarations: [
|
declarations: [
|
||||||
SearchStakeholdersComponent
|
SearchStakeholdersComponent
|
||||||
],
|
],
|
||||||
providers:[ PreviousRouteRecorder],
|
providers:[ PreviousRouteRecorder, TitleCasePipe],
|
||||||
exports: [
|
exports: [
|
||||||
SearchStakeholdersComponent
|
SearchStakeholdersComponent
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
import { NgModule, ModuleWithProviders } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
||||||
|
|
||||||
|
|
||||||
const MODULES = [
|
|
||||||
// Do NOT include UniversalModule, HttpModule, or JsonpModule here
|
|
||||||
CommonModule,
|
|
||||||
RouterModule,
|
|
||||||
FormsModule,
|
|
||||||
ReactiveFormsModule
|
|
||||||
];
|
|
||||||
|
|
||||||
const PIPES = [
|
|
||||||
// put pipes here
|
|
||||||
];
|
|
||||||
|
|
||||||
const COMPONENTS = [
|
|
||||||
// put shared components here
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
...MODULES
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
...PIPES,
|
|
||||||
...COMPONENTS
|
|
||||||
],
|
|
||||||
exports: [
|
|
||||||
...MODULES,
|
|
||||||
...PIPES,
|
|
||||||
...COMPONENTS
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class SharedModule {
|
|
||||||
static forRoot(): ModuleWithProviders<SharedModule> {
|
|
||||||
return {
|
|
||||||
ngModule: SharedModule,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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>
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,21 +7,24 @@ import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
|
||||||
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
||||||
import {properties} from "../../environments/environment";
|
import {properties} from "../../environments/environment";
|
||||||
import {Subscriber} from "rxjs";
|
import {Subscriber} from "rxjs";
|
||||||
|
import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'learn-how',
|
selector: 'support',
|
||||||
styleUrls: ['learn-how.component.css'],
|
templateUrl: 'support.component.html',
|
||||||
templateUrl: 'learn-how.component.html',
|
styleUrls: ['support.component.less']
|
||||||
})
|
})
|
||||||
export class LearnHowComponent {
|
export class SupportComponent {
|
||||||
public pageContents = null;
|
public pageContents = null;
|
||||||
public divContents = null;
|
public divContents = null;
|
||||||
|
|
||||||
public url: string = null;
|
public url: string = null;
|
||||||
public pageTitle: string = "OpenAIRE - Monitor | Learn How";
|
public pageTitle: string = "OpenAIRE - Monitor | Support";
|
||||||
public description: string = "Learn the process: Use the Monitor Dashboard to view your research results, open science. See how it works. Simplify research tracking & monitoring ";
|
public description: string = "OpenAIRE - Monitor | Support";
|
||||||
properties: EnvProperties;
|
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Support'}];
|
||||||
|
public properties: EnvProperties = properties;
|
||||||
subscriptions = [];
|
subscriptions = [];
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private _router: Router,
|
private _router: Router,
|
||||||
|
@ -33,19 +36,14 @@ export class LearnHowComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
|
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
|
||||||
this.properties = properties;
|
|
||||||
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
|
|
||||||
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
|
|
||||||
}
|
|
||||||
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
|
this.url = this.properties.domain + this.properties.baseLink + this._router.url;
|
||||||
this.seoService.createLinkForCanonicalURL(this.url);
|
this.seoService.createLinkForCanonicalURL(this.url);
|
||||||
this.updateUrl(this.url);
|
this.updateUrl(this.url);
|
||||||
this.updateTitle(this.pageTitle);
|
this.updateTitle(this.pageTitle);
|
||||||
this.updateDescription("OpenAIRE - Monitor, Funders, Statistics, EC - Learn How");``
|
this.updateDescription(this.description);
|
||||||
//this.getDivContents();
|
//this.getDivContents();
|
||||||
//this.getPageContents();
|
this.getPageContents();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private getPageContents() {
|
private getPageContents() {
|
|
@ -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 04d799f089c93ae28c9d2ca8436f283ebc0be3ae
|
Subproject commit e77e591bbb8264895adb9934210844e70f01e219
|
|
@ -1,6 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="95.647" height="60.692" viewBox="0 0 95.647 60.692">
|
|
||||||
<g id="Group_905" data-name="Group 905" transform="translate(70.298 97.482) rotate(-161)">
|
|
||||||
<path id="Path_2339" data-name="Path 2339" d="M87.648,29.439C24.781,46.54,24.677-5.5,39.79.481,53.326,5.835,44.623,25.816,0,17.558" transform="translate(-0.02 39.459)" fill="none" stroke="#212121" stroke-width="1" stroke-dasharray="7"/>
|
|
||||||
<path id="Path_2366" data-name="Path 2366" d="M0,0,2.814,1.387l-.607,3.29" transform="translate(-3.724 59.204) rotate(-150)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 625 B |
|
@ -1,6 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="96.457" height="61.415" viewBox="0 0 96.457 61.415">
|
|
||||||
<g id="Group_906" data-name="Group 906" transform="translate(59.107 54.14) rotate(-152)">
|
|
||||||
<path id="Path_2339" data-name="Path 2339" d="M67.968,21.473c-54.526,13.788-31.41-33.246-25.4-10.629C47.607,28.611.938-12.841-23.762,21.873" transform="translate(1.017 0)" fill="none" stroke="#212121" stroke-width="1" stroke-dasharray="6"/>
|
|
||||||
<path id="Path_55797" data-name="Path 55797" d="M0,0,3.3,1.628,2.591,5.49" transform="matrix(-0.921, 0.391, -0.391, -0.921, -22.719, 28.548)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 645 B |
|
@ -1,11 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="103.827" height="153.958" viewBox="0 0 103.827 153.958">
|
|
||||||
<g id="Group_2401" data-name="Group 2401" transform="translate(-1318.198 -779.424) rotate(-20)">
|
|
||||||
<g id="Group_1141" data-name="Group 1141" transform="matrix(-0.174, 0.985, -0.985, -0.174, 1046.902, 1211.049)">
|
|
||||||
<path id="Path_2339" data-name="Path 2339" d="M135.26,80.668C60.034-45.855,6.029,11.188,0,23.336" transform="translate(0 0)" fill="none" stroke="#212121" stroke-width="1" stroke-dasharray="7"/>
|
|
||||||
</g>
|
|
||||||
<g id="Group_1142" data-name="Group 1142" transform="translate(936.789 1330.947) rotate(-43)">
|
|
||||||
<line id="Line_345" data-name="Line 345" x1="1.778" y1="4.377" transform="translate(0.089 1.532)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
<line id="Line_346" data-name="Line 346" x2="2.189" y2="3.556" transform="translate(0 2.189) rotate(-90)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 963 B |
|
@ -1,9 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="117.496" height="64.012" viewBox="0 0 117.496 64.012">
|
|
||||||
<g id="Group_1143" data-name="Group 1143" transform="translate(55.846 -4.676) rotate(-19)">
|
|
||||||
<path id="Path_2339" data-name="Path 2339" d="M33.748,7.2C7.979,32.136-55.782,25.421-38.011,8.591-20.191-7.271-28.973,53.122-80.2,26.067" transform="translate(13.972 16.105)" fill="none" stroke="#212121" stroke-width="1" stroke-dasharray="7"/>
|
|
||||||
<g id="Group_1144" data-name="Group 1144" transform="translate(-69.001 39.672)">
|
|
||||||
<line id="Line_345" data-name="Line 345" x1="2.651" y1="5.302" transform="translate(0.132 1.855)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
<line id="Line_346" data-name="Line 346" x2="2.651" y2="5.302" transform="translate(0 2.651) rotate(-90)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 864 B |
|
@ -1,11 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="107.525" height="69.445" viewBox="0 0 107.525 69.445">
|
|
||||||
<g id="Group_11721" data-name="Group 11721" transform="translate(112.848 -39.172) rotate(56)">
|
|
||||||
<g id="Group_1141" data-name="Group 1141" transform="matrix(-0.174, 0.985, -0.985, -0.174, 53.579, 43.214)">
|
|
||||||
<path id="Path_2339" data-name="Path 2339" d="M96.963,31.663C43.036-18,4.322,4.391,0,9.159" transform="translate(0 0)" fill="none" stroke="#212121" stroke-width="1" stroke-dasharray="7"/>
|
|
||||||
</g>
|
|
||||||
<g id="Group_1142" data-name="Group 1142" transform="translate(-0.484 133.795) rotate(-43)">
|
|
||||||
<line id="Line_345" data-name="Line 345" x1="1.663" y1="4.095" transform="translate(0.083 1.433)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
<line id="Line_346" data-name="Line 346" x2="2.048" y2="3.327" transform="translate(0 2.048) rotate(-90)" fill="none" stroke="#212121" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 947 B |
After Width: | Height: | Size: 179 KiB |
|
@ -0,0 +1,99 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="632.213" height="519.857" viewBox="0 0 632.213 519.857">
|
||||||
|
<defs>
|
||||||
|
<filter id="dark" x="312.065" y="348.286" width="171.572" height="171.572" 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="dark-2" x="119.861" y="0" width="171.572" height="171.572" filterUnits="userSpaceOnUse">
|
||||||
|
<feOffset dx="15" dy="15" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="12.5" result="blur-2"/>
|
||||||
|
<feFlood flood-opacity="0.102"/>
|
||||||
|
<feComposite operator="in" in2="blur-2"/>
|
||||||
|
<feComposite in="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="dark-3" x="23.937" y="225.984" width="171.572" height="171.572" 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="dark-4" x="266.709" y="50.667" width="171.572" height="171.572" filterUnits="userSpaceOnUse">
|
||||||
|
<feOffset dx="15" dy="15" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="12.5" result="blur-4"/>
|
||||||
|
<feFlood flood-opacity="0.102"/>
|
||||||
|
<feComposite operator="in" in2="blur-4"/>
|
||||||
|
<feComposite in="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="dark-5" x="407.988" y="122.304" width="171.572" height="171.572" 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="dark-6" x="166.589" y="286.537" width="171.572" height="171.572" filterUnits="userSpaceOnUse">
|
||||||
|
<feOffset dx="15" dy="15" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="12.5" result="blur-6"/>
|
||||||
|
<feFlood flood-opacity="0.102"/>
|
||||||
|
<feComposite operator="in" in2="blur-6"/>
|
||||||
|
<feComposite in="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g id="Group_14281" data-name="Group 14281" transform="matrix(0.985, 0.174, -0.174, 0.985, -733.479, -286.153)">
|
||||||
|
<g id="Group_12983" data-name="Group 12983" transform="translate(877.932 158.215) rotate(13)">
|
||||||
|
<path id="Path_104359" data-name="Path 104359" d="M19.757,27.133S166.609,0,290.143,0s305.85,5.749,277.5,40.262S204.069,143.135,204.069,143.135-75.4,210.955,19.757,242.683s547.888,0,547.888,0" transform="translate(0 0)" fill="none" stroke="#dedede" stroke-width="5"/>
|
||||||
|
<g id="Group_12980" data-name="Group 12980" transform="translate(375.294 219.485)">
|
||||||
|
<g id="Group_12847" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -479.34, -199.34)" filter="url(#dark)">
|
||||||
|
<rect id="dark-7" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 363.34, 370.79)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Group_12979" data-name="Group 12979" transform="translate(944.471 146.878) rotate(13)">
|
||||||
|
<g id="Group_12847-2" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -166.33, 46.16)" filter="url(#dark-2)">
|
||||||
|
<rect id="dark-8" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 171.14, 22.5)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral-2" data-name="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Group_12982" data-name="Group 12982" transform="translate(889.246 386.086) rotate(13)">
|
||||||
|
<g id="Group_12847-3" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -166.33, -199.34)" filter="url(#dark-3)">
|
||||||
|
<rect id="dark-9" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 75.21, 248.48)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral-3" data-name="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Group_12977" data-name="Group 12977" transform="translate(1097.886 171.275) rotate(13)">
|
||||||
|
<g id="Group_12847-4" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -321.3, 56.9)" filter="url(#dark-4)">
|
||||||
|
<rect id="dark-10" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 317.99, 73.17)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral-4" data-name="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Group_12978" data-name="Group 12978" transform="translate(1249.459 217.291) rotate(13)">
|
||||||
|
<g id="Group_12847-5" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -479.34, 46.16)" filter="url(#dark-5)">
|
||||||
|
<rect id="dark-11" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 459.27, 144.8)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral-5" data-name="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Group_12981" data-name="Group 12981" transform="translate(1040.246 420.948) rotate(13)">
|
||||||
|
<g id="Group_12847-6" data-name="Group 12847" transform="translate(0 0)">
|
||||||
|
<g transform="matrix(0.92, -0.39, 0.39, 0.92, -321.3, -199.34)" filter="url(#dark-6)">
|
||||||
|
<rect id="dark-12" data-name="dark" width="73.649" height="73.649" rx="36.825" transform="matrix(0.92, 0.39, -0.39, 0.92, 217.87, 309.04)" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
<rect id="neutral-6" data-name="neutral" width="73.649" height="73.649" rx="36.825" fill="#f9f9f9"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.2 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 230.46 231.21"><defs><style>.cls-1{fill:#e0e0e0;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Layer_2-2" data-name="Layer 2-2"><g id="Layer_1-2-2" data-name="Layer 1-2-2"><path class="cls-1" d="M200.49,115.56A64.68,64.68,0,0,1,176.8,120a46.06,46.06,0,0,1-6.55-.31A70.26,70.26,0,1,1,90.08,61a71.42,71.42,0,0,1,10.74-.82,69.75,69.75,0,0,1,11.27.92q-.28-3-.28-6.13a64.92,64.92,0,0,1,4.6-24,97.65,97.65,0,0,0-15.56-1.23A100.79,100.79,0,1,0,201.57,130.48v0a98.63,98.63,0,0,0-1.11-15Zm-32.68-6.36a53.06,53.06,0,0,0,9,.77,55,55,0,0,0,21.69-4.48,100.5,100.5,0,0,0-16.29-34.4v3.46a5.38,5.38,0,0,1-10.74.63,2.22,2.22,0,0,1,0-.63V59.81H156.72a4.86,4.86,0,1,1,0-9.72h5.08A101,101,0,0,0,126.67,33a54.33,54.33,0,0,0-4.6,22,49,49,0,0,0,.57,8.55,70.57,70.57,0,0,1,45.17,45.64Z"/><path class="cls-1" d="M176.8,0a55,55,0,0,0-50.35,33,54,54,0,0,0-4.6,22,49,49,0,0,0,.69,8.55,55.05,55.05,0,0,0,45.27,45.64,53,53,0,0,0,9,.76A55,55,0,0,0,176.8,0ZM197,59.81H182.2V74.52a5.38,5.38,0,0,1-10.74.63,2.22,2.22,0,0,1,0-.63V59.81H156.72a4.86,4.86,0,1,1,0-9.72h14.84V35.42a5.37,5.37,0,1,1,10.73-.64V50.09H197a4.86,4.86,0,0,1,0,9.72Z"/></g></g></g></g></svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 229.31 217.01"><defs><style>.cls-1{fill:#e0e0e0;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><circle class="cls-1" cx="129.5" cy="27.44" r="10.66"/><circle class="cls-1" cx="54.7" cy="80.97" r="7.66"/><circle class="cls-1" cx="202.92" cy="64.54" r="7.66"/><circle class="cls-1" cx="7.66" cy="153.55" r="7.66"/><circle class="cls-1" cx="86.21" cy="199.22" r="7.66"/><circle class="cls-1" cx="82.67" cy="140.04" r="4.09"/><circle class="cls-1" cx="225.44" cy="138.17" r="3.87"/><circle class="cls-1" cx="136.31" cy="211.34" r="4.34"/><circle class="cls-1" cx="61.34" cy="171.09" r="2.68"/><circle class="cls-1" cx="154.49" cy="72.12" r="3.99"/><circle class="cls-1" cx="19.05" cy="176.68" r="2.36"/><circle class="cls-1" cx="70.19" cy="77.74" r="2.06"/><circle class="cls-1" cx="137.94" cy="4.54" r="4.54"/><path class="cls-1" d="M86.77,200.12,7,153.72,54.41,80.56l74.49-53,.13-.32,8.44-22.87.94.35-8.35,22.62,73.28,36.85L225.92,138l-1,.29L202.51,64.89,129.69,28.27,83.18,140.12ZM8.37,153.38l77.29,44.94L82.17,140l0-.1,46-110.54-73.11,52Z"/><polygon class="cls-1" points="7.75 154.04 7.57 153.06 81.94 139.66 54.25 81.19 55.15 80.76 83.41 140.41 82.76 140.53 7.75 154.04"/><polygon class="cls-1" points="154.22 72.66 129.06 27.68 129.93 27.19 154.75 71.57 202.85 64.05 203 65.04 154.22 72.66"/><rect class="cls-1" x="18.86" y="173.38" width="42.66" height="1" transform="translate(-22.39 6.75) rotate(-7.51)"/><polygon class="cls-1" points="136.19 211.83 88.85 200.38 113.86 216.98 113.84 217.01 112.09 217.01 83.57 198.07 136.42 210.86 136.19 211.83"/></g></g></svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 257.04 125.21"><defs><style>.cls-1{fill:#e0e0e0;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M67,125.21H25.49L.2,25.47a6.44,6.44,0,0,1,4.66-7.83l26.51-6.72a6.45,6.45,0,0,1,7.82,4.66Z"/><path class="cls-1" d="M131.38,125.21H89.87L75.69,69.28a6.44,6.44,0,0,1,4.66-7.83l26.51-6.72a6.44,6.44,0,0,1,7.83,4.66Z"/><path class="cls-1" d="M195.06,125.21h-41.5l-28-110.46a6.43,6.43,0,0,1,4.66-7.82L156.72.2a6.45,6.45,0,0,1,7.83,4.67Z"/><path class="cls-1" d="M257,125.21H215.55l-11.7-46.15a6.43,6.43,0,0,1,4.66-7.82L235,64.52a6.43,6.43,0,0,1,7.82,4.66Z"/></g></g></svg>
|
After Width: | Height: | Size: 680 B |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 2.6 MiB |
After Width: | Height: | Size: 303 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="152.064" height="298.117" viewBox="0 0 152.064 298.117">
|
||||||
|
<g id="Group_13811" data-name="Group 13811" transform="translate(-311 -600)">
|
||||||
|
<g id="Group_13810" data-name="Group 13810" transform="translate(311 600)" style="isolation: isolate">
|
||||||
|
<path id="Path_104582" data-name="Path 104582" d="M103.163-138h-28.3c-15.812,0-30.793,4.161-46.189,12.9L-37.9-85.57v54.095L45.739-77.664V149.117h57.424V-138Z" transform="translate(37.9 138)" fill="#3086ed"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 528 B |
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="219.715" height="298.559" viewBox="0 0 219.715 298.559">
|
||||||
|
<g id="Group_13812" data-name="Group 13812" transform="translate(-767.284 -600)">
|
||||||
|
<path id="Path_104612" data-name="Path 104612" d="M35.232,101.726,87.361,50.819C138.675.726,156.187-24.524,156.187-59.956,156.187-108.012,123.607-141,61.7-141-1.422-141-38.889-108.012-44.591-47.738L-45-43.665H10.8l.407-4.073c3.665-33.8,17.1-51.315,45.206-51.315,26.065,0,40.319,17.512,40.319,42.355,0,26.879-15.069,46.835-52.944,83.9L-50.7,119.645v26.472H154.151V101.726Z" transform="translate(817.984 741)" fill="#3086ed"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 631 B |
|
@ -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 |
|
@ -1,14 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="891.972" height="404" viewBox="0 0 891.972 404">
|
|
||||||
<g id="Group_11723" data-name="Group 11723" transform="translate(-250 -759)">
|
|
||||||
<g id="Group_3098" data-name="Group 3098" transform="translate(-80 574.953)">
|
|
||||||
<path id="Path_16420" data-name="Path 16420" d="M338.05,210.66l-18.6,6.887-19.11,7.078-33.015,12.223-9.235,3.424-19.136,7.084" transform="translate(855.417 86.511)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="3"/>
|
|
||||||
<path id="Path_17201" data-name="Path 17201" d="M131.762,0,107.036,22.093,81.626,44.8l-43.9,39.214L25.446,95,0,117.726" transform="translate(1057.45 316.813) rotate(-20)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
|
|
||||||
<path id="Path_17202" data-name="Path 17202" d="M110.125,0,89.459,18.465,68.221,37.444,31.53,70.218,21.267,79.4,0,98.393" transform="translate(1122.86 315.774) rotate(50)" fill="none" stroke="#09091e" stroke-miterlimit="10" stroke-width="1"/>
|
|
||||||
</g>
|
|
||||||
<circle id="Ellipse_360" data-name="Ellipse 360" cx="124" cy="124" r="124" transform="translate(250 759)" fill="#8bcc00" opacity="0.5"/>
|
|
||||||
<g id="Ellipse_372" data-name="Ellipse 372" transform="translate(906 984)" fill="none" stroke="#4687e6" stroke-width="1">
|
|
||||||
<circle cx="89.5" cy="89.5" r="89.5" stroke="none"/>
|
|
||||||
<circle cx="89.5" cy="89.5" r="89" fill="none"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 288 KiB |
Before Width: | Height: | Size: 448 KiB |
|
@ -1,6 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1367" height="393.812" viewBox="0 0 1367 393.812">
|
|
||||||
<g id="Group_11724" data-name="Group 11724" transform="translate(1 -2386)">
|
|
||||||
<path id="Path_2342" data-name="Path 2342" d="M1366-68.381S1070.67-131.445,608.9-142.3C354.509-148.279-.867-68.381-.867-68.381V190.035s538.452,102.97,836.881,41.69c286.66-60.522,529.986,0,529.986,0Z" transform="translate(-0.133 2528.619)" fill="#eff3f8"/>
|
|
||||||
<path id="Path_2356" data-name="Path 2356" d="M-.867,176.956s295.142,63.063,756.615,73.918c254.234,5.98,609.385-73.918,609.385-73.918V-81.46s-538.111-102.97-836.35-41.69c-286.478,60.522-529.65,0-529.65,0Z" transform="translate(0.867 2528.619)" fill="#eff3f8" opacity="0.499"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 731 B |
After Width: | Height: | Size: 158 KiB |
Before Width: | Height: | Size: 177 KiB |
After Width: | Height: | Size: 566 KiB |
After Width: | Height: | Size: 2.0 MiB |
After Width: | Height: | Size: 553 KiB |
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 677.14 1140.24"><defs><style>.cls-1{fill:#fff;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Layer_2-2" data-name="Layer 2"><g id="Layer_1-2-2" data-name="Layer 1-2"><path class="cls-1" d="M0,0V1140.24H677.14V0ZM610.28,223,486.33,650l-80.56-23.4,124-427Zm23.35,290.67L580.34,697.23l-80.55-23.38L553.07,490.3ZM452,384.54l-123.94,427L247.52,788.1l124-426.95Zm-169.26-119,80.57,23.39L328.07,410.36,247.51,387Zm35.93,177.17L239.38,715.86l-80.56-23.39,79.3-273.17ZM207,436.4,116,749.91,35.39,726.52,126.4,413ZM509.68,940.64l-80.55-23.39L490.4,706.17,571,729.56Z"/></g></g></g></g></svg>
|
After Width: | Height: | Size: 684 B |
|
@ -0,0 +1,426 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="955.582" height="215.812" viewBox="0 0 955.582 215.812">
|
||||||
|
<defs>
|
||||||
|
<filter id="Path_104565">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur"/>
|
||||||
|
<feComposite operator="in" in="color"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104566">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-2"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-2"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-2"/>
|
||||||
|
<feComposite operator="in" in="color-2"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104567">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-3"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-3"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-3"/>
|
||||||
|
<feComposite operator="in" in="color-3"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Rectangle_2960">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-4"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-4"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-4"/>
|
||||||
|
<feComposite operator="in" in="color-4"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104568">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-5"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-5"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-5"/>
|
||||||
|
<feComposite operator="in" in="color-5"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104569">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-6"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-6"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-6"/>
|
||||||
|
<feComposite operator="in" in="color-6"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104570">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-7"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-7"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-7"/>
|
||||||
|
<feComposite operator="in" in="color-7"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104571">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-8"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-8"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-8"/>
|
||||||
|
<feComposite operator="in" in="color-8"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104572">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-9"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-9"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-9"/>
|
||||||
|
<feComposite operator="in" in="color-9"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104573">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-10"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-10"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-10"/>
|
||||||
|
<feComposite operator="in" in="color-10"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104574">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-11"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-11"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-11"/>
|
||||||
|
<feComposite operator="in" in="color-11"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104575">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-12"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-12"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-12"/>
|
||||||
|
<feComposite operator="in" in="color-12"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104576">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-13"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-13"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-13"/>
|
||||||
|
<feComposite operator="in" in="color-13"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104577">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-14"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-14"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-14"/>
|
||||||
|
<feComposite operator="in" in="color-14"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104578">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-15"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-15"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-15"/>
|
||||||
|
<feComposite operator="in" in="color-15"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104579">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-16"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-16"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-16"/>
|
||||||
|
<feComposite operator="in" in="color-16"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104580">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-17"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-17"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-17"/>
|
||||||
|
<feComposite operator="in" in="color-17"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104581">
|
||||||
|
<feOffset dx="1" dy="1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-18"/>
|
||||||
|
<feFlood flood-opacity="0.302" result="color-18"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-18"/>
|
||||||
|
<feComposite operator="in" in="color-18"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104565-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-19"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-19"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-19"/>
|
||||||
|
<feComposite operator="in" in="color-19"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104566-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-20"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-20"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-20"/>
|
||||||
|
<feComposite operator="in" in="color-20"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104567-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-21"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-21"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-21"/>
|
||||||
|
<feComposite operator="in" in="color-21"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Rectangle_2960-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-22"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-22"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-22"/>
|
||||||
|
<feComposite operator="in" in="color-22"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104568-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-23"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-23"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-23"/>
|
||||||
|
<feComposite operator="in" in="color-23"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104569-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-24"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-24"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-24"/>
|
||||||
|
<feComposite operator="in" in="color-24"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104570-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-25"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-25"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-25"/>
|
||||||
|
<feComposite operator="in" in="color-25"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104571-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-26"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-26"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-26"/>
|
||||||
|
<feComposite operator="in" in="color-26"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104572-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-27"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-27"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-27"/>
|
||||||
|
<feComposite operator="in" in="color-27"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104573-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-28"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-28"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-28"/>
|
||||||
|
<feComposite operator="in" in="color-28"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104574-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-29"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-29"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-29"/>
|
||||||
|
<feComposite operator="in" in="color-29"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104575-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-30"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-30"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-30"/>
|
||||||
|
<feComposite operator="in" in="color-30"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104576-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-31"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-31"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-31"/>
|
||||||
|
<feComposite operator="in" in="color-31"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104577-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-32"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-32"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-32"/>
|
||||||
|
<feComposite operator="in" in="color-32"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104578-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-33"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-33"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-33"/>
|
||||||
|
<feComposite operator="in" in="color-33"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104579-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-34"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-34"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-34"/>
|
||||||
|
<feComposite operator="in" in="color-34"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104580-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-35"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-35"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-35"/>
|
||||||
|
<feComposite operator="in" in="color-35"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
<filter id="Path_104581-2">
|
||||||
|
<feOffset dx="-1" dy="-1" input="SourceAlpha"/>
|
||||||
|
<feGaussianBlur stdDeviation="1.5" result="blur-36"/>
|
||||||
|
<feFlood flood-color="#727272" flood-opacity="0.4" result="color-36"/>
|
||||||
|
<feComposite operator="out" in="SourceGraphic" in2="blur-36"/>
|
||||||
|
<feComposite operator="in" in="color-36"/>
|
||||||
|
<feComposite operator="in" in2="SourceGraphic"/>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g id="Group_13397" data-name="Group 13397" transform="translate(24202 16582.441)" opacity="0.4">
|
||||||
|
<g id="Group_13397-2" data-name="Group 13397" transform="translate(-24202 -16582.441)">
|
||||||
|
<path id="Path_104565-3" data-name="Path 104565" d="M302.219,78.851,291.25,51.59H277.78V96.728h9.582V65.184l12.752,31.545H304.3L317.05,65.184V96.728h9.657V51.59H313.163Z" transform="translate(374.139 47.526)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104566-3" data-name="Path 104566" d="M323.833,51.3a22.656,22.656,0,0,0-23.547,23.324A23.6,23.6,0,1,0,323.833,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856,13.742,6.363,13.742,14.856S332.178,89.481,323.833,89.481Z" transform="translate(407.344 47.073)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104567-3" data-name="Path 104567" d="M352.946,79.941,331.9,51.59h-9.83V96.728H331.7V67.288l21.517,29.44h9.335V51.59h-9.607Z" transform="translate(439.514 47.526)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<rect id="Rectangle_2960-3" data-name="Rectangle 2960" width="9.533" height="45.163" transform="translate(810.955 99.092)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104568-3" data-name="Path 104568" d="M348.38,60.033h13.2v36.7h9.681v-36.7h13.123V51.59h-36Z" transform="translate(478.348 47.526)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104569-3" data-name="Path 104569" d="M387.157,51.3a23.349,23.349,0,1,0,23.622,23.324A22.656,22.656,0,0,0,387.157,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856S400.9,66.134,400.9,74.627,395.476,89.483,387.157,89.483Z" transform="translate(501.522 47.071)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104570-3" data-name="Path 104570" d="M411.986,79.559a12.95,12.95,0,0,0,9.9-13.4c0-8.394-5.744-14.584-15.153-14.584H385.69V96.743h9.632V80.7h7.007l8.889,16.045h10.944Zm-6.636-7.428H395.272V60.048H405.35a6.116,6.116,0,1,1,0,12.182Z" transform="translate(533.42 47.512)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104571-3" data-name="Path 104571" d="M269.072,31.72a1.659,1.659,0,0,0-1.634,1.634V171.79a1.659,1.659,0,1,0,3.293,0V33.354A1.659,1.659,0,0,0,269.072,31.72Z" transform="translate(358.855 18.197)" fill="#56a601" opacity="0.2"/>
|
||||||
|
<path id="Path_104572-3" data-name="Path 104572" d="M131.979,48.36c-18.447,0-30.629,14.262-30.629,31.3s12.232,31.248,30.629,31.248,30.629-14.237,30.629-31.248S150.45,48.36,131.979,48.36Zm0,54.671c-14.039,0-21.938-10.969-21.938-23.374s7.923-23.374,21.938-23.374,21.938,10.994,21.938,23.374S146.043,103.031,131.979,103.031Z" transform="translate(113.72 42.759)" fill="#303030"/>
|
||||||
|
<path id="Path_104573-3" data-name="Path 104573" d="M150.98,56.863a16.317,16.317,0,0,0-14.287,7.775V61.245a4.11,4.11,0,0,0-4.16-4.036h-.371a3.937,3.937,0,0,0-3.615,4.234v49.249a4.259,4.259,0,1,0,8.518,0V90.562a16.193,16.193,0,0,0,14.014,7.8c10.424,0,18.942-8.22,18.942-20.749C169.922,65.628,161.4,56.863,150.98,56.863ZM149.247,91.3c-7.428,0-12.38-6.438-12.38-13.693s4.952-13.668,12.38-13.668h0c7.428,0,12.108,5.6,12.108,13.742S156.626,91.3,149.247,91.3Z" transform="translate(153.846 55.302)" fill="#303030"/>
|
||||||
|
<path id="Path_104574-3" data-name="Path 104574" d="M166.938,56.851A19.982,19.982,0,0,0,146.659,77.6c0,11.316,7.156,20.749,20.65,20.749a21.591,21.591,0,0,0,16.119-6.636,3.739,3.739,0,0,0,1.089-2.476,3.516,3.516,0,0,0-3.491-3.516,4.135,4.135,0,0,0-2.823,1.387,14.015,14.015,0,0,1-10.5,4.432,11.39,11.39,0,0,1-12.38-10.969h27.113c2.476,0,3.244-1.436,3.244-2.9C185.78,66.112,178.352,56.876,166.938,56.851ZM155.622,73.763A11.241,11.241,0,0,1,166.938,63.71h0a11.043,11.043,0,0,1,10.969,10.078Z" transform="translate(180.576 55.289)" fill="#303030"/>
|
||||||
|
<path id="Path_104575-3" data-name="Path 104575" d="M183.4,56.863h-.817A18.546,18.546,0,0,0,164.463,75.8V93.756a4.284,4.284,0,0,0,8.542,0V74.814a10.523,10.523,0,0,1,20.923,0V93.756a4.259,4.259,0,1,0,8.518,0V75.037A18.62,18.62,0,0,0,183.4,56.863Z" transform="translate(206.871 55.302)" fill="#303030"/>
|
||||||
|
<path id="Path_104576-3" data-name="Path 104576" d="M215.825,51.451a4.655,4.655,0,0,0-4.7-2.922,4.779,4.779,0,0,0-4.729,2.922l-23.126,51.428a5.25,5.25,0,0,0-.545,2.179v.248a5.125,5.125,0,0,0,5.249,4.952,4.8,4.8,0,0,0,4.63-2.971l5.15-11.043h26.84l5.1,11.142a4.779,4.779,0,0,0,4.605,2.971h.248a5.125,5.125,0,0,0,4.952-5.249,4.729,4.729,0,0,0-.545-2.179ZM201.761,86.586l9.409-23.027L220.6,86.586Z" transform="translate(233.826 42.986)" fill="#303030"/>
|
||||||
|
<path id="Path_104577-3" data-name="Path 104577" d="M212.971,48.52a5.67,5.67,0,0,0-5.621,5.621V104.7a5.621,5.621,0,0,0,5.621,5.6h0a5.5,5.5,0,0,0,5.4-5.6V54.091a5.522,5.522,0,0,0-5.4-5.571Z" transform="translate(270.181 42.995)" fill="#303030"/>
|
||||||
|
<path id="Path_104578-3" data-name="Path 104578" d="M266.153,66.984c0-10.746-6.462-18.174-21.492-18.174H221.312a5.5,5.5,0,0,0-5.472,5.546v49.991a5.546,5.546,0,0,0,11.068,0V85.059h18.224L255.853,106.9a4.952,4.952,0,0,0,4.952,2.971h0a5.447,5.447,0,0,0,5.447-5.5,5.6,5.6,0,0,0-.668-2.476l-9.31-18.917a16.491,16.491,0,0,0,9.88-16Zm-11.192.768a8.27,8.27,0,0,1-8.74,7.8H226.933V58.987H246.2a7.973,7.973,0,0,1,8.79,8.047,6.953,6.953,0,0,1-.025.718Z" transform="translate(282.713 43.423)" fill="#303030"/>
|
||||||
|
<path id="Path_104579-3" data-name="Path 104579" d="M278.916,98.779H250.293V83.551h23a5.076,5.076,0,0,0,5.076-4.952,5.15,5.15,0,0,0-5.076-5.274H250.368V59.038H277.6a5.249,5.249,0,0,0,5.249-5.176h0a5.125,5.125,0,0,0-5.249-4.952H244.846a5.571,5.571,0,0,0-5.6,5.546v49.15h0a5.546,5.546,0,0,0,5.621,5.5h34.145a5.125,5.125,0,0,0,5.15-5.1,5.249,5.249,0,0,0-5.249-5.224Z" transform="translate(317.267 43.569)" fill="#303030"/>
|
||||||
|
<path id="Path_104580-3" data-name="Path 104580" d="M179.667,106.98q-3.046,0-6.091-.3A65.516,65.516,0,1,1,98.824,51.938a64.578,64.578,0,0,1,9.9-.768,65.319,65.319,0,0,1,10.523.842c-.173-1.882-.272-3.788-.272-5.72a60.638,60.638,0,0,1,4.308-22.433A94.1,94.1,0,1,0,202.67,116.81a96.566,96.566,0,0,0-1.015-13.891,60.688,60.688,0,0,1-21.987,4.061Z" transform="translate(-14.49 4.913)" fill="#303030"/>
|
||||||
|
<path id="Path_104581-3" data-name="Path 104581" d="M111.754,11.56A51.329,51.329,0,0,0,60.5,62.814a49.091,49.091,0,0,0,.668,8.069,51.3,51.3,0,0,0,42.093,42.467,47.836,47.836,0,0,0,8.493.817,50.982,50.982,0,0,0,20.2-4.16,1.413,1.413,0,0,0,0-.347,51.254,51.254,0,0,0-20.2-98.1Zm18.719,55.785H116.781V81.038a5.035,5.035,0,0,1-7.552,4.63,5.175,5.175,0,0,1-1.956-2.1,4.952,4.952,0,0,1-.5-1.931,2.475,2.475,0,0,1,0-.594V67.345H93.06a4.531,4.531,0,0,1-4.531-4.531,4.482,4.482,0,0,1,4.407-4.531h13.841V44.591a4.961,4.961,0,1,1,9.9-.594V58.283h13.693a4.531,4.531,0,1,1,0,9.062Z" transform="translate(53.423 -11.56)" fill="#303030"/>
|
||||||
|
</g>
|
||||||
|
<g id="dark" transform="translate(-24202 -16582.441)">
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104565)">
|
||||||
|
<path id="Path_104565-4" data-name="Path 104565" d="M302.219,78.851,291.25,51.59H277.78V96.728h9.582V65.184l12.752,31.545H304.3L317.05,65.184V96.728h9.657V51.59H313.163Z" transform="translate(374.14 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104566)">
|
||||||
|
<path id="Path_104566-4" data-name="Path 104566" d="M323.833,51.3a22.656,22.656,0,0,0-23.547,23.324A23.6,23.6,0,1,0,323.833,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856,13.742,6.363,13.742,14.856S332.178,89.481,323.833,89.481Z" transform="translate(407.34 47.07)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104567)">
|
||||||
|
<path id="Path_104567-4" data-name="Path 104567" d="M352.946,79.941,331.9,51.59h-9.83V96.728H331.7V67.288l21.517,29.44h9.335V51.59h-9.607Z" transform="translate(439.51 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Rectangle_2960)">
|
||||||
|
<rect id="Rectangle_2960-4" data-name="Rectangle 2960" width="9.533" height="45.163" transform="translate(810.96 99.09)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104568)">
|
||||||
|
<path id="Path_104568-4" data-name="Path 104568" d="M348.38,60.033h13.2v36.7h9.681v-36.7h13.123V51.59h-36Z" transform="translate(478.35 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104569)">
|
||||||
|
<path id="Path_104569-4" data-name="Path 104569" d="M387.157,51.3a23.349,23.349,0,1,0,23.622,23.324A22.656,22.656,0,0,0,387.157,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856S400.9,66.134,400.9,74.627,395.476,89.483,387.157,89.483Z" transform="translate(501.52 47.07)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104570)">
|
||||||
|
<path id="Path_104570-4" data-name="Path 104570" d="M411.986,79.559a12.95,12.95,0,0,0,9.9-13.4c0-8.394-5.744-14.584-15.153-14.584H385.69V96.743h9.632V80.7h7.007l8.889,16.045h10.944Zm-6.636-7.428H395.272V60.048H405.35a6.116,6.116,0,1,1,0,12.182Z" transform="translate(533.42 47.51)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104571)">
|
||||||
|
<path id="Path_104571-4" data-name="Path 104571" d="M269.072,31.72a1.659,1.659,0,0,0-1.634,1.634V171.79a1.659,1.659,0,1,0,3.293,0V33.354A1.659,1.659,0,0,0,269.072,31.72Z" transform="translate(358.85 18.2)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104572)">
|
||||||
|
<path id="Path_104572-4" data-name="Path 104572" d="M131.979,48.36c-18.447,0-30.629,14.262-30.629,31.3s12.232,31.248,30.629,31.248,30.629-14.237,30.629-31.248S150.45,48.36,131.979,48.36Zm0,54.671c-14.039,0-21.938-10.969-21.938-23.374s7.923-23.374,21.938-23.374,21.938,10.994,21.938,23.374S146.043,103.031,131.979,103.031Z" transform="translate(113.72 42.76)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104573)">
|
||||||
|
<path id="Path_104573-4" data-name="Path 104573" d="M150.98,56.863a16.317,16.317,0,0,0-14.287,7.775V61.245a4.11,4.11,0,0,0-4.16-4.036h-.371a3.937,3.937,0,0,0-3.615,4.234v49.249a4.259,4.259,0,1,0,8.518,0V90.562a16.193,16.193,0,0,0,14.014,7.8c10.424,0,18.942-8.22,18.942-20.749C169.922,65.628,161.4,56.863,150.98,56.863ZM149.247,91.3c-7.428,0-12.38-6.438-12.38-13.693s4.952-13.668,12.38-13.668h0c7.428,0,12.108,5.6,12.108,13.742S156.626,91.3,149.247,91.3Z" transform="translate(153.85 55.3)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104574)">
|
||||||
|
<path id="Path_104574-4" data-name="Path 104574" d="M166.938,56.851A19.982,19.982,0,0,0,146.659,77.6c0,11.316,7.156,20.749,20.65,20.749a21.591,21.591,0,0,0,16.119-6.636,3.739,3.739,0,0,0,1.089-2.476,3.516,3.516,0,0,0-3.491-3.516,4.135,4.135,0,0,0-2.823,1.387,14.015,14.015,0,0,1-10.5,4.432,11.39,11.39,0,0,1-12.38-10.969h27.113c2.476,0,3.244-1.436,3.244-2.9C185.78,66.112,178.352,56.876,166.938,56.851ZM155.622,73.763A11.241,11.241,0,0,1,166.938,63.71h0a11.043,11.043,0,0,1,10.969,10.078Z" transform="translate(180.58 55.29)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104575)">
|
||||||
|
<path id="Path_104575-4" data-name="Path 104575" d="M183.4,56.863h-.817A18.546,18.546,0,0,0,164.463,75.8V93.756a4.284,4.284,0,0,0,8.542,0V74.814a10.523,10.523,0,0,1,20.923,0V93.756a4.259,4.259,0,1,0,8.518,0V75.037A18.62,18.62,0,0,0,183.4,56.863Z" transform="translate(206.87 55.3)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104576)">
|
||||||
|
<path id="Path_104576-4" data-name="Path 104576" d="M215.825,51.451a4.655,4.655,0,0,0-4.7-2.922,4.779,4.779,0,0,0-4.729,2.922l-23.126,51.428a5.25,5.25,0,0,0-.545,2.179v.248a5.125,5.125,0,0,0,5.249,4.952,4.8,4.8,0,0,0,4.63-2.971l5.15-11.043h26.84l5.1,11.142a4.779,4.779,0,0,0,4.605,2.971h.248a5.125,5.125,0,0,0,4.952-5.249,4.729,4.729,0,0,0-.545-2.179ZM201.761,86.586l9.409-23.027L220.6,86.586Z" transform="translate(233.83 42.99)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104577)">
|
||||||
|
<path id="Path_104577-4" data-name="Path 104577" d="M212.971,48.52a5.67,5.67,0,0,0-5.621,5.621V104.7a5.621,5.621,0,0,0,5.621,5.6h0a5.5,5.5,0,0,0,5.4-5.6V54.091a5.522,5.522,0,0,0-5.4-5.571Z" transform="translate(270.18 42.99)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104578)">
|
||||||
|
<path id="Path_104578-4" data-name="Path 104578" d="M266.153,66.984c0-10.746-6.462-18.174-21.492-18.174H221.312a5.5,5.5,0,0,0-5.472,5.546v49.991a5.546,5.546,0,0,0,11.068,0V85.059h18.224L255.853,106.9a4.952,4.952,0,0,0,4.952,2.971h0a5.447,5.447,0,0,0,5.447-5.5,5.6,5.6,0,0,0-.668-2.476l-9.31-18.917a16.491,16.491,0,0,0,9.88-16Zm-11.192.768a8.27,8.27,0,0,1-8.74,7.8H226.933V58.987H246.2a7.973,7.973,0,0,1,8.79,8.047,6.953,6.953,0,0,1-.025.718Z" transform="translate(282.71 43.42)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104579)">
|
||||||
|
<path id="Path_104579-4" data-name="Path 104579" d="M278.916,98.779H250.293V83.551h23a5.076,5.076,0,0,0,5.076-4.952,5.15,5.15,0,0,0-5.076-5.274H250.368V59.038H277.6a5.249,5.249,0,0,0,5.249-5.176h0a5.125,5.125,0,0,0-5.249-4.952H244.846a5.571,5.571,0,0,0-5.6,5.546v49.15h0a5.546,5.546,0,0,0,5.621,5.5h34.145a5.125,5.125,0,0,0,5.15-5.1,5.249,5.249,0,0,0-5.249-5.224Z" transform="translate(317.27 43.57)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104580)">
|
||||||
|
<path id="Path_104580-4" data-name="Path 104580" d="M179.667,106.98q-3.046,0-6.091-.3A65.516,65.516,0,1,1,98.824,51.938a64.578,64.578,0,0,1,9.9-.768,65.319,65.319,0,0,1,10.523.842c-.173-1.882-.272-3.788-.272-5.72a60.638,60.638,0,0,1,4.308-22.433A94.1,94.1,0,1,0,202.67,116.81a96.566,96.566,0,0,0-1.015-13.891,60.688,60.688,0,0,1-21.987,4.061Z" transform="translate(-14.49 4.91)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104581)">
|
||||||
|
<path id="Path_104581-4" data-name="Path 104581" d="M111.754,11.56A51.329,51.329,0,0,0,60.5,62.814a49.091,49.091,0,0,0,.668,8.069,51.3,51.3,0,0,0,42.093,42.467,47.836,47.836,0,0,0,8.493.817,50.982,50.982,0,0,0,20.2-4.16,1.413,1.413,0,0,0,0-.347,51.254,51.254,0,0,0-20.2-98.1Zm18.719,55.785H116.781V81.038a5.035,5.035,0,0,1-7.552,4.63,5.175,5.175,0,0,1-1.956-2.1,4.952,4.952,0,0,1-.5-1.931,2.475,2.475,0,0,1,0-.594V67.345H93.06a4.531,4.531,0,0,1-4.531-4.531,4.482,4.482,0,0,1,4.407-4.531h13.841V44.591a4.961,4.961,0,1,1,9.9-.594V58.283h13.693a4.531,4.531,0,1,1,0,9.062Z" transform="translate(53.42 -11.56)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="light" transform="translate(-24202 -16582.441)">
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104565-2)">
|
||||||
|
<path id="Path_104565-5" data-name="Path 104565" d="M302.219,78.851,291.25,51.59H277.78V96.728h9.582V65.184l12.752,31.545H304.3L317.05,65.184V96.728h9.657V51.59H313.163Z" transform="translate(374.14 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104566-2)">
|
||||||
|
<path id="Path_104566-5" data-name="Path 104566" d="M323.833,51.3a22.656,22.656,0,0,0-23.547,23.324A23.6,23.6,0,1,0,323.833,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856,13.742,6.363,13.742,14.856S332.178,89.481,323.833,89.481Z" transform="translate(407.34 47.07)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104567-2)">
|
||||||
|
<path id="Path_104567-5" data-name="Path 104567" d="M352.946,79.941,331.9,51.59h-9.83V96.728H331.7V67.288l21.517,29.44h9.335V51.59h-9.607Z" transform="translate(439.51 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Rectangle_2960-2)">
|
||||||
|
<rect id="Rectangle_2960-5" data-name="Rectangle 2960" width="9.533" height="45.163" transform="translate(810.96 99.09)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104568-2)">
|
||||||
|
<path id="Path_104568-5" data-name="Path 104568" d="M348.38,60.033h13.2v36.7h9.681v-36.7h13.123V51.59h-36Z" transform="translate(478.35 47.53)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104569-2)">
|
||||||
|
<path id="Path_104569-5" data-name="Path 104569" d="M387.157,51.3a23.349,23.349,0,1,0,23.622,23.324A22.656,22.656,0,0,0,387.157,51.3Zm0,38.181c-8.319,0-13.668-6.388-13.668-14.856s5.348-14.856,13.668-14.856S400.9,66.134,400.9,74.627,395.476,89.483,387.157,89.483Z" transform="translate(501.52 47.07)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104570-2)">
|
||||||
|
<path id="Path_104570-5" data-name="Path 104570" d="M411.986,79.559a12.95,12.95,0,0,0,9.9-13.4c0-8.394-5.744-14.584-15.153-14.584H385.69V96.743h9.632V80.7h7.007l8.889,16.045h10.944Zm-6.636-7.428H395.272V60.048H405.35a6.116,6.116,0,1,1,0,12.182Z" transform="translate(533.42 47.51)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104571-2)">
|
||||||
|
<path id="Path_104571-5" data-name="Path 104571" d="M269.072,31.72a1.659,1.659,0,0,0-1.634,1.634V171.79a1.659,1.659,0,1,0,3.293,0V33.354A1.659,1.659,0,0,0,269.072,31.72Z" transform="translate(358.85 18.2)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104572-2)">
|
||||||
|
<path id="Path_104572-5" data-name="Path 104572" d="M131.979,48.36c-18.447,0-30.629,14.262-30.629,31.3s12.232,31.248,30.629,31.248,30.629-14.237,30.629-31.248S150.45,48.36,131.979,48.36Zm0,54.671c-14.039,0-21.938-10.969-21.938-23.374s7.923-23.374,21.938-23.374,21.938,10.994,21.938,23.374S146.043,103.031,131.979,103.031Z" transform="translate(113.72 42.76)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104573-2)">
|
||||||
|
<path id="Path_104573-5" data-name="Path 104573" d="M150.98,56.863a16.317,16.317,0,0,0-14.287,7.775V61.245a4.11,4.11,0,0,0-4.16-4.036h-.371a3.937,3.937,0,0,0-3.615,4.234v49.249a4.259,4.259,0,1,0,8.518,0V90.562a16.193,16.193,0,0,0,14.014,7.8c10.424,0,18.942-8.22,18.942-20.749C169.922,65.628,161.4,56.863,150.98,56.863ZM149.247,91.3c-7.428,0-12.38-6.438-12.38-13.693s4.952-13.668,12.38-13.668h0c7.428,0,12.108,5.6,12.108,13.742S156.626,91.3,149.247,91.3Z" transform="translate(153.85 55.3)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104574-2)">
|
||||||
|
<path id="Path_104574-5" data-name="Path 104574" d="M166.938,56.851A19.982,19.982,0,0,0,146.659,77.6c0,11.316,7.156,20.749,20.65,20.749a21.591,21.591,0,0,0,16.119-6.636,3.739,3.739,0,0,0,1.089-2.476,3.516,3.516,0,0,0-3.491-3.516,4.135,4.135,0,0,0-2.823,1.387,14.015,14.015,0,0,1-10.5,4.432,11.39,11.39,0,0,1-12.38-10.969h27.113c2.476,0,3.244-1.436,3.244-2.9C185.78,66.112,178.352,56.876,166.938,56.851ZM155.622,73.763A11.241,11.241,0,0,1,166.938,63.71h0a11.043,11.043,0,0,1,10.969,10.078Z" transform="translate(180.58 55.29)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104575-2)">
|
||||||
|
<path id="Path_104575-5" data-name="Path 104575" d="M183.4,56.863h-.817A18.546,18.546,0,0,0,164.463,75.8V93.756a4.284,4.284,0,0,0,8.542,0V74.814a10.523,10.523,0,0,1,20.923,0V93.756a4.259,4.259,0,1,0,8.518,0V75.037A18.62,18.62,0,0,0,183.4,56.863Z" transform="translate(206.87 55.3)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104576-2)">
|
||||||
|
<path id="Path_104576-5" data-name="Path 104576" d="M215.825,51.451a4.655,4.655,0,0,0-4.7-2.922,4.779,4.779,0,0,0-4.729,2.922l-23.126,51.428a5.25,5.25,0,0,0-.545,2.179v.248a5.125,5.125,0,0,0,5.249,4.952,4.8,4.8,0,0,0,4.63-2.971l5.15-11.043h26.84l5.1,11.142a4.779,4.779,0,0,0,4.605,2.971h.248a5.125,5.125,0,0,0,4.952-5.249,4.729,4.729,0,0,0-.545-2.179ZM201.761,86.586l9.409-23.027L220.6,86.586Z" transform="translate(233.83 42.99)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104577-2)">
|
||||||
|
<path id="Path_104577-5" data-name="Path 104577" d="M212.971,48.52a5.67,5.67,0,0,0-5.621,5.621V104.7a5.621,5.621,0,0,0,5.621,5.6h0a5.5,5.5,0,0,0,5.4-5.6V54.091a5.522,5.522,0,0,0-5.4-5.571Z" transform="translate(270.18 42.99)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104578-2)">
|
||||||
|
<path id="Path_104578-5" data-name="Path 104578" d="M266.153,66.984c0-10.746-6.462-18.174-21.492-18.174H221.312a5.5,5.5,0,0,0-5.472,5.546v49.991a5.546,5.546,0,0,0,11.068,0V85.059h18.224L255.853,106.9a4.952,4.952,0,0,0,4.952,2.971h0a5.447,5.447,0,0,0,5.447-5.5,5.6,5.6,0,0,0-.668-2.476l-9.31-18.917a16.491,16.491,0,0,0,9.88-16Zm-11.192.768a8.27,8.27,0,0,1-8.74,7.8H226.933V58.987H246.2a7.973,7.973,0,0,1,8.79,8.047,6.953,6.953,0,0,1-.025.718Z" transform="translate(282.71 43.42)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104579-2)">
|
||||||
|
<path id="Path_104579-5" data-name="Path 104579" d="M278.916,98.779H250.293V83.551h23a5.076,5.076,0,0,0,5.076-4.952,5.15,5.15,0,0,0-5.076-5.274H250.368V59.038H277.6a5.249,5.249,0,0,0,5.249-5.176h0a5.125,5.125,0,0,0-5.249-4.952H244.846a5.571,5.571,0,0,0-5.6,5.546v49.15h0a5.546,5.546,0,0,0,5.621,5.5h34.145a5.125,5.125,0,0,0,5.15-5.1,5.249,5.249,0,0,0-5.249-5.224Z" transform="translate(317.27 43.57)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104580-2)">
|
||||||
|
<path id="Path_104580-5" data-name="Path 104580" d="M179.667,106.98q-3.046,0-6.091-.3A65.516,65.516,0,1,1,98.824,51.938a64.578,64.578,0,0,1,9.9-.768,65.319,65.319,0,0,1,10.523.842c-.173-1.882-.272-3.788-.272-5.72a60.638,60.638,0,0,1,4.308-22.433A94.1,94.1,0,1,0,202.67,116.81a96.566,96.566,0,0,0-1.015-13.891,60.688,60.688,0,0,1-21.987,4.061Z" transform="translate(-14.49 4.91)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1, 0, 0, 1, 0, 0)" filter="url(#Path_104581-2)">
|
||||||
|
<path id="Path_104581-5" data-name="Path 104581" d="M111.754,11.56A51.329,51.329,0,0,0,60.5,62.814a49.091,49.091,0,0,0,.668,8.069,51.3,51.3,0,0,0,42.093,42.467,47.836,47.836,0,0,0,8.493.817,50.982,50.982,0,0,0,20.2-4.16,1.413,1.413,0,0,0,0-.347,51.254,51.254,0,0,0-20.2-98.1Zm18.719,55.785H116.781V81.038a5.035,5.035,0,0,1-7.552,4.63,5.175,5.175,0,0,1-1.956-2.1,4.952,4.952,0,0,1-.5-1.931,2.475,2.475,0,0,1,0-.594V67.345H93.06a4.531,4.531,0,0,1-4.531-4.531,4.482,4.482,0,0,1,4.407-4.531h13.841V44.591a4.961,4.961,0,1,1,9.9-.594V58.283h13.693a4.531,4.531,0,1,1,0,9.062Z" transform="translate(53.42 -11.56)" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 74 KiB |
|
@ -1,65 +0,0 @@
|
||||||
:root {
|
|
||||||
--portal-main-color: #8DCA26;
|
|
||||||
--portal-main-contrast: white;
|
|
||||||
--portal-dark-color: #7cb021;
|
|
||||||
|
|
||||||
--openaire-main-color: #313179;
|
|
||||||
|
|
||||||
--explore-portal-color: #D95F2D;
|
|
||||||
--provide-portal-color: #37C7E9;
|
|
||||||
--monitor-portal-color: #8DCA26;
|
|
||||||
--connect-portal-color: #EBB13E;
|
|
||||||
--develop-portal-color: #DA65AB;
|
|
||||||
|
|
||||||
--explore-portal-lower-tone: #a0462c;
|
|
||||||
--provide-portal-lower-tone: #3A8FA3;
|
|
||||||
--monitor-portal-lower-tone: #7cb021;
|
|
||||||
--connect-portal-lower-tone: #b48536;
|
|
||||||
--develop-portal-lower-tone: #9f4e7e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tm-toolbar .uk-subnav-line .custom-monitor-li {
|
|
||||||
background: var(--portal-main-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp, .searchForm {
|
|
||||||
background: #F9F9F9 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp .login text {
|
|
||||||
stroke: white;
|
|
||||||
fill: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.uk-card {
|
|
||||||
color: #1a1a1a;
|
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
|
||||||
min-height: calc(100vh - 100px);
|
|
||||||
line-height: 23px;
|
|
||||||
font-size: 16px;
|
|
||||||
color: #1a1a1a;
|
|
||||||
font-family: "Open Sans", sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp .uk-text-small {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp .uk-text-muted {
|
|
||||||
color: #4D4D4D !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp .portal-button {
|
|
||||||
color: white !important;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.monitorApp .uk-grid-divider>:not(.uk-first-column)::before {
|
|
||||||
border-left: 1px solid #DEDEDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
/** Global */
|
||||||
|
@global-primary-gradient: linear-gradient(110deg, @monitor-light-color 0%, @monitor-dark-color 100%);
|
||||||
|
|
||||||
|
/** Background*/
|
||||||
|
@background-primary-background: @monitor-color;
|
||||||
|
@background-primary-background-gradient: none;
|
||||||
|
|
||||||
|
/** Buttons */
|
||||||
|
@button-primary-background: @monitor-color;
|
||||||
|
@button-secondary-border: @monitor-color;
|
||||||
|
@button-secondary-color: @monitor-color;
|
||||||
|
@button-secondary-hover-background: @global-secondary-background;
|
||||||
|
@button-secondary-hover-background-gradient: none;
|
||||||
|
@button-secondary-active-background: @global-secondary-background;
|
||||||
|
@button-secondary-active-background-gradient: none;
|
||||||
|
|
||||||
|
/** Label */
|
||||||
|
@label-secondary-color: @monitor-color;
|
||||||
|
@label-secondary-border: @monitor-color;
|
||||||
|
|
||||||
|
/** List */
|
||||||
|
@list-primary-color: @monitor-color;
|
||||||
|
|
||||||
|
/** Text */
|
||||||
|
@text-primary-color: @monitor-color;
|
||||||
|
@text-background-color: @monitor-color;
|
||||||
|
@inverse-text-primary-color: @monitor-color;
|
||||||
|
|
||||||
|
/* Slider */
|
||||||
|
@dotnav-item-background: fade(@monitor-color, 50%);
|
||||||
|
@dotnav-item-hover-background: @monitor-color;
|
||||||
|
@dotnav-item-onclick-background: @monitor-color;
|
||||||
|
@dotnav-item-active-background: @monitor-color;
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 5b2ec5ad3c5d43fcd69f82ddfa3a841a0d34ba0c
|
|
@ -5,8 +5,6 @@ export let properties: EnvProperties = {
|
||||||
enablePiwikTrack: true,
|
enablePiwikTrack: true,
|
||||||
useCache: true,
|
useCache: true,
|
||||||
showContent: true,
|
showContent: true,
|
||||||
metricsAPIURL: "https://beta.services.openaire.eu/usagestats/",
|
|
||||||
framesAPIURL: "https://beta.openaire.eu/stats3/",
|
|
||||||
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
|
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
|
||||||
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
|
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
|
||||||
statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/",
|
statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/",
|
||||||
|
@ -29,11 +27,6 @@ export let properties: EnvProperties = {
|
||||||
r3DataURL: "http://service.re3data.org/repository/",
|
r3DataURL: "http://service.re3data.org/repository/",
|
||||||
zenodo: "https://zenodo.org/",
|
zenodo: "https://zenodo.org/",
|
||||||
zenodoCommunities: "https://zenodo.org/api/communities/",
|
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",
|
helpdesk: "https://www.openaire.eu/support/helpdesk",
|
||||||
utilsService: "https://demo.openaire.eu/utils-service",
|
utilsService: "https://demo.openaire.eu/utils-service",
|
||||||
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
||||||
|
@ -59,6 +52,7 @@ export let properties: EnvProperties = {
|
||||||
resultsPerPage: 10,
|
resultsPerPage: 10,
|
||||||
baseLink : "",
|
baseLink : "",
|
||||||
domain : "https://beta.monitor.openaire.eu",
|
domain : "https://beta.monitor.openaire.eu",
|
||||||
|
afterLoginRedirectLink: '/my-dashboards',
|
||||||
searchLinkToResult: "/search/result?id=",
|
searchLinkToResult: "/search/result?id=",
|
||||||
searchLinkToPublication: "/search/publication?articleId=",
|
searchLinkToPublication: "/search/publication?articleId=",
|
||||||
searchLinkToProject: "/search/project?projectId=",
|
searchLinkToProject: "/search/project?projectId=",
|
||||||
|
@ -74,13 +68,12 @@ export let properties: EnvProperties = {
|
||||||
searchLinkToOrganizations: "/search/find/organizations",
|
searchLinkToOrganizations: "/search/find/organizations",
|
||||||
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
||||||
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
||||||
searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table",
|
|
||||||
searchLinkToJournals: "/search/journals",
|
searchLinkToJournals: "/search/journals",
|
||||||
searchLinkToJournalsTable: "/search/journals-table",
|
|
||||||
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
||||||
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
||||||
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
||||||
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
||||||
|
errorLink: '/error',
|
||||||
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
|
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
|
||||||
showLastIndexInformationLink: true,
|
showLastIndexInformationLink: true,
|
||||||
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
||||||
|
|
|
@ -5,8 +5,6 @@ export let properties: EnvProperties = {
|
||||||
enablePiwikTrack: true,
|
enablePiwikTrack: true,
|
||||||
useCache: true,
|
useCache: true,
|
||||||
showContent: true,
|
showContent: true,
|
||||||
metricsAPIURL: "https://services.openaire.eu/usagestats/",
|
|
||||||
framesAPIURL: "https://www.openaire.eu/stats3/",
|
|
||||||
statisticsAPIURL: "https://services.openaire.eu/stats-api/",
|
statisticsAPIURL: "https://services.openaire.eu/stats-api/",
|
||||||
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
|
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
|
||||||
statisticsFrameNewAPIURL: "",
|
statisticsFrameNewAPIURL: "",
|
||||||
|
@ -29,11 +27,6 @@ export let properties: EnvProperties = {
|
||||||
r3DataURL: "http://service.re3data.org/repository/",
|
r3DataURL: "http://service.re3data.org/repository/",
|
||||||
zenodo: "https://zenodo.org/",
|
zenodo: "https://zenodo.org/",
|
||||||
zenodoCommunities: "https://zenodo.org/api/communities/",
|
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",
|
helpdesk: "https://www.openaire.eu/support/helpdesk",
|
||||||
utilsService: "https://explore.openaire.eu/utils-service",
|
utilsService: "https://explore.openaire.eu/utils-service",
|
||||||
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",
|
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",
|
||||||
|
@ -59,6 +52,7 @@ export let properties: EnvProperties = {
|
||||||
resultsPerPage: 10,
|
resultsPerPage: 10,
|
||||||
baseLink : "",
|
baseLink : "",
|
||||||
domain : "https://monitor.openaire.eu",
|
domain : "https://monitor.openaire.eu",
|
||||||
|
afterLoginRedirectLink: '/my-dashboards',
|
||||||
searchLinkToResult: "/search/result?id=",
|
searchLinkToResult: "/search/result?id=",
|
||||||
searchLinkToPublication: "/search/publication?articleId=",
|
searchLinkToPublication: "/search/publication?articleId=",
|
||||||
searchLinkToProject: "/search/project?projectId=",
|
searchLinkToProject: "/search/project?projectId=",
|
||||||
|
@ -74,13 +68,12 @@ export let properties: EnvProperties = {
|
||||||
searchLinkToOrganizations: "/search/find/organizations",
|
searchLinkToOrganizations: "/search/find/organizations",
|
||||||
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
||||||
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
||||||
searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table",
|
|
||||||
searchLinkToJournals: "/search/journals",
|
searchLinkToJournals: "/search/journals",
|
||||||
searchLinkToJournalsTable: "/search/journals-table",
|
|
||||||
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
||||||
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
||||||
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
||||||
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
||||||
|
errorLink: '/error',
|
||||||
lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows",
|
lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows",
|
||||||
showLastIndexInformationLink: true,
|
showLastIndexInformationLink: true,
|
||||||
widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
||||||
|
|
|
@ -5,8 +5,6 @@ export let properties: EnvProperties = {
|
||||||
enablePiwikTrack: false,
|
enablePiwikTrack: false,
|
||||||
useCache: false,
|
useCache: false,
|
||||||
showContent: true,
|
showContent: true,
|
||||||
metricsAPIURL: "https://beta.services.openaire.eu/usagestats/",
|
|
||||||
framesAPIURL: "https://beta.openaire.eu/stats3/",
|
|
||||||
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
|
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
|
||||||
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
|
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
|
||||||
statisticsFrameNewAPIURL: "http://88.197.53.71:8080/stats-api/",
|
statisticsFrameNewAPIURL: "http://88.197.53.71:8080/stats-api/",
|
||||||
|
@ -29,25 +27,20 @@ export let properties: EnvProperties = {
|
||||||
r3DataURL: "http://service.re3data.org/repository/",
|
r3DataURL: "http://service.re3data.org/repository/",
|
||||||
zenodo: "https://zenodo.org/",
|
zenodo: "https://zenodo.org/",
|
||||||
zenodoCommunities: "https://zenodo.org/api/communities/",
|
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",
|
helpdesk: "https://www.openaire.eu/support/helpdesk",
|
||||||
utilsService: "http://mpagasas.di.uoa.gr:8000",
|
utilsService: "http://mpagasas.di.uoa.gr:8000",
|
||||||
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
||||||
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
|
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
|
||||||
piwikSiteId: "298",
|
piwikSiteId: "298",
|
||||||
registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/',
|
registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/',
|
||||||
loginUrl: "http://mpagasas.di.uoa.gr:8080/login-service/openid_connect_login",
|
loginUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_connect_login",
|
||||||
userInfoUrl: "http://mpagasas.di.uoa.gr:8080/login-service/userInfo",
|
userInfoUrl: "http://mpagasas.di.uoa.gr:19080/login-service/userInfo",
|
||||||
logoutUrl: "http://mpagasas.di.uoa.gr:8080/login-service/openid_logout",
|
logoutUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_logout",
|
||||||
cookieDomain: ".di.uoa.gr",
|
cookieDomain: ".di.uoa.gr",
|
||||||
feedbackmail: "openaire.test@gmail.com",
|
feedbackmail: "openaire.test@gmail.com",
|
||||||
cacheUrl: "http://scoobydoo.di.uoa.gr:3000/get?url=",
|
cacheUrl: "http://scoobydoo.di.uoa.gr:3000/get?url=",
|
||||||
monitorServiceAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service",
|
monitorServiceAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service",
|
||||||
adminToolsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service/",
|
adminToolsAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service/",
|
||||||
adminToolsPortalType: "monitor",
|
adminToolsPortalType: "monitor",
|
||||||
adminToolsCommunity: "monitor",
|
adminToolsCommunity: "monitor",
|
||||||
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
|
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
|
||||||
|
@ -59,6 +52,7 @@ export let properties: EnvProperties = {
|
||||||
resultsPerPage: 10,
|
resultsPerPage: 10,
|
||||||
baseLink : "",
|
baseLink : "",
|
||||||
domain : "http://dl170.madgik.di.uoa.gr/monitor",
|
domain : "http://dl170.madgik.di.uoa.gr/monitor",
|
||||||
|
afterLoginRedirectLink: '/my-dashboards',
|
||||||
searchLinkToResult: "/search/result?id=",
|
searchLinkToResult: "/search/result?id=",
|
||||||
searchLinkToPublication: "/search/publication?articleId=",
|
searchLinkToPublication: "/search/publication?articleId=",
|
||||||
searchLinkToProject: "/search/project?projectId=",
|
searchLinkToProject: "/search/project?projectId=",
|
||||||
|
@ -74,13 +68,12 @@ export let properties: EnvProperties = {
|
||||||
searchLinkToOrganizations: "/search/find/organizations",
|
searchLinkToOrganizations: "/search/find/organizations",
|
||||||
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
searchLinkToCompatibleDataProviders: "/search/content-providers",
|
||||||
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
|
||||||
searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table",
|
|
||||||
searchLinkToJournals: "/search/journals",
|
searchLinkToJournals: "/search/journals",
|
||||||
searchLinkToJournalsTable: "/search/journals-table",
|
|
||||||
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
|
||||||
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
searchLinkToAdvancedProjects: "/search/advanced/projects",
|
||||||
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
|
||||||
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
|
||||||
|
errorLink: '/error',
|
||||||
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
|
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
|
||||||
showLastIndexInformationLink: true,
|
showLastIndexInformationLink: true,
|
||||||
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
||||||
|
@ -89,7 +82,7 @@ export let properties: EnvProperties = {
|
||||||
depositSearchPage: "/participate/deposit/search",
|
depositSearchPage: "/participate/deposit/search",
|
||||||
shareInZenodoPage: "/participate/deposit/zenodo",
|
shareInZenodoPage: "/participate/deposit/zenodo",
|
||||||
reCaptchaSiteKey: "6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu",
|
reCaptchaSiteKey: "6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu",
|
||||||
admins: ["kostis30fylloy@gmail.com", "argirok@di.uoa.gr"],
|
admins: ["kostis30fylloy@gmail.com"],
|
||||||
lastIndexUpdate: "2019-05-16",
|
lastIndexUpdate: "2019-05-16",
|
||||||
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
|
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
|
||||||
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
|
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
|
||||||
|
|
|
@ -12,4 +12,4 @@ if (properties.environment !== "development") {
|
||||||
}
|
}
|
||||||
|
|
||||||
export {AppServerModule} from './app/app.server.module';
|
export {AppServerModule} from './app/app.server.module';
|
||||||
export {renderModule, renderModuleFactory} from '@angular/platform-server';
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
@import '../node_modules/@angular/material/theming';
|
|
||||||
@include mat-core();
|
|
||||||
$my-app-primary: mat-palette($mat-gray, 900);
|
|
||||||
$my-app-accent: mat-palette($mat-light-green, 700);
|
|
||||||
|
|
||||||
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
|
|
||||||
|
|
||||||
@include angular-material-theme($my-app-theme);
|
|
||||||
|
|
|
@ -22,16 +22,6 @@ import '@angular/localize/init';
|
||||||
* BROWSER POLYFILLS
|
* BROWSER POLYFILLS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
|
||||||
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Web Animations `@angular/platform-browser/animations`
|
|
||||||
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
|
|
||||||
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
|
|
||||||
*/
|
|
||||||
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* By default, zone.js will patch all possible macroTask and DomEvents
|
* By default, zone.js will patch all possible macroTask and DomEvents
|
||||||
* user can disable parts of macroTask/DomEvents patch by setting following flags
|
* user can disable parts of macroTask/DomEvents patch by setting following flags
|
||||||
|
@ -59,7 +49,7 @@ import '@angular/localize/init';
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
* Zone JS is required by default for Angular itself.
|
* Zone JS is required by default for Angular itself.
|
||||||
*/
|
*/
|
||||||
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
import 'zone.js'; // Included with Angular CLI.
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
/* You can add global styles to this file, and also import other style files */
|
|
||||||
@import "assets/common-assets/common/theme.css";
|
|
||||||
@import "assets/common-assets/common/custom.css";
|
|
||||||
@import "assets/common-assets/library.css";
|
|
||||||
@import "assets/monitor-custom.css";
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
/* You can add global styles to this file, and also import other style files */
|
||||||
|
@import "~src/assets/openaire-theme/less/_import";
|
||||||
|
@import "~src/assets/common-assets/less/general";
|
||||||
|
@import "~src/assets/common-assets/less/user";
|
||||||
|
@import "assets/monitor-custom";
|
12
src/test.ts
|
@ -1,20 +1,16 @@
|
||||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||||
|
|
||||||
import 'zone.js/dist/zone-testing';
|
import 'zone.js/testing';
|
||||||
import { getTestBed } from '@angular/core/testing';
|
import { getTestBed } from '@angular/core/testing';
|
||||||
import {
|
import {
|
||||||
BrowserDynamicTestingModule,
|
BrowserDynamicTestingModule,
|
||||||
platformBrowserDynamicTesting
|
platformBrowserDynamicTesting
|
||||||
} from '@angular/platform-browser-dynamic/testing';
|
} from '@angular/platform-browser-dynamic/testing';
|
||||||
|
|
||||||
declare const require: any;
|
|
||||||
|
|
||||||
// First, initialize the Angular testing environment.
|
// First, initialize the Angular testing environment.
|
||||||
getTestBed().initTestEnvironment(
|
getTestBed().initTestEnvironment(
|
||||||
BrowserDynamicTestingModule,
|
BrowserDynamicTestingModule,
|
||||||
platformBrowserDynamicTesting()
|
platformBrowserDynamicTesting(), {
|
||||||
|
teardown: { destroyAfterEach: false }
|
||||||
|
}
|
||||||
);
|
);
|
||||||
// Then we find all the tests.
|
|
||||||
const context = require.context('./', true, /\.spec\.ts$/);
|
|
||||||
// And load the modules.
|
|
||||||
context.keys().map(context);
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
"extends": "./tsconfig.app.json",
|
"extends": "./tsconfig.app.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "../out-tsc/app-server",
|
"outDir": "../out-tsc/app-server",
|
||||||
"target": "es2016",
|
|
||||||
"types": [
|
"types": [
|
||||||
"node"
|
"node"
|
||||||
]
|
]
|
||||||
|
|
|
@ -8,16 +8,16 @@
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
"module": "es2020",
|
"module": "es2020",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"emitDecoratorMetadata": true,
|
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"target": "es2015",
|
"target": "ES2022",
|
||||||
"typeRoots": [
|
"typeRoots": [
|
||||||
"node_modules/@types"
|
"node_modules/@types"
|
||||||
],
|
],
|
||||||
"lib": [
|
"lib": [
|
||||||
"es2018",
|
"es2018",
|
||||||
"dom"
|
"dom"
|
||||||
]
|
],
|
||||||
|
"useDefineForClassFields": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|