[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
This commit is contained in:
Konstantinos Triantafyllou 2020-06-29 13:16:21 +00:00
parent 2985689cc1
commit 000cfca095
70 changed files with 1352 additions and 74 deletions

View File

@ -22,6 +22,7 @@
],
"styles": [
"src/styles.css",
"src/material.scss",
"node_modules/datatables.net-dt/css/jquery.dataTables.css"
],
"scripts": [

View File

@ -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',

View File

@ -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: `
<div class="monitorApp">
<navbar *ngIf="properties && showMenu" portal="monitor" [onlyTop]=false
<navbar *ngIf="properties && showMenu" portal="monitor" [onlyTop]=false [stakeholder]="stakeholder"
[userMenuItems]=userMenuItems [menuItems]=menuItems [user]="user"
[showMenu]=showMenu [properties]="properties"></navbar>
<div class="custom-main-content">
@ -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<Params> = new BehaviorSubject<Params>(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;
}
}

View File

@ -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';

View File

@ -69,13 +69,13 @@
</div>
</div>
<div class="uk-section">
<h3 class="uk-text-center" uk-parallax="y: -40; easing: 2">Why use OpenAIRE Monitor Dashboard?</h3>
<h3 class="uk-text-center" uk-parallax="y: 0, -100; easing: 0.5">Why use OpenAIRE Monitor Dashboard?</h3>
<div
class="uk-section uk-section-large uk-container uk-container-large uk-margin-large-top boat-section uk-position-relative">
<div class="uk-grid uk-grid-match uk-margin-left uk-margin-right uk-child-width-1-2@m" uk-grid>
<div class="boat uk-hidden@m"></div>
<div class="boat uk-visible@l"></div>
<div class="first" uk-parallax="y: -40; easing: 2">
<div class="first" uk-parallax="y: 40, -60; easing: 0.5">
<div>
<h4>Global outlook</h4>
<div>
@ -84,7 +84,7 @@
</div>
</div>
</div>
<div class="second" uk-parallax="y: -40; easing: 2">
<div class="second" uk-parallax="y: 40, -60; easing: 0.5">
<div>
<h4>Transparent methodology</h4>
<div>
@ -93,7 +93,7 @@
</div>
</div>
</div>
<div class="third" uk-parallax="y: -40; easing: 1">
<div class="third" uk-parallax="y: -100; easing: 0.5">
<div>
<h4>Customised to your needs</h4>
<div>
@ -102,7 +102,7 @@
</div>
</div>
</div>
<div class="fourth" uk-parallax="y: -40; easing: 0.5">
<div class="fourth" uk-parallax="y: -100; easing: 2">
<div>
<h4>Minimum effort to join</h4>
<div>

View File

@ -19,7 +19,7 @@ import {StakeholderInfo} from "../openaireLibrary/monitor/entities/stakeholder";
template: `
<new-search-page pageTitle="OpenAIRE-Monitor | Search Stakeholders"
[hasPrefix]=false [piwikSiteId]="piwikSiteId"
[formPlaceholderText]="'Search for Stakeholders…'"
[formPlaceholderText]="'Search profiles'"
type="stakeholders" entityType="stakeholder"
[results]="results" [searchUtils]="searchUtils"
[showResultCount]=true
@ -95,7 +95,7 @@ export class SearchStakeholdersComponent {
this.searchUtils.sortBy = "";
}
this.searchPage.refineFields = this.refineFields;
this.searchLink = this.properties.searchLinkToCommunities;
this.searchLink = this.properties.searchLinkToStakeholders;
this.selectedFields = [];
this.searchPage.prepareSearchPage(this.fieldIds, this.selectedFields, this.refineFields, [], this.fieldIdsMap, null, params, "stakeholder", null);

View File

@ -0,0 +1,15 @@
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
import {MonitorDataProviderComponent} from './dataProvider.component';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
@NgModule({
imports: [
RouterModule.forChild([
{path: '', component: MonitorDataProviderComponent, canDeactivate: [PreviousRouteRecorder]}
])
]
})
export class DataProviderRoutingModule {
}

View File

@ -0,0 +1,8 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-dataprovider',
template: `
<dataprovider></dataprovider>`,
})
export class MonitorDataProviderComponent {}

View File

@ -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 { }

View File

@ -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 {
}

View File

@ -0,0 +1,9 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-dataset',
template: `
<result-landing type="dataset"></result-landing>
`,
})
export class MonitorDatasetComponent {}

View File

@ -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 { }

View File

@ -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 {
}

View File

@ -0,0 +1,7 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-htmlProjectReport',
template: `<htmlProjectReport></htmlProjectReport>`,
})
export class MonitorHtmlProjectReportComponent{}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -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 {
}

View File

