diff --git a/explore/package.json b/explore/package.json
index 8ca99eba..cd0a248b 100644
--- a/explore/package.json
+++ b/explore/package.json
@@ -45,7 +45,7 @@
"rxjs": "^6.5.1",
"ts-md5": "^1.2.0",
"tslib": "^2.0.0",
- "uikit": "3.12.0",
+ "uikit": "3.13.10",
"zone.js": "~0.11.4"
},
"devDependencies": {
@@ -71,4 +71,4 @@
"ts-node": "~7.0.0",
"typescript": "~4.6.4"
}
-}
\ No newline at end of file
+}
diff --git a/explore/server.ts b/explore/server.ts
index 574d87f5..e031ceef 100644
--- a/explore/server.ts
+++ b/explore/server.ts
@@ -56,7 +56,30 @@ export function app() {
res.set('Content-Type', register.contentType);
res.end(register.metrics());
});
-
+
+ server.get('/health-check', async (_req, res, _next) => {
+ var uptime = process.uptime();
+ const date = new Date(uptime*1000);
+ const days = date.getUTCDate() - 1,
+ hours = date.getUTCHours(),
+ minutes = date.getUTCMinutes(),
+ seconds = date.getUTCSeconds(),
+ milliseconds = date.getUTCMilliseconds();
+
+
+ const healthcheck = {
+ uptime: days + " days, " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds, " + milliseconds + " milliseconds",
+ message: 'OK',
+ timestamp: new Date()
+ };
+ try {
+ res.send(healthcheck);
+ } catch (error) {
+ healthcheck.message = error;
+ res.status(503).send();
+ }
+ });
+
// All regular routes use the Universal engine
server.get('*', (req, res) => {
if (routes.indexOf(req.path) !== -1) {
diff --git a/explore/src/app/app-routing.module.ts b/explore/src/app/app-routing.module.ts
index d3c30a25..97a827a5 100644
--- a/explore/src/app/app-routing.module.ts
+++ b/explore/src/app/app-routing.module.ts
@@ -10,50 +10,45 @@ const routes: Routes = [
{path: 'mail-preferences', loadChildren: () => import('./userEmailPreferences/mailPrefs.module').then(m => m.LibMailPrefsModule)},
{path: 'sdgs', loadChildren: () => import('./sdg/sdg.module').then(m => m.LibSdgModule)},
{path: 'fields-of-science', loadChildren: () => import('./fos/fos.module').then(m => m.LibFosModule), data: {extraOffset: 100}},
+ {path: 'funders', loadChildren: () => import('./funders/funders.module').then(m => m.FundersModule)},
{path: 'contact-us', loadChildren: () => import('./contact/contact.module').then(m => m.ContactModule), data: {hasQuickContact: false}},
// ORCID Pages
{path: 'orcid', loadChildren: () => import('./orcid/orcid.module').then(m => m.LibOrcidModule)},
{path: 'my-orcid-links', loadChildren: () => import('./orcid/my-orcid-links/myOrcidLinks.module').then(m => m.LibMyOrcidLinksModule)},
// Landing Pages
- {path: 'search/result', loadChildren: () => import('./landingPages/result/libResult.module').then(m => m.LibResultModule), data: {hasQuickContact: false}},
- {path: 'search/publication', loadChildren: () => import('./landingPages/publication/libPublication.module').then(m => m.LibPublicationModule), data: {hasQuickContact: false}},
- {path: 'search/dataset', loadChildren: () => import('./landingPages/dataset/libDataset.module').then(m => m.LibDatasetModule), data: {hasQuickContact: false}},
- {path: 'search/software', loadChildren: () => import('./landingPages/software/libSoftware.module').then(m => m.LibSoftwareModule), data: {hasQuickContact: false}},
- {path: 'search/other', loadChildren: () => import('./landingPages/orp/libOrp.module').then(m => m.LibOrpModule), data: {hasQuickContact: false}},
- {path: 'search/project', loadChildren: () => import('./landingPages/project/libProject.module').then(m => m.LibProjectModule), data: {hasQuickContact: false}},
+ {path: 'search/result', loadChildren: () => import('./landingPages/result/libResult.module').then(m => m.LibResultModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
+ {path: 'search/publication', loadChildren: () => import('./landingPages/publication/libPublication.module').then(m => m.LibPublicationModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
+ {path: 'search/dataset', loadChildren: () => import('./landingPages/dataset/libDataset.module').then(m => m.LibDatasetModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
+ {path: 'search/software', loadChildren: () => import('./landingPages/software/libSoftware.module').then(m => m.LibSoftwareModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
+ {path: 'search/other', loadChildren: () => import('./landingPages/orp/libOrp.module').then(m => m.LibOrpModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
+ {path: 'search/project', loadChildren: () => import('./landingPages/project/libProject.module').then(m => m.LibProjectModule), data: {hasQuickContact: false, hasMenuSearchBar: true}},
{
path: 'search/dataprovider',
loadChildren: () => import('././landingPages/dataProvider/libDataProvider.module').then(m => m.LibDataProviderModule),
- data: {hasQuickContact: false}
+ data: {hasQuickContact: false, hasMenuSearchBar: true}
},
{
path: 'search/organization',
loadChildren: () => import('./landingPages/organization/libOrganization.module').then(m => m.LibOrganizationModule),
- data: {hasQuickContact: false}
+ data: {hasQuickContact: false, hasMenuSearchBar: true}
},
{
path: 'project-report',
loadChildren: () => import('./landingPages/htmlProjectReport/libHtmlProjectReport.module').then(m => m.LibHtmlProjectReportModule)
},
+
// Search Pages
- {path: 'search/find', loadChildren: () => import('./searchPages/find/libSearch.module').then(m => m.LibMainSearchModule)},
{
- path: 'search/find/research-outcomes',
- loadChildren: () => import('./searchPages/simple/searchResearchResults.module').then(m => m.OpenaireSearchResearchResultsModule)
+ path: 'search/find', loadChildren: () => import('./searchPages/find/libSearch.module').then(m => m.LibMainSearchModule)
},
{path: 'search/find/publications', component: PageURLResolverComponent},
{path: 'search/find/datasets', component: PageURLResolverComponent},
{path: 'search/find/software', component: PageURLResolverComponent},
{path: 'search/find/other', component: PageURLResolverComponent},
- {path: 'search/find/projects', loadChildren: () => import('./searchPages/simple/searchProjects.module').then(m => m.LibSearchProjectsModule)},
{
- path: 'search/find/dataproviders',
- loadChildren: () => import('./searchPages/simple/searchDataProviders.module').then(m => m.LibSearchDataProvidersModule)
- },
- {
- path: 'search/find/organizations',
- loadChildren: () => import('./searchPages/simple/searchOrganizations.module').then(m => m.LibSearchOrganizationsModule)
+ path: 'search/find/:entity', loadChildren: () => import('./searchPages/find/libSearch.module').then(m => m.LibMainSearchModule)
},
+
// Advanced Search Pages
{
path: 'search/advanced/research-outcomes',
diff --git a/explore/src/app/app.component.ts b/explore/src/app/app.component.ts
index d8b467ae..7de1b674 100644
--- a/explore/src/app/app.component.ts
+++ b/explore/src/app/app.component.ts
@@ -52,8 +52,8 @@ import {LayoutService} from './openaireLibrary/dashboard/sharedComponents/sideba
-
+
`
})
@@ -65,7 +65,10 @@ export class AppComponent {
properties: EnvProperties = properties;
user: User;
header: Header;
- public showQuickContact: boolean;
+ /* Contact */
+ public showQuickContact: boolean;
+ public bottomNotIntersecting: boolean;
+ public displayQuickContact: boolean; // intersecting with specific section in home page
public contactForm: FormGroup;
public sending: boolean = false;
@ViewChild('quickContact') quickContact: QuickContactComponent;
@@ -85,11 +88,7 @@ export class AppComponent {
if (typeof document !== 'undefined') {
this.isClient = true;
}
- this.subscriptions.push(this.layoutService.hasQuickContact.subscribe(hasQuickContact => {
- this.showQuickContact = hasQuickContact;
- this.cdr.detectChanges();
- }));
- this.configurationService.initCommunityInformation(this.properties, this.properties.adminToolsCommunity);
+ this.configurationService.initPortal(this.properties, this.properties.adminToolsCommunity);
this.feedbackmail = this.properties.feedbackmail;
if (this.properties.environment == "production" || this.properties.environment == "development") {
this.subscriptions.push(this.route.queryParams.subscribe(data => {
@@ -111,9 +110,18 @@ export class AppComponent {
badge: true
};
this.reset();
+ }));
+ this.subscriptions.push(this.layoutService.hasQuickContact.subscribe(hasQuickContact => {
+ if(this.showQuickContact !== hasQuickContact) {
+ this.showQuickContact = hasQuickContact;
+ this.cdr.detectChanges();
+ }
}));
this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => {
- this.showQuickContact = display;
+ if(this.displayQuickContact !== display) {
+ this.displayQuickContact = display;
+ this.cdr.detectChanges();
+ }
}));
}
@@ -121,6 +129,8 @@ export class AppComponent {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
subscription.unsubscribe();
+ } else if (typeof IntersectionObserver !== "undefined" && subscription instanceof IntersectionObserver) {
+ subscription.disconnect();
}
});
this.configurationService.clearSubscriptions();
@@ -142,12 +152,9 @@ export class AppComponent {
};
let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
- if (entry.isIntersecting && this.showQuickContact) {
- this.showQuickContact = false;
- this.quickContactService.setDisplay(this.showQuickContact);
- } else if (!entry.isIntersecting && !this.showQuickContact) {
- this.showQuickContact = true;
- this.quickContactService.setDisplay(this.showQuickContact);
+ if(this.bottomNotIntersecting !== (!entry.isIntersecting)) {
+ this.bottomNotIntersecting = !entry.isIntersecting;
+ this.cdr.detectChanges();
}
});
}, options);
@@ -162,13 +169,13 @@ export class AppComponent {
this.userMenuItems.push(new MenuItem("", "My links", "", "/myclaims", false, [], ["/myclaims"], {}));
let researchOutcomesMenu = new MenuItem("", OpenaireEntities.RESULTS, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'});
researchOutcomesMenu.items = [
- new MenuItem("", OpenaireEntities.PUBLICATIONS, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("publications") + '"'}),
- new MenuItem("", OpenaireEntities.DATASETS, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("datasets") + '"'}),
- new MenuItem("", OpenaireEntities.SOFTWARE, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("software") + '"'}),
- new MenuItem("", OpenaireEntities.OTHER, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("other") + '"'})];
+ new MenuItem("", OpenaireEntities.PUBLICATIONS, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("publications") + '"', resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'}),
+ new MenuItem("", OpenaireEntities.DATASETS, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("datasets") + '"', resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'}),
+ new MenuItem("", OpenaireEntities.SOFTWARE, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("software") + '"', resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'}),
+ new MenuItem("", OpenaireEntities.OTHER, "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {type: '"' + encodeURIComponent("other") + '"', resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'})];
//TODO add check for research results route
this.menuItems = [
- new MenuItem("search", "Search", "", "/search/find", false, [], ["/search/find"], {qf: true},
+ new MenuItem("search", "Search", "", "/search/find/research-outcomes", false, [], ["/search/find/research-outcomes"], {resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'},
null, null, null, null, "_blank", "internal", false,
[
researchOutcomesMenu,
@@ -191,6 +198,7 @@ export class AppComponent {
new MenuItem("", "Registries", "", "/search/entity-registries", false, ["datasource"], ["/search/entity-registries"], {}),
new MenuItem("", "Browse all", "", "/search/find/dataproviders", false, ["datasource"], ["/search/find/dataproviders"], {})]
),
+ new MenuItem("funders", "Funders", "", "/funders", false, [], ["/funders"], {}),
];
if (Session.isPortalAdministrator(this.user)) {
this.userMenuItems.push(new MenuItem("", "Manage all links", "", "/claims", false, [], ["/claims"], {}));
diff --git a/explore/src/app/contact/contact.component.ts b/explore/src/app/contact/contact.component.ts
index 0549f948..410d9a18 100644
--- a/explore/src/app/contact/contact.component.ts
+++ b/explore/src/app/contact/contact.component.ts
@@ -60,10 +60,7 @@ export class ContactComponent implements OnInit {
this.properties = properties;
this.email = {body: '', subject: '', recipients: []};
-
- if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
- this.subscriptions.push( this._piwikService.trackView(this.properties, this.pageTitle, this.properties.piwikSiteId).subscribe());
- }
+ this.subscriptions.push( this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
this.url = this.properties.domain + this._router.url;
this.seoService.createLinkForCanonicalURL(this.url);
this.updateUrl(this.url);
diff --git a/explore/src/app/deposit/deposit.module.ts b/explore/src/app/deposit/deposit.module.ts
index e32cbaa0..79e96a68 100644
--- a/explore/src/app/deposit/deposit.module.ts
+++ b/explore/src/app/deposit/deposit.module.ts
@@ -12,7 +12,6 @@ import {DepositFirstPageModule} from "../openaireLibrary/deposit/depositFirstPag
import {ZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service";
import {CommunityService} from "../openaireLibrary/connect/community/community.service";
-import {SearchZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service";
@NgModule({
imports: [
@@ -26,6 +25,6 @@ import {SearchZenodoCommunitiesService} from "../openaireLibrary/connect/zenodoC
OpenaireDepositComponent,
],
providers: [PreviousRouteRecorder, IsRouteEnabled,
- ZenodoCommunitiesService, CommunityService, SearchZenodoCommunitiesService]
+ ZenodoCommunitiesService, CommunityService]
})
export class LibDepositModule { }
diff --git a/explore/src/app/deposit/searchDataprovidersToDeposit.module.ts b/explore/src/app/deposit/searchDataprovidersToDeposit.module.ts
index 2e76ce7f..b1647561 100644
--- a/explore/src/app/deposit/searchDataprovidersToDeposit.module.ts
+++ b/explore/src/app/deposit/searchDataprovidersToDeposit.module.ts
@@ -9,8 +9,6 @@ import {SearchDataprovidersToDepositModule} from '../openaireLibrary/deposit/sea
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {IsRouteEnabled} from '../openaireLibrary/error/isRouteEnabled.guard';
import {ZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/zenodo-communitiesService.module';
-import {SearchZenodoCommunitiesServiceModule} from '../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunitiesService.module';
-
import {CommunityService} from '../openaireLibrary/connect/community/community.service';
@NgModule({
@@ -18,7 +16,7 @@ import {CommunityService} from '../openaireLibrary/connect/community/community.s
CommonModule, FormsModule,
SearchDataprovidersToDepositModule,
SearchDataprovidersToDepositRoutingModule,
- ZenodoCommunitiesServiceModule, SearchZenodoCommunitiesServiceModule
+ ZenodoCommunitiesServiceModule
],
declarations: [
OpenaireSearchDataprovidersToDepositComponent
diff --git a/explore/src/app/fos/fos.component.ts b/explore/src/app/fos/fos.component.ts
index f6a6081c..4c85da4f 100644
--- a/explore/src/app/fos/fos.component.ts
+++ b/explore/src/app/fos/fos.component.ts
@@ -4,12 +4,8 @@ import {properties} from "../../environments/environment";
@Component({
selector: 'explore-fos',
template: `
-
+
`
})
-export class ExploreFosComponent {
- piwikSiteId = properties.piwikSiteId;
-
- constructor() {}
-}
\ No newline at end of file
+export class ExploreFosComponent {}
diff --git a/explore/src/app/funders/funders-routing.module.ts b/explore/src/app/funders/funders-routing.module.ts
new file mode 100644
index 00000000..5359a285
--- /dev/null
+++ b/explore/src/app/funders/funders-routing.module.ts
@@ -0,0 +1,19 @@
+import {NgModule} from '@angular/core';
+import {RouterModule} from '@angular/router';
+
+import {FundersComponent} from './funders.component';
+import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
+import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
+
+@NgModule({
+ imports: [
+ RouterModule.forChild([
+ {
+ path: '', component: FundersComponent,
+ canActivate: [IsRouteEnabled],
+ canDeactivate: [PreviousRouteRecorder]
+ }
+ ])
+ ]
+})
+export class FundersRoutingModule { }
diff --git a/explore/src/app/funders/funders.component.html b/explore/src/app/funders/funders.component.html
new file mode 100644
index 00000000..0fac80e9
--- /dev/null
+++ b/explore/src/app/funders/funders.component.html
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+ Funders
+
+
+
+ Be an integral part of the open R&I ecosystem
+
+
+ Welcome to the Funders’ page on OpenAIRE Explore. Discover key details about each funder, their commitment to open access, and the impactful research they enable. Our aim? To foster transparency, inspire collaboration.
+
+
+
+
+
+
+
+ {{formatNumber(projectsNumber)}}+
+
+
+ grants
+
+
+
+
+ {{formatNumber(fundersNumber)}}
+
+
+ funders
+
+
+
+
+ {{formatNumber(researchProductsNumber)}}+
+
+
+ funded research outputs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No funders available
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{funder.openAccessPercentage}}%
+
+
Open Access
+
+
+
+
+
+
+
+
+ {{funder.alias}}
+
+
+
+
+
+ {{funder.name}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{funder.name}}
+
+
+
+ ({{funder.alias}})
+
+
+
+
+
+
+
+
+
+
+
+
+
{{funder.openAccessPercentage}}%
+
+
Open Access
+
+
+
+
+
+
+
+
+
pageSize"
+ (pageChange)="updateCurrentPage($event)"
+ [currentPage]="currentPage" [size]="pageSize"
+ [totalResults]="displayedFunders.length">
+
+
+
+
+
\ No newline at end of file
diff --git a/explore/src/app/funders/funders.component.less b/explore/src/app/funders/funders.component.less
new file mode 100644
index 00000000..fd7e0b46
--- /dev/null
+++ b/explore/src/app/funders/funders.component.less
@@ -0,0 +1,48 @@
+@import (reference) "~src/assets/openaire-theme/less/color.less";
+
+
+.custom-coins-dot:after {
+ content: "";
+ background-image: url("~src/assets/explore-assets/funders/coins.svg");
+ display: inline-block;
+ background-size: 100% 100%;
+ height: 35px;
+ width: 35px;
+ margin-right: 10px;
+}
+
+.custom-handshake-dot:after {
+ content: "";
+ background-image: url("~src/assets/explore-assets/funders/handshake.svg");
+ display: inline-block;
+ background-size: 100% 100%;
+ height: 30px;
+ width: 30px;
+ margin-left: 10px;
+}
+
+.custom-view-button {
+ padding: 4px;
+ background: @light-color;
+ border: 1px solid @disable-color;
+ border-radius: 4px;
+ icon {
+ color: @disable-color;
+ }
+
+ &.active {
+ background: transparent linear-gradient(315deg, @primary-light-color 0%, @primary-dark-color 100%) 0% 0% no-repeat padding-box;
+ icon {
+ color: @light-color;
+ }
+ }
+}
+
+.uk-card {
+ &.funder-grid {
+ border-bottom: 4px solid fade(@funder-color, 30%);
+ }
+ &.funder-list {
+ border-left: 4px solid fade(@funder-color, 30%);
+ }
+}
\ No newline at end of file
diff --git a/explore/src/app/funders/funders.component.ts b/explore/src/app/funders/funders.component.ts
new file mode 100644
index 00000000..b08f1622
--- /dev/null
+++ b/explore/src/app/funders/funders.component.ts
@@ -0,0 +1,283 @@
+import {ChangeDetectorRef, Component, OnInit} from '@angular/core';
+import {Router} from '@angular/router';
+import {Subscriber, Subscription, zip} from "rxjs";
+import {Meta, Title} from "@angular/platform-browser";
+
+import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
+import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
+import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
+import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
+import {properties} from "../../environments/environment";
+import {RefineFieldResultsService} from '../openaireLibrary/services/refineFieldResults.service';
+import {StakeholderService} from '../openaireLibrary/monitor/services/stakeholder.service';
+import {Option} from '../openaireLibrary/sharedComponents/input/input.component';
+import {StringUtils} from '../openaireLibrary/utils/string-utils.class';
+import {HelperFunctions} from '../openaireLibrary/utils/HelperFunctions.class';
+import {NumberUtils} from '../openaireLibrary/utils/number-utils.class';
+import {LayoutService} from '../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service';
+import {FormBuilder, FormControl} from '@angular/forms';
+import {debounceTime, distinctUntilChanged} from 'rxjs/operators';
+
+@Component({
+ selector: 'funders',
+ templateUrl: './funders.component.html',
+ styleUrls: ['funders.component.less']
+})
+
+export class FundersComponent implements OnInit {
+ private subscriptions: Subscription[] = [];
+ url: string = null;
+ pageTitle: string = "OpenAIRE - Explore | Funders";
+ pageDescription: string = "Funders | Be an integral part of the open R&I ecosystem";
+ properties: EnvProperties = properties;
+ breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'funders'}];
+ showLoading: boolean = true;
+ isMobile: boolean = false;
+ funders: any[] = [];
+ displayedFunders: any[] = [];
+ showOptions: Option[];
+ sortOptions: Option[];
+ pageOptions: number[] = [10, 20, 30, 40];
+ show: string = 'all';
+ sortBy: string = 'alphAsc';
+ gridView: boolean = true;
+ currentPage: number = 1;
+ pageSize: number = 10;
+ keywordControl: FormControl;
+ keyword: string;
+ fundersNumber: number = 0;
+ researchProductsNumber: number = 0;
+ projectsNumber: number = 0;
+ fundersMap = new Map();
+
+ constructor(private router: Router,
+ private meta: Meta,
+ private title: Title,
+ private seoService: SEOService,
+ private piwikService: PiwikService,
+ private refineFieldResultsService: RefineFieldResultsService,
+ private stakeholderService: StakeholderService,
+ private layoutService: LayoutService,
+ private cdr: ChangeDetectorRef,
+ private fb: FormBuilder,) {
+ }
+
+ ngOnInit() {
+ this.title.setTitle('OpenAIRE - Explore | Funders');
+ this.properties = properties;
+ this.subscriptions.push( this.piwikService.trackView(this.properties, this.pageTitle).subscribe());
+ this.url = this.properties.domain + this.router.url;
+ this.seoService.createLinkForCanonicalURL(this.url);
+ this.updateUrl(this.url);
+ this.updateTitle(this.pageTitle);
+ this.updateDescription(this.pageDescription);
+ this.subscriptions.push(this.layoutService.isMobile.subscribe(isMobile => {
+ this.isMobile = isMobile;
+ this.cdr.detectChanges();
+ }));
+ this.showOptions = [
+ {value: 'all', label: 'All funders'},
+ {value: 'dashboard', label: 'Funders with dashboard'}
+ ];
+ this.sortOptions = [
+ {value: 'alphAsc', label: 'Alphabetically Asc. (A-Z)'},
+ {value: 'alphDsc', label: 'Alphabetically Dsc. (Z-A)'},
+ {value: 'oaDsc', label: '"Open Access %" Dsc.'}
+ ];
+ this.getFunders();
+ this.keywordControl = this.fb.control('');
+ this.subscriptions.push(this.keywordControl.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe(value => {
+ this.keyword = value;
+ this.filtering();
+ }));
+ }
+
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
+ private updateDescription(description: string) {
+ this.meta.updateTag({content: description}, "name='description'");
+ this.meta.updateTag({content: description}, "property='og:description'");
+ }
+
+ private updateTitle(title: string) {
+ var title = ((title.length > 50) ? title.substring(0, 50) : title);
+ this.title.setTitle(title);
+ this.meta.updateTag({content: title}, "property='og:title'");
+ }
+
+ private updateUrl(url: string) {
+ this.meta.updateTag({content: url}, "property='og:url'");
+ }
+
+ private getFunders() {
+ let refineParams = '&fq=resultbestaccessright%20exact%20%22Open%20Access%22';
+ this.subscriptions.push(
+ zip(
+ this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['relfunder'], 'result', this.properties),
+ this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['relfunder'], 'result', this.properties, refineParams),
+ this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['funder'], 'project', this.properties),
+ this.stakeholderService.getStakeholders(this.properties.monitorServiceAPIURL, 'funder')
+ ).subscribe((data: any[]) => {
+ // storing all needed data to a map
+ // 1st call
+ let queriedFunders1 = data[0][1][0].values;
+ queriedFunders1.forEach(queriedFunder => {
+ this.fundersMap.set(queriedFunder.id, {
+ "id": queriedFunder.id,
+ "name": queriedFunder.name,
+ "alias": '',
+ "researchProducts": +queriedFunder.number,
+ "openAccessResearchProducts": 0,
+ "openAccessPercentage": 0,
+ "projects": 0,
+ "monitorDashboard": '',
+ "monitorDashboardStatus": '',
+ "logoUrl": ''
+ });
+ });
+
+ // 2nd call
+ let queriedFunders2 = data[1][1][0].values;
+ queriedFunders2.forEach(queriedFunder => {
+ if(this.fundersMap.has(queriedFunder.id)) {
+ this.fundersMap.get(queriedFunder.id).openAccessResearchProducts = +queriedFunder.number;
+ }
+ });
+
+ // 3rd call
+ let queriedFunders3 = data[2][1][0].values;
+ queriedFunders3.forEach(queriedFunder => {
+ if(+queriedFunder.number > 1) {
+ if (this.fundersMap.has(queriedFunder.id)) {
+ this.fundersMap.get(queriedFunder.id).projects = +queriedFunder.number;
+ } else {
+ this.fundersMap.set(queriedFunder.id, {
+ "id": queriedFunder.id,
+ "name": queriedFunder.name,
+ "alias": '',
+ "researchProducts": 0,
+ "openAccessResearchProducts": 0,
+ "openAccessPercentage": 0,
+ "projects": +queriedFunder.number,
+ "monitorDashboard": '',
+ "monitorDashboardStatus": '',
+ "logoUrl": ''
+ });
+ }
+ }
+ });
+
+ // 4th call
+ let queriedFunders4 = data[3];
+ queriedFunders4.forEach(queriedFunder => {
+ let id = queriedFunder.index_id + '||' + queriedFunder.index_name + '||' + queriedFunder.index_shortName;
+ if(this.fundersMap.has(id)) {
+ this.fundersMap.get(id).alias = queriedFunder.alias;
+ this.fundersMap.get(id).monitorDashboard = queriedFunder.alias;
+ this.fundersMap.get(id).monitorDashboardStatus = queriedFunder.visibility;
+ this.fundersMap.get(id).logoUrl = (queriedFunder.isUpload ? properties.utilsService + "/download/" : "")+ (queriedFunder.logoUrl);
+ }
+ });
+ this.fundersMap.forEach((value) => {
+ if(value.openAccessResearchProducts > 0) {
+ value.openAccessPercentage = Math.round((value.openAccessResearchProducts / value.researchProducts) * 100);
+ }
+ });
+ // convert funders map into an array
+ this.funders = Array.from(this.fundersMap.values());
+ // calculate total numbers for intro content
+ this.calculateNumbers();
+ // sort funders
+ this.funders.sort((a, b) => a['name'].localeCompare(b['name']));
+ // initialize displayedFunders
+ this.displayedFunders = this.funders;
+ this.showLoading = false;
+ })
+ );
+ }
+
+ private calculateSum(array, property) {
+ let sum = 0;
+ array.forEach(element => {
+ sum += element[property];
+ });
+ return sum;
+ }
+
+ private calculateNumbers() {
+ this.fundersNumber = this.funders.length;
+ this.researchProductsNumber = this.calculateSum(this.funders, 'researchProducts');
+ this.projectsNumber = this.calculateSum(this.funders, 'projects');
+ }
+
+ get showContentWithNumbers() {
+ return this.fundersNumber && this.researchProductsNumber && this.projectsNumber;
+ }
+
+ formatNumber(num: number | string) {
+ let formatted = NumberUtils.roundNumber(+num);
+ return formatted.number + formatted.size;
+ }
+
+ urlEncodeAndQuote(str: string): string {
+ return StringUtils.quote(StringUtils.URIEncode(str));
+ }
+
+ sortByChanged() {
+ switch(this.sortBy) {
+ case 'alphAsc':
+ this.funders = this.funders.sort((a, b) => a['name'].localeCompare(b['name']));
+ break;
+ case 'alphDsc':
+ this.funders = this.funders.sort((a, b) => b['name'].localeCompare(a['name']));
+ break;
+ case 'oaDsc':
+ this.funders = this.funders.sort((a, b) => b['openAccessPercentage'] - a['openAccessPercentage']);
+ break;
+ }
+ this.filtering();
+ }
+
+ sizeChanged($event) {
+ this.pageSize = $event;
+ this.currentPage = 1;
+ }
+
+ filtering() {
+ let displayedFunders = this.funders;
+ if(!this.keyword){
+ this.keyword = '';
+ }
+ if(this.funders.length) {
+ displayedFunders = displayedFunders.filter(item => (item['name'] && item['name'].toLowerCase().includes(this.keyword.toLowerCase())) || (item['alias'] && item['alias'].toLowerCase().includes(this.keyword.toLowerCase())));
+ }
+ if(this.show == 'dashboard') {
+ displayedFunders = displayedFunders.filter(funder => funder.monitorDashboard && funder.monitorDashboard?.length > 0 && funder.monitorDashboardStatus != 'PRIVATE');
+ }
+
+ this.displayedFunders = displayedFunders;
+ this.currentPage = 1;
+ }
+
+ public updateCurrentPage($event) {
+ this.currentPage = $event.value;
+ HelperFunctions.scrollToId('target');
+ }
+}
diff --git a/explore/src/app/funders/funders.module.ts b/explore/src/app/funders/funders.module.ts
new file mode 100644
index 00000000..c89e2d64
--- /dev/null
+++ b/explore/src/app/funders/funders.module.ts
@@ -0,0 +1,47 @@
+import {NgModule} from '@angular/core';
+import {CommonModule} from '@angular/common';
+import {RouterModule} from '@angular/router';
+
+import {FundersComponent} from './funders.component';
+import {FundersRoutingModule} from "./funders-routing.module";
+import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module";
+import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
+import {IsRouteEnabled} from "../openaireLibrary/error/isRouteEnabled.guard";
+import {Schema2jsonldModule} from "../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
+import {SEOServiceModule} from "../openaireLibrary/sharedComponents/SEO/SEOService.module";
+import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
+import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
+import {RefineFieldResultsServiceModule} from '../openaireLibrary/services/refineFieldResultsService.module';
+import {LogoUrlPipeModule} from '../openaireLibrary/utils/pipes/logoUrlPipe.module';
+import {IconsModule} from '../openaireLibrary/utils/icons/icons.module';
+import {IconsService} from '../openaireLibrary/utils/icons/icons.service';
+import {open_access} from '../openaireLibrary/utils/icons/icons';
+import {closed_access} from '../openaireLibrary/utils/icons/icons';
+import {InputModule} from '../openaireLibrary/sharedComponents/input/input.module';
+import {PagingModule} from '../openaireLibrary/utils/paging.module';
+import {SearchInputModule} from '../openaireLibrary/sharedComponents/search-input/search-input.module';
+
+
+@NgModule({
+ imports: [
+ FundersRoutingModule, CommonModule, RouterModule, AlertModalModule,
+ Schema2jsonldModule, SEOServiceModule, BreadcrumbsModule, LoadingModule,
+ RefineFieldResultsServiceModule, LogoUrlPipeModule, IconsModule, InputModule,
+ PagingModule, SearchInputModule
+ ],
+ declarations: [
+ FundersComponent
+ ],
+ providers: [
+ PiwikService, IsRouteEnabled
+ ],
+ exports: [
+ FundersComponent
+ ]
+})
+
+export class FundersModule {
+ constructor(private iconsService: IconsService) {
+ this.iconsService.registerIcons([open_access, closed_access]);
+ }
+}
diff --git a/explore/src/app/home/home.component.html b/explore/src/app/home/home.component.html
index 32267eec..b2903a90 100644
--- a/explore/src/app/home/home.component.html
+++ b/explore/src/app/home/home.component.html
@@ -15,18 +15,27 @@
Discover open linked research.
-
-
-
+
@@ -251,16 +260,16 @@
Linked Open Research.
- EXPLORE is built on the
OpenAIRE Research Graph , one of the largest
+ EXPLORE is built on the
OpenAIRE Graph , one of the largest
open scholarly record collections worldwide. Conceived as a public and
transparent good, populated out of data sources trusted by scientists, the
- OpenAIRE Research Graph brings discovery, monitoring, and assessment of science
+ OpenAIRE Graph brings discovery, monitoring, and assessment of science
back in the hands of the scientific community.
-
+
@@ -269,10 +278,10 @@
- Within a constantly emerging scholarly communication environment, the OpenAIRE Research Graph is a moving target, continuously integrating new sources, new types or research objects, and embedding access measures. We therefore welcome the community to work with us to improve all its aspects: its coverage (geographic and thematic), quality (disambiguation and semantics) and access (APIs).
+ Within a constantly emerging scholarly communication environment, the OpenAIRE Graph is a moving target, continuously integrating new sources, new types or research objects, and embedding access measures. We therefore welcome the community to work with us to improve all its aspects: its coverage (geographic and thematic), quality (disambiguation and semantics) and access (APIs).
- Find information about the OpenAIRE Research Graph, how to test it and contribute to improving it.
+ Find information about the OpenAIRE Graph, how to test it and contribute to improving it.
diff --git a/explore/src/app/home/home.component.ts b/explore/src/app/home/home.component.ts
index 5881989e..5bbbbfb7 100644
--- a/explore/src/app/home/home.component.ts
+++ b/explore/src/app/home/home.component.ts
@@ -112,6 +112,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
]
]
};
+ public portalName: string = "";
public pageTitle = "OpenAIRE";
public keyword: string = "";
public searchFields: SearchFields = new SearchFields();
@@ -121,7 +122,6 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
public properties: EnvProperties = properties;
public openaireEntities = OpenaireEntities;
public readMore: boolean = false;
- public showQuickContact: boolean;
@ViewChild('contact') contact: ElementRef;
subscriptions: any[] = [];
@ViewChildren('scrolling_element') elements: QueryList;
@@ -157,7 +157,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
{value: "lcsh:Technology", label: "Technology"},
];
stringUtils = new StringUtils();
- disableSelect: boolean = true;
+ // disableSelect: boolean = true;
constructor(
private _router: Router,
@@ -173,6 +173,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
this._meta.updateTag({content: description}, "name='description'");
this._meta.updateTag({content: description}, "property='og:description'");
this._meta.updateTag({content: title}, "property='og:title'");
+ this.quickContactService.setDisplay(false);
}
private getPageContents() {
@@ -213,9 +214,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
if (this.properties != null) {
var url = this.properties.domain + this.properties.baseLink + this._router.url;
this._meta.updateTag({content: url}, "property='og:url'");
- if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
- this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE").subscribe());
- }
+ this.subscriptions.push(this._piwikService.trackView(this.properties, "OpenAIRE").subscribe());
if(this.numbersComponent) {
this.numbersComponent.showPublications = false;
this.numbersComponent.showDatasets = false;
@@ -225,8 +224,11 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
this.numbersComponent.showDataProviders = false;
this.numbersComponent.showOrganizations = false;
}
- this.subscriptions.push(this.config.communityInformationState.subscribe(data => {
+ this.subscriptions.push(this.config.portalAsObservable.subscribe(data => {
if(data) {
+ if(data.name) {
+ this.portalName = data.name;
+ }
var showEntity = {};
for (var i = 0; i < data['entities'].length; i++) {
showEntity["" + data['entities'][i]["pid"] + ""] = data['entities'][i]["isEnabled"];
@@ -281,6 +283,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
public ngOnDestroy() {
+ this.quickContactService.setDisplay(true);
this.clear();
}
@@ -298,13 +301,7 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
};
let intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
- if (entry.isIntersecting && this.showQuickContact) {
- this.showQuickContact = false;
- this.quickContactService.setDisplay(this.showQuickContact);
- } else if (!entry.isIntersecting && !this.showQuickContact) {
- this.showQuickContact = true;
- this.quickContactService.setDisplay(this.showQuickContact);
- }
+ this.quickContactService.setDisplay(!entry.isIntersecting);
});
}, options);
intersectionObserver.observe(this.contact.nativeElement);
@@ -340,48 +337,47 @@ export class HomeComponent implements OnInit, OnDestroy, AfterViewInit {
this.selectedEntityAdvancedUrl = $event.advancedUrl;
}
- goTo(simple: boolean) {
- let url = (simple) ? this.selectedEntitySimpleUrl : this.selectedEntityAdvancedUrl;
+ goTo() {
let parameterNames = [];
let parameterValues = [];
- if (this.selectedEntity == "result") {
- if (this.resultTypes) {
- let values = [];
- for (let value of this.resultTypes.values) {
- if (value.selected) {
- values.push(value.id);
- }
- }
- if (values.length > 0 && values.length != 4) {
- parameterNames.push("type");
- parameterValues.push(values.join(","));
- }
- if (this.resultsQuickFilter && this.resultsQuickFilter.selected) {
- parameterNames.push(this.resultsQuickFilter.filterId);
- parameterValues.push('"' + encodeURIComponent(this.resultsQuickFilter.value) + '"');
- }
- }
- } else if (this.selectedEntity == "all") {
- if (this.resultsQuickFilter && this.resultsQuickFilter.selected) {
- parameterNames.push(this.resultsQuickFilter.filterId);
- parameterValues.push('"' + encodeURIComponent(this.resultsQuickFilter.value) + '"');
- }
+ // if (this.selectedEntity == "result") {
+ // if (this.resultTypes) {
+ // let values = [];
+ // for (let value of this.resultTypes.values) {
+ // if (value.selected) {
+ // values.push(value.id);
+ // }
+ // }
+ // if (values.length > 0 && values.length != 4) {
+ // parameterNames.push("type");
+ // parameterValues.push(values.join(","));
+ // }
+ // if (this.resultsQuickFilter && this.resultsQuickFilter.selected) {
+ // parameterNames.push(this.resultsQuickFilter.filterId);
+ // parameterValues.push('"' + encodeURIComponent(this.resultsQuickFilter.value) + '"');
+ // }
+ // }
+ // } else if (this.selectedEntity == "all") {
+ if (this.resultsQuickFilter && this.resultsQuickFilter.selected) {
+ parameterNames.push(this.resultsQuickFilter.filterId);
+ parameterValues.push('"' + encodeURIComponent(this.resultsQuickFilter.value) + '"');
}
+ // }
if (this.keyword.length > 0) {
parameterNames.push("fv0");
parameterValues.push(this.keyword);
parameterNames.push("f0");
parameterValues.push("q");
}
- this._router.navigate([url], {queryParams: this.routerHelper.createQueryParams(parameterNames, parameterValues)});
+ this._router.navigate([this.properties.searchLinkToAll], {queryParams: this.routerHelper.createQueryParams(parameterNames, parameterValues)});
}
getSubjectParameter(param) {
return {'f0': 'resultsubject', 'fv0': '"' + (param) + '"', size: 50};
}
- disableSelectChange(event: boolean) {
- this.disableSelect = event;
- this.cdr.detectChanges();
- }
+ // disableSelectChange(event: boolean) {
+ // this.disableSelect = event;
+ // this.cdr.detectChanges();
+ // }
}
diff --git a/explore/src/app/home/home.module.ts b/explore/src/app/home/home.module.ts
index 6749b66b..a51ac75b 100644
--- a/explore/src/app/home/home.module.ts
+++ b/explore/src/app/home/home.module.ts
@@ -27,6 +27,7 @@ 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";
+import {SearchInputModule} from "../openaireLibrary/sharedComponents/search-input/search-input.module";
@NgModule({
imports: [
@@ -37,7 +38,7 @@ import {InputModule} from "../openaireLibrary/sharedComponents/input/input.modul
PiwikServiceModule,
HomeRoutingModule,
HelperModule,
- SEOServiceModule, OtherPortalsModule, EntitiesSelectionModule, QuickSelectionsModule, IconsModule, NumbersModule, AdvancedSearchInputModule, InputModule
+ SEOServiceModule, OtherPortalsModule, EntitiesSelectionModule, QuickSelectionsModule, IconsModule, NumbersModule, AdvancedSearchInputModule, InputModule, SearchInputModule
],
declarations: [
HomeComponent
diff --git a/explore/src/app/sdg/sdg.component.ts b/explore/src/app/sdg/sdg.component.ts
index 7c90088a..2f78b9e7 100644
--- a/explore/src/app/sdg/sdg.component.ts
+++ b/explore/src/app/sdg/sdg.component.ts
@@ -4,12 +4,7 @@ import {properties} from "../../environments/environment";
@Component({
selector: 'explore-sdg',
template: `
-
+
`
})
-export class ExploreSdgComponent {
- piwikSiteId = properties.piwikSiteId;
-
- constructor() {
- }
-}
\ No newline at end of file
+export class ExploreSdgComponent {}
diff --git a/explore/src/assets/explore-assets/funders/coins.svg b/explore/src/assets/explore-assets/funders/coins.svg
new file mode 100644
index 00000000..6b3d73fb
--- /dev/null
+++ b/explore/src/assets/explore-assets/funders/coins.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/explore/src/assets/explore-assets/funders/funders.png b/explore/src/assets/explore-assets/funders/funders.png
new file mode 100644
index 00000000..0ff764f5
Binary files /dev/null and b/explore/src/assets/explore-assets/funders/funders.png differ
diff --git a/explore/src/assets/explore-assets/funders/handshake.svg b/explore/src/assets/explore-assets/funders/handshake.svg
new file mode 100644
index 00000000..03470325
--- /dev/null
+++ b/explore/src/assets/explore-assets/funders/handshake.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/explore/src/assets/explore-assets/home/graph.svg b/explore/src/assets/explore-assets/home/graph.svg
deleted file mode 100644
index a86312f3..00000000
--- a/explore/src/assets/explore-assets/home/graph.svg
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/explore/src/assets/explore-custom.less b/explore/src/assets/explore-custom.less
index e5899a09..92af8ab6 100644
--- a/explore/src/assets/explore-custom.less
+++ b/explore/src/assets/explore-custom.less
@@ -23,12 +23,33 @@
/* Label */
@label-secondary-color: @explore-color;
+/* Subnav */
+@subnav-pill-alt-item-active-background: @explore-color;
+@subnav-pill-alt-item-active-background-gradient: none;
+
/* General */
@general-tab-featured-tab: @explore-color;
/* Landing */
@landing-portal-color: @explore-color;
-.deposit {
+.deposit, .funders {
@import (multiple) "~src/assets/openaire-theme/less/_import";
}
+
+.monitor-dashboard-link {
+ color: @monitor-color;
+}
+
+.funders-title {
+ color: @primary-color;
+}
+
+.custom-extra-entities {
+ padding: 2px 5px;
+ border-radius: 4px;
+ &:hover {
+ text-decoration: none;
+ color: @secondary-color;
+ }
+}
\ No newline at end of file
diff --git a/explore/src/environments/environment.beta.ts b/explore/src/environments/environment.beta.ts
index 1754c11e..78c529f4 100644
--- a/explore/src/environments/environment.beta.ts
+++ b/explore/src/environments/environment.beta.ts
@@ -1,6 +1,8 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
+import {common} from "../app/openaireLibrary/utils/properties/environments/environment.all";
+import {commonBeta} from "../app/openaireLibrary/utils/properties/environments/environment.beta";
-export let properties: EnvProperties = {
+let props: EnvProperties = {
environment: "beta",
adminToolsPortalType: "explore",
dashboard: "explore",
@@ -12,6 +14,7 @@ export let properties: EnvProperties = {
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://beta.services.openaire.eu/stats-tool/",
+ bipFrameAPIURL: "https://bip.imsi.athenarc.gr/api/impact-chart?id=",
useNewStatistisTool: true,
claimsAPIURL: "https://beta.services.openaire.eu/claims/rest/claimsService/",
searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/",
@@ -32,6 +35,7 @@ export let properties: EnvProperties = {
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
+ // swhURL: "https://archive.softwareheritage.org/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
@@ -60,6 +64,7 @@ export let properties: EnvProperties = {
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/api/",
+ monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service",
adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity: "openaire",
@@ -82,6 +87,7 @@ export let properties: EnvProperties = {
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
+ searchLinkToAll: "/search/find/",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
@@ -124,3 +130,7 @@ export let properties: EnvProperties = {
egiNotebookLink: "https://marketplace.eosc-portal.eu/services/egi-notebooks?q=EGI+Notebook"
};
+
+export let properties: EnvProperties = {
+ ...props, ...common, ...commonBeta
+}
diff --git a/explore/src/environments/environment.prod.ts b/explore/src/environments/environment.prod.ts
index ae4ab27e..2560b132 100644
--- a/explore/src/environments/environment.prod.ts
+++ b/explore/src/environments/environment.prod.ts
@@ -1,6 +1,8 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
+import {common} from "../app/openaireLibrary/utils/properties/environments/environment.all";
+import {commonProd} from "../app/openaireLibrary/utils/properties/environments/environment.prod";
-export let properties: EnvProperties = {
+ let props: EnvProperties = {
environment: "production",
adminToolsPortalType: "explore",
dashboard: "explore",
@@ -12,6 +14,7 @@ export let properties: EnvProperties = {
statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/",
statisticsFrameAPIURL: "https://www.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/",
+ bipFrameAPIURL: "https://bip.imsi.athenarc.gr/api/impact-chart?id=",
useNewStatistisTool: true,
claimsAPIURL: "https://services.openaire.eu/claims/rest/claimsService/",
searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/",
@@ -32,6 +35,7 @@ export let properties: EnvProperties = {
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
+ // swhURL: "https://archive.softwareheritage.org/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
@@ -64,6 +68,7 @@ export let properties: EnvProperties = {
datasourcesAPI: "https://services.openaire.eu/openaire/ds/api/",
+ monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service",
adminToolsAPIURL: "https://services.openaire.eu/uoa-admin-tools/",
adminToolsCommunity: "openaire",
@@ -87,6 +92,7 @@ export let properties: EnvProperties = {
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
+ searchLinkToAll: "/search/find/",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
@@ -127,3 +133,7 @@ export let properties: EnvProperties = {
myOrcidLinksPage: "/my-orcid-links",
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};
+
+export let properties: EnvProperties = {
+ ...props, ...common, ...commonProd
+}
\ No newline at end of file
diff --git a/explore/src/environments/environment.test.ts b/explore/src/environments/environment.test.ts
index 0af87fef..6866186d 100644
--- a/explore/src/environments/environment.test.ts
+++ b/explore/src/environments/environment.test.ts
@@ -1,6 +1,9 @@
import {EnvProperties} from "../app/openaireLibrary/utils/properties/env-properties";
+import {common} from "../app/openaireLibrary/utils/properties/environments/environment.all";
+import {commonTest} from "../app/openaireLibrary/utils/properties/environments/environment.test";
-export let properties: EnvProperties = {
+let props: EnvProperties = {
+// export let properties: EnvProperties = {
environment: "test",
dashboard: "explore",
adminToolsPortalType: "explore",
@@ -32,6 +35,7 @@ export let properties: EnvProperties = {
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
+ // swhURL: "https://archive.softwareheritage.org/",
fairSharingURL: "https://fairsharing.org/",
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
@@ -86,6 +90,7 @@ export let properties: EnvProperties = {
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
+ searchLinkToAll: "/search/find/",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
@@ -126,3 +131,7 @@ export let properties: EnvProperties = {
myOrcidLinksPage: "/my-orcid-links",
footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452"
};
+
+export let properties: EnvProperties = {
+ ...props, ...common, ...commonTest
+}
\ No newline at end of file
diff --git a/explore/src/environments/environment.ts b/explore/src/environments/environment.ts
index b8789608..95a82a05 100644
--- a/explore/src/environments/environment.ts
+++ b/explore/src/environments/environment.ts
@@ -4,8 +4,10 @@
// The list 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} from "../app/openaireLibrary/utils/properties/environments/environment.all";
+import {commonDev} from "../app/openaireLibrary/utils/properties/environments/environment";
-export let properties: EnvProperties = {
+let props: EnvProperties = {
environment: "development",
adminToolsPortalType: "explore",
dashboard: "explore",
@@ -17,20 +19,26 @@ export let properties: EnvProperties = {
statisticsAPIURL: "http://vatopedi.di.uoa.gr:8080/stats/",
statisticsFrameAPIURL: "https://beta.openaire.eu/stats/",
statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/",
+ bipFrameAPIURL: "https://bip.imsi.athenarc.gr/api/impact-chart?id=",
useNewStatistisTool: true,
claimsAPIURL: "http://rudie.di.uoa.gr:8980/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/",
// claimsAPIURL: "http://dl170.madgik.di.uoa.gr:8180/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/",
+ // From here
searchAPIURLLAst: "http://beta.services.openaire.eu/search/v2/api/",
searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources",
+ // to here
openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=",
csvAPIURL: "https://beta.services.openaire.eu/search/v2/api/reports",
+ // From here
searchCrossrefAPIURL: "https://api.crossref.org/works",
searchDataciteAPIURL: "https://api.datacite.org/works",
searchOrcidURL: "https://pub.orcid.org/v2.1/",
orcidURL: "https://orcid.org/",
+ // to here
orcidAPIURL: "http://duffy.di.uoa.gr:19480/uoa-orcid-service/",
orcidTokenURL : "https://sandbox.orcid.org/oauth/authorize?",
orcidClientId: "APP-A5M3KTX6NCN67L91",
+ // From here
doiURL: "https://doi.org/",
pmcURL: "http://europepmc.org/articles/",
pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/",
@@ -38,8 +46,11 @@ export let properties: EnvProperties = {
cordisURL: "http://cordis.europa.eu/projects/",
openDoarURL: "http://v2.sherpa.ac.uk/id/repository/",
r3DataURL: "http://service.re3data.org/repository/",
+ // swhURL: "https://archive.softwareheritage.org/",
fairSharingURL: "https://fairsharing.org/",
+ // to here
eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/",
+ // From here
sherpaURL: "http://sherpa.ac.uk/romeo/issn/",
sherpaURLSuffix: "/",
zenodo: "https://zenodo.org/",
@@ -48,6 +59,7 @@ export let properties: EnvProperties = {
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",
+ // to here
helpdesk: "https://www.openaire.eu/support/helpdesk",
helpdeskEmail: "helpdesk@openaire.eu",
utilsService: "http://dl170.madgik.di.uoa.gr:8000",
@@ -65,6 +77,7 @@ export let properties: EnvProperties = {
cacheUrl: "http://dl170.madgik.di.uoa.gr:3000/get?url=",
+ monitorServiceAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service",
adminToolsAPIURL: "http://duffy.di.uoa.gr:19280/uoa-admin-tools/",
adminToolsCommunity: "openaire",
@@ -88,6 +101,7 @@ export let properties: EnvProperties = {
searchLinkToOrp: "/search/other?orpId=",
searchLinkToOrganization: "/search/organization?organizationId=",
+ searchLinkToAll: "/search/find/",
searchLinkToPublications: "/search/find/publications",
searchLinkToDataProviders: "/search/find/dataproviders",
searchLinkToProjects: "/search/find/projects",
@@ -130,3 +144,7 @@ export let properties: EnvProperties = {
egiNotebookLink: "https://marketplace.eosc-portal.eu/services/egi-notebooks?q=EGI+Notebook"
};
+
+export let properties: EnvProperties = {
+ ...props, ...common, ...commonDev
+}
\ No newline at end of file
diff --git a/explore/tsconfig.json b/explore/tsconfig.json
index fc8b4c1a..f7c5a9bf 100644
--- a/explore/tsconfig.json
+++ b/explore/tsconfig.json
@@ -18,5 +18,8 @@
"es2018",
"dom"
]
- }
+ },
+// "angularCompilerOptions": {
+// "strictTemplates": true
+// }
}
diff --git a/services/utils-service/properties.file b/services/utils-service/properties.file
index ed2c1d79..4f43d8fc 100644
--- a/services/utils-service/properties.file
+++ b/services/utils-service/properties.file
@@ -1,4 +1,4 @@
-userInfoUrl = http://mpagasas.di.uoa.gr:8080/login-service/userInfo
+userInfoUrl = http://mpagasas.di.uoa.gr:19080/login-service/userInfo
ssl = false
localPath = true
# photo size in KB