Compare commits

..

No commits in common. "master" and "production-release-april-2023" have entirely different histories.

37 changed files with 1077 additions and 1135 deletions

View File

@ -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 16.2.4. 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.
## Install packages ## Install packages

View File

@ -210,16 +210,13 @@
"main": "server.ts", "main": "server.ts",
"tsConfig": "src/tsconfig.server.json", "tsConfig": "src/tsconfig.server.json",
"sourceMap": true, "sourceMap": true,
"optimization": false, "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",
@ -230,8 +227,7 @@
} }
], ],
"sourceMap": false, "sourceMap": false,
"optimization": true, "optimization": true
"buildOptimizer": true
}, },
"production": { "production": {
"outputHashing": "media", "outputHashing": "media",
@ -242,8 +238,7 @@
} }
], ],
"sourceMap": false, "sourceMap": false,
"optimization": true, "optimization": true
"buildOptimizer": true
} }
}, },
"defaultConfiguration": "" "defaultConfiguration": ""

View File

@ -1,6 +1,6 @@
{ {
"name": "monitor", "name": "monitor",
"version": "1.0.4", "version": "0.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",
@ -21,41 +21,41 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^16.1.8", "@angular/animations": "^14.2.3",
"@angular/cdk": "^16.1.7", "@angular/cdk": "^14.2.2",
"@angular/common": "^16.1.8", "@angular/common": "^14.2.3",
"@angular/compiler": "^16.1.8", "@angular/compiler": "^14.2.3",
"@angular/core": "^16.1.8", "@angular/core": "^14.2.3",
"@angular/forms": "^16.1.8", "@angular/forms": "^14.2.3",
"@angular/localize": "^16.1.8", "@angular/localize": "^14.2.3",
"@angular/material": "^16.1.7", "@angular/material": "^14.2.2",
"@angular/platform-browser": "^16.1.8", "@angular/platform-browser": "^14.2.3",
"@angular/platform-browser-dynamic": "^16.1.8", "@angular/platform-browser-dynamic": "^14.2.3",
"@angular/platform-server": "^16.1.8", "@angular/platform-server": "^14.2.3",
"@angular/router": "^16.1.8", "@angular/router": "^14.2.3",
"@nguniversal/express-engine": "^16.1.1", "@nguniversal/express-engine": "^14.2.0",
"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": "^12.0.2", "ng-recaptcha": "^10.0.0",
"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",
"uikit": "3.16.24", "uikit": "3.12.2",
"zone.js": "~0.13.1" "zone.js": "~0.11.4"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^16.1.7", "@angular-devkit/build-angular": "^14.2.3",
"@angular/cli": "^16.1.7", "@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^16.1.8", "@angular/compiler-cli": "^14.2.3",
"@angular/language-service": "^16.1.8", "@angular/language-service": "^14.2.3",
"@nguniversal/builders": "^16.1.1", "@nguniversal/builders": "^14.2.0",
"@types/compression": "^1.7.0", "@types/compression": "^1.7.0",
"@types/express": "^4.17.0", "@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", "@types/node": "^12.11.1",
"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",
@ -66,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.9.5" "typescript": "~4.6.4"
} }
} }

View File

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

View File

@ -0,0 +1,25 @@
<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-text-center" uk-scrollspy-class>
<h1 class="uk-margin-medium-top uk-margin-medium-bottom">Frequently Asked <br> Questions<span
class="uk-text-primary">.</span></h1>
</div>
</div>
</div>
<helper *ngIf="pageContents" [texts]="pageContents.top"></helper>
</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">Frequently Asked <br> Questions<span
class="uk-text-primary">.</span></h1>
</div>
</div>
</div>
<helper *ngIf="pageContents" [texts]="pageContents.top"></helper>
</div>

View File

