angular-16 #9

Merged
k.triantafyllou merged 29 commits from angular-16 into develop 2023-11-01 13:04:06 +01:00
25 changed files with 355 additions and 360 deletions

View File

@ -212,13 +212,16 @@
"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",
@ -229,7 +232,8 @@
} }
], ],
"sourceMap": false, "sourceMap": false,
"optimization": true "optimization": true,
"buildOptimizer": true
}, },
"production": { "production": {
"outputHashing": "media", "outputHashing": "media",
@ -240,7 +244,8 @@
} }
], ],
"sourceMap": false, "sourceMap": false,
"optimization": true "optimization": true,
"buildOptimizer": true
} }
}, },
"defaultConfiguration": "" "defaultConfiguration": ""

View File

@ -21,19 +21,19 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^14.2.3", "@angular/animations": "^16.1.8",
"@angular/cdk": "^14.2.2", "@angular/cdk": "^16.1.7",
"@angular/common": "^14.2.3", "@angular/common": "^16.1.8",
"@angular/compiler": "^14.2.3", "@angular/compiler": "^16.1.8",
"@angular/core": "^14.2.3", "@angular/core": "^16.1.8",
"@angular/forms": "^14.2.3", "@angular/forms": "^16.1.8",
"@angular/localize": "^14.2.3", "@angular/localize": "^16.1.8",
"@angular/material": "^14.2.2", "@angular/material": "^16.1.7",
"@angular/platform-browser": "^14.2.3", "@angular/platform-browser": "^16.1.8",
"@angular/platform-browser-dynamic": "^14.2.3", "@angular/platform-browser-dynamic": "^16.1.8",
"@angular/platform-server": "^14.2.3", "@angular/platform-server": "^16.1.8",
"@angular/router": "^14.2.3", "@angular/router": "^16.1.8",
"@nguniversal/express-engine": "^14.2.0", "@nguniversal/express-engine": "^16.1.1",
"@node-minify/clean-css": "^6.2.0", "@node-minify/clean-css": "^6.2.0",
"@node-minify/core": "^6.2.0", "@node-minify/core": "^6.2.0",
"axios": "^0.27.2", "axios": "^0.27.2",
@ -41,25 +41,25 @@
"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": "^10.0.0", "ng-recaptcha": "^12.0.2",
"ng2-ckeditor": "1.3.7", "ng2-ckeditor": "1.3.7",
"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.13.10", "uikit": "3.16.24",
"zone.js": "~0.11.4" "zone.js": "~0.13.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^14.2.3", "@angular-devkit/build-angular": "^16.1.7",
"@angular/cli": "^14.2.3", "@angular/cli": "^16.1.7",
"@angular/compiler-cli": "^14.2.3", "@angular/compiler-cli": "^16.1.8",
"@angular/language-service": "^14.2.3", "@angular/language-service": "^16.1.8",
"@nguniversal/builders": "^14.2.0", "@nguniversal/builders": "^16.1.1",
"@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": "^12.11.1", "@types/node": "^16.18.50",
"@types/ckeditor": "^4.9.10", "@types/ckeditor": "^4.9.10",
"codelyzer": "^6.0.0", "codelyzer": "^6.0.0",
"jasmine-core": "~3.8.0", "jasmine-core": "~3.8.0",
@ -71,6 +71,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.6.4" "typescript": "~4.9.5"
} }
} }

View File