@ -0,0 +1,8 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-organization',
template: `
<organization></organization>`,
})
export class MonitorOrganizationComponent {}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -0,0 +1,10 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-orp',
template: `
<result-landing type="orp"></result-landing>
`,
})
export class MonitorOrpComponent {}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -0,0 +1,8 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-project',
template: `
<project></project>`,
})
export class MonitorProjectComponent {}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -0,0 +1,9 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-publication',
template: `
<result-landing type="publication"></result-landing>
`,
})
export class MonitorPublicationComponent {}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -0,0 +1,9 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-result',
template: `
<result-landing type="result"></result-landing>`,
})
export class MonitorResultComponent {
}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -0,0 +1,9 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-software',
template: `
<result-landing type="software"></result-landing>
`,
})
export class MonitorSoftwareComponent {}

View File

@ -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 + "/" + (<string>this.default[field]).replace('search/', '');
});
}
public static resetProperties() {
Object.keys(this.default).forEach(field => {
properties[field] = this.default[field];
});
}
}

View File

@ -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 {}

View File

@ -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 { }

View File

@ -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 {
}

View File

@ -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: `
<search-dataproviders *ngIf="initialized" [simpleView]="false"
openaireLink="https://beta.explore.openaire.eu/search/find/dataproviders"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false">
</search-dataproviders>
`
})
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}});
}
}

View File

@ -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 { }

View File

@ -0,0 +1,10 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-advanced-search-organizations',
template: `
<search-organizations [simpleView]="false">
</search-organizations>
`
})
export class MonitorAdvancedSearchOrganizationsComponent {}

View File

@ -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 {
}

View File

@ -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 { }

View File

@ -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: `
<search-projects *ngIf="initialized" [simpleView]="false"
openaireLink="https://beta.explore.openaire.eu/search/find/projects"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false">
</search-projects>
`
})
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}});
}
}

View File

@ -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 {
}

View File

@ -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 { }

View File

@ -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: `
<search-research-results *ngIf="initialized" resultType="result" [simpleView]="false"
openaireLink="https://beta.explore.openaire.eu/search/find/publications"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false"
[showAdvancedSearchLink]="true"></search-research-results>
`
})
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;
}
});
}
}

View File

@ -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 {
}

View File

@ -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 { }

View File

@ -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 { }

View File

@ -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: `
<search-all logoURL = "/assets/common-assets/logo-small-explore.png" name="OpenAIRE Connect" [customFilter]=customFilter [piwikSiteId]="piwikSiteId" ></search-all>
<!-- <search-find [customFilter]=customFilter [piwikSiteId]="piwikSiteId" formPlaceholderText="Search for research results"></search-find>-->
`,
})
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, "");
}
});
}
});
}
}

View File

@ -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 { }

View File

@ -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 {
}

View File

@ -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: `
<search-dataproviders *ngIf="initialized"
openaireLink="https://beta.explore.openaire.eu/search/find/dataproviders"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false">
</search-dataproviders>
`
})
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}});
}
}

View File

@ -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 { }

View File

@ -0,0 +1,10 @@
import {Component} from '@angular/core';
@Component({
selector: 'monitor-search-organizations',
template: `
<search-organizations>
</search-organizations>
`
})
export class MonitorSearchOrganizationsComponent {}

View File

@ -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 {
}

View File

@ -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 { }

View File

@ -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: `
<search-projects *ngIf="initialized"
openaireLink="https://beta.explore.openaire.eu/search/find/projects"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false">
</search-projects>
`
})
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}});
}
}

View File

@ -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 {
}

View File

@ -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 { }

View File

@ -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: `
<search-research-results *ngIf="initialized" resultType="result"
openaireLink="https://beta.explore.openaire.eu/search/find/publications"
[customFilter]=customFilter [hasPrefix]="false"
[includeOnlyResultsAndFilter]="false"
[showAdvancedSearchLink]="true"></search-research-results>
`
})
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;
}
});
}
}

View File

@ -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 {
}

View File

@ -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 {

View File

@ -34,3 +34,8 @@
font-size: 18px;
font-weight: 500;
}
/* Temp changes*/
contact h5, new-search-page h5, result-preview h5 {
font-size: 18px;
}

View File

@ -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/"
};

View File

@ -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/"
};

View File

@ -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/"
};

View File

@ -43,10 +43,15 @@
</head>
<body class="" style="">
<div class="uk-offcanvas-content uk-height-viewport">
<app-root></app-root>
</div>
<div class="uk-offcanvas-content uk-height-viewport">
<app-root></app-root>
</div>
<script type="text/javascript">
function loadAltmetrics(e, t, n) {
var d = "createElement", c = "getElementsByTagName", m = "setAttribute", n = document.getElementById(e);
return n && n.parentNode && n.parentNode.removeChild(n), n = document[d + "NS"] && document.documentElement.namespaceURI, n = n ? document[d + "NS"](n, "script") : document[d]("script"), n[m]("id", e), n[m]("src", t), (document[c]("head")[0] || document[c]("body")[0]).appendChild(n), n = new Image, void n[m]("src", "https://d1uo4w7k31k5mn.cloudfront.net/donut/0.png")
};
</script>
</body>
</html>

9
src/material.scss Normal file
View File

@ -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);

View File

@ -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');