@ -10,18 +10,17 @@ import {Subscriber} from "rxjs";
import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component'; import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component';
@Component({ @Component({
selector: 'support', selector: 'faqs',
templateUrl: 'support.component.html', templateUrl: 'faqs.component.html'
styleUrls: ['support.component.less']
}) })
export class SupportComponent { export class FaqsComponent {
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 | Support"; public pageTitle: string = "OpenAIRE - Monitor | FAQs";
public description: string = "OpenAIRE - Monitor | Support"; public description: string = "OpenAIRE - Monitor | FAQs";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Support'}]; public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'FAQs'}];
public properties: EnvProperties = properties; public properties: EnvProperties = properties;
subscriptions = []; subscriptions = [];
@ -36,7 +35,9 @@ export class SupportComponent {
} }
public ngOnInit() { public ngOnInit() {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe()); 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);

View File

@ -9,10 +9,9 @@ import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.compo
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties"; import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../environments/environment"; import {properties} from "../../environments/environment";
import {StakeholderEntities} from "../openaireLibrary/monitor/entities/stakeholder"; import {StakeholderEntities} from "../openaireLibrary/monitor/entities/stakeholder";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
@Component({ @Component({
selector: 'about', selector: 'how-it-works',
template: ` template: `
<div class="uk-visible@m"> <div class="uk-visible@m">
<div class="uk-position-relative"> <div class="uk-position-relative">
@ -102,7 +101,7 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
<div class="uk-card-body uk-margin-large-bottom"> <div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span> <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 <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>. href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Research Graph</a>.
</p> </p>
<p>We infer links to research results: publications, datasets, software, etc.</p> <p>We infer links to research results: publications, datasets, software, etc.</p>
</div> </div>
@ -187,7 +186,7 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
<span class="uk-text-primary">Step 1b</span> <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 <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" to specify which research products of the <a href="https://graph.openaire.eu" target="_blank"
class="text-graph">OpenAIRE Graph</a> are class="text-graph">OpenAIRE Research Graph</a> are
relevant for you.</p> relevant for you.</p>
<p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p> <p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p>
</div> </div>
@ -269,8 +268,9 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
<div class="uk-card uk-card-default uk-position-relative uk-overflow-hidden uk-margin-large-bottom"> <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"> <div class="uk-card-body uk-margin-large-bottom">
<span class="uk-text-primary">Step 1b</span> <span class="uk-text-primary">Step 1b</span>
<p class="uk-text-large uk-margin-xsmall-top">Starting from the <p class="uk-text-large uk-margin-xsmall-top">Starting from the <a href="https://graph.openaire.eu"
<a href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Graph</a> we check for existing data for your institution.</p> target="_blank" class="text-graph">OpenAIRE
Research Graph</a> we check for existing data for your institution.</p>
<p>We infer links to research results: publications, datasets, software, etc.</p> <p>We infer links to research results: publications, datasets, software, etc.</p>
</div> </div>
<img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg"> <img class="uk-width-xsmall uk-position-bottom-right" src="assets/monitor-assets/about/icon2.svg">
@ -351,7 +351,7 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
<div class="uk-margin-large-top"> <div class="uk-margin-large-top">
<span class="uk-text-primary">Step 1b</span> <span class="uk-text-primary">Step 1b</span>
<h5 class="uk-margin-xsmall-top">We ingest your project metadata and mine the <a <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>. href="https://graph.openaire.eu" target="_blank" class="text-graph">OpenAIRE Research Graph</a>.
</h5> </h5>
<p>We infer links to research results: publications, datasets, software, etc.</p> <p>We infer links to research results: publications, datasets, software, etc.</p>
</div> </div>
@ -433,7 +433,7 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
<span class="uk-text-primary">Step 1b</span> <span class="uk-text-primary">Step 1b</span>
<h5 class="uk-margin-xsmall-top">We set up an administration dashboard that you can use <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" to specify which research products of the <a href="https://graph.openaire.eu" target="_blank"
class="text-graph">OpenAIRE Graph</a> are class="text-graph">OpenAIRE Research Graph</a> are
relevant for you.</h5> relevant for you.</h5>
<p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p> <p>If needed, we develop a customized full-text mining algorithm to identify your publications.</p>
</div> </div>
@ -584,15 +584,21 @@ import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sideb
</div> </div>
</div> </div>
`, `,
styleUrls: ['about.component.less'] styles: [`
.custom-translate-bottom-left {
transform: translate(-20%, 20%);
}
`]
}) })
export class AboutComponent { export class HowItWorksComponent {
public url: string = null; public url: string = null;
public pageTitle: string = "OpenAIRE - Monitor | About"; public pageTitle: string = "OpenAIRE - Monitor | How it works";
public description: string = "OpenAIRE - Monitor | About - How it works"; public description: string = "OpenAIRE - Monitor | How it works";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'About'}]; public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'About - How it works'}];
public properties: EnvProperties = properties; public properties: EnvProperties = properties;
public sections: string[] = [StakeholderEntities.FUNDERS, StakeholderEntities.RIS, StakeholderEntities.ORGANIZATIONS]; public sections: string[] = [StakeholderEntities.FUNDERS, StakeholderEntities.RIS, StakeholderEntities.ORGANIZATIONS];
public activeSection: string = StakeholderEntities.FUNDERS;
public offset: number; public offset: number;
public stakeholderEntities = StakeholderEntities; public stakeholderEntities = StakeholderEntities;
public shouldSticky: boolean = true; public shouldSticky: boolean = true;
@ -604,13 +610,14 @@ export class AboutComponent {
private _title: Title, private _title: Title,
private seoService: SEOService, private seoService: SEOService,
private _piwikService: PiwikService, private _piwikService: PiwikService,
private layoutService: LayoutService,
private helper: HelperService, private helper: HelperService,
private cdr: ChangeDetectorRef) { private cdr: ChangeDetectorRef) {
} }
ngOnInit() { ngOnInit() {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe()); 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);
@ -619,14 +626,10 @@ export class AboutComponent {
} }
ngAfterViewInit() { ngAfterViewInit() {
this.subscriptions.push(this.layoutService.isBottomIntersecting.subscribe(isBottomIntersecting => {
this.shouldSticky = !isBottomIntersecting;
this.cdr.detectChanges();
}));
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height')); this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--header-height'));
this.cdr.detectChanges(); this.cdr.detectChanges();
this.observeBottom();
} }
} }
@ -638,6 +641,20 @@ export class AboutComponent {
}); });
} }
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) { private updateDescription(description: string) {
this._meta.updateTag({content: description}, "name='description'"); this._meta.updateTag({content: description}, "name='description'");
this._meta.updateTag({content: description}, "property='og:description'"); this._meta.updateTag({content: description}, "property='og:description'");

View File

@ -17,11 +17,11 @@ declare var UIkit;
<div> <div>
<div class="uk-container"> <div class="uk-container">
<h2 class="uk-text-center uk-margin-large-top uk-margin-large-bottom">Are you a <span <h2 class="uk-text-center uk-margin-large-top uk-margin-large-bottom">Are you a <span
[ngClass]="titleClass">{{type}}?</span></h2> class="uk-text-primary">{{type}}?</span></h2>
</div> </div>
<div [id]="'sticky-' + id" #sticky class="uk-sticky uk-visible@l" [ngClass]="isSticky?backgroundClass:null" <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" uk-sticky="animation: uk-animation-slide-bottom" [attr.bottom]="'#' + id"
[attr.start]="'100vh -' + height + 'px'" [attr.offset]="offset"> [attr.top]="'100vh -' + height + 'px'" [attr.offset]="offset">
<div class="uk-container"> <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-grid uk-grid-large uk-child-width-1-2@l" [class.uk-grid-divider]="!isSticky">
<div class="uk-text-center uk-first-column"> <div class="uk-text-center uk-first-column">
@ -60,10 +60,6 @@ export class YouWeComponent implements AfterViewInit, AfterContentChecked, OnDes
public type: StakeholderEntities.FUNDER | StakeholderEntities.RI | StakeholderEntities.ORGANIZATION = StakeholderEntities.FUNDER; public type: StakeholderEntities.FUNDER | StakeholderEntities.RI | StakeholderEntities.ORGANIZATION = StakeholderEntities.FUNDER;
@Input() @Input()
public id; public id;
@Input()
titleClass: string = "uk-text-primary";
@Input()
backgroundClass: string = "uk-background-default uk-blur-background";
@ViewChild('sticky') sticky: ElementRef; @ViewChild('sticky') sticky: ElementRef;
public isSticky: boolean = false; public isSticky: boolean = false;
public offset: number public offset: number

View File

@ -3,21 +3,12 @@ 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), data: {hasStickyHeaderOnMobile: true}}, {path: '', loadChildren: () => import('./home/home.module').then(m => m.HomeModule)},
{path: 'about/learn-how', redirectTo: 'about', pathMatch: 'full'}, {path: 'about/learn-how', redirectTo: 'about', pathMatch: 'full'},
{ {
path: 'about', path: 'about',
loadChildren: () => import('./about/about.module').then(m => m.AboutModule) loadChildren: () => import('./about/about.module').then(m => m.AboutModule)
}, },
{
path: 'subscriptions',
loadChildren: () => import('./subscriptions/subscriptions.module').then(m => m.SubscriptionsModule)
},
{
path: 'support',
loadChildren: () => import('./support/support.module').then(m => m.SupportModule),
data: {hasStickyHeaderOnMobile: true}
},
{ {
path: 'methodology', path: 'methodology',
loadChildren: () => import('./openaireLibrary/monitor/methodology/methodology.module').then(m => m.MethodologyModule) loadChildren: () => import('./openaireLibrary/monitor/methodology/methodology.module').then(m => m.MethodologyModule)
@ -32,8 +23,7 @@ const routes: Routes = [
}, },
{ {
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', path: 'get-started',

View File

@ -1,4 +1,4 @@
import {ChangeDetectorRef, Component, ElementRef, ViewChild} from '@angular/core'; import {Component, ElementRef, ViewChild} from '@angular/core';
import {ActivatedRoute, NavigationEnd, 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';
@ -21,23 +21,17 @@ import {QuickContactComponent} from "./openaireLibrary/sharedComponents/quick-co
import {AlertModal} from "./openaireLibrary/utils/modal/alert"; import {AlertModal} from "./openaireLibrary/utils/modal/alert";
import {StakeholderEntities} from './openaireLibrary/monitor/entities/stakeholder'; import {StakeholderEntities} from './openaireLibrary/monitor/entities/stakeholder';
import {ResourcesService} from "./openaireLibrary/monitor/services/resources.service"; 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";
import {HelperService} from "./openaireLibrary/utils/helper/helper.service";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
template: ` template: `
<div> <div>
<div id="modal-container"></div> <div id="modal-container"></div>
<div *ngIf="divContents && divContents['banner']" class="uk-tile uk-tile-default uk-padding uk-border-bottom"> <navbar *ngIf="properties && showMenu && header" portal="monitor" [header]="header" [onlyTop]="false"
<helper [texts]="divContents['banner']"></helper>
</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"> [showMenu]=showMenu [properties]="properties">
<div *ngIf="showGetStarted" extra-s class="uk-margin-large-top uk-margin-left"> <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> <a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started">Get Started</a>
</div> </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> <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> </navbar>
@ -66,8 +60,7 @@ import {HelperService} from "./openaireLibrary/utils/helper/helper.service";
</cookie-law> </cookie-law>
<bottom #bottom *ngIf="properties && showMenu" id="bottom" [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" <quick-contact #quickContact *ngIf="showQuickContact && contactForm" (sendEmitter)="send($event)"
(sendEmitter)="send($event)"
[contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'" [contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'"
[organizationTypes]="organizationTypes" [organizationTypes]="organizationTypes"
class="uk-visible@m"></quick-contact> class="uk-visible@m"></quick-contact>
@ -87,8 +80,6 @@ export class AppComponent {
logoPath: string = 'assets/common-assets/logo-services/monitor/'; logoPath: string = 'assets/common-assets/logo-services/monitor/';
/* Contact */ /* Contact */
public showQuickContact: boolean; public showQuickContact: boolean;
public bottomNotIntersecting: boolean;
public displayQuickContact: boolean; // intersecting with specific section in home page
public showGetStarted: boolean = true; public showGetStarted: boolean = true;
public contactForm: UntypedFormGroup; public contactForm: UntypedFormGroup;
public organizationTypes: string[] = [ public organizationTypes: string[] = [
@ -104,28 +95,28 @@ export class AppComponent {
@ViewChild('bottom', {read: ElementRef}) bottom: ElementRef; @ViewChild('bottom', {read: ElementRef}) bottom: ElementRef;
private subscriptions: any[] = []; private subscriptions: any[] = [];
public stakeholderEntities = StakeholderEntities; public stakeholderEntities = StakeholderEntities;
divContents: any;
constructor(private configurationService: ConfigurationService, constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService,
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 quickContactService: QuickContactService,
private layoutService: LayoutService,
private fb: UntypedFormBuilder, private fb: UntypedFormBuilder,
private emailService: EmailService, private emailService: EmailService,
private resourcesService: ResourcesService, private resourcesService: ResourcesService) {
private helper: HelperService, this.subscriptions.push(router.events.forEach((event) => {
private cdr: ChangeDetectorRef) {
this.subscriptions.push(this.router.events.forEach((event) => {
if (event instanceof NavigationEnd) { if (event instanceof NavigationEnd) {
if (event.url === '/contact-us') {
this.quickContactService.setDisplay(false);
} else if (event.url !== '/contact-us' && !this.showQuickContact) {
this.quickContactService.setDisplay(true);
}
this.showGetStarted = event.url !== '/get-started'; this.showGetStarted = event.url !== '/get-started';
} }
})); }));
} }
ngOnInit() { ngOnInit() {
this.configurationService.initPortal(this.properties, "monitor");
this.getDivContents();
this.userManagementService.fixRedirectURL = properties.afterLoginRedirectLink; 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;
@ -143,17 +134,8 @@ export class AppComponent {
this.buildMenu(); this.buildMenu();
this.reset(); this.reset();
})); }));
this.subscriptions.push(this.layoutService.hasQuickContact.subscribe(hasQuickContact => {
if(this.showQuickContact !== hasQuickContact) {
this.showQuickContact = hasQuickContact;
this.cdr.detectChanges();
}
}));
this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => { this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => {
if(this.displayQuickContact !== display) { this.showQuickContact = display;
this.displayQuickContact = display;
this.cdr.detectChanges();
}
})); }));
} }
@ -163,26 +145,25 @@ export class AppComponent {
rootMargin: '0px', rootMargin: '0px',
threshold: 0.1 threshold: 0.1
}; };
let intersectionObserver = new IntersectionObserver(entries => {
let intersectionObserver = new IntersectionObserver(entries => { entries.forEach(entry => {
entries.forEach(entry => { if (entry.isIntersecting && this.showQuickContact) {
// if (entry.isIntersecting && this.showQuickContact) { this.showQuickContact = false;
if(this.bottomNotIntersecting !== (!entry.isIntersecting)) { this.quickContactService.setDisplay(this.showQuickContact);
this.bottomNotIntersecting = !entry.isIntersecting; } else if (!entry.isIntersecting && !this.showQuickContact) {
this.cdr.detectChanges(); this.showQuickContact = true;
this.quickContactService.setDisplay(this.showQuickContact);
} }
}); });
}, options); }, options);
intersectionObserver.observe(this.bottom.nativeElement); intersectionObserver.observe(this.bottom.nativeElement);
this.subscriptions.push(intersectionObserver); 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();
@ -190,12 +171,6 @@ export class AppComponent {
this.smoothScroll.clearSubscriptions(); this.smoothScroll.clearSubscriptions();
} }
private getDivContents() {
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, 'monitor', '/').subscribe(contents => {
this.divContents = contents;
}));
}
public buildMenu() { public buildMenu() {
this.menuItems = []; this.menuItems = [];
this.menuItems.push( this.menuItems.push(
@ -205,17 +180,18 @@ export class AppComponent {
new MenuItem("stakeholders", "Browse " + this.stakeholderEntities.STAKEHOLDERS, "", "/browse", false, [], null, {}) new MenuItem("stakeholders", "Browse " + this.stakeholderEntities.STAKEHOLDERS, "", "/browse", false, [], null, {})
); );
this.resourcesService.setResources(this.menuItems); this.resourcesService.setResources(this.menuItems);
this.menuItems.push(new MenuItem("support", "Support", "", "/support", false, [], null, {})); let about = new MenuItem("about", "About", "", "", false, [], null, {});
this.menuItems.push(new MenuItem("about", "About", "", "/about", false, [], null, {})); about.items = [
new MenuItem("how-it-works", "How it works", "", "/about/how-it-works", false, [], null, {}),
new MenuItem("faqs", "FAQs", "", "/about/faqs", false, [], null, {})
]
this.menuItems.push(about);
this.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("subscriptions", "Subscriptions", "", "/subscriptions", false, [], null, {}, null, null)
);
this.menuItems.push( this.menuItems.push(
new MenuItem("contact-us", "Contact us", "", "/contact-us", false, [], null, {}, null, null, "uk-hidden@m") new MenuItem("contact-us", "Contact us", "", "/contact-us", false, [], null, {}, null, null, "uk-hidden@m")
); );

View File

@ -1,8 +1,8 @@
import {APP_ID, NgModule} from '@angular/core'; import {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} from '@angular/platform-browser'; import {BrowserModule, BrowserTransferStateModule} 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';
@ -20,7 +20,6 @@ import {ErrorInterceptorService} from "./openaireLibrary/error-interceptor.servi
import {SharedModule} from "./openaireLibrary/shared/shared.module"; import {SharedModule} from "./openaireLibrary/shared/shared.module";
import {AlertModalModule} from "./openaireLibrary/utils/modal/alertModal.module"; import {AlertModalModule} from "./openaireLibrary/utils/modal/alertModal.module";
import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.guard'; import {isDevelopmentGuard} from './openaireLibrary/error/isDevelopmentGuard.guard';
import {HelperModule} from "./openaireLibrary/utils/helper/helper.module";
@NgModule({ @NgModule({
@ -35,17 +34,16 @@ import {HelperModule} from "./openaireLibrary/utils/helper/helper.module";
QuickContactModule, QuickContactModule,
BottomModule, BottomModule,
CookieLawModule, CookieLawModule,
BrowserModule, BrowserTransferStateModule,
BrowserModule.withServerTransition({appId: 'monitor'}),
AppRoutingModule, AppRoutingModule,
Schema2jsonldModule, Schema2jsonldModule,
AlertModalModule, AlertModalModule
HelperModule
], ],
declarations: [AppComponent, OpenaireErrorPageComponent], declarations: [AppComponent, OpenaireErrorPageComponent],
exports: [AppComponent], exports: [AppComponent],
providers: [ providers: [
isDevelopmentGuard, isDevelopmentGuard,
{provide: APP_ID, useValue: 'monitor'},
{ {
provide: HTTP_INTERCEPTORS, provide: HTTP_INTERCEPTORS,
useClass: HttpInterceptorService, useClass: HttpInterceptorService,

View File

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

View File

@ -57,7 +57,9 @@ export class ContactComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe()); 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);

View File

@ -62,7 +62,7 @@
</div> </div>
</div> </div>
<div class="uk-width-expand uk-flex uk-flex-center"> <div class="uk-width-expand uk-flex uk-flex-center">
<img src="assets/monitor-assets/get-started/steps.svg" loading="lazy"> <img src="assets/common-assets/monitor-assets/how/steps.svg" loading="lazy">
</div> </div>
</div> </div>
</div> </div>
@ -114,7 +114,7 @@
<span>Learn More</span> <span>Learn More</span>
</span> </span>
</a> </a>
<img src="assets/monitor-assets/get-started/steps.svg" loading="lazy"> <img src="assets/common-assets/monitor-assets/how/steps.svg" loading="lazy">
</div> </div>
</div> </div>
</div> </div>

View File

@ -60,7 +60,9 @@ export class GetStartedComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.subscriptions.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe()); 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);

File diff suppressed because it is too large Load Diff

View File

@ -6,19 +6,12 @@
background-color: @global-inverse-color; 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) { @media only screen and (min-width: @breakpoint-medium) {
.tablet-section { .monitor-dark-logo-background {
background-image:url("~src/assets/monitor-assets/home/monitor-dark-logo.svg"), linear-gradient(180deg, @global-inverse-color 0%, @global-muted-background 100%); background-image: url("~src/assets/monitor-assets/home/monitor-dark-logo.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: -5% 95%, top; background-position: left 95%;
background-size: 60%, cover; background-size: 65%;
} }
} }

View File

@ -24,12 +24,7 @@ import {NumberUtils} from "../openaireLibrary/utils/number-utils.class";
import {SearchResearchResultsService} from "../openaireLibrary/services/searchResearchResults.service"; import {SearchResearchResultsService} from "../openaireLibrary/services/searchResearchResults.service";
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 { import {Stakeholder, StakeholderEntities, StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
Stakeholder,
StakeholderEntities,
StakeholderInfo,
StakeholderType
} from "../openaireLibrary/monitor/entities/stakeholder";
import {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";
@ -39,7 +34,6 @@ import {IDeactivateComponent} from "../openaireLibrary/utils/can-exit.guard";
import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields"; import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields";
import {isPlatformServer} from '@angular/common'; import {isPlatformServer} from '@angular/common';
import {LayoutService} from '../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service'; import {LayoutService} from '../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service';
import {StakeholderUtils} from "../openaireLibrary/monitor-admin/utils/indicator-utils";
@Component({ @Component({
selector: 'home', selector: 'home',
@ -50,7 +44,12 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
public pageTitle = "OpenAIRE | Monitor"; public pageTitle = "OpenAIRE | Monitor";
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 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 stakeholders: StakeholderInfo[] = [];
public stakeholdersSlider: any; 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;
@ -60,22 +59,26 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
public errorCodes: ErrorCodes; public errorCodes: ErrorCodes;
public properties: EnvProperties = properties; public properties: EnvProperties = properties;
public openaireEntities = OpenaireEntities; public openaireEntities = OpenaireEntities;
public stakeholderUtils: StakeholderUtils = new StakeholderUtils(); public stakeholderEntities = StakeholderEntities;
public directLink: boolean = true; public directLink: boolean = true;
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;
public showQuickContact: boolean = true;
@ViewChild('AlertModal') modal;
private errorMessages: ErrorMessagesComponent; private errorMessages: ErrorMessagesComponent;
private subscriptions = []; private subscriptions = [];
private mutationObserver: MutationObserver; private mutationObserver: MutationObserver;
private user: User; private user: User;
@ViewChildren('scrolling_element') elements: QueryList<ElementRef>;
@ViewChild('contact') contact: ElementRef; @ViewChild('contact') contact: ElementRef;
isMobile: boolean = false; isMobile: boolean = false;
isServer: boolean; isServer: boolean;
constructor( constructor(
private route: ActivatedRoute,
private _router: Router, private _router: Router,
private _meta: Meta, private _meta: Meta,
private _title: Title, private _title: Title,
@ -99,14 +102,15 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
this.errorMessages = new ErrorMessagesComponent(); this.errorMessages = new ErrorMessagesComponent();
this.status = this.errorCodes.LOADING; this.status = this.errorCodes.LOADING;
this.isServer = isPlatformServer(this.platform); this.isServer = isPlatformServer(this.platform);
this.quickContactService.setDisplay(false);
} }
public ngOnInit() { public ngOnInit() {
let url = this.properties.domain + this.properties.baseLink + this._router.url; let 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'");
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Monitor").subscribe()); if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Monitor", this.properties.piwikSiteId).subscribe());
}
this.getNumbers(); this.getNumbers();
this.subscriptions.push(this.localStorageService.get().subscribe(value => { this.subscriptions.push(this.localStorageService.get().subscribe(value => {
this.directLink = value; this.directLink = value;
@ -127,7 +131,6 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
} }
ngOnDestroy() { ngOnDestroy() {
this.quickContactService.setDisplay(true);
this.clear(); this.clear();
} }
@ -158,12 +161,38 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
}; };
let intersectionObserver = new IntersectionObserver(entries => { let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => { entries.forEach(entry => {
this.quickContactService.setDisplay(!entry.isIntersecting); if (entry.isIntersecting && this.showQuickContact) {
this.showQuickContact = false;
this.quickContactService.setDisplay(this.showQuickContact);
} else if (!entry.isIntersecting && !this.showQuickContact) {
this.showQuickContact = true;
this.quickContactService.setDisplay(this.showQuickContact);
}
}); });
}, options); }, options);
if(this.contact) { if(this.contact) {
intersectionObserver.observe(this.contact.nativeElement); intersectionObserver.observe(this.contact.nativeElement);
} }
this.mutationObserver = new MutationObserver(entries => {
entries.forEach(entry => {
if (entry.attributeName === 'style') {
let opacities: number[] = this.elements.map(element => +element.nativeElement.style.opacity);
let active: number = opacities.indexOf(Math.max(...opacities));
this.elements.forEach((element, index) => {
if (index === active) {
element.nativeElement.classList.remove('uk-disabled');
} else {
element.nativeElement.classList.add('uk-disabled');
}
})
}
})
});
this.elements.changes.subscribe(() => {
this.elements.forEach(element => {
this.mutationObserver.observe(element.nativeElement, {attributes: true});
});
});
this.subscriptions.push(intersectionObserver); this.subscriptions.push(intersectionObserver);
} }
@ -180,7 +209,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
} }
getNumbers() { getNumbers() {
this.subscriptions.push(this._refineFieldResultsService.getAllRefineFieldResultsByFieldName("funder", "project", this.properties).subscribe( this.subscriptions.push(this._refineFieldResultsService.getRefineFieldsResultsByEntityName(["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);
@ -236,20 +265,14 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
this.handleError("Error getting number of software data", err); this.handleError("Error getting number of software data", err);
} }
)); ));
}
get types(): StakeholderType[] {
return this.stakeholderUtils.types.map(option => option.value).filter(type => this.stakeholders.findIndex(stakeholder => stakeholder.type === type) > -1);
}
getTitle(type: string) {
return this.stakeholderUtils.entities[type + 's'] ? this.stakeholderUtils.entities[type + 's'] : type;
} }
public getStakeholders() { public getStakeholders() {
this.loading = true; this.loading = true;
this.status = this.errorCodes.LOADING; this.status = this.errorCodes.LOADING;
this.subscriptions.push(this._stakeholderService.getStakeholders().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;
@ -258,11 +281,11 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
this.sort(this.stakeholders); this.sort(this.stakeholders);
this.stakeholders = this.publicStakeholders.concat(this.privateStakeholders); this.stakeholders = this.publicStakeholders.concat(this.privateStakeholders);
this.stakeholdersSlider = { this.stakeholdersSlider = {
all: this.stakeholderSlider(this.stakeholders) stakeholders: this.stakeholderSlider(this.stakeholders),
} funders: this.stakeholderSlider(this.funders),
this.types.forEach(type => { ris: this.stakeholderSlider(this.ris),
this.stakeholdersSlider[type] = this.stakeholderSlider(this.getStakeholdersByType(type)); organizations: this.stakeholderSlider(this.organizations)
}); };
} }
this.loading = false; this.loading = false;
}, },
@ -301,8 +324,28 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit, IDeactiv
return this.stakeholders.filter(stakeholder => stakeholder.visibility !== "PUBLIC"); return this.stakeholders.filter(stakeholder => stakeholder.visibility !== "PUBLIC");
} }
getStakeholdersByType(type: StakeholderType = null) { get funders(): StakeholderInfo[] {
return this.stakeholders.filter(stakeholder => !type || stakeholder.type === type) if (this.stakeholders) {
return this.stakeholders.filter(stakeholder => stakeholder.type === "funder");
} else {
return [];
}
}
get ris(): StakeholderInfo[] {
if (this.stakeholders) {
return this.stakeholders.filter(stakeholder => stakeholder.type === "ri");
} else {
return [];
}
}
get organizations(): StakeholderInfo[] {
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 {

View File

@ -64,7 +64,9 @@ export class MyStakeholdersComponent {
var 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'");
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Connect").subscribe()); if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE Connect", this.properties.piwikSiteId).subscribe());
}
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.user = user; this.user = user;
if (this.user) { if (this.user) {
@ -101,9 +103,9 @@ export class MyStakeholdersComponent {
this.status = this.errorCodes.LOADING; this.status = this.errorCodes.LOADING;
this.subscriberErrorMessage = ""; this.subscriberErrorMessage = "";
this.stakeholders = []; this.stakeholders = [];
this.subscriptions.push(this.stakeholderService.getMyStakeholders().subscribe( this.subscriptions.push(this.stakeholderService.getMyStakeholders(properties.monitorServiceAPIURL).subscribe(
stakeholders => { stakeholders => {
this.stakeholders = StakeholderInfo.toStakeholderInfo(stakeholders.standalone.concat(stakeholders.umbrella), this.user); this.stakeholders = StakeholderInfo.toStakeholderInfo(stakeholders, this.user);
this.sort(this.stakeholders); this.sort(this.stakeholders);
this.loading = false; this.loading = false;
}, },

@ -1 +1 @@
Subproject commit 59cb69736c4efdbdffa790e8da7a0c31171737a6 Subproject commit 1d5bfc498c81214fcc9fb208d407a1e950e23f7d

View File

@ -11,21 +11,20 @@ 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, SearchForm} from "../openaireLibrary/searchPages/searchUtils/newSearchPage.component"; import {NewSearchPageComponent, SearchForm} from "../openaireLibrary/searchPages/searchUtils/newSearchPage.component";
import {StakeholderInfo, StakeholderType} 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 {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {TitleCasePipe} from "@angular/common"; import {TitleCasePipe} from "@angular/common";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service"; import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {StakeholderUtils} from "../openaireLibrary/monitor-admin/utils/indicator-utils";
@Component({ @Component({
selector: 'search-stakeholders', selector: 'search-stakeholders',
template: ` template: `
<new-search-page pageTitle="OpenAIRE-Monitor | Browse {{stakeholderUtils.entities.stakeholders}}" <new-search-page pageTitle="OpenAIRE-Monitor | Browse {{this.stakeholderEntities.STAKEHOLDERS}}"
[hasPrefix]=false [hasPrefix]=false [piwikSiteId]="piwikSiteId"
[formPlaceholderText]="'Search ' + (!isMobile?'OpenAIRE Monitor ':'') +stakeholderUtils.entities.stakeholders" [formPlaceholderText]="'Search ' + (!isMobile?'OpenAIRE Monitor ':'') + this.stakeholderEntities.STAKEHOLDERS"
[type]="(results.length > 1) ? stakeholderUtils.entities.stakeholders:stakeholderUtils.entities.stakeholders" [type]="(results.length > 1) ? this.stakeholderEntities.STAKEHOLDERS:this.stakeholderEntities.STAKEHOLDER"
entityType="stakeholder" entityType="stakeholder"
[results]="results" [searchUtils]="searchUtils" [results]="results" [searchUtils]="searchUtils"
[showResultCount]=true [showResultCount]=true
@ -40,11 +39,11 @@ import {StakeholderUtils} from "../openaireLibrary/monitor-admin/utils/indicator
` `
}) })
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[] = [];
public totalResults: StakeholderInfo[]; public totalResults: StakeholderInfo[];
public stakeholderUtils: StakeholderUtils = new StakeholderUtils();
public subscriptions = []; public subscriptions = [];
public filters = []; public filters = [];
public searchFields: SearchFields = new SearchFields(); public searchFields: SearchFields = new SearchFields();
@ -66,7 +65,8 @@ export class SearchStakeholdersComponent {
}; };
public keyword = ""; public keyword = "";
public searchLink; public searchLink;
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Browse ' + this.stakeholderUtils.entities.stakeholders}]; public stakeholderEntities = StakeholderEntities;
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Browse ' + this.stakeholderEntities.STAKEHOLDERS}];
public searchForm: SearchForm = {class: 'uk-background-muted', dark: false}; public searchForm: SearchForm = {class: 'uk-background-muted', dark: false};
public isMobile: boolean = false; public isMobile: boolean = false;
properties: EnvProperties = properties; properties: EnvProperties = properties;
@ -85,6 +85,7 @@ export class SearchStakeholdersComponent {
} }
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;
@ -101,15 +102,15 @@ export class SearchStakeholdersComponent {
this.searchPage.refineFields = this.refineFields; this.searchPage.refineFields = this.refineFields;
this.searchLink = this.properties.searchLinkToStakeholders; this.searchLink = this.properties.searchLinkToStakeholders;
this.selectedFields = []; this.selectedFields = [];
this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], [], this.fieldIdsMap, null, params, "stakeholder", null); this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap, null, params, "stakeholder", null);
let queryParams = params; let queryParams = params;
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.user = user; this.user = user;
this.initResults(queryParams); this.initFunders(queryParams);
})); }));
} else { } else {
this.initResults(queryParams); this.initFunders(queryParams);
} }
})); }));
this.layoutService.isMobile.subscribe(isMobile => { this.layoutService.isMobile.subscribe(isMobile => {
@ -126,19 +127,28 @@ export class SearchStakeholdersComponent {
}); });
} }
private parseResults(data: any) {
for (let i = 0; i < data.length; i++) {
this.totalResults[i] = data[i];
this.totalResults[i].isManager = this.isManager(data[i]);
this.totalResults[i].isMember = this.isMember(data[i]);
}
}
/** /**
* Initialize stakeholders from Communities APIs * Initialize stakeholders from Communities APIs
* *
* @param params * @param params
*/ */
private initResults(params) { private initFunders(params) {
if (this.totalResults) { if (this.totalResults) {
this.totalResults = StakeholderInfo.toStakeholderInfo(this.totalResults, this.user); this.parseResults(this.totalResults);
this._getResults(params); this._getResults(params);
} else { } else {
this.subscriptions.push(this._stakeholderService.getStakeholders().subscribe( this.subscriptions.push(this._stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL).subscribe(
data => { data => {
this.totalResults = StakeholderInfo.toStakeholderInfo(data, this.user); this.totalResults = [];
this.parseResults(data);
this._getResults(params); this._getResults(params);
}, },
err => { err => {
@ -422,8 +432,13 @@ export class SearchStakeholdersComponent {
} }
} }
get types(): StakeholderType[] { private isManager(stakeholder) {
return this.stakeholderUtils.types.map(option => option.value).filter(type => this.totalResults.findIndex(stakeholder => stakeholder.type === type) > -1); return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user)
|| Session.isCommunityCurator(this.user) || Session.isManager(stakeholder.type, stakeholder.alias, this.user);
}
private isMember(stakeholder) {
return this.isManager(stakeholder) || Session.isSubscribedTo(stakeholder.type, stakeholder.alias, this.user);
} }
/** /**
@ -437,8 +452,8 @@ 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(this.types.map(type => this.stakeholderUtils.entities[type + 's'])); value_names.push([this.stakeholderEntities.FUNDERS, this.titleCasePipe.transform(this.stakeholderEntities.RIS), this.titleCasePipe.transform(this.stakeholderEntities.ORGANIZATIONS)]);
value_original_ids.push(this.types); value_original_ids.push(["funder", "ri", "organization"]);
filter_names.push("Accessibility"); filter_names.push("Accessibility");
filter_ids.push("access"); filter_ids.push("access");
if (!this.user) { if (!this.user) {

View File

@ -1,82 +0,0 @@
import {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 {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 {BaseComponent} from "../openaireLibrary/sharedComponents/base/base.component";
import {HelperService} from "../openaireLibrary/utils/helper/helper.service";
@Component({
selector: 'subscriptions',
template: `
<div>
<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="target: [uk-scrollspy-class]; cls: uk-animation-fade; delay: 250">
<h1 class="uk-margin-medium-top" uk-scrollspy-class>Subscriptions<span
class="uk-text-primary">.</span></h1>
<div uk-scrollspy-class>
As demand for our services grows, along with the features included in each of them,
traditional sources of funding may not be sufficient. By introducing subscription fees, we
can ensure their long-term sustainability; by achieving financial stability we can
continue to invest in better resources, technology, and talent, thereby increasing our
capacity to deliver impactful programs and services to all interested parties.
Subscriptions support immediate operational needs, while at the same time enabling us to
scale our efforts and make a greater, more sustainable difference in the communities we
serve.
</div>
</div>
</div>
</div>
</div>
<helper *ngIf="divContents" [texts]="divContents.plans"></helper>
</div>
`
})
export class SubscriptionsComponent extends BaseComponent {
public divContents = null;
public title: string = "OpenAIRE - Monitor | Subscriptions";
public description: string = "OpenAIRE - Monitor | Subscriptions";
public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Subscriptions'}];
public properties: EnvProperties = properties;
subscriptions = [];
constructor(
protected _router: Router,
protected _meta: Meta,
protected _title: Title,
protected seoService: SEOService,
protected _piwikService: PiwikService,
private helper: HelperService) {
super();
}
ngOnInit() {
this.setMetadata();
this.getDivContents();
}
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
subscription.unsubscribe();
}
});
}
private getDivContents() {
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
this.divContents = contents;
}));
}
}

View File

@ -1,23 +0,0 @@
import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";
import {RouterModule} from "@angular/router";
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
import {SubscriptionsComponent} from "./subscriptions.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 {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
@NgModule({
declarations: [SubscriptionsComponent],
imports: [CommonModule, RouterModule.forChild([
{
path: '',
component: SubscriptionsComponent
}
]), BreadcrumbsModule, SliderTabsModule, HelperModule, IconsModule],
exports: [SubscriptionsComponent],
providers: [PreviousRouteRecorder, PiwikService]
})
export class SubscriptionsModule {}

View File

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

View File

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

View File

@ -1,22 +0,0 @@
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 a4d8923b82a59ac1cc41e9c0574f1d64a61c0c1b Subproject commit ca209a54baaa2d9e0004613a68088fdcf4bee43a

View File

@ -1,159 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 11 KiB

@ -1 +1 @@
Subproject commit 55765bf0829910661a55337e0e7ca7b1262b7298 Subproject commit aa1e6c9df390a4ba0919b5f8591374f7eec75089

View File

@ -1,16 +1,97 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties"; import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
import {common, commonBeta} from "../app/openaireLibrary/utils/properties/environments/environment";
let props: EnvProperties = {
environment: "beta",
enablePiwikTrack: true,
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service/",
adminToolsPortalType: "monitor",
adminToolsCommunity: "monitor",
domain : "https://beta.monitor.openaire.eu",
afterLoginRedirectLink: '/my-dashboards',
};
export let properties: EnvProperties = { export let properties: EnvProperties = {
...common, ...commonBeta, ...props environment: "beta",
} enablePiwikTrack: true,
useCache: true,
showContent: true,
framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/",
useNewStatistisTool: true,
claimsAPIURL: "https://beta.services.openaire.eu/claims/rest/claimsService/",
searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "https://beta.services.openaire.eu/search/v2/api/reports",
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/v2.1/",
orcidURL: "https://orcid.org/",
doiURL: "https://dx.doi.org/",
pmcURL: "http://europepmc.org/articles/",
pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/",
handleURL: "http://hdl.handle.net/",
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/",
openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
helpdesk: "https://www.openaire.eu/support/helpdesk",
utilsService: "https://demo.openaire.eu/utils-service",
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "298",
registryUrl: 'https://beta.services.openaire.eu/uoa-user-management/api/registry/',
loginUrl: "https://beta.services.openaire.eu/login-service/openid_connect_login",
userInfoUrl: "https://beta.services.openaire.eu/login-service/userInfo",
logoutUrl: "https://beta.services.openaire.eu/login-service/openid_logout",
cookieDomain: ".openaire.eu",
feedbackmail: "feedback@openaire.eu",
cacheUrl: "https://demo.openaire.eu/cache/get?url=",
monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service/",
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service/",
adminToolsCommunity: "monitor",
adminToolsPortalType: "monitor",
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
contextsAPI: "https://beta.services.openaire.eu/openaire/context",
communityAPI: "https://beta.services.openaire.eu/openaire/community/",
communitiesAPI: "https://beta.services.openaire.eu/openaire/community/communities",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink : "",
domain : "https://beta.monitor.openaire.eu",
afterLoginRedirectLink: '/my-dashboards',
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToStakeholders: "/browse",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
errorLink: '/error',
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
showLastIndexInformationLink: true,
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
claimsInformationLink: "https://beta.openaire.eu/linking",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
shareInZenodoPage: "/participate/deposit/zenodo",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["feedback@openaire.eu"],
lastIndexUpdate: "2019-08-07",
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
b2noteAPIURL: "http://b2note-dev.bsc.es/",
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};

View File

@ -1,16 +1,97 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties"; import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
import {common, commonProd} from "../app/openaireLibrary/utils/properties/environments/environment";
let props: EnvProperties = { export let properties: EnvProperties = {
environment: "production", environment: "production",
enablePiwikTrack: true, enablePiwikTrack: true,
useCache: true,
showContent: true,
framesAPIURL: "https://www.openaire.eu/stats3/",
statisticsAPIURL: "https://services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
statisticsFrameNewAPIURL: "",
useNewStatistisTool: false,
claimsAPIURL: "https://services.openaire.eu/claims/rest/claimsService/",
searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "https://services.openaire.eu/search/v2/api/reports",
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/v2.1/",
orcidURL: "https://orcid.org/",
doiURL: "https://dx.doi.org/",
pmcURL: "http://europepmc.org/articles/",
pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/",
handleURL: "http://hdl.handle.net/",
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/",
openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
helpdesk: "https://www.openaire.eu/support/helpdesk",
utilsService: "https://explore.openaire.eu/utils-service",
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "104",
registryUrl: 'https://services.openaire.eu/uoa-user-management/api/registry/',
loginUrl: "https://services.openaire.eu/login-service/openid_connect_login",
userInfoUrl: "https://services.openaire.eu/login-service/userInfo",
logoutUrl: "https://services.openaire.eu/login-service/openid_logout",
cookieDomain: ".openaire.eu",
feedbackmail: "feedback@openaire.eu",
cacheUrl: "https://explore.openaire.eu/cache/get?url=",
datasourcesAPI: "https://services.openaire.eu/openaire/ds/search/",
monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service",
adminToolsAPIURL: "https://services.openaire.eu/uoa-monitor-service/", adminToolsAPIURL: "https://services.openaire.eu/uoa-monitor-service/",
adminToolsPortalType: "monitor", adminToolsPortalType: "monitor",
adminToolsCommunity: "monitor", adminToolsCommunity: "monitor",
contextsAPI: "https://services.openaire.eu/openaire/context",
communityAPI: "https://services.openaire.eu/openaire/community/",
communitiesAPI: "https://services.openaire.eu/openaire/community/communities",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink : "",
domain : "https://monitor.openaire.eu", domain : "https://monitor.openaire.eu",
afterLoginRedirectLink: '/my-dashboards', afterLoginRedirectLink: '/my-dashboards',
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToStakeholders: "/browse",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
errorLink: '/error',
lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows",
showLastIndexInformationLink: true,
widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
claimsInformationLink: "https://www.openaire.eu/linking",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
shareInZenodoPage: "/participate/deposit/zenodo",
reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P",
admins: ["feedback@openaire.eu"],
lastIndexUpdate: "2019-07-24",
indexInfoAPI: "https://services.openaire.eu/openaire/info/",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
b2noteAPIURL: "http://b2note-dev.bsc.es/",
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
}; };
export let properties: EnvProperties = {
...common, ...commonProd, ...props
}

View File

@ -1,18 +1,97 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties"; import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
import {common, commonDev} from "../app/openaireLibrary/utils/properties/environments/environment";
let props: EnvProperties = { export let properties: EnvProperties = {
environment: "development", environment: "development",
enablePiwikTrack: false, enablePiwikTrack: false,
useCache: false, useCache: false,
showContent: true, showContent: true,
adminToolsAPIURL: "http://mpagasas.di.uoa.gr:19380/uoa-monitor-service/", framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "http://88.197.53.71:8080/stats-api/",
useNewStatistisTool: false,
claimsAPIURL: "http://scoobydoo.di.uoa.gr:8080/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/",
searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "http://rudie.di.uoa.gr:8080/dnet-functionality-services-2.0.0-SNAPSHOT/rest/v2/reports",
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/v2.1/",
orcidURL: "https://orcid.org/",
doiURL: "https://dx.doi.org/",
pmcURL: "http://europepmc.org/articles/",
pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/",
handleURL: "http://hdl.handle.net/",
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/",
openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
helpdesk: "https://www.openaire.eu/support/helpdesk",
utilsService: "http://mpagasas.di.uoa.gr:8000",
vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "298",
registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/',
loginUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_connect_login",
userInfoUrl: "http://mpagasas.di.uoa.gr:19080/login-service/userInfo",
logoutUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_logout",
cookieDomain: ".di.uoa.gr",
feedbackmail: "openaire.test@gmail.com",
cacheUrl: "http://scoobydoo.di.uoa.gr:3000/get?url=",
monitorServiceAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service",
adminToolsAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service/",
adminToolsPortalType: "monitor", adminToolsPortalType: "monitor",
adminToolsCommunity: "monitor", adminToolsCommunity: "monitor",
domain : "http://mpagasas.di.uoa.gr:4000", datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
contextsAPI: "https://dev-openaire.d4science.org/openaire/context",
communityAPI: "https://dev-openaire.d4science.org/openaire/community/",
communitiesAPI: "https://dev-openaire.d4science.org/openaire/community/communities",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
baseLink : "",
domain : "http://dl170.madgik.di.uoa.gr/monitor",
afterLoginRedirectLink: '/my-dashboards', afterLoginRedirectLink: '/my-dashboards',
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToStakeholders: "/browse",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
errorLink: '/error',
lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows",
showLastIndexInformationLink: true,
widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
claimsInformationLink: "https://beta.openaire.eu/linking",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
shareInZenodoPage: "/participate/deposit/zenodo",
reCaptchaSiteKey: "6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu",
admins: ["kostis30fylloy@gmail.com"],
lastIndexUpdate: "2019-05-16",
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
b2noteAPIURL: "http://b2note-dev.bsc.es/",
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
}; };
export let properties: EnvProperties = {
...common, ...commonDev, ...props
}

View File

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

View File

@ -7,6 +7,8 @@ import {
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,
@ -14,3 +16,7 @@ getTestBed().initTestEnvironment(
teardown: { destroyAfterEach: false } teardown: { destroyAfterEach: false }
} }
); );
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -2,6 +2,7 @@
"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"
] ]

View File

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