Eosc Explore: Merge origin/master into data-transfer-v2

This commit is contained in:
Konstantina Galouni 2023-01-04 13:41:52 +02:00
commit 033166f5fb
31 changed files with 298 additions and 265 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.angular/
node_modules/
dist/
.idea/

View File

@ -13,4 +13,21 @@ There is link to EOSC market place (beta) for results connected to EOSC services
* Production search
* Data Transfer: NEW Browse functionality
* EOSC Subjects: NEW field eoscifguidelines
* Filter "Type" in search services: NEW field eoscdatasourcetype
* Filter "Type" in search services: NEW field eoscdatasourcetype
## [1.0.2]
* Fixes and updates in advanced search form and data transfer functionality.
## [1.0.3]
* Updated styles according to new view in EOSC Marketplace & new Search
* Blue banner
* White logo
* Search form rounded and aligned to the center
* Fonts adjusted
* Grey background on page & white background on results
* Detailed page: Display of EOSC subjects updated
* [Bug fix] In description of research products' versions
* Strip html tags from titles & descriptions
## [1.1.0]
Angular 14 upgrade

View File

@ -22,7 +22,6 @@
"skipTests": true
},
"@schematics/angular:module": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
@ -35,7 +34,6 @@
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"aot": true,
"outputPath": "dist/eosc/browser",
"index": "src/index.html",
"main": "src/main.ts",
@ -47,21 +45,33 @@
],
"styles": [
"src/styles.less",
"src/material.scss"
"src/assets/common-assets/library-css/material.scss"
],
"scripts": [
"node_modules/uikit/dist/js/uikit.min.js",
"node_modules/uikit/dist/js/uikit-icons.min.js",
"node_modules/jquery/dist/jquery.js"
]
],
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"sourceMap": true,
"optimization": false,
"namedChunks": true
},
"configurations": {
"development": {
"optimization": true,
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
@ -96,11 +106,17 @@
"with": "src/environments/environment.beta.ts"
}
],
"optimization": true,
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
@ -135,11 +151,17 @@
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
@ -155,7 +177,8 @@
}
]
}
}
},
"defaultConfiguration": ""
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
@ -190,24 +213,14 @@
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"server": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist/eosc/server",
"main": "server.ts",
"tsConfig": "src/tsconfig.server.json"
"tsConfig": "src/tsconfig.server.json",
"sourceMap": true,
"optimization": false
},
"configurations": {
"development": {
@ -237,7 +250,8 @@
"sourceMap": false,
"optimization": true
}
}
},
"defaultConfiguration": ""
},
"serve-ssr": {
"builder": "@nguniversal/builders:ssr-dev-server",
@ -283,18 +297,8 @@
"devServerTarget": "eosc:serve:production"
}
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": "e2e/tsconfig.e2e.json",
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "eosc"
}
}

View File

