diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index fd0adef..cd3e101 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -94,6 +94,14 @@ const routes: Routes = [ loadChildren: () => import('./reload/libReload.module').then(m => m.LibReloadModule), data: {hasSidebar: false} }, + { + 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: 'user-info', loadChildren: () => import('./login/libUser.module').then(m => m.LibUserModule)}, {path: 'error', component: OpenaireErrorPageComponent} ]; diff --git a/src/app/develop/develop.component.ts b/src/app/develop/develop.component.ts index ceb6ad6..7419bb2 100644 --- a/src/app/develop/develop.component.ts +++ b/src/app/develop/develop.component.ts @@ -7,91 +7,82 @@ import {AggregatorInfo, PortalAggregators} from "../utils/aggregators"; import {ConnectHelper} from "../openaireLibrary/connect/connectHelper"; import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service"; import {Subscription} from "rxjs"; +import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields"; @Component({ selector: 'develop', template: ` -
-
-
-

- Develop -

-
-

Help developers with OpenAIRE APIs -

-
- Not sure where to start? Let us give you some guides and request examples. -
-

- For research outcomes - (publications, datasets, software and other research data) you can use the - Selective Access APIs - by adding the country parameter. -

-
-
- -

- Request examples: -

-
    -
  • - Access “Publications”
    - GET - https://api.openaire.eu/search/publications?country={{aggregator.valueId}} -
  • -
  • - Access “Open Access Publications”
    - GET - http://api.openaire.eu/search/publications?country={{aggregator.valueId}}&OA=true -
  • -
  • - Access “Datasets”
    - GET - https://api.openaire.eu/search/datasets?country={{aggregator.valueId}} -
  • -
  • - Access “Software”
    - GET - https://api.openaire.eu/search/software?country={{aggregator.valueId}} -
  • -
  • - Access “Other Research”
    - GET - https://api.openaire.eu/search/other?country={{aggregator.valueId}} -
  • -
-
-
-
- -
-
-
-
-
- For more information on the full potential of the OpenAIRE APIs please check - the OpenAIRE API Documentation. -
-
-
-
-
-
+
+
+

OpenAIRE APIs
for developers.

+
+
+
+
+
+
+ +
+

For {{openaireEntities.RESULTS | lowercase}}

+
+ For {{openaireEntities.RESULTS | lowercase}} ({{openaireEntities.PUBLICATIONS | lowercase}}, {{openaireEntities.DATASETS | lowercase}}, {{openaireEntities.SOFTWARE | lowercase}} and {{openaireEntities.OTHER | lowercase}}) you can use the Selective Access APIs by adding the community parameter. +
+ + + Selective Access APIs + + +
+
+
+
+
Request examples:
+
    +
  • + Access all {{openaireEntities.RESULTS}} ({{openaireEntities.PUBLICATIONS}}, {{openaireEntities.DATASETS}}, {{openaireEntities.SOFTWARE}}, {{openaireEntities.OTHER}})
    + GET + https://api.openaire.eu/search/researchProducts?country={{aggregator.valueId}} +
  • +
  • + Access {{openaireEntities.PUBLICATIONS}}
    + GET + https://api.openaire.eu/search/publications?country={{aggregator.valueId}} +
  • +
  • + Access Open Access {{openaireEntities.PUBLICATIONS}}
    + GET + http://api.openaire.eu/search/publications?country={{aggregator.valueId}}&OA=true +
  • +
  • + Access {{openaireEntities.DATASETS}}
    + GET + https://api.openaire.eu/search/datasets?country={{aggregator.valueId}} +
  • +
  • + Access {{openaireEntities.SOFTWARE}}
    + GET + https://api.openaire.eu/search/software?country={{aggregator.valueId}} +
  • +
  • + Access {{openaireEntities.OTHER}}
    + GET + https://api.openaire.eu/search/other?country={{aggregator.valueId}} +
  • +
+
+
+
+
+
`, styleUrls: ['develop.component.css'] }) export class DevelopComponent implements OnInit { public aggregator: AggregatorInfo = null; + public openaireEntities = OpenaireEntities; + subs: Subscription[] = []; constructor(private seoService: SEOService, @@ -105,34 +96,29 @@ export class DevelopComponent implements OnInit { } } ngOnInit() { - - let id = ConnectHelper.getCommunityFromDomain(properties.domain); - this.aggregator = PortalAggregators.getFilterInfoByMenuId(id); - if (this.aggregator) { - - /* Metadata */ - const url = properties.domain + properties.baseLink + this._router.url; - this.seoService.createLinkForCanonicalURL(url, false); - this._meta.updateTag({content: url}, "property='og:url'"); - const description = "Develop | " + this.aggregator.valueName; - const title = "Develop | " + this.aggregator.valueName; - this._meta.updateTag({content: description}, "name='description'"); - this._meta.updateTag({content: description}, "property='og:description'"); - this._meta.updateTag({content: title}, "property='og:title'"); - this._title.setTitle(title); - if(properties.enablePiwikTrack && (typeof document !== 'undefined')){ - this.subs.push(this._piwikService.trackView(properties, "OpenAIRE").subscribe()); - } - - }else { - this.navigateToError(); - } - + let id = ConnectHelper.getCommunityFromDomain(properties.domain); + this.aggregator = PortalAggregators.getFilterInfoByMenuId(id); + if (this.aggregator) { + /* Metadata */ + const url = properties.domain + properties.baseLink + this._router.url; + this.seoService.createLinkForCanonicalURL(url, false); + this._meta.updateTag({content: url}, "property='og:url'"); + const description = "Develop | " + this.aggregator.valueName; + const title = "Develop | " + this.aggregator.valueName; + this._meta.updateTag({content: description}, "name='description'"); + this._meta.updateTag({content: description}, "property='og:description'"); + this._meta.updateTag({content: title}, "property='og:title'"); + this._title.setTitle(title); + if(properties.enablePiwikTrack && (typeof document !== 'undefined')){ + this.subs.push(this._piwikService.trackView(properties, "OpenAIRE").subscribe()); + } + }else { + this.navigateToError(); + } } private navigateToError() { this._router.navigate([properties.errorLink], {queryParams: {'page': this._router.url}}); } - } diff --git a/src/app/develop/develop.module.ts b/src/app/develop/develop.module.ts index 73d6fcc..0114f33 100644 --- a/src/app/develop/develop.module.ts +++ b/src/app/develop/develop.module.ts @@ -4,16 +4,17 @@ import {DevelopComponent} from "./develop.component"; import {RouterModule} from "@angular/router"; import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; import {PiwikServiceModule} from "../openaireLibrary/utils/piwik/piwikService.module"; +import {IconsModule} from "../openaireLibrary/utils/icons/icons.module"; @NgModule({ declarations: [DevelopComponent], - imports: [CommonModule,PiwikServiceModule, RouterModule.forChild([ + imports: [CommonModule, PiwikServiceModule, RouterModule.forChild([ { path: '', component: DevelopComponent, canDeactivate: [PreviousRouteRecorder] }, - ])], + ]), IconsModule], exports: [DevelopComponent] }) export class DevelopModule { diff --git a/src/app/fos/fos-routing.module.ts b/src/app/fos/fos-routing.module.ts new file mode 100644 index 0000000..549c25f --- /dev/null +++ b/src/app/fos/fos-routing.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from "@angular/core"; +import {RouterModule} from "@angular/router"; +import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {AggregatorFosComponent} from "./fos.component"; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { + path: '', + component: AggregatorFosComponent, + canDeactivate: [PreviousRouteRecorder] + } + ]) + ] +}) +export class LibFosRoutingModule { } \ No newline at end of file diff --git a/src/app/fos/fos.component.ts b/src/app/fos/fos.component.ts new file mode 100644 index 0000000..ba0aa00 --- /dev/null +++ b/src/app/fos/fos.component.ts @@ -0,0 +1,16 @@ +import {Component} from "@angular/core"; +import {properties} from "../../environments/environment"; + +@Component({ + selector: 'aggregator-fos', + template: ` + + ` +}) +export class AggregatorFosComponent { + piwikSiteId = properties.piwikSiteId; + + constructor() { + + } +} \ No newline at end of file diff --git a/src/app/fos/fos.module.ts b/src/app/fos/fos.module.ts new file mode 100644 index 0000000..34420aa --- /dev/null +++ b/src/app/fos/fos.module.ts @@ -0,0 +1,26 @@ +import {CommonModule} from "@angular/common"; +import {NgModule} from "@angular/core"; +import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {LibFosRoutingModule} from "./fos-routing.module"; +import {FosRoutingModule} from "../openaireLibrary/fos/fos-routing.module"; +import {FosModule} from "../openaireLibrary/fos/fos.module"; +import {AggregatorFosComponent} from "./fos.component"; + +@NgModule({ + imports: [ + CommonModule, + LibFosRoutingModule, + FosRoutingModule, + FosModule + ], + declarations: [ + AggregatorFosComponent + ], + exports: [ + AggregatorFosComponent + ], + providers: [ + PreviousRouteRecorder + ] +}) +export class LibFosModule { } \ No newline at end of file diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html index 06803c8..d5241b7 100644 --- a/src/app/home/home.component.html +++ b/src/app/home/home.component.html @@ -1,155 +1,140 @@ -
-
-
-
- - -
-
-
-
- +
+
+
+
+
+