@ -20,11 +20,12 @@ const routes: Routes = [
/** Other Pages */ /** Other Pages */
{ {
path: '', path: '',
loadChildren: () => import('./communitywrapper/communityWrapper.module').then(m => m.CommunityWrapperModule) loadChildren: () => import('./communitywrapper/communityWrapper.module').then(m => m.CommunityWrapperModule),
data: {hasStickyHeaderOnMobile: true}
}, },
{path: 'about', redirectTo: 'about/learn-how', pathMatch: 'full'}, {path: 'about', redirectTo: 'about/learn-how', pathMatch: 'full'},
{path: 'about/learn-how', loadChildren: () => import('./learn-how/learn-how.module').then(m => m.LearnHowModule)}, {path: 'about/learn-how', loadChildren: () => import('./learn-how/learn-how.module').then(m => m.LearnHowModule), data: {hasStickyHeaderOnMobile: true}},
{path: 'about/faq', loadChildren: () => import('./learn-how/faqs/faqs.module').then(m => m.FaqsModule)}, {path: 'about/faq', loadChildren: () => import('./learn-how/faqs/faqs.module').then(m => m.FaqsModule), data: {hasStickyHeaderOnMobile: true}},
{path: 'get-started', loadChildren: () => import('./get-started/get-started.module').then(m => m.GetStartedModule)}, {path: 'get-started', loadChildren: () => import('./get-started/get-started.module').then(m => m.GetStartedModule)},
{ {
path: 'contact-us', path: 'contact-us',

View File

@ -28,7 +28,7 @@ import {LoginErrorCodes} from "./openaireLibrary/login/utils/guardHelper.class";
import {Layout} from "./openaireLibrary/connect/community/CustomizationOptions"; import {Layout} from "./openaireLibrary/connect/community/CustomizationOptions";
import {CustomizationService} from "./openaireLibrary/services/customization.service"; import {CustomizationService} from "./openaireLibrary/services/customization.service";
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll"; import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
import {makeStateKey, Meta, StateKey, TransferState} from "@angular/platform-browser"; import {makeStateKey, StateKey, TransferState} from "@angular/core";
import {CommunityInfo} from "./openaireLibrary/connect/community/communityInfo"; import {CommunityInfo} from "./openaireLibrary/connect/community/communityInfo";
import {SEOService} from "./openaireLibrary/sharedComponents/SEO/SEO.service"; import {SEOService} from "./openaireLibrary/sharedComponents/SEO/SEO.service";
import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms"; import {UntypedFormBuilder, UntypedFormGroup, Validators} from "@angular/forms";
@ -42,20 +42,19 @@ import {OpenaireEntities} from "./openaireLibrary/utils/properties/searchFields"
import {DOCUMENT, isPlatformServer} from "@angular/common"; import {DOCUMENT, isPlatformServer} from "@angular/common";
import {AdvancedAsyncSubject} from "./openaireLibrary/utils/AdvancedAsyncSubject"; import {AdvancedAsyncSubject} from "./openaireLibrary/utils/AdvancedAsyncSubject";
import {LayoutService} from "./openaireLibrary/dashboard/sharedComponents/sidebar/layout.service"; import {LayoutService} from "./openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {Meta} from "@angular/platform-browser";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
template: ` template: `
<div [class]="(community)?(community.communityId +'App communityApp'):'connectApp'"> <div [class]="(community)?(community.communityId +'App communityApp'):'connectApp'">
<div id="modal-container"></div> <div id="modal-container"></div>
<navbar *ngIf="properties && showMenu && !community && header" [portal]="properties.dashboard" [onlyTop]=false <navbar #navbar *ngIf="properties && showMenu && !community && header" [portal]="properties.dashboard" [onlyTop]=false
[userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user" [header]="header" [userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user" [header]="header"
[showMenu]=showMenu [properties]="properties" [showHomeMenuItem]="false" communityId="connect"> [showMenu]=showMenu [properties]="properties" [showHomeMenuItem]="false" communityId="connect">
<ul *ngIf="showGetStarted" extra-s class="uk-nav uk-nav-default uk-margin-small-top"> <div *ngIf="showGetStarted" extra-s class="uk-margin-large-top uk-margin-left">
<li routerLinkActive="uk-active"> <a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/get-started" (click)="navbar.closeCanvas()">Get Started</a>
<a routerLink="/get-started">Get Started</a> </div>
</li>
</ul>
<a *ngIf="showGetStarted" extra-m <a *ngIf="showGetStarted" extra-m
class="uk-button uk-button-small uk-button-primary uk-text-uppercase uk-margin-left" class="uk-button uk-button-small uk-button-primary uk-text-uppercase uk-margin-left"
routerLink="/get-started">Get Started</a> routerLink="/get-started">Get Started</a>

View File

@ -1,8 +1,8 @@
import {NgModule} from '@angular/core'; import {APP_ID, NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms'; import {FormsModule} from '@angular/forms';
import {CommonModule} from '@angular/common'; import {CommonModule} from '@angular/common';
import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http"; import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http";
import {BrowserModule, BrowserTransferStateModule} from '@angular/platform-browser'; import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {AppComponent} from './app.component'; import {AppComponent} from './app.component';
@ -41,9 +41,8 @@ import {CustomizationService} from "./openaireLibrary/services/customization.ser
BottomModule, BottomModule,
CookieLawModule, CookieLawModule,
SubscribeModule.forRoot(), InviteBasicModule, SubscribeModule.forRoot(), InviteBasicModule,
BrowserModule.withServerTransition({appId: 'serverApp'}), BrowserModule,
AppRoutingModule, AppRoutingModule,
BrowserTransferStateModule,
BrowserAnimationsModule, BrowserAnimationsModule,
PageURLResolverModule, Schema2jsonldModule, RoleVerificationModule, QuickContactModule, AlertModalModule PageURLResolverModule, Schema2jsonldModule, RoleVerificationModule, QuickContactModule, AlertModalModule
], ],
@ -51,6 +50,7 @@ import {CustomizationService} from "./openaireLibrary/services/customization.ser
exports: [AppComponent], exports: [AppComponent],
providers: [ providers: [
CommunitiesService, CustomizationService, IsCommunity, SubscribeService, CommunitiesService, CustomizationService, IsCommunity, SubscribeService,
{provide: APP_ID, useValue: 'serverApp'},
{ {
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, ServerTransferStateModule} from '@angular/platform-server'; import {ServerModule} from '@angular/platform-server';
import { AppModule } from './app.module'; import { AppModule } from './app.module';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
@ -8,7 +8,6 @@ import { AppComponent } from './app.component';
imports: [ imports: [
AppModule, AppModule,
ServerModule, ServerModule,
ServerTransferStateModule
], ],
bootstrap: [AppComponent], bootstrap: [AppComponent],
}) })

View File

@ -1,302 +1,287 @@
<div> <div>
<div class="uk-overflow-hidden uk-tile-default"> <div class="uk-overflow-hidden uk-tile-default">
<div class="uk-section uk-padding-remove-bottom uk-background-norepeat hero-background"> <div class="uk-section uk-padding-remove-bottom uk-background-norepeat hero-background">
<div class="uk-container uk-container-large" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200"> <div class="uk-container uk-container-large"
<div class="uk-grid uk-flex-middle" uk-grid> uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-width-3-5 uk-margin-large-bottom"> <div class="uk-grid uk-flex-middle" uk-grid>
<h1 class="uk-heading-large" uk-scrollspy-class> <div class="uk-width-3-5 uk-margin-large-bottom">
Build a <span class="uk-text-primary">Gateway</span> <h1 class="uk-heading-large" uk-scrollspy-class>
for your Community<span class="uk-text-primary">.</span> Build a <span class="uk-text-primary">Gateway</span>
</h1> for your Community<span class="uk-text-primary">.</span>
<div class="uk-text-large uk-margin-medium-top" uk-scrollspy-class> </h1>
<div>Turn Open Science into Practice.</div> <div class="uk-text-large uk-margin-medium-top" uk-scrollspy-class>
<div>It takes your open and linked {{entities.RESULTS | lowercase}}.</div> <div>Turn Open Science into Practice.</div>
<div>A service customized to your needs.</div> <div>It takes your open and linked {{entities.RESULTS | lowercase}}.</div>
</div> <div>A service customized to your needs.</div>
<div class="uk-margin-medium-top" uk-scrollspy-class> </div>
<a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/about/learn-how">Learn More</a> <div class="uk-margin-medium-top" uk-scrollspy-class>
</div> <a class="uk-button uk-button-primary uk-text-uppercase" routerLink="/about/learn-how">Learn
</div> More</a>
<div class="uk-width-expand uk-visible@m" uk-scrollspy-class> </div>
<div class="uk-position-relative"> </div>
<img style="padding: 1px" src="assets/connect-assets/home/connect-hero.jpg" uk-parallax="y: 300"> <div class="uk-width-expand uk-visible@m" uk-scrollspy-class>
<img class="uk-position-top-left" src="assets/connect-assets/home/connect-hero-mask.svg"> <div class="uk-position-relative">
</div> <img style="padding: 1px" src="assets/connect-assets/home/connect-hero.jpg"
</div> uk-parallax="y: 300">
</div> <img class="uk-position-top-left" src="assets/connect-assets/home/connect-hero-mask.svg">
</div> </div>
</div> </div>
</div> </div>
<ng-template #scrolling_text let-position_class="position_class">
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 15%; end: 100% + 100vh - 150vh; opacity: 0,1 20%,1 99%,0">
<h3 class="uk-h2">
<span class="uk-text-primary">Find a repository to deposit </span>
<span>your {{entities.RESULT | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h3>
</div>
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 200vh; opacity: 0,1 20%,1 99%,0">
<h3 class="uk-h2">
<span class="uk-text-primary">Link your {{entities.RESULT | lowercase}} </span>
<span>with your community, funding, and other {{entities.RESULTS | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h3>
</div>
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 200vh; end: 100% + 100vh - 250vh; opacity: 0,1 20%,1 99%,0">
<h3 class="uk-h2">
<span>View community's </span>
<span class="uk-text-primary">overview at a glance.</span>
</h3>
</div>
<div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 250vh; end: 100% + 100vh - 300vh; opacity: 0,1 20%,1">
<h3 class="uk-h2">
<span class="uk-text-primary">Search & browse </span>
<span>your community's {{entities.RESULTS | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h3>
</div>
<!-- <div #scrolling_element [class]="position_class" uk-parallax="target: #js-sticky-parallax-images-all; start: 300vh; end: 100% + 100vh - 350vh; opacity: 0,1 20%,1">
<h3 class="uk-h2">
<span class="uk-text-primary">View statistics </span>
<span>for your community's {{entities.RESULTS | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h3>
</div> -->
</ng-template>
<div class="uk-section uk-section-secondary">
<div class="uk-container uk-container-large">
<div class="uk-width-1-1">
<span class="uk-h6 uk-text-primary">Benefits.</span>
<h2 class="uk-h1 uk-margin-remove-top uk-width-1-2@m">
Find the best for your community<span class="uk-text-primary">.</span>
</h2>
</div>
<div id="js-sticky-parallax-images-all" style="min-height: 400vh">
<div class="uk-visible@m uk-height-viewport connect-dark-logo-background uk-sticky" uk-sticky="bottom: #js-sticky-parallax-images-all; target-offset: true">
<div class="uk-grid" uk-grid style="height: 100vh;">
<div class="uk-width-expand uk-first-column uk-position-relative uk-height-1-1">
<div class="connect-dark-logo-background">
<div uk-parallax="target: #js-sticky-parallax-images-all;">
<img class="uk-position-center uk-position-z-index" src="assets/connect-assets/home/tablet.png" alt="ipad" loading="lazy"
style="width: 100%;">
<img class="uk-position-center" src="assets/connect-assets/home/1.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; end: 100% + 100vh - 160vh; opacity: 1,1 99%,0; easing:0"
style="width: 100%;">
<img class="uk-position-center" src="assets/connect-assets/home/2.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 210vh; opacity: 0,1 20%,1 99%,0; easing:0"
style="width: 100%;">
<img class="uk-position-center" src="assets/connect-assets/home/3.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 200vh; end: 100% + 100vh - 260vh; opacity: 0,1 20%,1 99%,0; easing:0"
style="width: 100%;">
<img class="uk-position-center" src="assets/connect-assets/home/4.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 250vh; end: 100% + 100vh - 310vh; opacity: 0,1 20%,1; easing:0"
style="width: 100%;">
</div>
</div>
</div>
<div class="uk-inline uk-width-expand uk-height-1-1 uk-margin-large-left">
<div class="uk-width-3-4@l">
<div uk-parallax="target: #js-sticky-parallax-images-all; y: 55vh, 40vh;">
<ng-container *ngTemplateOutlet="scrolling_text; context: {position_class: 'uk-position-center-left'}"></ng-container>
</div>
</div>
</div>
</div>
</div>
<div class="uk-hidden@m uk-height-viewport connect-dark-logo-background" uk-sticky="bottom: #js-sticky-parallax-images-all">
<div class="uk-flex uk-flex-column uk-flex-middle">
<div class="connect-dark-logo-background uk-inline uk-width-1-1" style="height: 40vh;">
<img class="uk-position-center uk-position-z-index" src="assets/connect-assets/home/tablet.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all;" style="width: 70%;">
<img class="uk-position-center" src="assets/connect-assets/home/1.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; end: 100% + 100vh - 160vh; opacity: 1,1 99%,0; easing:0" style="width: 70%;">
<img class="uk-position-center" src="assets/connect-assets/home/2.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 210vh; opacity: 0,1 20%,1 99%,0; easing:0" style="width: 70%;">
<img class="uk-position-center" src="assets/connect-assets/home/3.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 200vh; end: 100% + 100vh - 260vh; opacity: 0,1 20%,1 99%,0; easing:0" style="width: 70%;">
<img class="uk-position-center" src="assets/connect-assets/home/4.png" alt="ipad" loading="lazy"
uk-parallax="target: #js-sticky-parallax-images-all; start: 250vh; end: 100% + 100vh - 310vh; opacity: 0,1 20%,1; easing:0" style="width: 70%;">
</div> </div>
<div class="uk-inline uk-width-2-3">
<ng-container *ngTemplateOutlet="scrolling_text; context: {position_class: 'uk-position-top-center'}"></ng-container>
</div>
</div>
</div> </div>
</div> </div>
</div> <div #parent class="uk-section uk-section-secondary connect-dark-logo-background">
</div> <div class="uk-container uk-container-large uk-margin-large-bottom">
<div class="uk-width-1-1 uk-margin-medium-bottom">
<span class="uk-h6 uk-text-primary">Benefits.</span>
<h2 class="uk-margin-remove-top uk-width-1-2@m">
Find the best for your community<span class="uk-text-primary">.</span>
</h2>
</div>
<slider-container [total]="4" [navigation]="'progress'" [period]="6000" [infinite]="true" [parent]="parent">
<slider-column type="slider">
<slider-item type="static">
<img class="uk-position-center uk-position-z-index" src="assets/connect-assets/home/tablet.png"
alt="ipad" loading="lazy">
</slider-item>
<slider-item type="slide" [start]="0">
<img src="assets/connect-assets/home/1.png" alt="ipad" loading="lazy">
</slider-item>
<slider-item type="slide" [start]="1">
<img src="assets/connect-assets/home/2.png" alt="ipad" loading="lazy">
</slider-item>
<slider-item type="slide" [start]="2">
<img src="assets/connect-assets/home/3.png" alt="ipad" loading="lazy">
</slider-item>
<slider-item type="slide" [start]="3">
<img src="assets/connect-assets/home/4.png" alt="ipad" loading="lazy">
</slider-item>
</slider-column>
<slider-column type="nav" class="slider-nav">
<slider-nav-item [start]="0">
<h5 class="uk-margin-remove">
<i class="uk-text-primary">Find a repository </i>
<span>to deposit your {{entities.RESULT | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h5>
</slider-nav-item>
<slider-nav-item [start]="1">
<h5 class="uk-margin-remove">
<i class="uk-text-primary">Link your {{entities.RESULT | lowercase}} </i>
<span>with your community, funding, and other {{entities.RESULTS | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h5>
</slider-nav-item>
<slider-nav-item [start]="2">
<h5 class="uk-margin-remove">
<span>View community's </span>
<i class="uk-text-primary">overview at a glance.</i>
</h5>
</slider-nav-item>
<slider-nav-item [start]="3">
<h5 class="uk-margin-remove">
<i class="uk-text-primary">Search & browse </i>
<span>your community's {{entities.RESULTS | lowercase}}</span>
<span class="uk-text-primary">.</span>
</h5>
</slider-nav-item>
</slider-column>
</slider-container>
</div>
</div>
<div class="uk-section uk-section-large uk-container uk-container-large"> <div class="uk-section uk-section-large uk-container uk-container-large">
<div class="uk-margin-medium-top"> <div class="uk-margin-medium-top">
<h2 class="uk-h1"> <h2 class="uk-h1">
Our mission for an Open and FAIR science<span class="uk-text-primary">.</span> Our mission for an Open and FAIR science<span class="uk-text-primary">.</span>
</h2> </h2>
<div class="uk-margin-large-top"> <div class="uk-margin-large-top">
<div class="uk-child-width-1-3@m uk-child-width-1-1@s uk-grid-large uk-grid-match uk-grid" uk-grid="" <div class="uk-child-width-1-3@m uk-child-width-1-1@s uk-grid-large uk-grid-match uk-grid" uk-grid=""
uk-height-match=".target"> uk-height-match=".target">
<div class="uk-first-column"> <div class="uk-first-column">
<div class="uk-card uk-card-default uk-padding"> <div class="uk-card uk-card-default uk-padding">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center <div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center
uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom"> uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom">
<div> <div>
<img src="assets/connect-assets/home/virtual.svg" alt="A Virtual Research Environment" style="height:60px; width:67px"/> <img src="assets/connect-assets/home/virtual.svg"
</div> alt="A Virtual Research Environment" style="height:60px; width:67px"/>
</div> </div>
<div class="uk-card-body uk-padding-remove uk-margin-small-bottom"> </div>
<div class="target uk-text-center"> <div class="uk-card-body uk-padding-remove uk-margin-small-bottom">
<h3 class="uk-6 uk-card-title uk-margin-small-bottom">A Virtual Research Environment</h3> <div class="target uk-text-center">
<div>An overlay platform making it easy to share, link, disseminate and monitor all your {{entities.PUBLICATIONS | lowercase}}, <h3 class="uk-6 uk-card-title uk-margin-small-bottom">A Virtual Research
{{entities.DATASETS | lowercase}}, {{entities.SOFTWARE | lowercase}}, methods. In one place. Environment</h3>
</div> <div>An overlay platform making it easy to share, link, disseminate and monitor all
</div> your {{entities.PUBLICATIONS | lowercase}},
<hr/> {{entities.DATASETS | lowercase}}, {{entities.SOFTWARE | lowercase}}, methods.
<div> In one place.
<ul class="uk-list uk-text-small"> </div>
<li class="uk-flex uk-flex-middle"> </div>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> <hr/>
Access to OpenAIRE research graph <div>
</li> <ul class="uk-list uk-text-small">
<li class="uk-flex uk-flex-middle"> <li class="uk-flex uk-flex-middle">
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
Moderated, front-end linking flex="true"></icon>
</li> Access to OpenAIRE research graph
<li class="uk-flex uk-flex-middle"> </li>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> <li class="uk-flex uk-flex-middle">
Cross-platform search <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
</li> flex="true"></icon>
</ul> Moderated, front-end linking
</div> </li>
</div> <li class="uk-flex uk-flex-middle">
</div> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
</div> flex="true"></icon>
<div> Cross-platform search
<div class="uk-card uk-card-default uk-padding"> </li>
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center </ul>
</div>
</div>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-padding">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center
uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom"> uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom">
<div> <div>
<img src="assets/connect-assets/home/open_science.svg" alt="Open science in action" style="height:60px; width:67px"/> <img src="assets/connect-assets/home/open_science.svg" alt="Open science in action"
</div> style="height:60px; width:67px"/>
</div> </div>
<div class="uk-card-body uk-padding-remove uk-margin-small-bottom"> </div>
<div class="target uk-text-center" style=""> <div class="uk-card-body uk-padding-remove uk-margin-small-bottom">
<h3 class="uk-h6 uk-card-title uk-margin-small-bottom">Open Science in action</h3> <div class="target uk-text-center" style="">
<div>A time-saving bundle of services for researchers to effortlessly practice open science. An integral <h3 class="uk-h6 uk-card-title uk-margin-small-bottom">Open Science in action</h3>
part of the&nbsp;European Open Science Cloud. <div>A time-saving bundle of services for researchers to effortlessly practice open
</div> science. An integral
</div> part of the&nbsp;European Open Science Cloud.
<hr> </div>
<div> </div>
<ul class="uk-list uk-text-small"> <hr>
<li class="uk-flex uk-flex-middle"> <div>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> <ul class="uk-list uk-text-small">
Use of OpenAIRE Guidelines <li class="uk-flex uk-flex-middle">
</li> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
<li class="uk-flex uk-flex-middle"> flex="true"></icon>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> Use of OpenAIRE Guidelines
Publish and get DOIs with Zenodo </li>
</li> <li class="uk-flex uk-flex-middle">
<li class="uk-flex uk-flex-middle"> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> flex="true"></icon>
EOSC Single Sign-On Publish and get DOIs with Zenodo
</li> </li>
</ul> <li class="uk-flex uk-flex-middle">
</div> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
</div> flex="true"></icon>
</div> EOSC Single Sign-On
</div> </li>
<div> </ul>
<div class="uk-card uk-card-default uk-padding"> </div>
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center </div>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-padding">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center
uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom"> uk-padding-small uk-padding-remove-vertical uk-margin-top uk-margin-bottom">
<div> <div>
<img src="assets/connect-assets/home/customize.svg" alt="Customized to your needs" style="height:60px; width:67px"/> <img src="assets/connect-assets/home/customize.svg" alt="Customized to your needs"
</div> style="height:60px; width:67px"/>
</div> </div>
<div class="uk-card-body uk-padding-remove uk-margin-small-bottom"> </div>
<div class="target uk-text-center" style=""> <div class="uk-card-body uk-padding-remove uk-margin-small-bottom">
<h3 class="uk-h6 uk-card-title uk-margin-small-bottom">Customized to your needs</h3> <div class="target uk-text-center" style="">
<div>A Gateway with your own brand, rules for aggregation, text &amp; data mining, and presentation. Run <h3 class="uk-h6 uk-card-title uk-margin-small-bottom">Customized to your needs</h3>
by you via a simple, yet powerful backend administration tool. <div>A Gateway with your own brand, rules for aggregation, text &amp; data mining,
</div> and presentation. Run
</div> by you via a simple, yet powerful backend administration tool.
<hr> </div>
<div> </div>
<ul class="uk-list uk-text-small"> <hr>
<li class="uk-flex uk-flex-middle"> <div>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> <ul class="uk-list uk-text-small">
Access control <li class="uk-flex uk-flex-middle">
</li> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
<!--<li class="uk-flex uk-flex-middle"> flex="true"></icon>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> Access control
Analytics: rich set of indicators </li>
</li>--> <!--<li class="uk-flex uk-flex-middle">
<li class="uk-flex uk-flex-middle"> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon>
<icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85" flex="true"></icon> Analytics: rich set of indicators
Look &amp; feel to match your brand </li>-->
</li> <li class="uk-flex uk-flex-middle">
</ul> <icon class="uk-margin-small-right uk-text-primary" name="done" ratio="0.85"
</div> flex="true"></icon>
</div> Look &amp; feel to match your brand
</div> </li>
</div> </ul>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</div>
</div>
<div *ngIf="researchCommunities.length === 0" class="uk-container uk-container-large uk-margin-large-bottom"> <div *ngIf="researchCommunities.length === 0" class="uk-container uk-container-large uk-margin-large-bottom">
<errorMessages [status]="[status]" [type]="'communities'"></errorMessages> <errorMessages [status]="[status]" [type]="'communities'"></errorMessages>
</div> </div>
<div *ngIf="!loading && researchCommunities.length > 0" class="uk-section uk-container uk-container-large"> <div *ngIf="!loading && researchCommunities.length > 0" class="uk-section uk-container uk-container-large">
<h2 class="uk-h1">Community Gateways already in action<span class="uk-text-primary">.</span></h2> <h2 class="uk-h1">Community Gateways already in action<span class="uk-text-primary">.</span></h2>
<div class="uk-margin-large-top uk-margin-large-bottom"> <div class="uk-margin-large-top uk-margin-large-bottom">
<div class="uk-visible@xl"> <div class="uk-visible@xl">
<div class="uk-grid-match uk-grid-medium uk-child-width-1-4 uk-flex-center uk-text-center" uk-grid> <div class="uk-grid-match uk-grid-medium uk-child-width-1-4 uk-flex-center uk-text-center" uk-grid>
<div *ngFor="let community of researchCommunities.slice(0, 4); let i = index"> <div *ngFor="let community of researchCommunities.slice(0, 4); let i = index">
<div class="uk-card uk-card-default uk-card-hover" [class.uk-disabled]="!hasPermission(community)"> <div class="uk-card uk-card-default uk-card-hover"
<browse-community [community]=community></browse-community> [class.uk-disabled]="!hasPermission(community)">
</div> <browse-community [community]=community></browse-community>
</div> </div>
</div> </div>
<div class="uk-text-center uk-margin-medium-top"> </div>
<a *ngIf="researchCommunities.length > 4" <div class="uk-text-center uk-margin-medium-top">
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text" <a *ngIf="researchCommunities.length > 4"
routerLinkActive="router-link-active" routerLink="/search/find/communities"> class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/search/find/communities">
<span class="uk-flex uk-flex-middle"> <span class="uk-flex uk-flex-middle">
<span>View All</span> <span>View All</span>
</span> </span>
</a> </a>
</div> </div>
</div> </div>
<div class="uk-hidden@xl"> <div class="uk-hidden@xl">
<div class="uk-grid-match uk-grid-medium uk-child-width-1-3@m uk-child-width-1-1 uk-flex-center uk-text-center" uk-grid> <div class="uk-grid-match uk-grid-medium uk-child-width-1-3@m uk-child-width-1-1 uk-flex-center uk-text-center"
<div *ngFor="let community of researchCommunities.slice(0, 3); let i = index"> uk-grid>
<div class="uk-card uk-card-default uk-card-hover"> <div *ngFor="let community of researchCommunities.slice(0, 3); let i = index">
<browse-community [community]=community></browse-community> <div class="uk-card uk-card-default uk-card-hover"
</div> [class.uk-disabled]="!hasPermission(community)">
</div> <browse-community [community]=community></browse-community>
</div> </div>
<div class="uk-text-center uk-margin-medium-top"> </div>
<a *ngIf="researchCommunities.length > 3" </div>
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text" <div class="uk-text-center uk-margin-medium-top">
routerLinkActive="router-link-active" routerLink="/search/find/communities"> <a *ngIf="researchCommunities.length > 3"
class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text"
routerLinkActive="router-link-active" routerLink="/search/find/communities">
<span class="uk-flex uk-flex-middle"> <span class="uk-flex uk-flex-middle">
<span>View All</span> <span>View All</span>
</span> </span>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div #contact class="uk-section uk-container uk-container-large uk-margin-large-bottom uk-flex uk-flex-middle uk-flex-column"> <div #contact
<h2 class="uk-text-center uk-width-3-4@m"> class="uk-section uk-container uk-container-large uk-margin-large-bottom uk-flex uk-flex-middle uk-flex-column">
<div>Let us Help you Develop a Collaborative Science Gateway<span class="uk-text-primary">.</span></div> <h2 class="uk-text-center uk-width-3-4@m">
<div>It is fast<span class="uk-text-primary">.</span> It is reliable<span class="uk-text-primary">.</span></div> <div>Let us Help you Develop a Collaborative Science Gateway<span class="uk-text-primary">.</span></div>
</h2> <div>It is fast<span class="uk-text-primary">.</span> It is reliable<span class="uk-text-primary">.</span>
<a class="uk-button uk-button-primary uk-margin-medium-top uk-margin-medium-bottom" routerLink="/contact-us">Contact us</a> </div>
</div> </h2>
<a class="uk-button uk-button-primary uk-margin-medium-top uk-margin-medium-bottom" routerLink="/contact-us">Contact
us</a>
</div>
</div> </div>

View File

@ -7,7 +7,11 @@
.connect-dark-logo-background { .connect-dark-logo-background {
background-image: url("~src/assets/connect-assets/home/connect-dark-logo.svg"); background-image: url("~src/assets/connect-assets/home/connect-dark-logo.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: left 95%; background-position: -5% 102%;
background-size: 65%; background-size: 35%;
} }
}
.slider-nav {
max-width: 650px;
}
}

View File

@ -14,19 +14,19 @@ import {ErrorMessagesModule} from '../openaireLibrary/utils/errorMessages.m
import {SearchFormModule} from '../openaireLibrary/searchPages/searchUtils/searchForm.module'; import {SearchFormModule} from '../openaireLibrary/searchPages/searchUtils/searchForm.module';
import {BrowseCommunityModule} from './browseCommunity/browse-community.module'; import {BrowseCommunityModule} from './browseCommunity/browse-community.module';
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module"; import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
import {GifSliderModule} from "../openaireLibrary/utils/gif-slider/gif-slider.module";
import {OtherPortalsModule} from "../openaireLibrary/sharedComponents/other-portals/other-portals.module"; import {OtherPortalsModule} from "../openaireLibrary/sharedComponents/other-portals/other-portals.module";
import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module"; import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard"; import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
import {SectionScrollModule} from "../openaireLibrary/utils/section-scroll/section-scroll.module"; import {SectionScrollModule} from "../openaireLibrary/utils/section-scroll/section-scroll.module";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module"; import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {SliderUtilsModule} from "../openaireLibrary/sharedComponents/slider-utils/slider-utils.module";
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, FormsModule, RouterModule, CommonModule, FormsModule, RouterModule,
ManageModule, ErrorMessagesModule, ManageModule, ErrorMessagesModule,
SearchFormModule, BrowseCommunityModule, GifSliderModule, OtherPortalsModule, SearchFormModule, BrowseCommunityModule, OtherPortalsModule,
HelperModule, SEOServiceModule, SectionScrollModule, IconsModule HelperModule, SEOServiceModule, SectionScrollModule, IconsModule, SliderUtilsModule
], ],
declarations: [ declarations: [
CommunitiesComponent CommunitiesComponent

View File

@ -219,7 +219,7 @@ export class CommunityComponent {
this._title.setTitle(community.title); this._title.setTitle(community.title);
this.subs.push(this._piwikService.trackView(this.properties, community.title).subscribe()); this.subs.push(this._piwikService.trackView(this.properties, community.title).subscribe());
if (this.community.zenodoCommunity) { if (this.community.zenodoCommunity) {
this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.community.zenodoCommunity).subscribe( this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.community.zenodoCommunity).subscribe(
result => { result => {
this.masterZenodoCommunity = result; this.masterZenodoCommunity = result;
}, },

View File

@ -24,7 +24,7 @@ export class FetchZenodoInformation {
}); });
} }
public getZenodoCommunityNameAndUrlById(masterZenodoCommunityId: string, properties:EnvProperties, zenodoInformation: ZenodoInformationClass){ public getZenodoCommunityNameAndUrlById(masterZenodoCommunityId: string, properties:EnvProperties, zenodoInformation: ZenodoInformationClass){
this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(properties, properties.zenodoCommunities+masterZenodoCommunityId).subscribe( this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(properties, masterZenodoCommunityId).subscribe(
result => { result => {
console.info("getZenodoCommunityNameAndUrlById", result); console.info("getZenodoCommunityNameAndUrlById", result);
var masterZenodoCommunity = result; var masterZenodoCommunity = result;

View File

@ -19,7 +19,7 @@
<div class="uk-width-auto" *ngIf="masterZenodoCommunity.logoUrl"> <div class="uk-width-auto" *ngIf="masterZenodoCommunity.logoUrl">
<a target="_blank" [href]="masterZenodoCommunity.link"> <a target="_blank" [href]="masterZenodoCommunity.link">
<img *ngIf="masterZenodoCommunity.logoUrl" <img *ngIf="masterZenodoCommunity.logoUrl"
src="{{masterZenodoCommunity.logoUrl}}" width="80" height="80" alt="{{masterZenodoCommunity.title}}"> src="{{masterZenodoCommunity.logoUrl}}" width="80" height="80" alt="">
</a> </a>
</div> </div>
<div class="uk-width-expand"> <div class="uk-width-expand">
@ -108,7 +108,7 @@
<div class="uk-width-auto" *ngIf="communities[this.communityIds[i]].logoUrl"> <div class="uk-width-auto" *ngIf="communities[this.communityIds[i]].logoUrl">
<a target="_blank" [href]="communities[this.communityIds[i]].link"> <a target="_blank" [href]="communities[this.communityIds[i]].link">
<img *ngIf="communities[this.communityIds[i]].logoUrl" <img *ngIf="communities[this.communityIds[i]].logoUrl"
src="{{communities[this.communityIds[i]].logoUrl}}" width="80" height="80" alt="{{communities[this.communityIds[i]].title}}"> src="{{communities[this.communityIds[i]].logoUrl}}" width="80" height="80" alt="">
</a> </a>
</div> </div>
<div class="uk-width-expand"> <div class="uk-width-expand">

View File

@ -82,7 +82,7 @@ export class ShareInZenodoComponent {
this.community = community; this.community = community;
this.masterZenodoCommunityId = this.community.zenodoCommunity; this.masterZenodoCommunityId = this.community.zenodoCommunity;
if (this.masterZenodoCommunityId) { if (this.masterZenodoCommunityId) {
this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + this.masterZenodoCommunityId).subscribe( this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.masterZenodoCommunityId).subscribe(
result => { result => {
this.masterZenodoCommunity = result; this.masterZenodoCommunity = result;
@ -143,7 +143,7 @@ export class ShareInZenodoComponent {
} }
getZenodoCommunityById(zenodoid) { getZenodoCommunityById(zenodoid) {
this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.properties.zenodoCommunities + zenodoid).subscribe( this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, zenodoid).subscribe(
result => { result => {
this.communities[zenodoid] = result; this.communities[zenodoid] = result;
this.zenodoCommunitiesLoadedCount++; this.zenodoCommunitiesLoadedCount++;

View File

@ -7,7 +7,6 @@ import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.servic
import {LearnHowComponent} from "./learn-how.component"; import {LearnHowComponent} from "./learn-how.component";
import {LearnHowRoutingModule} from "./learn-how-routing.module"; import {LearnHowRoutingModule} from "./learn-how-routing.module";
import {GifSliderModule} from "../openaireLibrary/utils/gif-slider/gif-slider.module";
import {HelperModule} from "../openaireLibrary/utils/helper/helper.module"; import {HelperModule} from "../openaireLibrary/utils/helper/helper.module";
import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard"; import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module"; import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
@ -20,7 +19,7 @@ import {TabsModule} from '../openaireLibrary/utils/tabs/tabs.module';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, RouterModule, LearnHowRoutingModule, GifSliderModule, HelperModule, CommonModule, RouterModule, LearnHowRoutingModule, HelperModule,
Schema2jsonldModule, SEOServiceModule, BreadcrumbsModule, HtmlPagesModule, IconsModule, TabsModule Schema2jsonldModule, SEOServiceModule, BreadcrumbsModule, HtmlPagesModule, IconsModule, TabsModule
], ],
declarations: [ declarations: [

@ -1 +1 @@
Subproject commit ff4411d69587e012a274dbd0451ca770d1afb969 Subproject commit dbbd7ec541d96a5062a769dea2255ad9ccb36b13

View File

@ -13,6 +13,7 @@ import {Subscriber} from "rxjs";
import {NewSearchPageComponent} from "../../openaireLibrary/searchPages/searchUtils/newSearchPage.component"; import {NewSearchPageComponent} from "../../openaireLibrary/searchPages/searchUtils/newSearchPage.component";
import {SearchResult} from "../../openaireLibrary/utils/entities/searchResult"; import {SearchResult} from "../../openaireLibrary/utils/entities/searchResult";
import {StringUtils} from "../../openaireLibrary/utils/string-utils.class"; import {StringUtils} from "../../openaireLibrary/utils/string-utils.class";
import {IndexInfoService} from "../../openaireLibrary/utils/indexInfo.service";
@Component({ @Component({
selector: 'openaire-search-projects', selector: 'openaire-search-projects',
@ -72,13 +73,17 @@ export class OpenaireSearchProjectsComponent {
public loadPaging: boolean = true; public loadPaging: boolean = true;
public oldTotalResults: number = 0; public oldTotalResults: number = 0;
keyword; keyword;
constructor (private route: ActivatedRoute, private _searchProjectsService: SearchCommunityProjectsService, private _communityService: CommunityService) { lastDBLoadDate = null;
constructor (private route: ActivatedRoute, private _searchProjectsService: SearchCommunityProjectsService, private _communityService: CommunityService, private indexInfoService: IndexInfoService) {
this.errorCodes = new ErrorCodes(); this.errorCodes = new ErrorCodes();
this.errorMessages = new ErrorMessagesComponent(); this.errorMessages = new ErrorMessagesComponent();
this.searchUtils.status = this.errorCodes.LOADING; this.searchUtils.status = this.errorCodes.LOADING;
} }
public ngOnInit() { public ngOnInit() {
this.subscriptions.push(this.indexInfoService.getLastIndexDate(this.properties).subscribe(res => {
this.lastDBLoadDate = res;
}));
this.searchUtils.baseUrl = this.properties.searchLinkToProjects; this.searchUtils.baseUrl = this.properties.searchLinkToProjects;
this.subscriptions.push(this._communityService.getCommunityAsObservable().subscribe(community =>{ this.subscriptions.push(this._communityService.getCommunityAsObservable().subscribe(community =>{
if(community != null){ if(community != null){
@ -179,7 +184,11 @@ export class OpenaireSearchProjectsComponent {
let results:SearchResult[]=[]; let results:SearchResult[]=[];
for(let result of data){ for(let result of data){
let sResult:SearchResult = new SearchResult(); let sResult:SearchResult = new SearchResult();
sResult.id = result.openaireId; if(!result["availableSince"] || !this.lastDBLoadDate || (result["availableSince"] && this.lastDBLoadDate && result["availableSince"] < this.lastDBLoadDate)){
sResult.id = result.openaireId;
}else{
sResult.id = "-1"; //not yet in the graph
}
sResult.title = {name:"", accessMode: null}; sResult.title = {name:"", accessMode: null};
sResult.title.name = result.name?result.name:result.acronym; sResult.title.name = result.name?result.name:result.acronym;
sResult.acronym = result['acronym']; sResult.acronym = result['acronym'];

@ -1 +1 @@
Subproject commit d18e0a7e43e5ab74649481ecbf352ba49893c66f Subproject commit 9e58421a1adf3fbeb361e21616feaea8c7f867af

View File

@ -30,4 +30,4 @@
@inverse-text-primary-color: @connect-color; @inverse-text-primary-color: @connect-color;
/* General */ /* General */
@general-search-form-background: fade(@global-secondary-background, 20%); @general-search-form-background: lighten(@global-secondary-background, 33%);

@ -1 +1 @@
Subproject commit 2df4b377a3e89b7dd26a011a2e1e1f07fdcedf2a Subproject commit 2dadcf85926bc0f11fff22ed94dc197ddd8587c6

View File

@ -16,7 +16,7 @@ export let properties: EnvProperties = {
useNewStatistisTool: true, useNewStatistisTool: true,
enermapsURL:"https://lab.idiap.ch/enermaps", enermapsURL:"https://lab.idiap.ch/enermaps",
impactFactorsAPIURL: "https://bip-api.imsi.athenarc.gr/paper/scores/batch/", impactFactorsAPIURL: "https://bip-api.imsi.athenarc.gr/paper/scores/batch/",
claimsAPIURL: "https://beta.services.openaire.eu/claims/rest/claimsService/", claimsAPIURL: "https://beta.services.openaire.eu/claims-new/rest/claimsService/",
searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/", searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources", searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources",
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=", openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
@ -41,7 +41,7 @@ export let properties: EnvProperties = {
sherpaURL: "http://sherpa.ac.uk/romeo/issn/", sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/", sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/", zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/", zenodoCommunities: "https://zenodo.org/api/communities",
openAccess: "https://www.openaire.eu/support/faq#article-id-234", openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310", openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme", fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",

View File

@ -41,7 +41,7 @@ export let properties: EnvProperties = {
sherpaURL: "http://sherpa.ac.uk/romeo/issn/", sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/", sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/", zenodo: "https://zenodo.org/",
zenodoCommunities: "https://zenodo.org/api/communities/", zenodoCommunities: "https://zenodo.org/api/communities",
openAccess: "https://www.openaire.eu/support/faq#article-id-234", openAccess: "https://www.openaire.eu/support/faq#article-id-234",
openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310", openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310",
fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme", fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",

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,8 +7,6 @@ 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,
@ -16,7 +14,3 @@ 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,7 +2,6 @@
"extends": "./tsconfig.app.json", "extends": "./tsconfig.app.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../out-tsc/app-server", "outDir": "../out-tsc/app-server",
"target": "es2016",
"types": [ "types": [
"node" "node"
] ]

View File

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