@ -1,13 +1,13 @@
{
"name": "eosc",
"version": "1.0.1",
"version": "1.1.0",
"scripts": {
"ng": "ng",
"start": "ng serve --disable-host-check --host 0.0.0.0 --port 4400",
"build": "ng build",
"build-dev": "ng build --configuration=development",
"build-beta": "ng build --configuration=beta",
"build-prod": "ng build --prod",
"build-prod": "ng build --configuration production",
"webpack-bundle-analyzer": "ng build --stats-json && webpack-bundle-analyzer dist/eosc/browser/stats-es2015.json --host 0.0.0.0",
"test": "ng test",
"e2e": "ng e2e",
@ -17,41 +17,41 @@
"build:ssr-beta": "npm run build-beta && ng run eosc:server:beta",
"build:ssr-prod": "npm run build-prod && ng run eosc:server:production",
"prerender": "ng run eosc:prerender",
"after-build-clean": "rm -rf dist/eosc/browser/assets/common-assets/.git/ src/app/openaireLibrary/.git node_modules .git*"
"after-build-clean": "rm -rf dist/eosc/browser/assets/common-assets/.git/ src/app/openaireLibrary/.git node_modules .angular .git*"
},
"private": true,
"dependencies": {
"@angular/animations": "~11.2.14",
"@angular/cdk": "^11.2.13",
"@angular/common": "~11.2.14",
"@angular/compiler": "~11.2.14",
"@angular/core": "~11.2.14",
"@angular/forms": "~11.2.14",
"@angular/localize": "^11.2.14",
"@angular/material": "^11.2.13",
"@angular/platform-browser": "~11.2.14",
"@angular/platform-browser-dynamic": "~11.2.14",
"@angular/platform-server": "~11.2.14",
"@angular/router": "~11.2.14",
"@nguniversal/express-engine": "^11.2.1",
"@angular/animations": "^14.2.3",
"@angular/cdk": "^14.2.2",
"@angular/common": "^14.2.3",
"@angular/compiler": "^14.2.3",
"@angular/core": "^14.2.3",
"@angular/forms": "^14.2.3",
"@angular/localize": "^14.2.3",
"@angular/material": "^14.2.2",
"@angular/platform-browser": "^14.2.3",
"@angular/platform-browser-dynamic": "^14.2.3",
"@angular/platform-server": "^14.2.3",
"@angular/router": "^14.2.3",
"@nguniversal/express-engine": "^14.2.0",
"clipboard": "^1.5.16",
"core-js": "^2.5.4",
"express": "^4.15.2",
"jquery": "^3.4.1",
"ng-recaptcha": "^7.0.1",
"ng-recaptcha": "^10.0.0",
"prom-client": "^11.3.0",
"rxjs": "^6.5.1",
"ts-md5": "^1.2.0",
"tslib": "^2.0.0",
"uikit": "3.12.0",
"zone.js": "~0.10.2"
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1102.14",
"@angular/cli": "~11.2.14",
"@angular/compiler-cli": "~11.2.14",
"@angular/language-service": "~11.2.14",
"@nguniversal/builders": "^11.2.1",
"@angular-devkit/build-angular": "^14.2.3",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.3",
"@angular/language-service": "^14.2.3",
"@nguniversal/builders": "^14.2.0",
"@types/express": "^4.17.0",
"@types/compression": "^1.7.0",
"@types/node": "^12.11.1",
@ -67,6 +67,6 @@
"karma-jasmine-html-reporter": "^1.6.0",
"protractor": "~7.0.0",
"ts-node": "~7.0.0",
"typescript": "~4.0.7"
"typescript": "~4.6.4"
}
}

View File

