Compare commits

..

No commits in common. "develop" and "2.0.2" have entirely different histories.

47 changed files with 482 additions and 181 deletions

View File

@ -14,34 +14,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- *Fixed (for any bug fixes)*
- *Security (in case of vulnerabilities)*
## [4.0.1] - 12/12/2023
### Changed
* Updated links (to the Marketplace) for Compatible EOSC Services (eosc interoperability framework (eoscif) guidelines)
## [4.0.0] - 29/11/2023
### Added
* Research product detailed page: Updated parsing of measures - views/downloads per data source if available
### Changed
* Angular 16 upgrade
* Uikit version to 3.16.24
* Data source detailed page: Get number of collected fulltexts by new stats API
## [3.1.0] - 11/09/2023
### Added
* Impact-based indicators - Citations, Popularity, Influence, Impulse
### Changed
* Smaller window for the Data Transfer Service - not full screen
* Disabled overwrite params when submitting a job to EOSC Data transfer API
* NEW user interface & structure of the detailed page & specific user interface for small devices i.e. mobiles
* Updated access right icons
* Include Subjects as a new tab
### Fixed
* Too much recursion error in validating destination path of Data transfer - updated check
## [3.0.0] - 13/06/2023
### Changed
* Upgraded uikit version to 3.13.10
* NEW user interface & API calls to Data Transfer Service
## [2.0.2] - 01/06/2023
### Added

View File

@ -37,15 +37,3 @@ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## System Architecture
![](./src/assets/architecture.png)
Users can access the EOSC EXPLORE portal via the EOSC Marketplace portal when searching for Publications, Data, Software and Other Research Products.
The EOSC EXPLORE portal serves detailed pages for specific research products, providing an overview of all the metadata available in OpenAIRE Graph and the relationships among the entities of the graph, such as related research, supplementary research, funding projects, related organizations and data sources. Users can navigate through the different entities of OpenAIRE Graph by following the relationships.
In the detailed pages of research data users can transfer files found in Zenodo and other sources in their own data storage, such as dcache or s3 using the Data Transfer Service.
Metrics, indicators and charts, calculated by OpenAIRE or external tools, are also available in the detailed pages of EOSC EXPLORE.
The detailed pages share the same navigation bar with EOSC Marketplace for easy and quick navigation and users can be redirected easily back to the search page of EOSC Marketplace from which they entered EOSC EXPLORE.

View File

@ -220,16 +220,13 @@
"main": "server.ts",
"tsConfig": "src/tsconfig.server.json",
"sourceMap": true,
"optimization": false,
"buildOptimizer": false
"optimization": false
},
"configurations": {
"development": {
"outputHashing": "media",
"sourceMap": false,
"optimization": true,
"vendorChunk": true,
"buildOptimizer": true
"optimization": true
},
"beta": {
"outputHashing": "media",
@ -240,8 +237,7 @@
}
],
"sourceMap": false,
"optimization": true,
"buildOptimizer": true
"optimization": true
},
"production": {
"outputHashing": "media",
@ -252,8 +248,7 @@
}
],
"sourceMap": false,
"optimization": true,
"buildOptimizer": true
"optimization": true
}
},
"defaultConfiguration": ""

View File