+ Discover open linked research. +

+
+
+ A comprehensive and open dataset of research information covering + {{numbers.publicationsSize.number|number}}{{numbers.publicationsSize.size}} {{openaireEntities.PUBLICATIONS.toLowerCase()}} + , + {{numbers.datasetsSize.number|number}}{{numbers.datasetsSize.size}} {{openaireEntities.DATASETS.toLowerCase()}} + , + {{numbers.softwareSize.number|number}}{{numbers.softwareSize.size}} {{openaireEntities.SOFTWARE.toLowerCase()}} items + , + from + {{numbers.datasourcesSize.number|number}}{{numbers.datasourcesSize.size}} {{openaireEntities.DATASOURCES.toLowerCase()}} + , linked to + {{numbers.projectsSize.number|number}}{{numbers.projectsSize.size}} grants + and + {{numbers.organizationsSize.number|number}}{{numbers.organizationsSize.size}} {{openaireEntities.ORGANIZATIONS.toLowerCase()}}. +
+
All linked together through citations and semantics.
+
+
+ + +
+
+
+
+ +
+
+
+ +
+
+
+ +
-
- -
-
-
-
-
-
{{aggregator.graphSectionTitle}}
-

-

-
-
-
- Read more -
-
- Read less -
-
-
-
-
- -
-
- -
-
-
-
-
- - - - -
-