@ -1,4 +1,4 @@
import 'zone.js/dist/zone-node';
import 'zone.js/node';
import { ngExpressEngine } from '@nguniversal/express-engine';
import * as express from 'express';
@ -24,6 +24,7 @@ export function app() {
// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
server.engine('html', ngExpressEngine({
bootstrap: AppServerModule,
inlineCriticalCss: false
}));
server.set('view engine', 'html');

View File

@ -128,7 +128,7 @@ export class AppRoutingModule {
}));
}
getOptionalRoutes(){
let optionalRoutes = [
let optionalRoutes: Routes = [
// Deposit Pages
{ path: 'participate/deposit-datasets', redirectTo: 'participate/deposit/learn-how', pathMatch: 'full'},
{ path: 'participate/deposit-datasets-result', redirectTo: 'participate/deposit/learn-how', pathMatch: 'full'},

View File

@ -78,7 +78,8 @@ export class AppComponent {
logoSmallUrl: this.agg.logoUrl,
position: 'center',
menuPosition: 'center',
badge: false
badge: false,
darkBg: true
};
this.buildMenu();
}

View File

@ -1,48 +1,52 @@
<div class="image-front-topbar">
<div class="uk-section uk-margin-large-left uk-padding-remove-bottom uk-grd uk-flex uk-overflow-hidden home-background">
<div class="uk-grid uk-width-1-1 uk-margin-bottom uk-height-medium">
<div class="uk-width-1-1 uk-width-auto@m uk-margin-medium-top"><div id="searchImage"></div></div>
<div class="uk-width-expand search_box_bg" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div [class.uk-invisible]="disableSelect" class="uk-margin-medium-top uk-width-3-5@m" uk-scrollspy-class>
<advanced-search-input (searchEmitter)="goTo(true)">
<entities-selection #entities [simpleView]="true" currentEntity="all" [selectedEntity]="selectedEntity"
(selectionChange)="entityChanged($event)" (disableSelectEmitter)="disableSelect = $event"
[onChangeNavigate]="false" class="uk-width-2-5"></entities-selection>
<div class="uk-width-expand" input placeholder="Scholary works" [hint]="'Search in OpenAIRE'"
[(value)]="keyword" tooltip="true"></div>
</advanced-search-input>
<div *ngIf="selectedEntity === 'result' && !entities.input.focused" class="uk-dropdown uk-display-block uk-margin-top uk-width-auto">
<div class="uk-padding-small">
<quick-selections [resultTypes]="resultTypes" [quickFilter]="resultsQuickFilter"></quick-selections>
<div class="uk-section uk-section-small home-background">
<div id="searchForm" class="uk-container uk-container-large uk-section uk-section-xsmall uk-padding-remove-bottom">
<div class="uk-grid uk-flex uk-flex-center uk-margin-small-top">
<div class="uk-width-1-1 uk-width-auto@m uk-first-column"><div id="searchImage"></div></div>
<div class="uk-width-expand uk-padding-remove-vertical search_box_bg" uk-scrollspy="target: [uk-scrollspy-class]; cls: uk-animation-slide-bottom-medium; delay: 200">
<div class="uk-flex uk-flex-center uk-flex-wrap">
<div class="uk-width-xlarge@l uk-width-large">
<div class="uk-flex uk-flex-center uk-child-width-1-1">
<div [class.uk-invisible]="disableSelect" uk-scrollspy-class>
<advanced-search-input (searchEmitter)="goTo(true)">
<entities-selection #entities [simpleView]="true" currentEntity="all" [selectedEntity]="selectedEntity"
(selectionChange)="entityChanged($event)" (disableSelectEmitter)="disableSelectChange($event)"
[onChangeNavigate]="false" class="uk-width-2-5"></entities-selection>
<div class="uk-width-expand" input placeholder="Scholary works" [hint]="'Search in OpenAIRE'"
[(value)]="keyword" tooltip="true"></div>
</advanced-search-input>
<div *ngIf="selectedEntity === 'result' && !entities.input.focused" class="uk-dropdown uk-display-block uk-margin-top uk-width-auto">
<div class="uk-padding-small">
<quick-selections [resultTypes]="resultTypes" [quickFilter]="resultsQuickFilter"></quick-selections>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-grid uk-child-width-1-1@s">
<div class="uk-width-expand">
<div class="uk-margin-large-left">
<div class=" ">
<span class=" uk-h1">Welcome to EOSC Explore
</span>
<i class=" uk-h5 uk-text-italics"><br>
The in-context research discovery portal over the EOSC Exchange and the global map of science.
</i>
</div>
<div class="uk-margin-large-top uk-text-large">The EOSC Explore supports discovery of research products and services onboarded in the EOSC Exchange in the wider context of scientific research outcomes, research funding, and research organization. The EOSC Research Graph, powered by the OpenAIRE Research Graph, provides links from products and services to funders, projects, organizations, and authors, collects and infers SDGs subjects, communities, many more. The portal exploits the EOSC Interoperability Framework to identify relationships between research products in the graph and EOSC Services in the EOSC Marketplace, to facilitate and enable composability of resources. </div>
</div>
</div>
<img
class="uk-width-large@m uk-width-1-1@s"
src="https://marketplace.eosc-portal.eu/packs/media/images/gfx_whole_illustation_desktop-fc94d4f7e15455d1785ef4793e1573fb.png">
</div>
<div class="uk-section uk-container uk-container-large">
<div class="contentbox uk-grid uk-child-width-1-1@s uk-flex-row-reverse">
<div class="uk-width-medium@m uk-width-large@l uk-width-xlarge@xl uk-width-1-1 uk-flex uk-flex-middle uk-padding-remove-horizontal">
<img src="https://marketplace.eosc-portal.eu/packs/media/images/gfx_whole_illustation_desktop-fc94d4f7e15455d1785ef4793e1573fb.png">
</div>
<div class="uk-width-expand">
<div class="">
<div class=" ">
<h1 class=" uk-h2 uk-text-normal">Welcome to EOSC Explore</h1>
<h2 class="uk-h5 uk-text-normal uk-text-italics"><br>
<i>The in-context research discovery portal over the EOSC Exchange and the global map of science.</i>
</h2>
</div>
<div class="uk-margin-large-top uk-text-large uk-text-light">The EOSC Explore supports discovery of research products and services onboarded in the EOSC Exchange in the wider context of scientific research outcomes, research funding, and research organization. The EOSC Research Graph, powered by the OpenAIRE Research Graph, provides links from products and services to funders, projects, organizations, and authors, collects and infers SDGs subjects, communities, many more. The portal exploits the EOSC Interoperability Framework to identify relationships between research products in the graph and EOSC Services in the EOSC Marketplace, to facilitate and enable composability of resources. </div>
</div>
</div>
<!-- <aside><img src="https://marketplace.eosc-portal.eu/packs/media/images/gfx_whole_illustation_desktop-fc94d4f7e15455d1785ef4793e1573fb.png"></aside>-->
</div>
<div class="uk-section graph-background" *ngIf="aggregator.graphSectionText && aggregator.graphSectionTitle">
<div class="uk-container">
<div class="uk-flex uk-flex-top uk-child-width-1-1 uk-child-width-1-2@m" uk-grid>
@ -124,4 +128,4 @@
</div>
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
import {Component, ViewChild} from '@angular/core';
import {ChangeDetectorRef, Component, ViewChild} from '@angular/core';
import {Subscription, zip} from 'rxjs';
import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common';
@ -22,9 +22,6 @@ import {AggregatorInfo, PortalAggregators} from "../utils/aggregators";
import {SearchCustomFilter} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {properties} from "../../environments/environment";
import {portalProperties} from "../../environments/environment-aggregator";
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
import {ConnectHelper} from "../openaireLibrary/connect/connectHelper";
import {NumbersComponent} from "../openaireLibrary/sharedComponents/numbers/numbers.component";
@Component({
selector: 'home',
@ -58,15 +55,14 @@ export class HomeComponent {
value: "Open Access"
};
selectedEntity = "all";
disableSelect;
disableSelect: boolean = true;
selectedEntitySimpleUrl;
selectedEntityAdvancedUrl;
resultTypes:Filter = {values:[],filterId:"type", countSelectedValues: 0, filterType: 'checkbox', originalFilterId: "", valueIsExact: true, title: "Result Types",filterOperator:"or"};
public pageContents = null;
customFilter:SearchCustomFilter= null;
aggregator:AggregatorInfo;
@ViewChild('numbersComponent', { static: true }) numbersComponent: NumbersComponent;
constructor (
private route: ActivatedRoute,
private _router: Router,
@ -77,7 +73,7 @@ export class HomeComponent {
private _refineFieldResultsService:RefineFieldResultsService,
private location: Location, private _piwikService:PiwikService,
private config: ConfigurationService, private _meta: Meta, private _title: Title, private seoService: SEOService,
private helper: HelperService
private helper: HelperService, private cdr: ChangeDetectorRef
) {
this.aggregator = PortalAggregators.eoscInfo;
this.customFilter = PortalAggregators.getSearchCustomFilterByAggregator();
@ -139,12 +135,6 @@ export class HomeComponent {
if(this.showOrp){
this.resultTypes.values.push({name: OpenaireEntities.OTHER , id:"other",selected:false, number:0});
}
if(this.numbersComponent) {
this.numbersComponent.init(false, false, this.showPublications, this.showDatasets,
this.showSoftware, this.showOrp, this.showProjects, this.showDataProviders, this.customFilter ?
StringUtils.URIEncode(this.customFilter.queryFieldName + " exact " + StringUtils.quote((this.customFilter.valueId))) : '');
}
}
},
error => {
@ -236,4 +226,9 @@ export class HomeComponent {
}
return false;
}
disableSelectChange(event: boolean) {
this.disableSelect = event;
this.cdr.detectChanges();
}
}

View File

@ -24,7 +24,7 @@ import {EntitiesSelectionModule} from "../openaireLibrary/searchPages/searchUtil
import {QuickSelectionsModule} from "../openaireLibrary/searchPages/searchUtils/quick-selections.module";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {arrow_right, book, cog, database, earth} from "../openaireLibrary/utils/icons/icons";
import {book, cog, database, earth} from "../openaireLibrary/utils/icons/icons";
import {NumbersModule} from "../openaireLibrary/sharedComponents/numbers/numbers.module";
import {AdvancedSearchInputModule} from "../openaireLibrary/sharedComponents/advanced-search-input/advanced-search-input.module";
import {InputModule} from "../openaireLibrary/sharedComponents/input/input.module";
@ -54,6 +54,6 @@ import {InputModule} from "../openaireLibrary/sharedComponents/input/input.modul
})
export class HomeModule {
constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([arrow_right, book, earth, cog, database]);
this.iconsService.registerIcons([book, earth, cog, database]);
}
}

@ -1 +1 @@
Subproject commit 50543311f2186435abd77c92ab920b7e37d710da
Subproject commit 161052d97ccfbaf6211775c4a4f64681a37f361e

View File

@ -16,7 +16,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireAdvancedSearchDataProvidersComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -16,7 +16,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireAdvancedSearchOrganizationsComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -15,7 +15,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireAdvancedSearchProjectsComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -19,7 +19,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireAdvancedSearchServicesComponent {
properties: EnvProperties;
public openaireEntities = OpenaireEntities;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -14,7 +14,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireSearchResearchResultsComponent {
@Input() searchLink: string = "/search/advanced/research-results";
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -11,7 +11,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
})
export class OpenaireSearchComponent{
piwikSiteId = properties.piwikSiteId;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {}
}

View File

@ -11,7 +11,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
})
export class OpenaireSearchDataprovidersComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -11,7 +11,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
})
export class OpenaireSearchOrganizationsComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -11,7 +11,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
})
export class OpenaireSearchProjectsComponent {
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -13,7 +13,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireSearchResearchResultsComponent {
@Input() searchLink: string = "/search/research-results";
properties: EnvProperties;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -16,7 +16,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
export class OpenaireSearchServicesComponent {
properties: EnvProperties;
public openaireEntities = OpenaireEntities;
public searchForm: SearchForm = {class: 'search-form', dark: false};
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {
this.properties = properties;

View File

@ -34,115 +34,10 @@ export class AggregatorInfo {
export class PortalAggregators {
static eoscInfo: AggregatorInfo =
new AggregatorInfo("eosc", "Eosc Explore", "https://providers.eosc-portal.eu/assets/images/EOSC_Portal_Logo.png",
new AggregatorInfo("eosc", "Eosc Explore", "https://marketplace.eosc-portal.eu/packs/media/images/eosc-logo-mono-65a4962b88cf1caa9e35838e33022ca8.png",
null, null, null, null,null,null ,false,false,
`
:root {
--primary-color: #3540b6;
--primary-dark-color: #233d4c;
--search-form-background: transparent;
}
.search-input {
--search-input-border-radius: 0px;
}
.input-wrapper.advanced-search {
--input-border-radius: 0px;
}
.input-wrapper {
--input-border-radius: 0px;
}
a, .uk-link, a.uk-link-heading{
color: #3540b6;
}
a:hover, .uk-link:hover, a.uk-link-heading:hover{
color: #233d4c;
text-decoration: none;
}
.uk-link-text a:hover, .uk-link-toggle:hover .uk-link-text, a.uk-link-text:hover{
color:#0c2bd5;
}
.search_box_bg {
/*background: url(//marketplace.eosc-portal.eu/packs/media/images/home-bg-89b63b3d579f3530ec6283f51e1648bc.png) no-repeat;*/
/* background-position-x: 0%;*/
/* background-position-y: 0%;*/
/* background-position: 50% -120px;*/
z-index: 3;
}
#searchImage{
background: url('https://marketplace.eosc-portal.eu/packs/media/images/eosc-logo-color-883f208671ef77b15b9cd067ecdc369b.png') no-repeat center left;
width: 250px;
height: 80px;
background-size: 250px 80px;
/*margin-left: 80px;*/
}
#searchForm advanced-search-form{
float:right;
}
#searchForm{
/*padding:0;*/
/*width:100%;*/
/*max-width:100%;*/
}
search-filter h6::after{
border-bottom: 1px solid gray;
}
search-filter h6{
text-transform: uppercase !important;
font-size: 12px;
}
search-filter .tm-child-list-divider > ul > li:nth-child(n+2), .uk-list-divider > li:nth-child(n+2){
border: none;
}
.filterHeader{
border-bottom:1px solid #ced4da;
}
.matSelection.mat-select {
padding: 4px;
border: 1px solid #ced4da;
}
.search-results .uk-card-default.uk-card-hover:hover{
box-shadow: none;
}
.search-results .uk-card-default {
border: 1px solid #ced4da;
box-shadow:none;
}
.uk-pagination > .uk-active > *, .uk-pagination > .uk-active > :hover {
border-radius: 0px;
}
.uk-button-primary:not(.uk-icon-button), .portal-button:not(.uk-icon-button) {
color: #fff !important;
background-color: #0c2bd5 !important;
background-image: linear-gradient(135deg,#05cae7,#0c2bd5) !important;
border:none !important;
}
.uk-button-primary:hover, .portal-button:hover:not(.uk-icon-button) {
background: #0c2bd5 !important;
border:none !important;
}
.search_box_bg .uk-button, #searchForm .uk-button:not(.uk-button-text):not(.uk-button-link), .search_box_bg .uk-button:hover, #searchForm .uk-button:hover:not(.uk-button-text):not(.uk-button-link) {
border-radius: 0px;
margin-left: 0px !important;
color: rgb(102, 102, 102) !important;
background-color: #0c2bd5 !important;
background-color: rgba(255, 255, 255, 1.0) !important;
border: 1px solid rgba(0, 0, 0, 0.40) !important;
background-image: none !important;
padding: 10px;
}
`);
static disabled = {

132
src/assets/eosc-custom.less Normal file
View File

@ -0,0 +1,132 @@
/* EOSC */
//@eosc-color: #3D4DB6;
//@eosc-light-color: #E80000;
//@eosc-dark-color: #AD0000;
//@eosc-secondary-color: #AD0000;
//@eosc-default-background: #F2F2F2;
//
////@global-primary-gradient: linear-gradient(104deg, @eosc-dark-color 0%, @eosc-light-color 100%);
//@global-primary-gradient: @eosc-light-color;
//
///* Button */
//@button-primary-background: @eosc-color;
//@inverse-button-primary-background: @eosc-color;
//@button-primary-hover-background: @eosc-secondary-color;
//@button-primary-active-background: @eosc-secondary-color;
//
///* Background */
//@background-primary-background: @eosc-color;
//@background-primary-background-gradient: none;
//
///* Text */
//@text-primary-color: @eosc-color;
//
///* Label */
//@label-secondary-color: @eosc-color;
//
///* General */
//@general-tab-featured-tab: @eosc-color;
//
///* Landing */
//@landing-portal-color: @eosc-color;
//
//.search-form {
// background-color: rgba(61,77, 182);
//}
@eosc-color: #3D4DB6;
@eosc-light-color: #05A6E7;
@eosc-dark-color: #0C2BD5;
//@eosc-secondary-color: #2255A4;
@eosc-secondary-color: #1890FF;
@eosc-default-background: #F2F2F2;
@global-primary-background: @eosc-color;
@global-secondary-background: @eosc-secondary-color;
@general-search-form-background: @eosc-color;
@base-body-background: @eosc-default-background;
.image-front-topbar, .search-form, #main-menu .uk-navbar-container, #main-menu-small .uk-navbar-container {
background: @global-primary-background;
}
#searchImage{
background: url('https://marketplace.eosc-portal.eu/packs/media/images/eosc-logo-mono-65a4962b88cf1caa9e35838e33022ca8.png') no-repeat center left;
width: 203px;
height: 69px;
background-size: 203px 79px;
}
.search-results-container {
background-color: white;
border-radius: 25px;
}
//
//.contentbox {
// display: block;
// position: relative;
//}
//
//.contentbox > div {
// width: 58%;
// display: flex;
// flex-direction: column;
// justify-content: center;
//}
//
//.contentbox > div > div {
// width: 90%;
//}
//
//aside {
// background: transparent;
// position: absolute;
// top: -25px;
// right: -100px;
// width: 68%;
//
// display: block;
//}
//
//.contentbox img {
// max-width: 100%;
// min-width: 45%;
// height: auto;
//}
//
//@media (max-width: 576px) {
// .contentbox {
// display: flex;
// flex-direction: column-reverse;
// }
//}
//
//@media (max-width: 991px) {
// .contentbox {
// flex-direction: column;
// align-items: normal;
// }
//}
//
//@media (max-width: 1120px) {
// .contentbox > div {
// width: 100%;
// }
//}
//
//@media (max-width: 576px) {
// .contentbox > div > div {
// width: 100%;
// }
//}
//
//@media (max-width: 576px) {
// .contentbox aside {
// position: relative;
// width: 100%;
// right: auto;
// }
//}

View File

@ -51,14 +51,14 @@ export let properties: EnvProperties = {
vocabulariesAPI: "https://dev-openaire.d4science.org/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "6",
loginUrl: "http://mpagasas.di.uoa.gr:8080/login-service/openid_connect_login",
userInfoUrl: "http://mpagasas.di.uoa.gr:8080/login-service/userInfo",
logoutUrl: "http://mpagasas.di.uoa.gr:8080/login-service/openid_logout",
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: "kostis30fylloy@gmail.com",
cacheUrl: "http://dl170.madgik.di.uoa.gr:3000/get?url=",
adminToolsCommunity: "aggregator",
adminToolsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-admin-tools/",
adminToolsAPIURL: "http://duffy.di.uoa.gr:19280/uoa-admin-tools/",
useHelpTexts: false,
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
contextsAPI: "https://dev-openaire.d4science.org/openaire/context",

View File

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

View File

@ -1,9 +0,0 @@
@import '~@angular/material/theming';
@include mat-core();
$my-app-primary: mat-palette($mat-gray, 900);
$my-app-accent: mat-palette($mat-light-green, 700);
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
@include angular-material-theme($my-app-theme);

View File

@ -22,16 +22,6 @@ import '@angular/localize/init';
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/**
* Web Animations `@angular/platform-browser/animations`
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
@ -59,7 +49,7 @@ import '@angular/localize/init';
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
import 'zone.js'; // Included with Angular CLI.
/***************************************************************************************************

View File

@ -9,4 +9,5 @@
@import "~src/assets/common-assets/less/user";
@import "~src/assets/common-assets/less/linking";
@import "~src/assets/common-assets/less/landing";
@import "assets/portal-custom.css";
//@import "assets/portal-custom.css";
@import "assets/eosc-custom";

View File

@ -1,6 +1,6 @@
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/dist/zone-testing';
import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
@ -12,7 +12,9 @@ declare const require: any;
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: false }
}
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);

View File

@ -8,10 +8,9 @@
"declaration": false,
"module": "es2020",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2015",
"target": "es2020",
"typeRoots": [
"node_modules/@types"
],