@ -1,7 +1,6 @@
{
"name": "eosc",
"version": "4.0.1",
"license": "Apache-2.0",
"version": "2.0.2",
"scripts": {
"ng": "ng",
"start": "ng serve --disable-host-check --host 0.0.0.0 --port 4400",
@ -22,40 +21,40 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^16.1.8",
"@angular/cdk": "^16.1.7",
"@angular/common": "^16.1.8",
"@angular/compiler": "^16.1.8",
"@angular/core": "^16.1.8",
"@angular/forms": "^16.1.8",
"@angular/localize": "^16.1.8",
"@angular/material": "^16.1.7",
"@angular/platform-browser": "^16.1.8",
"@angular/platform-browser-dynamic": "^16.1.8",
"@angular/platform-server": "^16.1.8",
"@angular/router": "^16.1.8",
"@nguniversal/express-engine": "^16.1.1",
"@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": "^12.0.2",
"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.16.24",
"zone.js": "~0.13.1"
"uikit": "3.12.2",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "^16.1.7",
"@angular/cli": "^16.1.7",
"@angular/compiler-cli": "^16.1.8",
"@angular/language-service": "^16.1.8",
"@nguniversal/builders": "^16.1.1",
"@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": "^16.18.50",
"@types/node": "^12.11.1",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"codelyzer": "^6.0.0",
@ -68,6 +67,6 @@
"karma-jasmine-html-reporter": "^1.6.0",
"protractor": "~7.0.0",
"ts-node": "~7.0.0",
"typescript": "~4.9.5"
"typescript": "~4.6.4"
}
}

View File

