From 000cfca0954cf09e792a861c1fcd70a225623ae1 Mon Sep 17 00:00:00 2001 From: Konstantinos Triantafyllou Date: Mon, 29 Jun 2020 13:16:21 +0000 Subject: [PATCH] [Monitor | Trunk]: Add search functionality git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor@59008 d315682c-612b-4755-9ff5-7f18f6832af3 --- angular.json | 1 + src/app/app-routing.module.ts | 17 ++- src/app/app.component.ts | 108 ++++++++++++++---- src/app/app.module.ts | 2 +- src/app/home/home.component.html | 10 +- .../search-stakeholders.component.ts | 4 +- .../dataProvider-routing.module.ts | 15 +++ .../dataProvider/dataProvider.component.ts | 8 ++ .../dataProvider/libDataProvider.module.ts | 18 +++ .../dataset/dataset-routing.module.ts | 15 +++ .../landingPages/dataset/dataset.component.ts | 9 ++ .../landingPages/dataset/libDataset.module.ts | 14 +++ .../htmlProjectReport-routing.module.ts | 16 +++ .../htmlProjectReport.component.ts | 7 ++ .../libHtmlProjectReport.module.ts | 20 ++++ .../organization/libOrganization.module.ts | 20 ++++ .../organization-routing.module.ts | 16 +++ .../organization/organization.component.ts | 8 ++ .../search/landingPages/orp/libOrp.module.ts | 23 ++++ .../landingPages/orp/orp-routing.module.ts | 15 +++ .../search/landingPages/orp/orp.component.ts | 10 ++ .../landingPages/project/libProject.module.ts | 20 ++++ .../project/project-routing.module.ts | 14 +++ .../landingPages/project/project.component.ts | 8 ++ .../publication/libPublication.module.ts | 15 +++ .../publication/publication-routing.module.ts | 14 +++ .../publication/publication.component.ts | 9 ++ .../landingPages/result/libResult.module.ts | 14 +++ .../result/result-routing.module.ts | 15 +++ .../landingPages/result/result.component.ts | 9 ++ .../software/libSoftware.module.ts | 14 +++ .../software/software-routing.module.ts | 15 +++ .../software/software.component.ts | 9 ++ src/app/search/links-resolver.ts | 36 ++++++ src/app/search/search.module.ts | 32 ++++++ .../searchDataProviders-routing.module.ts | 16 +++ .../advanced/searchDataProviders.module.ts | 24 ++++ .../advanced/searchDataproviders.component.ts | 52 +++++++++ .../searchOrganizations-routing.module.ts | 17 +++ .../advanced/searchOrganizations.component.ts | 10 ++ .../advanced/searchOrganizations.module.ts | 26 +++++ .../advanced/searchProjects-routing.module.ts | 16 +++ .../advanced/searchProjects.component.ts | 54 +++++++++ .../advanced/searchProjects.module.ts | 24 ++++ .../searchResearchResults-routing.module.ts | 16 +++ .../searchResearchResults.component.ts | 49 ++++++++ .../advanced/searchResearchResults.module.ts | 25 ++++ .../searchPages/find/libSearch.module.ts | 22 ++++ .../find/mainSearch-routing.module.ts | 19 +++ .../searchPages/find/search.component.ts | 42 +++++++ .../searchDataProviders-routing.module.ts | 16 +++ .../simple/searchDataProviders.module.ts | 24 ++++ .../simple/searchDataproviders.component.ts | 52 +++++++++ .../searchOrganizations-routing.module.ts | 17 +++ .../simple/searchOrganizations.component.ts | 10 ++ .../simple/searchOrganizations.module.ts | 26 +++++ .../simple/searchProjects-routing.module.ts | 16 +++ .../simple/searchProjects.component.ts | 54 +++++++++ .../simple/searchProjects.module.ts | 24 ++++ .../searchResearchResults-routing.module.ts | 15 +++ .../simple/searchResearchResults.component.ts | 50 ++++++++ .../simple/searchResearchResults.module.ts | 25 ++++ src/assets/monitor-custom.css | 10 +- src/assets/theme-changes.css | 5 + src/environments/environment.beta.ts | 21 ++-- src/environments/environment.prod.ts | 19 +-- src/environments/environment.ts | 24 ++-- src/index.html | 13 ++- src/material.scss | 9 ++ src/styles.css | 4 +- 70 files changed, 1352 insertions(+), 74 deletions(-) create mode 100644 src/app/search/landingPages/dataProvider/dataProvider-routing.module.ts create mode 100644 src/app/search/landingPages/dataProvider/dataProvider.component.ts create mode 100644 src/app/search/landingPages/dataProvider/libDataProvider.module.ts create mode 100644 src/app/search/landingPages/dataset/dataset-routing.module.ts create mode 100644 src/app/search/landingPages/dataset/dataset.component.ts create mode 100644 src/app/search/landingPages/dataset/libDataset.module.ts create mode 100644 src/app/search/landingPages/htmlProjectReport/htmlProjectReport-routing.module.ts create mode 100644 src/app/search/landingPages/htmlProjectReport/htmlProjectReport.component.ts create mode 100644 src/app/search/landingPages/htmlProjectReport/libHtmlProjectReport.module.ts create mode 100644 src/app/search/landingPages/organization/libOrganization.module.ts create mode 100644 src/app/search/landingPages/organization/organization-routing.module.ts create mode 100644 src/app/search/landingPages/organization/organization.component.ts create mode 100644 src/app/search/landingPages/orp/libOrp.module.ts create mode 100644 src/app/search/landingPages/orp/orp-routing.module.ts create mode 100644 src/app/search/landingPages/orp/orp.component.ts create mode 100644 src/app/search/landingPages/project/libProject.module.ts create mode 100644 src/app/search/landingPages/project/project-routing.module.ts create mode 100644 src/app/search/landingPages/project/project.component.ts create mode 100644 src/app/search/landingPages/publication/libPublication.module.ts create mode 100644 src/app/search/landingPages/publication/publication-routing.module.ts create mode 100644 src/app/search/landingPages/publication/publication.component.ts create mode 100644 src/app/search/landingPages/result/libResult.module.ts create mode 100644 src/app/search/landingPages/result/result-routing.module.ts create mode 100644 src/app/search/landingPages/result/result.component.ts create mode 100644 src/app/search/landingPages/software/libSoftware.module.ts create mode 100644 src/app/search/landingPages/software/software-routing.module.ts create mode 100644 src/app/search/landingPages/software/software.component.ts create mode 100644 src/app/search/links-resolver.ts create mode 100644 src/app/search/search.module.ts create mode 100644 src/app/search/searchPages/advanced/searchDataProviders-routing.module.ts create mode 100644 src/app/search/searchPages/advanced/searchDataProviders.module.ts create mode 100644 src/app/search/searchPages/advanced/searchDataproviders.component.ts create mode 100644 src/app/search/searchPages/advanced/searchOrganizations-routing.module.ts create mode 100644 src/app/search/searchPages/advanced/searchOrganizations.component.ts create mode 100644 src/app/search/searchPages/advanced/searchOrganizations.module.ts create mode 100644 src/app/search/searchPages/advanced/searchProjects-routing.module.ts create mode 100644 src/app/search/searchPages/advanced/searchProjects.component.ts create mode 100644 src/app/search/searchPages/advanced/searchProjects.module.ts create mode 100644 src/app/search/searchPages/advanced/searchResearchResults-routing.module.ts create mode 100644 src/app/search/searchPages/advanced/searchResearchResults.component.ts create mode 100644 src/app/search/searchPages/advanced/searchResearchResults.module.ts create mode 100644 src/app/search/searchPages/find/libSearch.module.ts create mode 100644 src/app/search/searchPages/find/mainSearch-routing.module.ts create mode 100644 src/app/search/searchPages/find/search.component.ts create mode 100644 src/app/search/searchPages/simple/searchDataProviders-routing.module.ts create mode 100644 src/app/search/searchPages/simple/searchDataProviders.module.ts create mode 100644 src/app/search/searchPages/simple/searchDataproviders.component.ts create mode 100644 src/app/search/searchPages/simple/searchOrganizations-routing.module.ts create mode 100644 src/app/search/searchPages/simple/searchOrganizations.component.ts create mode 100644 src/app/search/searchPages/simple/searchOrganizations.module.ts create mode 100644 src/app/search/searchPages/simple/searchProjects-routing.module.ts create mode 100644 src/app/search/searchPages/simple/searchProjects.component.ts create mode 100644 src/app/search/searchPages/simple/searchProjects.module.ts create mode 100644 src/app/search/searchPages/simple/searchResearchResults-routing.module.ts create mode 100644 src/app/search/searchPages/simple/searchResearchResults.component.ts create mode 100644 src/app/search/searchPages/simple/searchResearchResults.module.ts create mode 100644 src/material.scss diff --git a/angular.json b/angular.json index 00528f4..2fdad94 100644 --- a/angular.json +++ b/angular.json @@ -22,6 +22,7 @@ ], "styles": [ "src/styles.css", + "src/material.scss", "node_modules/datatables.net-dt/css/jquery.dataTables.css" ], "scripts": [ diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 14f59b1..2a3610c 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -9,10 +9,25 @@ import {OpenaireErrorPageComponent} from './error/errorPage.component'; const routes: Routes = [ {path: '', loadChildren: './home/home.module#HomeModule', resolve: {envSpecific: EnvironmentSpecificResolver}}, { - path: 'search/find/stakeholders', + path: 'browse', loadChildren: './search-stakeholders/search-stakeholders.module#SearchStakeholdersModule', resolve: {envSpecific: EnvironmentSpecificResolver} }, + // Landing Pages + { path: 'search/result', loadChildren: './search/landingPages/result/libResult.module#LibResultModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/publication', loadChildren: './search/landingPages/publication/libPublication.module#LibPublicationModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/dataset', loadChildren: './search/landingPages/dataset/libDataset.module#LibDatasetModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/software', loadChildren: './search/landingPages/software/libSoftware.module#LibSoftwareModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/other', loadChildren: './search/landingPages/orp/libOrp.module#LibOrpModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/project', loadChildren: './search/landingPages/project/libProject.module#LibProjectModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/dataprovider', loadChildren: './search/landingPages/dataProvider/libDataProvider.module#LibDataProviderModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'search/organization', loadChildren: './search/landingPages/organization/libOrganization.module#LibOrganizationModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'project-report', loadChildren: './search/landingPages/htmlProjectReport/libHtmlProjectReport.module#LibHtmlProjectReportModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { + path: 'search', + loadChildren: './search/search.module#SearchModule', + resolve: {envSpecific: EnvironmentSpecificResolver} + }, {path: 'about', redirectTo: 'about/learn-how', pathMatch: 'full'}, { path: 'about/learn-how', diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 5d7be21..7439b61 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,5 @@ import {Component} from '@angular/core'; -import {ActivatedRoute, NavigationStart, Router} from '@angular/router'; +import {ActivatedRoute, NavigationEnd, NavigationStart, Params, Router} from '@angular/router'; import {EnvProperties} from './openaireLibrary/utils/properties/env-properties'; import {MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu'; @@ -8,12 +8,16 @@ import {Session, User} from './openaireLibrary/login/utils/helper.class'; import {HelperFunctions} from "./openaireLibrary/utils/HelperFunctions.class"; import {UserManagementService} from "./openaireLibrary/services/user-management.service"; import {properties} from "../environments/environment"; +import {LinksResolver} from "./search/links-resolver"; +import {BehaviorSubject, Subscriber} from "rxjs"; +import {StakeholderService} from "./openaireLibrary/monitor/services/stakeholder.service"; +import {Stakeholder} from "./openaireLibrary/monitor/entities/stakeholder"; @Component({ selector: 'app-root', template: `
-
@@ -43,37 +47,75 @@ export class AppComponent { userMenuItems: MenuItem[] = []; menuItems: RootMenuItem [] = []; bottomMenuItems: MenuItem[] = []; - properties: EnvProperties; + properties: EnvProperties = properties; showMenu: boolean = false; user: User; + params: BehaviorSubject = new BehaviorSubject(null); + url: string; + stakeholder: Stakeholder = null; + private subscriptions: any[] = []; constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService, - private router: Router, private userManagementService: UserManagementService) { + private router: Router, private stakeholderService: StakeholderService, + private userManagementService: UserManagementService) { router.events.forEach((event) => { if (event instanceof NavigationStart) { HelperFunctions.scroll(); + } else if (event instanceof NavigationEnd) { + this.url = event.url; + let r = this.route; + while (r.firstChild) { + r = r.firstChild; + } + let params = r.snapshot.params; + this.params.next(params); } }); } ngOnInit() { - this.propertiesService.loadEnvironment() - .then(es => { - this.properties = this.propertiesService.envSpecific; - this.userManagementService.getUserInfo().subscribe(user => { - this.user = user; - this.buildMenu() - if (typeof document !== 'undefined') { - try { - this.isClient = true; - } catch (e) { - } - } - }, error => { - console.log("App couldn't fetch properties"); - console.log(error); - }); - }); + this.subscriptions.push(this.params.subscribe( params => { + if (params && params['stakeholder']) { + if (!this.stakeholderService.stakeholder || + this.stakeholderService.stakeholder.alias !== params['stakeholder']) { + this.stakeholderService.getStakeholder(this.properties.monitorServiceAPIURL, params['stakeholder']).subscribe(stakeholder => { + this.stakeholderService.setStakeholder(stakeholder); + this.stakeholder = stakeholder; + LinksResolver.setProperties(this.stakeholder.alias); + this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { + this.user = user; + this.setUserMenu(); + this.buildStakeholderMenu(); + })); + }, error => { + this.navigateToError(); + }); + } + } else { + LinksResolver.resetProperties(); + this.stakeholderService.setStakeholder(null); + if(this.url && !this.url.includes('search')) { + this.stakeholder = null; + this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { + this.user = user; + this.setUserMenu(); + this.buildMenu(); + })); + } + } + })); + } + + public ngOnDestroy() { + this.subscriptions.forEach(value => { + if (value instanceof Subscriber) { + value.unsubscribe(); + } + }); + } + + navigateToError() { + this.router.navigate(['/error'], {queryParams: {'page': this.router.url}}); } public buildMenu() { @@ -83,7 +125,7 @@ export class AppComponent { items: [] }); this.menuItems.push({ - rootItem: new MenuItem("stakeholders", "Browse Members", "", "/search/find/stakeholders", false, [], null, {}), + rootItem: new MenuItem("stakeholders", "Browse", "", "browse", false, [], null, {}), items: [] }); this.menuItems.push({ @@ -96,6 +138,27 @@ export class AppComponent { new MenuItem("", "Blog", "https://blogs.openaire.eu/", "", false, [], [], {}), new MenuItem("", "Contact us", "https://beta.openaire.eu/contact-us", "", false, [], [], {}) ]; + this.showMenu = true; + } + + public buildStakeholderMenu() { + this.menuItems = []; + this.menuItems.push({ + rootItem: new MenuItem("", "Dashboard", + properties.baseLink + "/dashboard/" + this.stakeholder.alias , "", true, [], [], {}), + items: [] + }); + if (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isCommunityCurator(this.user)) { + this.menuItems.push({ + rootItem: new MenuItem("", "Manage", + properties.baseLink + "/dashboard/admin/" + this.stakeholder.alias , "", true, [], [], {}), + items: [] + }); + } + this.showMenu = true; + } + + public setUserMenu() { this.userMenuItems = []; if (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isCommunityCurator(this.user)) { /*this.userMenuItems.push(new MenuItem("", "Manage Helptexts", @@ -104,6 +167,5 @@ export class AppComponent { this.userMenuItems.push(new MenuItem("", "Manage Stakeholders", properties.baseLink + "/dashboard/admin", "", true, [], [], {})) } - this.showMenu = true; } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9dc1829..1d4017f 100755 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,7 +3,7 @@ import {FormsModule} from '@angular/forms'; import {CommonModule} from '@angular/common'; import {HttpClientModule} from "@angular/common/http"; import {BrowserModule} from '@angular/platform-browser'; -import {BrowserAnimationsModule, NoopAnimationsModule} from '@angular/platform-browser/animations'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {AppComponent} from './app.component'; import {OpenaireErrorPageComponent} from './error/errorPage.component'; diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html index edb0d10..2a1f9a6 100644 --- a/src/app/home/home.component.html +++ b/src/app/home/home.component.html @@ -69,13 +69,13 @@
-

Why use OpenAIRE Monitor Dashboard?

+

Why use OpenAIRE Monitor Dashboard?

-
+

Global outlook

@@ -84,7 +84,7 @@
-
+

Transparent methodology

@@ -93,7 +93,7 @@
-
+

Customised to your needs

@@ -102,7 +102,7 @@
-
+

Minimum effort to join

diff --git a/src/app/search-stakeholders/search-stakeholders.component.ts b/src/app/search-stakeholders/search-stakeholders.component.ts index ea34d5f..b9f4f3f 100644 --- a/src/app/search-stakeholders/search-stakeholders.component.ts +++ b/src/app/search-stakeholders/search-stakeholders.component.ts @@ -19,7 +19,7 @@ import {StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder"; template: ` `, +}) +export class MonitorDataProviderComponent {} diff --git a/src/app/search/landingPages/dataProvider/libDataProvider.module.ts b/src/app/search/landingPages/dataProvider/libDataProvider.module.ts new file mode 100644 index 0000000..6df274f --- /dev/null +++ b/src/app/search/landingPages/dataProvider/libDataProvider.module.ts @@ -0,0 +1,18 @@ +//import {MaterialModule} from '@angular/material'; +import { NgModule} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { DataProviderModule } from '../../../openaireLibrary/landingPages/dataProvider/dataProvider.module'; +import { MonitorDataProviderComponent } from './dataProvider.component'; +import {DataProviderRoutingModule} from './dataProvider-routing.module'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard' + +@NgModule({ + imports: [DataProviderModule, DataProviderRoutingModule], + declarations:[MonitorDataProviderComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorDataProviderComponent] +}) +export class LibDataProviderModule { } diff --git a/src/app/search/landingPages/dataset/dataset-routing.module.ts b/src/app/search/landingPages/dataset/dataset-routing.module.ts new file mode 100644 index 0000000..6bb44f4 --- /dev/null +++ b/src/app/search/landingPages/dataset/dataset-routing.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorDatasetComponent} from './dataset.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + +@NgModule({ + imports: [ + RouterModule.forChild([ + {path: '', component: MonitorDatasetComponent, canDeactivate: [PreviousRouteRecorder]} + ]) + ] +}) +export class DatasetRoutingModule { +} diff --git a/src/app/search/landingPages/dataset/dataset.component.ts b/src/app/search/landingPages/dataset/dataset.component.ts new file mode 100644 index 0000000..ab934c9 --- /dev/null +++ b/src/app/search/landingPages/dataset/dataset.component.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-dataset', + template: ` + + `, +}) +export class MonitorDatasetComponent {} diff --git a/src/app/search/landingPages/dataset/libDataset.module.ts b/src/app/search/landingPages/dataset/libDataset.module.ts new file mode 100644 index 0000000..d51316c --- /dev/null +++ b/src/app/search/landingPages/dataset/libDataset.module.ts @@ -0,0 +1,14 @@ +import { NgModule} from '@angular/core'; +import { MonitorDatasetComponent } from './dataset.component'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import {DatasetRoutingModule} from './dataset-routing.module'; +import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; + @NgModule({ + imports: [DatasetRoutingModule, ResultLandingModule], + declarations:[MonitorDatasetComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorDatasetComponent] +}) +export class LibDatasetModule { } diff --git a/src/app/search/landingPages/htmlProjectReport/htmlProjectReport-routing.module.ts b/src/app/search/landingPages/htmlProjectReport/htmlProjectReport-routing.module.ts new file mode 100644 index 0000000..447b423 --- /dev/null +++ b/src/app/search/landingPages/htmlProjectReport/htmlProjectReport-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorHtmlProjectReportComponent} from './htmlProjectReport.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + {path: '', component: MonitorHtmlProjectReportComponent, canDeactivate: [PreviousRouteRecorder]} + ]) + ] +}) +export class HtmlProjectReportRoutingModule { +} diff --git a/src/app/search/landingPages/htmlProjectReport/htmlProjectReport.component.ts b/src/app/search/landingPages/htmlProjectReport/htmlProjectReport.component.ts new file mode 100644 index 0000000..bfa903c --- /dev/null +++ b/src/app/search/landingPages/htmlProjectReport/htmlProjectReport.component.ts @@ -0,0 +1,7 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-htmlProjectReport', + template: ``, + }) +export class MonitorHtmlProjectReportComponent{} diff --git a/src/app/search/landingPages/htmlProjectReport/libHtmlProjectReport.module.ts b/src/app/search/landingPages/htmlProjectReport/libHtmlProjectReport.module.ts new file mode 100644 index 0000000..1c845cd --- /dev/null +++ b/src/app/search/landingPages/htmlProjectReport/libHtmlProjectReport.module.ts @@ -0,0 +1,20 @@ +//import {MaterialModule} from '@angular/material'; +import { NgModule} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { SharedModule } from '../../../shared/shared.module'; +import { RouterModule } from '@angular/router'; +import { HtmlProjectReportModule } from '../../../openaireLibrary/landingPages/htmlProjectReport/htmlProjectReport.module'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import { MonitorHtmlProjectReportComponent } from './htmlProjectReport.component'; +import {HtmlProjectReportRoutingModule} from './htmlProjectReport-routing.module'; + +@NgModule({ + imports: [HtmlProjectReportModule, HtmlProjectReportRoutingModule], + declarations:[MonitorHtmlProjectReportComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorHtmlProjectReportComponent] +}) +export class LibHtmlProjectReportModule { } diff --git a/src/app/search/landingPages/organization/libOrganization.module.ts b/src/app/search/landingPages/organization/libOrganization.module.ts new file mode 100644 index 0000000..255ed2f --- /dev/null +++ b/src/app/search/landingPages/organization/libOrganization.module.ts @@ -0,0 +1,20 @@ +//import {MaterialModule} from '@angular/material'; +import { NgModule} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { SharedModule } from '../../../shared/shared.module'; +import { RouterModule } from '@angular/router'; +import { OrganizationModule } from '../../../openaireLibrary/landingPages/organization/organization.module'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import { MonitorOrganizationComponent } from './organization.component'; +import {OrganizationRoutingModule} from './organization-routing.module'; + +@NgModule({ + imports: [OrganizationModule, OrganizationRoutingModule], + declarations:[MonitorOrganizationComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorOrganizationComponent] +}) +export class LibOrganizationModule { } diff --git a/src/app/search/landingPages/organization/organization-routing.module.ts b/src/app/search/landingPages/organization/organization-routing.module.ts new file mode 100644 index 0000000..ac35326 --- /dev/null +++ b/src/app/search/landingPages/organization/organization-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorOrganizationComponent} from './organization.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + {path: '', component: MonitorOrganizationComponent, canDeactivate: [PreviousRouteRecorder]} + ]) + ] +}) +export class OrganizationRoutingModule { +} diff --git a/src/app/search/landingPages/organization/organization.component.ts b/src/app/search/landingPages/organization/organization.component.ts new file mode 100644 index 0000000..66a995e --- /dev/null +++ b/src/app/search/landingPages/organization/organization.component.ts @@ -0,0 +1,8 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-organization', + template: ` + `, +}) +export class MonitorOrganizationComponent {} diff --git a/src/app/search/landingPages/orp/libOrp.module.ts b/src/app/search/landingPages/orp/libOrp.module.ts new file mode 100644 index 0000000..8f93d06 --- /dev/null +++ b/src/app/search/landingPages/orp/libOrp.module.ts @@ -0,0 +1,23 @@ +import {NgModule} from '@angular/core'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import {MonitorOrpComponent} from './orp.component'; +import {OrpRoutingModule} from './orp-routing.module'; +import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; + +@NgModule({ + imports: [ + OrpRoutingModule, ResultLandingModule + ], + declarations: [ + MonitorOrpComponent + ], + providers: [ + FreeGuard, PreviousRouteRecorder, IsRouteEnabled + ], + exports: [ + MonitorOrpComponent + ] +}) +export class LibOrpModule { } diff --git a/src/app/search/landingPages/orp/orp-routing.module.ts b/src/app/search/landingPages/orp/orp-routing.module.ts new file mode 100644 index 0000000..f357cb1 --- /dev/null +++ b/src/app/search/landingPages/orp/orp-routing.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorOrpComponent} from './orp.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + +@NgModule({ + imports: [ + RouterModule.forChild([{ + path: '', component: MonitorOrpComponent, canDeactivate: [PreviousRouteRecorder] + }]) + ] +}) + +export class OrpRoutingModule { } diff --git a/src/app/search/landingPages/orp/orp.component.ts b/src/app/search/landingPages/orp/orp.component.ts new file mode 100644 index 0000000..8b4eb38 --- /dev/null +++ b/src/app/search/landingPages/orp/orp.component.ts @@ -0,0 +1,10 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-orp', + template: ` + + `, +}) + +export class MonitorOrpComponent {} diff --git a/src/app/search/landingPages/project/libProject.module.ts b/src/app/search/landingPages/project/libProject.module.ts new file mode 100644 index 0000000..8b09e55 --- /dev/null +++ b/src/app/search/landingPages/project/libProject.module.ts @@ -0,0 +1,20 @@ +//import {MaterialModule} from '@angular/material'; +import { NgModule} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { SharedModule } from '../../../shared/shared.module'; +import { RouterModule } from '@angular/router'; +import { ProjectModule } from '../../../openaireLibrary/landingPages/project/project.module'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import { MonitorProjectComponent } from './project.component'; +import {ProjectRoutingModule} from './project-routing.module'; + +@NgModule({ + imports: [ProjectModule, ProjectRoutingModule], + declarations:[MonitorProjectComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorProjectComponent] +}) +export class LibProjectModule { } diff --git a/src/app/search/landingPages/project/project-routing.module.ts b/src/app/search/landingPages/project/project-routing.module.ts new file mode 100644 index 0000000..18f7f44 --- /dev/null +++ b/src/app/search/landingPages/project/project-routing.module.ts @@ -0,0 +1,14 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorProjectComponent} from './project.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorProjectComponent, canDeactivate: [PreviousRouteRecorder] } + ]) + ] +}) +export class ProjectRoutingModule { } diff --git a/src/app/search/landingPages/project/project.component.ts b/src/app/search/landingPages/project/project.component.ts new file mode 100644 index 0000000..dd61c58 --- /dev/null +++ b/src/app/search/landingPages/project/project.component.ts @@ -0,0 +1,8 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-project', + template: ` + `, +}) +export class MonitorProjectComponent {} diff --git a/src/app/search/landingPages/publication/libPublication.module.ts b/src/app/search/landingPages/publication/libPublication.module.ts new file mode 100644 index 0000000..04701d5 --- /dev/null +++ b/src/app/search/landingPages/publication/libPublication.module.ts @@ -0,0 +1,15 @@ +import { NgModule} from '@angular/core'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import { MonitorPublicationComponent } from './publication.component'; +import {PublicationRoutingModule} from './publication-routing.module'; +import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; + +@NgModule({ + imports: [PublicationRoutingModule, ResultLandingModule], + declarations:[MonitorPublicationComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorPublicationComponent] +}) +export class LibPublicationModule { } diff --git a/src/app/search/landingPages/publication/publication-routing.module.ts b/src/app/search/landingPages/publication/publication-routing.module.ts new file mode 100644 index 0000000..0ff3ff0 --- /dev/null +++ b/src/app/search/landingPages/publication/publication-routing.module.ts @@ -0,0 +1,14 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorPublicationComponent} from './publication.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorPublicationComponent, canDeactivate: [PreviousRouteRecorder] } + ]) +] +}) +export class PublicationRoutingModule { } diff --git a/src/app/search/landingPages/publication/publication.component.ts b/src/app/search/landingPages/publication/publication.component.ts new file mode 100644 index 0000000..452bf17 --- /dev/null +++ b/src/app/search/landingPages/publication/publication.component.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-publication', + template: ` + + `, +}) +export class MonitorPublicationComponent {} diff --git a/src/app/search/landingPages/result/libResult.module.ts b/src/app/search/landingPages/result/libResult.module.ts new file mode 100644 index 0000000..da5faf2 --- /dev/null +++ b/src/app/search/landingPages/result/libResult.module.ts @@ -0,0 +1,14 @@ +import {NgModule} from '@angular/core'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {MonitorResultComponent} from './result.component'; +import {ResultRoutingModule} from './result-routing.module'; +import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; + +@NgModule({ + imports: [ResultRoutingModule, ResultLandingModule], + declarations:[MonitorResultComponent], + providers:[FreeGuard, PreviousRouteRecorder], + exports:[MonitorResultComponent] +}) +export class LibResultModule { } diff --git a/src/app/search/landingPages/result/result-routing.module.ts b/src/app/search/landingPages/result/result-routing.module.ts new file mode 100644 index 0000000..867d76f --- /dev/null +++ b/src/app/search/landingPages/result/result-routing.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorResultComponent} from './result.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorResultComponent, canDeactivate: [PreviousRouteRecorder] } + ]) +] +}) +export class ResultRoutingModule { } diff --git a/src/app/search/landingPages/result/result.component.ts b/src/app/search/landingPages/result/result.component.ts new file mode 100644 index 0000000..981619a --- /dev/null +++ b/src/app/search/landingPages/result/result.component.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-result', + template: ` + `, +}) +export class MonitorResultComponent { +} diff --git a/src/app/search/landingPages/software/libSoftware.module.ts b/src/app/search/landingPages/software/libSoftware.module.ts new file mode 100644 index 0000000..df9797d --- /dev/null +++ b/src/app/search/landingPages/software/libSoftware.module.ts @@ -0,0 +1,14 @@ +import { NgModule} from '@angular/core'; +import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {IsRouteEnabled} from '../../../openaireLibrary/error/isRouteEnabled.guard'; +import { MonitorSoftwareComponent } from './software.component'; +import {SoftwareRoutingModule} from './software-routing.module'; +import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; +@NgModule({ + imports: [SoftwareRoutingModule, ResultLandingModule], + declarations:[MonitorSoftwareComponent], + providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled], + exports:[MonitorSoftwareComponent] +}) +export class LibSoftwareModule { } diff --git a/src/app/search/landingPages/software/software-routing.module.ts b/src/app/search/landingPages/software/software-routing.module.ts new file mode 100644 index 0000000..8e0d3cd --- /dev/null +++ b/src/app/search/landingPages/software/software-routing.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorSoftwareComponent} from './software.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorSoftwareComponent, canDeactivate: [PreviousRouteRecorder] } + ]) +] +}) +export class SoftwareRoutingModule { } diff --git a/src/app/search/landingPages/software/software.component.ts b/src/app/search/landingPages/software/software.component.ts new file mode 100644 index 0000000..5820763 --- /dev/null +++ b/src/app/search/landingPages/software/software.component.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-software', + template: ` + + `, +}) +export class MonitorSoftwareComponent {} diff --git a/src/app/search/links-resolver.ts b/src/app/search/links-resolver.ts new file mode 100644 index 0000000..07dfb1c --- /dev/null +++ b/src/app/search/links-resolver.ts @@ -0,0 +1,36 @@ +import {properties} from "../../environments/environment"; + +interface Links { + searchLinkToResults, + searchLinkToProjects, + searchLinkToDataProviders, + searchLinkToAdvancedResults, + searchLinkToAdvancedProjects, + searchLinkToAdvancedDataProviders, + searchLinkToAdvancedOrganizations, +} + +export class LinksResolver { + + private static default: Links = { + searchLinkToResults: properties.searchLinkToResults, + searchLinkToDataProviders: properties.searchLinkToDataProviders, + searchLinkToProjects: properties.searchLinkToProjects, + searchLinkToAdvancedResults: properties.searchLinkToAdvancedResults, + searchLinkToAdvancedProjects: properties.searchLinkToAdvancedProjects, + searchLinkToAdvancedDataProviders: properties.searchLinkToAdvancedDataProviders, + searchLinkToAdvancedOrganizations: properties.searchLinkToAdvancedOrganizations, + }; + + public static setProperties( alias: string) { + Object.keys(this.default).forEach(field => { + properties[field] = "/search/" + alias + "/" + (this.default[field]).replace('search/', ''); + }); + } + + public static resetProperties() { + Object.keys(this.default).forEach(field => { + properties[field] = this.default[field]; + }); + } +} diff --git a/src/app/search/search.module.ts b/src/app/search/search.module.ts new file mode 100644 index 0000000..12e5a62 --- /dev/null +++ b/src/app/search/search.module.ts @@ -0,0 +1,32 @@ +import {NgModule} from "@angular/core"; +import {CommonModule} from "@angular/common"; +import {RouterModule} from "@angular/router"; +import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/environmentSpecificResolver"; + +@NgModule({ + imports: [CommonModule, RouterModule.forChild([ + // Search Pages + { path: 'find/research-outcomes', loadChildren: './search/searchPages/simple/searchResearchResults.module#MonitorSearchResearchResultsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'find/projects', loadChildren: './search/searchPages/simple/searchProjects.module#MonitorSearchProjectsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'find/dataproviders', loadChildren: './search/searchPages/simple/searchDataProviders.module#MonitorSearchDataProvidersModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'find/organizations', loadChildren: './search/searchPages/simple/searchOrganizations.module#MonitorSearchOrganizationsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + + // Advanced Search Pages + { path: 'advanced/research-outcomes', loadChildren: './search/searchPages/advanced/searchResearchResults.module#MonitorAdvancedSearchResearchResultsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'advanced/projects', loadChildren: './search/searchPages/advanced/searchProjects.module#MonitorAdvancedSearchProjectsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'advanced/dataproviders', loadChildren: './search/searchPages/advanced/searchDataProviders.module#MonitorAdvancedSearchDataProvidersModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: 'advanced/organizations', loadChildren: './search/searchPages/advanced/searchOrganizations.module#MonitorAdvancedSearchOrganizationsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + + // Stakeholder Search Pages + { path: ':stakeholder/find/research-outcomes', loadChildren: './searchPages/simple/searchResearchResults.module#MonitorSearchResearchResultsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: ':stakeholder/find/projects', loadChildren: './searchPages/simple/searchProjects.module#MonitorSearchProjectsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: ':stakeholder/find/dataproviders', loadChildren: './searchPages/simple/searchDataProviders.module#MonitorSearchDataProvidersModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + + // Stakeholder Advanced Search Pages + { path: ':stakeholder/advanced/research-outcomes', loadChildren: './searchPages/advanced/searchResearchResults.module#MonitorAdvancedSearchResearchResultsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: ':stakeholder/advanced/projects', loadChildren: './searchPages/advanced/searchProjects.module#MonitorAdvancedSearchProjectsModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + { path: ':stakeholder/advanced/dataproviders', loadChildren: './searchPages/advanced/searchDataProviders.module#MonitorAdvancedSearchDataProvidersModule', resolve: { envSpecific: EnvironmentSpecificResolver }}, + ])], + providers:[EnvironmentSpecificResolver] +}) +export class SearchModule {} diff --git a/src/app/search/searchPages/advanced/searchDataProviders-routing.module.ts b/src/app/search/searchPages/advanced/searchDataProviders-routing.module.ts new file mode 100644 index 0000000..ea00186 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchDataProviders-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import{MonitorAdvancedSearchDataprovidersComponent} from './searchDataproviders.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorAdvancedSearchDataprovidersComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchDataProvidersRoutingModule { } diff --git a/src/app/search/searchPages/advanced/searchDataProviders.module.ts b/src/app/search/searchPages/advanced/searchDataProviders.module.ts new file mode 100644 index 0000000..c854294 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchDataProviders.module.ts @@ -0,0 +1,24 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; +import {MonitorAdvancedSearchDataprovidersComponent} from './searchDataproviders.component'; +import {SearchDataProvidersRoutingModule} from './searchDataProviders-routing.module'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchDataProvidersModule} from '../../../openaireLibrary/searchPages/searchDataProviders.module'; + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchDataProvidersModule, SearchDataProvidersRoutingModule + + ], + declarations: [ + MonitorAdvancedSearchDataprovidersComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorAdvancedSearchDataprovidersComponent + ] +}) +export class MonitorAdvancedSearchDataProvidersModule { +} diff --git a/src/app/search/searchPages/advanced/searchDataproviders.component.ts b/src/app/search/searchPages/advanced/searchDataproviders.component.ts new file mode 100644 index 0000000..422cdc2 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchDataproviders.component.ts @@ -0,0 +1,52 @@ +import {Component} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-advanced-search-dataproviders', + template: ` + + + ` +}) +export class MonitorAdvancedSearchDataprovidersComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if(stakeholder) { + if (stakeholder.type === "funder") { + this.navigateToError(); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.navigateToError(); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } + + navigateToError() { + this.router.navigate(['/error'], {queryParams: {'page': this.router.url}}); + } +} diff --git a/src/app/search/searchPages/advanced/searchOrganizations-routing.module.ts b/src/app/search/searchPages/advanced/searchOrganizations-routing.module.ts new file mode 100644 index 0000000..a5d4ad4 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchOrganizations-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import{MonitorAdvancedSearchOrganizationsComponent} from './searchOrganizations.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorAdvancedSearchOrganizationsComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchOrganizationsRoutingModule { } diff --git a/src/app/search/searchPages/advanced/searchOrganizations.component.ts b/src/app/search/searchPages/advanced/searchOrganizations.component.ts new file mode 100644 index 0000000..d57a5aa --- /dev/null +++ b/src/app/search/searchPages/advanced/searchOrganizations.component.ts @@ -0,0 +1,10 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-advanced-search-organizations', + template: ` + + + ` +}) +export class MonitorAdvancedSearchOrganizationsComponent {} diff --git a/src/app/search/searchPages/advanced/searchOrganizations.module.ts b/src/app/search/searchPages/advanced/searchOrganizations.module.ts new file mode 100644 index 0000000..0afac53 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchOrganizations.module.ts @@ -0,0 +1,26 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchOrganizationsRoutingModule} from './searchOrganizations-routing.module'; +import {MonitorAdvancedSearchOrganizationsComponent} from './searchOrganizations.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchOrganizationsModule} from "../../../openaireLibrary/searchPages/searchOrganizations.module"; + + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchOrganizationsRoutingModule, SearchOrganizationsModule + + ], + declarations: [ + MonitorAdvancedSearchOrganizationsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorAdvancedSearchOrganizationsComponent + ] +}) +export class MonitorAdvancedSearchOrganizationsModule { +} diff --git a/src/app/search/searchPages/advanced/searchProjects-routing.module.ts b/src/app/search/searchPages/advanced/searchProjects-routing.module.ts new file mode 100644 index 0000000..039464a --- /dev/null +++ b/src/app/search/searchPages/advanced/searchProjects-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorAdvancedSearchProjectsComponent} from './searchProjects.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorAdvancedSearchProjectsComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchProjectsRoutingModule { } diff --git a/src/app/search/searchPages/advanced/searchProjects.component.ts b/src/app/search/searchPages/advanced/searchProjects.component.ts new file mode 100644 index 0000000..2fd478c --- /dev/null +++ b/src/app/search/searchPages/advanced/searchProjects.component.ts @@ -0,0 +1,54 @@ +import {Component} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-advanced-search-projects', + template: ` + + + ` + +}) +export class MonitorAdvancedSearchProjectsComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if(stakeholder) { + if (stakeholder.type === "funder") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Funder", "funderid", value, ""); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.navigateToError(); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } + + navigateToError() { + this.router.navigate(['/error'], {queryParams: {'page': this.router.url}}); + } +} diff --git a/src/app/search/searchPages/advanced/searchProjects.module.ts b/src/app/search/searchPages/advanced/searchProjects.module.ts new file mode 100644 index 0000000..6844e86 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchProjects.module.ts @@ -0,0 +1,24 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchProjectsRoutingModule} from './searchProjects-routing.module'; +import {MonitorAdvancedSearchProjectsComponent} from './searchProjects.component'; +import {SearchProjectsModule} from "../../../openaireLibrary/searchPages/searchProjects.module"; +import {PreviousRouteRecorder} from "../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; + +@NgModule({ + imports: [ + CommonModule, FormsModule, SearchProjectsRoutingModule, SearchProjectsModule + + ], + declarations: [ + MonitorAdvancedSearchProjectsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorAdvancedSearchProjectsComponent + ] +}) +export class MonitorAdvancedSearchProjectsModule { +} diff --git a/src/app/search/searchPages/advanced/searchResearchResults-routing.module.ts b/src/app/search/searchPages/advanced/searchResearchResults-routing.module.ts new file mode 100644 index 0000000..68bae31 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchResearchResults-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorAdvancedSearchResearchResultsComponent,} from './searchResearchResults.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorAdvancedSearchResearchResultsComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchResearchResultsRoutingModule { } diff --git a/src/app/search/searchPages/advanced/searchResearchResults.component.ts b/src/app/search/searchPages/advanced/searchResearchResults.component.ts new file mode 100644 index 0000000..526b795 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchResearchResults.component.ts @@ -0,0 +1,49 @@ +import {Component, OnDestroy, OnInit} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-advanced-search-results', + template: ` + + ` +}) +export class MonitorAdvancedSearchResearchResultsComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if(stakeholder) { + if (stakeholder.type === "funder") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Funder", "relfunderid", value, ""); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.customFilter = new SearchCustomFilter("Community", "communityId", stakeholder.index_id, ""); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } +} diff --git a/src/app/search/searchPages/advanced/searchResearchResults.module.ts b/src/app/search/searchPages/advanced/searchResearchResults.module.ts new file mode 100644 index 0000000..9d14d34 --- /dev/null +++ b/src/app/search/searchPages/advanced/searchResearchResults.module.ts @@ -0,0 +1,25 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchResearchResultsRoutingModule} from './searchResearchResults-routing.module'; +import {MonitorAdvancedSearchResearchResultsComponent} from './searchResearchResults.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchResearchResultsModule} from "../../../openaireLibrary/searchPages/searchResearchResults.module"; + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchResearchResultsRoutingModule, SearchResearchResultsModule + + ], + declarations: [ + MonitorAdvancedSearchResearchResultsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorAdvancedSearchResearchResultsComponent + ] +}) +export class MonitorAdvancedSearchResearchResultsModule { +} diff --git a/src/app/search/searchPages/find/libSearch.module.ts b/src/app/search/searchPages/find/libSearch.module.ts new file mode 100644 index 0000000..5f063f9 --- /dev/null +++ b/src/app/search/searchPages/find/libSearch.module.ts @@ -0,0 +1,22 @@ +//import {MaterialModule} from '@angular/material'; +import { NgModule} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { SharedModule } from '../../../shared/shared.module'; +import { RouterModule } from '@angular/router'; +import {MainSearchModule} from '../../../openaireLibrary/searchPages/find/mainSearch.module'; + +import { OpenaireSearchComponent } from './search.component'; +import { MainSearchRoutingModule } from './mainSearch-routing.module'; +import {FreeGuard} from "../../../openaireLibrary/login/freeGuard.guard"; +import {PreviousRouteRecorder} from "../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {IsRouteEnabled} from "../../../openaireLibrary/error/isRouteEnabled.guard"; +import {SearchAllModule} from "../../../openaireLibrary/searchPages/find/searchAll.module"; + +@NgModule({ + imports: [MainSearchRoutingModule, MainSearchModule, SearchAllModule], + declarations:[OpenaireSearchComponent], + exports:[OpenaireSearchComponent], + providers:[FreeGuard,PreviousRouteRecorder, IsRouteEnabled], +}) +export class LibMainSearchModule { } diff --git a/src/app/search/searchPages/find/mainSearch-routing.module.ts b/src/app/search/searchPages/find/mainSearch-routing.module.ts new file mode 100644 index 0000000..64be358 --- /dev/null +++ b/src/app/search/searchPages/find/mainSearch-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import{OpenaireSearchComponent} from './search.component'; +import {FreeGuard} from "../../../openaireLibrary/login/freeGuard.guard"; +import {PreviousRouteRecorder} from "../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; +import {IsRouteEnabled} from "../../../openaireLibrary/error/isRouteEnabled.guard"; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + // { path: '', component: OpenaireSearchComponent } + { path: '', component: OpenaireSearchComponent, canActivate: [FreeGuard, IsRouteEnabled], canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class MainSearchRoutingModule { } diff --git a/src/app/search/searchPages/find/search.component.ts b/src/app/search/searchPages/find/search.component.ts new file mode 100644 index 0000000..d72d3cc --- /dev/null +++ b/src/app/search/searchPages/find/search.component.ts @@ -0,0 +1,42 @@ +import {Component} from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {PiwikHelper} from '../../../utils/piwikHelper'; +import {ConnectHelper} from '../../../openaireLibrary/connect/connectHelper'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; + +@Component({ + selector: 'openaire-search-find', + template: ` + + + + `, + }) +export class OpenaireSearchComponent{ + connectCommunityId:string; + customFilter: SearchCustomFilter = null; + piwikSiteId = null; + constructor ( private route: ActivatedRoute) { + } + ngOnInit() { + this.route.data + .subscribe((data: { envSpecific: any }) => { + var communityId = ConnectHelper.getCommunityFromDomain(data.envSpecific.domain); + this.piwikSiteId = PiwikHelper.getSiteId(communityId,data.envSpecific.environment); + if(communityId){ + this.connectCommunityId = communityId; + this.customFilter = new SearchCustomFilter("Community", "communityId", this.connectCommunityId, ""); + }else{ + this.route.queryParams.subscribe(params => { + if(params['communityId'] && params['communityId']!=""){ + this.connectCommunityId = params['communityId']; + this.piwikSiteId = PiwikHelper.getSiteId(this.connectCommunityId,data.envSpecific.environment); + this.customFilter = new SearchCustomFilter("Community", "communityId", this.connectCommunityId, ""); + } + }); + } + }); + } + + +} diff --git a/src/app/search/searchPages/simple/searchDataProviders-routing.module.ts b/src/app/search/searchPages/simple/searchDataProviders-routing.module.ts new file mode 100644 index 0000000..6d71853 --- /dev/null +++ b/src/app/search/searchPages/simple/searchDataProviders-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import{MonitorSearchDataprovidersComponent} from './searchDataproviders.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorSearchDataprovidersComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchDataProvidersRoutingModule { } diff --git a/src/app/search/searchPages/simple/searchDataProviders.module.ts b/src/app/search/searchPages/simple/searchDataProviders.module.ts new file mode 100644 index 0000000..9fd7257 --- /dev/null +++ b/src/app/search/searchPages/simple/searchDataProviders.module.ts @@ -0,0 +1,24 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; +import {MonitorSearchDataprovidersComponent} from './searchDataproviders.component'; +import {SearchDataProvidersRoutingModule} from './searchDataProviders-routing.module'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchDataProvidersModule} from '../../../openaireLibrary/searchPages/searchDataProviders.module'; + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchDataProvidersModule, SearchDataProvidersRoutingModule + + ], + declarations: [ + MonitorSearchDataprovidersComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorSearchDataprovidersComponent + ] +}) +export class MonitorSearchDataProvidersModule { +} diff --git a/src/app/search/searchPages/simple/searchDataproviders.component.ts b/src/app/search/searchPages/simple/searchDataproviders.component.ts new file mode 100644 index 0000000..222dcc5 --- /dev/null +++ b/src/app/search/searchPages/simple/searchDataproviders.component.ts @@ -0,0 +1,52 @@ +import {Component} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-search-dataproviders', + template: ` + + + ` +}) +export class MonitorSearchDataprovidersComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if (stakeholder) { + if (stakeholder.type === "funder") { + this.navigateToError(); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.navigateToError(); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } + + navigateToError() { + this.router.navigate(['/error'], {queryParams: {'page': this.router.url}}); + } +} diff --git a/src/app/search/searchPages/simple/searchOrganizations-routing.module.ts b/src/app/search/searchPages/simple/searchOrganizations-routing.module.ts new file mode 100644 index 0000000..2d1a738 --- /dev/null +++ b/src/app/search/searchPages/simple/searchOrganizations-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import{MonitorSearchOrganizationsComponent} from './searchOrganizations.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorSearchOrganizationsComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchOrganizationsRoutingModule { } diff --git a/src/app/search/searchPages/simple/searchOrganizations.component.ts b/src/app/search/searchPages/simple/searchOrganizations.component.ts new file mode 100644 index 0000000..6b7ceb8 --- /dev/null +++ b/src/app/search/searchPages/simple/searchOrganizations.component.ts @@ -0,0 +1,10 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'monitor-search-organizations', + template: ` + + + ` +}) +export class MonitorSearchOrganizationsComponent {} diff --git a/src/app/search/searchPages/simple/searchOrganizations.module.ts b/src/app/search/searchPages/simple/searchOrganizations.module.ts new file mode 100644 index 0000000..7b839b5 --- /dev/null +++ b/src/app/search/searchPages/simple/searchOrganizations.module.ts @@ -0,0 +1,26 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchOrganizationsRoutingModule} from './searchOrganizations-routing.module'; +import {MonitorSearchOrganizationsComponent} from './searchOrganizations.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchOrganizationsModule} from "../../../openaireLibrary/searchPages/searchOrganizations.module"; + + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchOrganizationsRoutingModule, SearchOrganizationsModule + + ], + declarations: [ + MonitorSearchOrganizationsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorSearchOrganizationsComponent + ] +}) +export class MonitorSearchOrganizationsModule { +} diff --git a/src/app/search/searchPages/simple/searchProjects-routing.module.ts b/src/app/search/searchPages/simple/searchProjects-routing.module.ts new file mode 100644 index 0000000..d7abf1f --- /dev/null +++ b/src/app/search/searchPages/simple/searchProjects-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorSearchProjectsComponent} from './searchProjects.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorSearchProjectsComponent, canDeactivate: [PreviousRouteRecorder] } + + ]) + ] +}) +export class SearchProjectsRoutingModule { } diff --git a/src/app/search/searchPages/simple/searchProjects.component.ts b/src/app/search/searchPages/simple/searchProjects.component.ts new file mode 100644 index 0000000..dcd728c --- /dev/null +++ b/src/app/search/searchPages/simple/searchProjects.component.ts @@ -0,0 +1,54 @@ +import {Component} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-search-projects', + template: ` + + + ` + +}) +export class MonitorSearchProjectsComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if(stakeholder) { + if (stakeholder.type === "funder") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Funder", "funderid", value, ""); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.navigateToError(); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } + + navigateToError() { + this.router.navigate(['/error'], {queryParams: {'page': this.router.url}}); + } +} diff --git a/src/app/search/searchPages/simple/searchProjects.module.ts b/src/app/search/searchPages/simple/searchProjects.module.ts new file mode 100644 index 0000000..357da27 --- /dev/null +++ b/src/app/search/searchPages/simple/searchProjects.module.ts @@ -0,0 +1,24 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchProjectsRoutingModule} from './searchProjects-routing.module'; +import {MonitorSearchProjectsComponent} from './searchProjects.component'; +import {SearchProjectsModule} from "../../../openaireLibrary/searchPages/searchProjects.module"; +import {PreviousRouteRecorder} from "../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; + +@NgModule({ + imports: [ + CommonModule, FormsModule, SearchProjectsRoutingModule, SearchProjectsModule + + ], + declarations: [ + MonitorSearchProjectsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorSearchProjectsComponent + ] +}) +export class MonitorSearchProjectsModule { +} diff --git a/src/app/search/searchPages/simple/searchResearchResults-routing.module.ts b/src/app/search/searchPages/simple/searchResearchResults-routing.module.ts new file mode 100644 index 0000000..7f95d18 --- /dev/null +++ b/src/app/search/searchPages/simple/searchResearchResults-routing.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; + +import {MonitorSearchResearchResultsComponent} from './searchResearchResults.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; + + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', component: MonitorSearchResearchResultsComponent, canDeactivate: [PreviousRouteRecorder] } + ]) + ] +}) +export class SearchResearchResultsRoutingModule { } diff --git a/src/app/search/searchPages/simple/searchResearchResults.component.ts b/src/app/search/searchPages/simple/searchResearchResults.component.ts new file mode 100644 index 0000000..c3ea060 --- /dev/null +++ b/src/app/search/searchPages/simple/searchResearchResults.component.ts @@ -0,0 +1,50 @@ +import {Component, OnDestroy, OnInit} from '@angular/core'; +import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class"; +import {EnvProperties} from "../../../openaireLibrary/utils/properties/env-properties"; +import {ActivatedRoute, Router} from "@angular/router"; +import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service"; +import {properties} from "../../../../environments/environment"; +import {LinksResolver} from "../../links-resolver"; + +@Component({ + selector: 'monitor-search-results', + template: ` + + ` +}) +export class MonitorSearchResearchResultsComponent { + customFilter: SearchCustomFilter = null; + initialized: boolean = false; + + constructor(private route: ActivatedRoute, + private router: Router, + private stakeholderService: StakeholderService) { + } + + ngOnInit() { + this.route.params.subscribe(params => { + if (params['stakeholder']) { + this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { + if(stakeholder) { + if (stakeholder.type === "funder") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Funder", "relfunderid", value, ""); + } else if (stakeholder.type === "organization") { + let value = stakeholder.index_id; + this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, ""); + } else if (stakeholder.type === "ri") { + this.customFilter = new SearchCustomFilter("Community", "communityId", stakeholder.index_id, ""); + } + this.initialized = true; + } + }); + } else { + this.initialized = true; + } + }); + } +} diff --git a/src/app/search/searchPages/simple/searchResearchResults.module.ts b/src/app/search/searchPages/simple/searchResearchResults.module.ts new file mode 100644 index 0000000..10cc893 --- /dev/null +++ b/src/app/search/searchPages/simple/searchResearchResults.module.ts @@ -0,0 +1,25 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {SearchResearchResultsRoutingModule} from './searchResearchResults-routing.module'; +import {MonitorSearchResearchResultsComponent} from './searchResearchResults.component'; +import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; +import {SearchResearchResultsModule} from "../../../openaireLibrary/searchPages/searchResearchResults.module"; + +@NgModule({ + imports: [ + CommonModule, FormsModule, + SearchResearchResultsRoutingModule, SearchResearchResultsModule + + ], + declarations: [ + MonitorSearchResearchResultsComponent + ], + providers: [PreviousRouteRecorder], + exports: [ + MonitorSearchResearchResultsComponent + ] +}) +export class MonitorSearchResearchResultsModule { +} diff --git a/src/assets/monitor-custom.css b/src/assets/monitor-custom.css index c32e13c..ff3599a 100644 --- a/src/assets/monitor-custom.css +++ b/src/assets/monitor-custom.css @@ -28,13 +28,15 @@ .datasourcesSearchForm, .compatibleDatasourcesSearchForm, .compatibleDatasourcesTableSearchForm, .datasourcesTableSearchForm, .journalsSearchForm, .journalsTableSearchForm, .entityRegistriesSearchForm, .entityRegistriesTableSearchForm { - background: /*url('search-background.svg')*/ #F7FCFF no-repeat center bottom ; - background-size: cover !important; - height: inherit; + background: #F9F9F9 !important; +} + +.tm-toolbar .uk-subnav-line .custom-monitor-li { + background: var(--portal-main-color); } .monitorApp, .searchForm { - background: #F9F9F9!important; + background: #F9F9F9 !important; } .monitorApp .login text { diff --git a/src/assets/theme-changes.css b/src/assets/theme-changes.css index fee7371..928dbd5 100644 --- a/src/assets/theme-changes.css +++ b/src/assets/theme-changes.css @@ -34,3 +34,8 @@ font-size: 18px; font-weight: 500; } + +/* Temp changes*/ +contact h5, new-search-page h5, result-preview h5 { + font-size: 18px; +} diff --git a/src/environments/environment.beta.ts b/src/environments/environment.beta.ts index 03f5470..bed2cc3 100644 --- a/src/environments/environment.beta.ts +++ b/src/environments/environment.beta.ts @@ -21,6 +21,9 @@ export let properties: EnvProperties = { 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/", @@ -53,7 +56,6 @@ export let properties: EnvProperties = { monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service/", adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools", - adminToolsCommunity: "monitor", datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/", contextsAPI: "https://beta.services.openaire.eu/openaire/context", @@ -65,6 +67,7 @@ export let properties: EnvProperties = { resultsPerPage: 10, baseLink: "https://beta.monitor.openaire.eu", + searchLinkToResult: "/search/result?id=", searchLinkToPublication: "/search/publication?articleId=", searchLinkToProject: "/search/project?projectId=", searchLinkToDataProvider: "/search/dataprovider?datasourceId=", @@ -73,13 +76,10 @@ export let properties: EnvProperties = { searchLinkToOrganization: "/search/organization?organizationId=", searchLinkToOrp: "/search/other?orpId=", - searchLinkToCommunities: "/search/find/communities", - searchLinkToPublications: "/search/find/publications", + searchLinkToStakeholders: "browse", + searchLinkToResults: "/search/find/research-outcomes", searchLinkToDataProviders: "/search/find/dataproviders", 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", @@ -87,11 +87,8 @@ export let properties: EnvProperties = { searchLinkToJournals: "/search/journals", searchLinkToJournalsTable: "/search/journals-table", - searchLinkToAdvancedPublications: "/search/advanced/publications", + searchLinkToAdvancedResults: "/search/advanced/research-outcomes", searchLinkToAdvancedProjects: "/search/advanced/projects", - searchLinkToAdvancedDatasets: "/search/advanced/datasets", - searchLinkToAdvancedSoftware: "/search/advanced/software", - searchLinkToAdvancedOrps: "/search/advanced/other", searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders", searchLinkToAdvancedOrganizations: "/search/advanced/organizations", @@ -109,5 +106,7 @@ export let properties: EnvProperties = { admins: ["argirok@di.uoa.gr","kiatrop@di.uoa.gr"], lastIndexUpdate: "2019-08-07", - indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/" + indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/", + altMetricsAPIURL: "https://api.altmetric.com/v1/doi/", + b2noteAPIURL: "http://b2note-dev.bsc.es/api/" }; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 873d5c2..3a2342a 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -21,6 +21,9 @@ export let properties: EnvProperties = { 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/", @@ -52,6 +55,7 @@ export let properties: EnvProperties = { pagingLimit: 20, resultsPerPage: 10, baseLink: "https://monitor.openaire.eu", + searchLinkToResult: "/search/result?id=", searchLinkToPublication: "/search/publication?articleId=", searchLinkToProject: "/search/project?projectId=", searchLinkToDataProvider: "/search/dataprovider?datasourceId=", @@ -60,23 +64,18 @@ export let properties: EnvProperties = { searchLinkToOrp: "/search/other?orpId=", searchLinkToOrganization: "/search/organization?organizationId=", - searchLinkToPublications: "/search/find/publications", + searchLinkToStakeholders: "browse", + searchLinkToResults: "/search/find/research-outcomes", searchLinkToDataProviders: "/search/find/dataproviders", 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", searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table", searchLinkToJournals: "/search/journals", searchLinkToJournalsTable: "/search/journals-table", - searchLinkToAdvancedPublications: "/search/advanced/publications", + searchLinkToAdvancedResults: "/search/advanced/research-outcomes", searchLinkToAdvancedProjects: "/search/advanced/projects", - searchLinkToAdvancedDatasets: "/search/advanced/datasets", - searchLinkToAdvancedSoftware: "/search/advanced/software", - searchLinkToAdvancedOrps: "/search/advanced/other", searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders", searchLinkToAdvancedOrganizations: "/search/advanced/organizations", lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows", @@ -89,5 +88,7 @@ export let properties: EnvProperties = { reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P", admins: ["rcd-helpdesk@openaire.eu"], lastIndexUpdate: "2019-07-24", - indexInfoAPI: "http://services.openaire.eu/openaire/info/" + indexInfoAPI: "http://services.openaire.eu/openaire/info/", + altMetricsAPIURL: "https://api.altmetric.com/v1/doi/", + b2noteAPIURL: "http://b2note-dev.bsc.es/api/" }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 43b1d29..e12a57c 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -26,6 +26,9 @@ export let properties: EnvProperties = { 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/", @@ -47,8 +50,8 @@ export let properties: EnvProperties = { cookieDomain: ".di.uoa.gr", feedbackmail: "openaire.test@gmail.com", cacheUrl: "http://scoobydoo.di.uoa.gr:3000/get?url=", - monitorServiceAPIURL: "http://dl170.madgik.di.uoa.gr:8080/uoa-monitor-service", - adminToolsAPIURL: "http://mpagasas.di.uoa.gr:8080/uoa-admin-tools", + monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service", + adminToolsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-admin-tools/", adminToolsCommunity: "monitor", datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/", contextsAPI: "https://dev-openaire.d4science.org/openaire/context", @@ -58,6 +61,7 @@ export let properties: EnvProperties = { pagingLimit: 20, resultsPerPage: 10, baseLink: "http://dl170.madgik.di.uoa.gr/monitor", + searchLinkToResult: "/search/result?id=", searchLinkToPublication: "/search/publication?articleId=", searchLinkToProject: "/search/project?projectId=", searchLinkToDataProvider: "/search/dataprovider?datasourceId=", @@ -65,24 +69,18 @@ export let properties: EnvProperties = { searchLinkToSoftwareLanding: "/search/software?softwareId=", searchLinkToOrganization: "/search/organization?organizationId=", searchLinkToOrp: "/search/other?orpId=", - searchLinkToCommunities: "/search/find/communities", - searchLinkToPublications: "/search/find/publications", + searchLinkToStakeholders: "browse", + searchLinkToResults: "/search/find/research-outcomes", searchLinkToDataProviders: "/search/find/dataproviders", 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", searchLinkToEntityRegistriesDataProvidersTable: "/search/entity-registries-table", searchLinkToJournals: "/search/journals", searchLinkToJournalsTable: "/search/journals-table", - searchLinkToAdvancedPublications: "/search/advanced/publications", + searchLinkToAdvancedResults: "/search/advanced/research-outcomes", searchLinkToAdvancedProjects: "/search/advanced/projects", - searchLinkToAdvancedDatasets: "/search/advanced/datasets", - searchLinkToAdvancedSoftware: "/search/advanced/software", - searchLinkToAdvancedOrps: "/search/advanced/other", searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders", searchLinkToAdvancedOrganizations: "/search/advanced/organizations", lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows", @@ -95,5 +93,7 @@ export let properties: EnvProperties = { reCaptchaSiteKey: "6LcVtFIUAAAAAB2ac6xYivHxYXKoUvYRPi-6_rLu", admins: ["kostis30fylloy@gmail.com", "argirok@di.uoa.gr"], lastIndexUpdate: "2019-05-16", - indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/" + indexInfoAPI: "http://beta.services.openaire.eu/openaire/info/", + altMetricsAPIURL: "https://api.altmetric.com/v1/doi/", + b2noteAPIURL: "http://b2note-dev.bsc.es/api/" }; diff --git a/src/index.html b/src/index.html index b3d4940..2e5a4e0 100644 --- a/src/index.html +++ b/src/index.html @@ -43,10 +43,15 @@ -
- -
- +
+ +
+ diff --git a/src/material.scss b/src/material.scss new file mode 100644 index 0000000..40f39f7 --- /dev/null +++ b/src/material.scss @@ -0,0 +1,9 @@ +@import '../node_modules/@angular/material/theming'; +@include mat-core(); +$my-app-primary: mat-palette($mat-gray, 900); +$my-app-accent: mat-palette($mat-light-green, 700); + +$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent); + +@include angular-material-theme($my-app-theme); + diff --git a/src/styles.css b/src/styles.css index f5b2cad..98226e7 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1,8 +1,8 @@ /* You can add global styles to this file, and also import other style files */ @import "~@angular/material/prebuilt-themes/indigo-pink.css"; -@import "assets/common-assets/library.css"; -@import "assets/common-assets/common/custom.css"; @import "assets/common-assets/common/theme.css"; +@import "assets/common-assets/common/custom.css"; +@import "assets/common-assets/library.css"; @import "assets/monitor-custom.css"; @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');