Our growing Community

- -
-
-
-
-
-
-
-
-
-
Share
- -
Deposit your research -
- -
-
Deposit in a repository of your choice.
- Select an OpenAIRE compatible
- repository (2.0 +) so that your research is linked to your funding information. Use Zenodo, a - catch-all repository hosted by CERN to deposit all your research results (publications, data, - software, etc.) -
-
- Deposit
-
- -
-
-
Share
- -
Link your work
- -
-
Connect all your research.
- If you can't find your research results in OpenAIRE, don't worry! Use our Link Out service , that - reaches out to many
- external sources via APIs, to connect
- your research results and claim them to your project. -
-
- Link
-
-
-
-
-
-
-
- - - - - - - - - +
+
+
+
+
+

{{aggregator.graphSectionTitle}}.

+

+
+
+
+ OpenAIRE Research Graph +
+
+
+
+ + + +
+

Share your research.

+
+
+
+ Linking +
Link your work.
+
+ Connect all your research. If you can’t find your research results in OpenAIRE, don’t worry! Use our Link Out service , that reaches out to many external sources via APIs, to connect your research results and claim them to your project. +
+ + Learn More + +
+
+
+
+ Deposit +
Deposit your research.
+
+ Whether it’s publications, data or software, select an OpenAIRE compatible repository and share using community standards. Alternatively use Zenodo, a catch-all repository hosted by CERN. All results will be indexed, discoverable and accessible via Canada Explore. +
+ + Learn More + +
+
+
+
+
\ No newline at end of file diff --git a/src/app/home/home.component.less b/src/app/home/home.component.less new file mode 100644 index 0000000..b8c73fa --- /dev/null +++ b/src/app/home/home.component.less @@ -0,0 +1,9 @@ +@import (reference) "~src/assets/openaire-theme/less/_import-variables"; + +.link-actions img { + width: 17px; +} + +.uk-card.funder { + border-bottom: 4px solid fade(@organization-color, 30%); +} \ No newline at end of file diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts index 2984c22..1d7eba1 100644 --- a/src/app/home/home.component.ts +++ b/src/app/home/home.component.ts @@ -1,5 +1,5 @@ import {ChangeDetectorRef, Component, ViewChild} from '@angular/core'; -import {Subscription, zip} from 'rxjs'; +import {of, Subscription, zip} from 'rxjs'; import {ActivatedRoute, Router} from '@angular/router'; import {Location} from '@angular/common'; import {Meta, Title} from '@angular/platform-browser'; @@ -24,11 +24,13 @@ import {properties} from "../../environments/environment"; import {portalProperties} from "../../environments/environment-aggregator"; import {StringUtils} from "../openaireLibrary/utils/string-utils.class"; import {ConnectHelper} from "../openaireLibrary/connect/connectHelper"; -import {NumbersComponent} from "../openaireLibrary/sharedComponents/numbers/numbers.component"; +import {Numbers, NumbersComponent} from "../openaireLibrary/sharedComponents/numbers/numbers.component"; +import {NumberUtils} from '../openaireLibrary/utils/number-utils.class'; @Component({ selector: 'home', templateUrl: 'home.component.html', + styleUrls: ['home.component.less'] }) export class HomeComponent { public keyword:string = ""; @@ -36,6 +38,7 @@ export class HomeComponent { public searchFields:SearchFields = new SearchFields(); public errorCodes:ErrorCodes = new ErrorCodes(); public routerHelper:RouterHelper = new RouterHelper(); + public numbers: Numbers = {}; showPublications: boolean = portalProperties.entities.publication.isEnabled; showDatasets: boolean = portalProperties.entities.dataset.isEnabled; showSoftware: boolean = portalProperties.entities.software.isEnabled; @@ -44,6 +47,7 @@ export class HomeComponent { showProjects: boolean = portalProperties.entities.project.isEnabled; showDataProviders: boolean = portalProperties.entities.datasource.isEnabled; properties: EnvProperties = properties; + public openaireEntities = OpenaireEntities; public readMore: boolean = false; private noOfFunders = 3; @@ -66,7 +70,9 @@ export class HomeComponent { customFilter:SearchCustomFilter= null; aggregatorId; aggregator:AggregatorInfo; - @ViewChild('numbersComponent', { static: true }) numbersComponent: NumbersComponent; + // @ViewChild('numbersComponent', { static: true }) numbersComponent: NumbersComponent; + + numbersLimit: number = 100; constructor ( private route: ActivatedRoute, @@ -85,7 +91,7 @@ export class HomeComponent { this.aggregator = PortalAggregators.getFilterInfoByMenuId(this.aggregatorId); this.customFilter = PortalAggregators.getSearchCustomFilterByAggregator(this.aggregator); let description = "OpenAIRE Explore: Over 100M of research deduplicated, 170K research software, 11M research data. One of the largest open scholarly records collection worldwide."; - let title = "OpenAIRE - Explore| " +this.aggregator.title; + let title = "OpenAIRE - Explore | " +this.aggregator.title; this._title.setTitle(title); this._meta.updateTag({content:description},"name='description'"); @@ -131,22 +137,19 @@ export class HomeComponent { this.showDataProviders = !!showEntity["datasource"]; this.showOrganizations = !!showEntity["organization"]; if(this.showPublications){ - this.resultTypes.values.push({name: OpenaireEntities.PUBLICATIONS , id:"publications",selected:false, number:0}); + this.resultTypes.values.push({name: this.openaireEntities.PUBLICATIONS , id:"publications",selected:false, number:0}); } if(this.showDatasets){ - this.resultTypes.values.push({name: OpenaireEntities.DATASETS , id:"datasets",selected:false, number:0}); + this.resultTypes.values.push({name: this.openaireEntities.DATASETS , id:"datasets",selected:false, number:0}); } if(this.showSoftware){ - this.resultTypes.values.push({name: OpenaireEntities.SOFTWARE , id:"software",selected:false, number:0}); + this.resultTypes.values.push({name: this.openaireEntities.SOFTWARE , id:"software",selected:false, number:0}); } if(this.showOrp){ - this.resultTypes.values.push({name: OpenaireEntities.OTHER , id:"other",selected:false, number:0}); - } - if(this.numbersComponent) { - this.numbersComponent.init(false, false, this.showPublications, this.showDatasets, - this.showSoftware, this.showOrp, this.showProjects, this.showDataProviders, this.customFilter ? - StringUtils.URIEncode(this.customFilter.queryFieldName + " exact " + StringUtils.quote((this.customFilter.valueId))) : ''); + this.resultTypes.values.push({name: this.openaireEntities.OTHER , id:"other",selected:false, number:0}); } + this.init(false, false, this.showPublications, this.showDatasets, this.showSoftware, this.showOrp, this.showProjects, this.showDataProviders, this.showOrganizations, + this.customFilter ? StringUtils.URIEncode(this.customFilter.queryFieldName + " exact " + StringUtils.quote((this.customFilter.valueId))) : ''); this.getFunders(); } }, @@ -281,7 +284,6 @@ export class HomeComponent { } } }); - // console.log(this.funders); })); } @@ -295,8 +297,87 @@ export class HomeComponent { return false; } + init(getDatasetsLinked = false, getSoftwareLinked = false, getPublications = true, getDatasets = true, + getSoftware = true, getOther = true, getProjects = true, getDataProviders = true, getOrganizations = true, refineValue: string = null) { + let refineParams = (refineValue) ? ('&fq=' + refineValue) : null; + this.subs.push(zip( + (getPublications) ? this._searchResearchResultsService.numOfSearchResults('publication', '', this.properties, refineParams) : of(0), + (getDatasets) ? this._searchResearchResultsService.numOfSearchResults('dataset', '', this.properties, refineParams) : of(0), + (getDatasetsLinked) ? this._searchResearchResultsService.numOfSearchResultsLinkedToPub("dataset", this.properties) : of(0), + (getSoftware) ? this._searchResearchResultsService.numOfSearchResults('software', '', this.properties, refineParams) : of(0), + (getSoftwareLinked) ? this._searchResearchResultsService.numOfSearchResultsLinkedToPub("software", this.properties) : of(0), + (getOther) ? this._searchResearchResultsService.numOfSearchResults('other', '', this.properties, refineParams) : of(0), + (getProjects) ? this._refineFieldResultsService.getRefineFieldsResultsByEntityName(['funder'], 'project', this.properties, refineParams) : of(0), + (getDataProviders) ? this._searchDataprovidersService.numOfSearchDataproviders('', this.properties, refineParams) : of(0), + (getOrganizations) ? this._searchOrganizationsService.numOfSearchOrganizations2('', this.properties, refineParams) : of(0) + ).subscribe((data: any[]) => { + if (data[0] && data[0] > 0) { + this.numbers.publicationsSize = NumberUtils.roundNumber(data[0]); + } + if (data[1] && data[1] > 0) { + this.numbers.datasetsSize = NumberUtils.roundNumber(data[1]); + } + if (data[2] && data[2] > 0) { + this.numbers.datasetsLinkedSize = NumberUtils.roundNumber(data[2]); + } + if (data[3] && data[3] > 0) { + this.numbers.softwareSize = NumberUtils.roundNumber(data[3]); + } + if (data[4] && data[4] > 0) { + this.numbers.softwareLinkedSize = NumberUtils.roundNumber(data[4]); + } + if (data[5] && data[5] > 0) { + this.numbers.otherSize = NumberUtils.roundNumber(data[5]); + } + if (data[6][0] && data[6][0] > 0) { + this.numbers.projectsSize = NumberUtils.roundNumber(data[6][0]); + } + if (data[6][1] && data[6][1].length > 0 && data[6][1][0].filterId == 'funder' && data[6][1][0].values) { + this.numbers.fundersSize = NumberUtils.roundNumber(data[6][1][0].values.length); + } + if (data[7] && data[7] > 0) { + this.numbers.datasourcesSize = NumberUtils.roundNumber(data[7]); + } + if (data[8] && data[8] > 0) { + this.numbers.organizationsSize = NumberUtils.roundNumber(data[8]); + } + }, err => { + this.handleError('Error getting numbers', err); + })); +} + disableSelectChange(event: boolean) { this.disableSelect = event; this.cdr.detectChanges(); + } + + public get showContentWithNumbers() { + if (this.numbers && (this.hasPublications || this.hasDatasets || this.hasSoftware || this.hasDatasources || this.hasProjects || this.hasOrganizations)) { + return true; + } + } + + public get hasPublications() { + return this.showPublications && this.numbers.publicationsSize && this.numbers.publicationsSize.number >= this.numbersLimit; + } + + public get hasDatasets() { + return this.showDatasets && this.numbers.datasetsSize && this.numbers.datasetsSize.number >= this.numbersLimit; + } + + public get hasSoftware() { + return this.showSoftware && this.numbers.softwareSize && this.numbers.softwareSize.number >= this.numbersLimit; + } + + public get hasDatasources() { + return this.showDataProviders && this.numbers.datasourcesSize && this.numbers.datasourcesSize.number >= this.numbersLimit; + } + + public get hasProjects() { + return this.showProjects && this.numbers.projectsSize && this.numbers.projectsSize.number >= this.numbersLimit; + } + + public get hasOrganizations() { + return this.showOrganizations && this.numbers.organizationsSize && this.numbers.organizationsSize.number >= this.numbersLimit; } } diff --git a/src/app/sdg/sdg-routing.module.ts b/src/app/sdg/sdg-routing.module.ts new file mode 100644 index 0000000..825cdc1 --- /dev/null +++ b/src/app/sdg/sdg-routing.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from "@angular/core"; +import {RouterModule} from "@angular/router"; +import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {AggregatorSdgComponent} from "./sdg.component"; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { + path: '', + component: AggregatorSdgComponent, + canDeactivate: [PreviousRouteRecorder] + } + ]) + ] +}) +export class LibSdgRoutingModule { } \ No newline at end of file diff --git a/src/app/sdg/sdg.component.ts b/src/app/sdg/sdg.component.ts new file mode 100644 index 0000000..a83f31c --- /dev/null +++ b/src/app/sdg/sdg.component.ts @@ -0,0 +1,26 @@ +import {Component} from "@angular/core"; +import {properties} from "../../environments/environment"; +import {ConnectHelper} from "../openaireLibrary/connect/connectHelper"; +import {SearchCustomFilter} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {AggregatorInfo, PortalAggregators} from "../utils/aggregators"; + +@Component({ + selector: 'aggregator-sdg', + template: ` + + ` +}) +export class AggregatorSdgComponent { + piwikSiteId = properties.piwikSiteId; + aggregatorId; + aggregator: AggregatorInfo; + customFilter: SearchCustomFilter = null; + + constructor() { + this.aggregatorId = ConnectHelper.getCommunityFromDomain(properties.domain); + this.aggregator = PortalAggregators.getFilterInfoByMenuId(this.aggregatorId); + this.customFilter = PortalAggregators.getSearchCustomFilterByAggregator(this.aggregator); + } + + public ngOnInit() {} +} \ No newline at end of file diff --git a/src/app/sdg/sdg.module.ts b/src/app/sdg/sdg.module.ts new file mode 100644 index 0000000..bf78a74 --- /dev/null +++ b/src/app/sdg/sdg.module.ts @@ -0,0 +1,26 @@ +import {CommonModule} from "@angular/common"; +import {NgModule} from "@angular/core"; +import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {LibSdgRoutingModule} from "./sdg-routing.module"; +import {SdgRoutingModule} from "../openaireLibrary/sdg/sdg-routing.module"; +import {SdgModule} from "../openaireLibrary/sdg/sdg.module"; +import {AggregatorSdgComponent} from "./sdg.component"; + +@NgModule({ + imports: [ + CommonModule, + LibSdgRoutingModule, + SdgRoutingModule, + SdgModule + ], + declarations: [ + AggregatorSdgComponent + ], + exports: [ + AggregatorSdgComponent + ], + providers: [ + PreviousRouteRecorder + ] +}) +export class LibSdgModule { } \ No newline at end of file diff --git a/src/app/utils/aggregators.ts b/src/app/utils/aggregators.ts index 473cfac..e836df8 100644 --- a/src/app/utils/aggregators.ts +++ b/src/app/utils/aggregators.ts @@ -74,7 +74,7 @@ export class PortalAggregators { new AggregatorInfo("greece", "Greek Aggregator", "assets/common-assets/logo-small-aggregator.png", "Country", "country", "GR", "Greece") ]; static disabled = { - "canada": {pages: ["/search/find/services"], entities: ["software", "service"]}, + "canada": {pages: ["/search/find/services"], entities: ["service"]}, "italy": {pages: ["/search/find/services"], entities: ["service"]}, "greece": {pages: ["/search/find/services"], entities: ["service"]} }; diff --git a/src/assets/aggregator-assets/home/canada.png b/src/assets/aggregator-assets/home/canada.png new file mode 100644 index 0000000..b2f9fb1 Binary files /dev/null and b/src/assets/aggregator-assets/home/canada.png differ diff --git a/src/assets/aggregator-assets/home/deposit-home-img.svg b/src/assets/aggregator-assets/home/deposit-home-img.svg new file mode 100644 index 0000000..18f579c --- /dev/null +++ b/src/assets/aggregator-assets/home/deposit-home-img.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/aggregator-assets/home/linking-home-img.svg b/src/assets/aggregator-assets/home/linking-home-img.svg new file mode 100644 index 0000000..e905820 --- /dev/null +++ b/src/assets/aggregator-assets/home/linking-home-img.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/aggregator-assets/home/mask.svg b/src/assets/aggregator-assets/home/mask.svg new file mode 100644 index 0000000..11e6f1e --- /dev/null +++ b/src/assets/aggregator-assets/home/mask.svg @@ -0,0 +1 @@ + \ No newline at end of file