@ -120,7 +120,7 @@ export class AppRoutingModule {
}
}
constructor( private config: ConfigurationService, private router: Router){
this.subs.push(this.config.portalAsObservable.subscribe(data => {
this.subs.push(this.config.communityInformationState.subscribe(data => {
if (data) {
if (data['pages']) {
for (var i = 0; i < data['pages'].length; i++) {

View File

@ -51,7 +51,7 @@ export class AppComponent {
@Inject(DOCUMENT) private document, private rendererFactory: RendererFactory2, private router: Router, private route: ActivatedRoute) {
this.agg = PortalAggregators.eoscInfo;
this.setStyles();
this.configurationService.initStaticPortal(PortalAggregators.getCommunityInfo());
this.configurationService.initStaticCommunityInformation(PortalAggregators.getCommunityInfo());
this.showHeader = this.agg.showHeaderAlways;
}

View File

@ -1,6 +1,6 @@
import {APP_ID, NgModule} from '@angular/core';
import {NgModule} from '@angular/core';
import {SharedModule} from './shared/shared.module';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserModule, BrowserTransferStateModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {CommonModule} from '@angular/common';
import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';
@ -27,14 +27,14 @@ import {ConfigurationService} from "./openaireLibrary/utils/configuration/config
NavigationBarModule, FeedbackModule, BottomModule,
CookieLawModule,
BrowserAnimationsModule,
BrowserModule,
BrowserTransferStateModule,
BrowserModule.withServerTransition({appId: 'eosc'}),
AppRoutingModule
],
declarations: [AppComponent, OpenaireErrorPageComponent],
exports: [AppComponent],
providers: [
ConfigurationService,
{provide: APP_ID, useValue: 'eosc'},
{
provide: HTTP_INTERCEPTORS,
useClass: HttpInterceptorService,

View File

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

View File

@ -4,7 +4,9 @@ import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-directLinking',
template: `
<directLinking></directLinking>`
<directLinking [piwikSiteId]="piwikSiteId"></directLinking>`
})
export class OpenaireDirectLinkingComponent {
piwikSiteId = properties.piwikSiteId;
}

View File

@ -3,8 +3,11 @@ import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-linking-generic',
template: `<linking-generic pageTitle="Linking"></linking-generic>`
template: `<linking-generic pageTitle="Linking" [piwikSiteId]="piwikSiteId"></linking-generic>`
})
export class OpenaireLinkingComponent {
piwikSiteId = properties.piwikSiteId;
}

View File

@ -9,7 +9,7 @@ import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-my-claims',
template: `
<my-claims *ngIf="userInfoURL && claimsInfoURL" [claimsInfoURL]=claimsInfoURL [userInfoURL]="userInfoURL">
<my-claims *ngIf="userInfoURL && claimsInfoURL" [claimsInfoURL]=claimsInfoURL [userInfoURL]="userInfoURL" [piwikSiteId]="piwikSiteId">
</my-claims>
`
@ -18,6 +18,7 @@ import {properties} from "../../../environments/environment";
claimsInfoURL:string;
userInfoURL: string;
sub;
piwikSiteId = properties.piwikSiteId;
constructor (private route: ActivatedRoute) {
}

View File

@ -1,12 +1,18 @@
import {Component} from '@angular/core';
import {properties} from "../../environments/environment";
@Component({
selector: 'openaire-deposit',
template: `
<deposit-first-page></deposit-first-page>
<deposit-first-page [piwikSiteId]="piwikSiteId"></deposit-first-page>
`
})
export class OpenaireDepositComponent {
piwikSiteId = properties.piwikSiteId;
constructor() {
}
public ngOnInit() {}
}

View File

@ -1,12 +1,18 @@
import {Component} from '@angular/core';
import {properties} from "../../environments/environment";
@Component({
selector: 'openaire-search-deposit',
template: `
<deposit-search-dataproviders></deposit-search-dataproviders>
<deposit-search-dataproviders [piwikSiteId]="piwikSiteId"></deposit-search-dataproviders>
`
})
export class OpenaireSearchDataprovidersToDepositComponent {
piwikSiteId = properties.piwikSiteId;
constructor() {}
public ngOnInit() {}
}

View File

@ -119,7 +119,10 @@ export class DevelopComponent implements OnInit {
this._meta.updateTag({content: description}, "property='og:description'");
this._meta.updateTag({content: title}, "property='og:title'");
this._title.setTitle(title);
this.subs.push(this._piwikService.trackView(properties, "OpenAIRE").subscribe());
if(properties.enablePiwikTrack && (typeof document !== 'undefined')){
this.subs.push(this._piwikService.trackView(properties, "OpenAIRE").subscribe());
}
}else {
this.navigateToError();
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-dataprovider',
template: `<dataprovider></dataprovider>`,
template: `<dataprovider [piwikSiteId]="piwikSiteId"></dataprovider>`,
})
export class OpenaireDataProviderComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-dataset',
template: `<result-landing type="dataset"></result-landing>`,
template: `<result-landing type="dataset" [piwikSiteId]="piwikSiteId"></result-landing>`,
})
export class OpenaireDatasetComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-htmlProjectReport',
template: `<htmlProjectReport></htmlProjectReport>`,
template: `<htmlProjectReport [piwikSiteId]=""></htmlProjectReport>`,
})
export class OpenaireHtmlProjectReportComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-organization',
template: `<organization ></organization>`,
template: `<organization [piwikSiteId]="piwikSiteId"></organization>`,
})
export class OpenaireOrganizationComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-orp',
template: `<result-landing type="orp"></result-landing>`,
template: `<result-landing type="orp" [piwikSiteId]="piwikSiteId"></result-landing>`,
})
export class OpenaireOrpComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-project',
template: `<project></project>`,
template: `<project [piwikSiteId]="piwikSiteId"></project>`,
})
export class OpenaireProjectComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,9 +1,19 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-publication',
template: `
<result-landing type="publication"></result-landing>`,
<result-landing type="publication" [piwikSiteId]="piwikSiteId"></result-landing>`,
})
export class OpenairePublicationComponent {
piwikSiteId = properties.piwikSiteId;
constructor() {}
ngOnInit() {
}
}

View File

@ -1,8 +1,11 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-publication',
template: `<result-landing type="result"></result-landing>`,
template: `<result-landing type="result" [piwikSiteId]="piwikSiteId"></result-landing>`,
})
export class OpenaireResultComponent{
piwikSiteId = properties.piwikSiteId;
}

View File

@ -1,8 +1,20 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-dataprovider',
template: `<dataprovider type="service"></dataprovider>`,
template: `<dataprovider type="service" [piwikSiteId]="piwikSiteId"></dataprovider>`,
})
export class OpenaireServiceComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

View File

@ -1,8 +1,19 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
@Component({
selector: 'openaire-software',
template: `<result-landing type="software"></result-landing>`,
template: `<result-landing type="software" [piwikSiteId]="piwikSiteId"></result-landing>`,
})
export class OpenaireSoftwareComponent{
piwikSiteId = properties.piwikSiteId;
constructor ( ) {
}
ngOnInit() {
}
}

@ -1 +1 @@
Subproject commit 84bf8cdebe5fd22a02966af4e25c60c758d987e0
Subproject commit d11a409f09e11aba35b62de2f787eb64d732d4a2

View File

@ -8,7 +8,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
selector: 'openaire-advanced-search-dataprovider',
template: `
<search-dataproviders [simpleView]="false"
[hasPrefix]="false" [searchForm]="searchForm">
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm">
</search-dataproviders>
`

View File

@ -7,7 +7,8 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-advanced-search-organizations',
template: `
<search-organizations [simpleView]="false" [hasPrefix]="false" [searchForm]="searchForm">
<search-organizations [simpleView]="false"
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm">
</search-organizations>
`

View File

@ -6,7 +6,8 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-advanced-search-projects',
template: `
<search-projects [simpleView]="false" [hasPrefix]="false" [searchForm]="searchForm">
<search-projects [simpleView]="false"
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm">
</search-projects>
`

View File

@ -8,7 +8,8 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-advanced-search-service',
template: `
<search-dataproviders [simpleView]="false" [hasPrefix]="false"
<search-dataproviders [simpleView]="false"
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false"
type="services" entityType="service" [typeName]="openaireEntities.SERVICES"
[searchForm]="searchForm">
</search-dataproviders>

View File

@ -7,7 +7,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
selector: 'openaire-search-results',
template: `
<search-research-results resultType="result" [simpleView]="false"
[hasPrefix]="false" [searchForm]="searchForm"></search-research-results>
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm"></search-research-results>
`
})

View File

@ -1,13 +1,17 @@
import {Component} from '@angular/core';
import {properties} from "../../../environments/environment";
import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearchPage.component";
@Component({
selector: 'openaire-search-find',
template: `
<search-all logoURL="/assets/common-assets/logo-small-aggregator.png" name="OpenAIRE"
<search-all logoURL="/assets/common-assets/logo-small-aggregator.png" name="OpenAIRE" [piwikSiteId]="piwikSiteId"
[searchForm]="searchForm"></search-all>
`,
})
export class OpenaireSearchComponent{
piwikSiteId = properties.piwikSiteId;
public searchForm: SearchForm = {class: 'search-form', dark: true};
constructor ( ) {}
ngOnInit() {}
}

View File

@ -6,7 +6,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-search-dataproviders',
template: `
<search-dataproviders [hasPrefix]="false" [searchForm]="searchForm"></search-dataproviders>
<search-dataproviders [piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm"></search-dataproviders>
`
})
export class OpenaireSearchDataprovidersComponent {

View File

@ -6,7 +6,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-search-organizations',
template: `
<search-organizations [hasPrefix]="false" [searchForm]="searchForm"></search-organizations>
<search-organizations [piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm"></search-organizations>
`
})
export class OpenaireSearchOrganizationsComponent {

View File

@ -6,7 +6,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-search-projects',
template: `
<search-projects [hasPrefix]="false" [searchForm]="searchForm"></search-projects>
<search-projects [piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm"></search-projects>
`
})
export class OpenaireSearchProjectsComponent {

View File

@ -7,7 +7,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
selector: 'openaire-search-results',
template: `
<search-research-results resultType="result" [stickyForm]="false"
[hasPrefix]="false" [searchForm]="searchForm"></search-research-results>
[piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false" [searchForm]="searchForm"></search-research-results>
`
})
export class OpenaireSearchResearchResultsComponent {

View File

@ -7,7 +7,7 @@ import {SearchForm} from "../../openaireLibrary/searchPages/searchUtils/newSearc
@Component({
selector: 'openaire-search-services',
template: `
<search-dataproviders [hasPrefix]="false"
<search-dataproviders [piwikSiteId]="properties.piwikSiteId" [hasPrefix]="false"
type="services" entityType="service" [typeName]="openaireEntities.SERVICES"
[searchForm]="searchForm">
</search-dataproviders>

View File

@ -57,7 +57,7 @@ export class PortalAggregators {
}
public static getCommunityInfo(): any {
return Portal.getMockCommunityInfo(PortalAggregators.eoscInfo.menuId, PortalAggregators.eoscInfo.title, PortalAggregators.disabled.entities,PortalAggregators.disabled.pages);
return Portal.getMockCommunityInfo(PortalAggregators.eoscInfo.menuId, PortalAggregators.disabled.entities,PortalAggregators.disabled.pages);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

@ -1 +1 @@
Subproject commit afde9cf3fa4722e8559c5ce4da6800edde283546
Subproject commit f15bbfa7265f170e06b256f086f2acedfa3f72e0

@ -1 +1 @@
Subproject commit 821f1e658b1da0dbf7c3a8374398f7eef29cd1f1
Subproject commit 468b2b008f474c88dacc52991a5231693833f1f9

View File

@ -4,9 +4,8 @@
// The eoscInfo of which env maps to which file can be found in `.angular-cli.json`.
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
import {common, commonBeta} from "../app/openaireLibrary/utils/properties/environments/environment";
let props: EnvProperties = {
export let properties: EnvProperties = {
environment: "beta",
adminToolsPortalType: "eosc",
dashboard: "eosc",
@ -15,14 +14,47 @@ let props: EnvProperties = {
useLongCache: true,
showAddThis: true,
enableEoscDataTransfer: true,
statisticsAPIURL: "https://services.openaire.eu/stats-api/",
statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/",
searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://services.openaire.eu/search/v2/api/resources",
framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://beta.services.openaire.eu/stats-tool/",
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://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://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/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/",
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",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "https://explore.openaire.eu/utils-service",
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "594",
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/",
@ -31,15 +63,54 @@ let props: EnvProperties = {
useHelpTexts: false,
contextsAPI: "https://services.openaire.eu/openaire/context",
communityAPI: "https://services.openaire.eu/openaire/community/",
domain: "https://explore.eosc-portal.eu",
lastIndexInformationLink: "https://openaire.eu/aggregation-and-content-provision-workflows",
widgetLink: "https://openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
"baseLink": "/",
"domain": "https://explore.eosc-portal.eu",
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToService: "/search/service?serviceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToServices: "/search/find/services",
searchLinkToProjects: "/search/find/projects",
searchLinkToDatasets: "/search/find/datasets",
searchLinkToSoftware: "/search/find/software",
searchLinkToOrps: "/search/find/other",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToAdvancedPublications: "/search/advanced/publications",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDatasets: "/search/advanced/datasets",
searchLinkToAdvancedSoftware: "/search/advanced/software",
searchLinkToAdvancedOrps: "/search/advanced/other",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedServices: "/search/advanced/services",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
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://www.openaire.eu/linking",
indexInfoAPI: "https://services.openaire.eu/openaire/info/",
lastIndexUpdate: "2020-06-15",
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
reCaptchaSiteKey: null,
footerGrantText: "",
eoscDataTransferAPI : "https://eosc-data-transfer.vm.fedcloud.eu",
eoscDataTransferLoginUrl:"https://explore.eosc-portal.eu/egi-login-service/openid_connect_login",
eoscDataTransferDestinations : [
{label: "EGI dCache (dcache-demo.desy.de)", value:
{label : "EGI dCache (dcache-demo.desy.de)", url: "https://dcache-demo.desy.de:2443", id: "dcache",
@ -47,7 +118,3 @@ let props: EnvProperties = {
loginUrl : "https://explore.eosc-portal.eu/egi-login-service/openid_connect_login", cookieName: "EGIAccessToken"}
}]
};
export let properties: EnvProperties = {
...common, ...commonBeta, ...props
}

View File

@ -4,9 +4,8 @@
// The eoscInfo of which env maps to which file can be found in `.angular-cli.json`.
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",
adminToolsPortalType: "eosc",
dashboard: "eosc",
@ -15,29 +14,107 @@ let props: EnvProperties = {
useLongCache: true,
showAddThis: true,
enableEoscDataTransfer: true,
framesAPIURL: "https://www.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/",
useNewStatistisTool: true,
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://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/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/",
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",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "https://explore.openaire.eu/utils-service",
vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "594",
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/",
adminToolsCommunity: "eosc",
adminToolsAPIURL: "https://services.openaire.eu/uoa-admin-tools/",
useHelpTexts:false,
domain: "https://explore.eosc-portal.eu",
contextsAPI: "https://services.openaire.eu/openaire/context",
communityAPI: "https://services.openaire.eu/openaire/community/",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
"baseLink" : "/",
"domain": "https://explore.eosc-portal.eu",
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToService: "/search/service?serviceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToServices: "/search/find/services",
searchLinkToProjects: "/search/find/projects",
searchLinkToDatasets: "/search/find/datasets",
searchLinkToSoftware: "/search/find/software",
searchLinkToOrps: "/search/find/other",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToAdvancedPublications: "/search/advanced/publications",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDatasets: "/search/advanced/datasets",
searchLinkToAdvancedSoftware: "/search/advanced/software",
searchLinkToAdvancedOrps: "/search/advanced/other",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedServices: "/search/advanced/services",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
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",
lastIndexUpdate: "2020-06-15",
indexInfoAPI: "https://services.openaire.eu/openaire/info/",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
reCaptchaSiteKey: null,
footerGrantText : "",
eoscDataTransferAPI : "https://eosc-data-transfer.vm.fedcloud.eu",
eoscDataTransferLoginUrl:"https://explore.eosc-portal.eu/egi-login-service/openid_connect_login",
eoscDataTransferDestinations : [
{label: "dcache", value:
{label : "EGI dCache", id: "dcache",
defaultFolder: "/", auth: "token"}
},
{label: "FTP", value:
{label : "FTP", id: "ftp", auth: "password"}
},
{label: "S3", value:
{label : "S3", id: "s3", auth: "keys"}
{label: "EGI dCache (dcache-demo.desy.de)", value:
{label : "EGI dCache (dcache-demo.desy.de)", url: "https://dcache-demo.desy.de:2443", id: "dcache",
webpage : "https://dcache-demo.desy.de", defaultFolder: "/", hasBrowse: true,
loginUrl : "https://explore.eosc-portal.eu/egi-login-service/openid_connect_login", cookieName: "EGIAccessToken"}
}]
};
export let properties: EnvProperties = {
...common, ...commonProd, ...props
}

View File

@ -4,9 +4,9 @@
// The eoscInfo of which env maps to which file can be found in `.angular-cli.json`.
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",
adminToolsPortalType: "eosc",
dashboard: "eosc",
enablePiwikTrack: false,
@ -14,53 +14,113 @@ let props: EnvProperties = {
useLongCache: false,
showAddThis: true,
enableEoscDataTransfer: true,
statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/",
framesAPIURL: "https://beta.openaire.eu/stats3/",
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://beta.services.openaire.eu/stats-tool/",
useNewStatistisTool: true,
claimsAPIURL: "http://dl170.madgik.di.uoa.gr:8180/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/",
searchAPIURLLAst: "http://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "http://services.openaire.eu/search/v2/api/resources",
csvAPIURL: "https://services.openaire.eu/search/v2/api/reports",
searchResourcesAPIURL: "http://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/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/",
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",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "http://dl170.madgik.di.uoa.gr:8000",
vocabulariesAPI: "https://dev-openaire.d4science.org/provision/mvc/vocabularies/",
piwikSiteId: "594",
piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=",
piwikSiteId: "6",
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: "eosc",
adminToolsCommunity: "aggregator",
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",
communityAPI: "https://dev-openaire.d4science.org/openaire/community/",
domain:"https://explore.eosc-portal.eu",
csvLimit: 2000,
pagingLimit: 20,
resultsPerPage: 10,
"baseLink" : "",
"domain":"https://explore.eosc-portal.eu",
searchLinkToResult: "/search/result?id=",
searchLinkToPublication: "/search/publication?articleId=",
searchLinkToProject: "/search/project?projectId=",
searchLinkToDataProvider: "/search/dataprovider?datasourceId=",
searchLinkToService: "/search/service?serviceId=",
searchLinkToDataset: "/search/dataset?datasetId=",
searchLinkToSoftwareLanding: "/search/software?softwareId=",
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToServices: "/search/find/services",
searchLinkToProjects: "/search/find/projects",
searchLinkToDatasets: "/search/find/datasets",
searchLinkToSoftware: "/search/find/software",
searchLinkToOrps: "/search/find/other",
searchLinkToOrganizations: "/search/find/organizations",
searchLinkToCompatibleDataProviders: "/search/content-providers",
searchLinkToEntityRegistriesDataProviders: "/search/entity-registries",
searchLinkToJournals: "/search/journals",
searchLinkToResults: "/search/find/research-outcomes",
searchLinkToAdvancedPublications: "/search/advanced/publications",
searchLinkToAdvancedProjects: "/search/advanced/projects",
searchLinkToAdvancedDatasets: "/search/advanced/datasets",
searchLinkToAdvancedSoftware: "/search/advanced/software",
searchLinkToAdvancedOrps: "/search/advanced/other",
searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders",
searchLinkToAdvancedServices: "/search/advanced/services",
searchLinkToAdvancedOrganizations: "/search/advanced/organizations",
searchLinkToAdvancedResults: "/search/advanced/research-outcomes",
errorLink: "/error",
lastIndexInformationLink: "https://www.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://www.openaire.eu/linking-beta",
lastIndexUpdate: "2019-11-01",
indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/",
depositLearnHowPage: "/participate/deposit/learn-how",
depositSearchPage: "/participate/deposit/search",
altMetricsAPIURL: "https://api.altmetric.com/v1/doi/",
reCaptchaSiteKey: null,
footerGrantText : "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452",
eoscDataTransferAPI : "https://eosc-data-transfer.test.fedcloud.eu",
eoscDataTransferLoginUrl:"http://rudie.di.uoa.gr:8580/openid_connect_login",
eoscDataTransferAPI : "https://eosc-data-transfer.vm.fedcloud.eu",
eoscDataTransferDestinations : [
{
"kind": "StorageInfo",
"destination": "dcache",
// "id": "dcache", //
"description": "EGI dCache",
// "label": "EGI dCache", //
"authType": "token",
"canBrowse": true,
"transferWith": "EGI Data Transfer"
{label: "EGI dCache (dcache-demo.desy.de)", value:
{label : "EGI dCache (dcache-demo.desy.de)", url: "https://dcache-demo.desy.de:2443", id: "dcache",
webpage : "https://dcache-demo.desy.de", defaultFolder: "/", hasBrowse: true,
loginUrl : "http://rudie.di.uoa.gr:8580/openid_connect_login", cookieName: "EGIAccessToken"}
},
{
"kind": "StorageInfo",
"destination": "s3",
// "id": "s3", //
"description": "Amazon S3 compatible object storage",
// "label": "Amazon S3 compatible object storage", //
"authType": "keys",
"canBrowse": true,
"transferWith": "EGI Data Transfer"
{label: "FTP", value:
{label : "FTP", id: "ftp",
loginUrl : null}
}
]
};
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 { renderModule } from '@angular/platform-server';

View File

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

View File

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

View File

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