[Monitor Dashboard | Trunk]: wait property initialization on search and langind pages

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@59106 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2020-07-14 10:01:01 +00:00
parent d767faeecd
commit 70397bb5e7
29 changed files with 231 additions and 84 deletions

View File

@ -89,18 +89,24 @@ export class AppComponent implements OnInit, OnDestroy {
if (!this.stakeholderService.stakeholder || if (!this.stakeholderService.stakeholder ||
this.stakeholderService.stakeholder.alias !== params['stakeholder']) { this.stakeholderService.stakeholder.alias !== params['stakeholder']) {
this.stakeholderService.getStakeholder(this.properties.monitorServiceAPIURL, params['stakeholder']).subscribe(stakeholder => { this.stakeholderService.getStakeholder(this.properties.monitorServiceAPIURL, params['stakeholder']).subscribe(stakeholder => {
this.stakeholderService.setStakeholder(stakeholder); if(stakeholder) {
this.layoutService.setOpen(true); this.stakeholder = stakeholder;
this.stakeholder = stakeholder; LinksResolver.setProperties(this.stakeholder.alias);
LinksResolver.setProperties(this.stakeholder.alias); this.stakeholderService.setStakeholder(stakeholder);
if(isSearch) { this.layoutService.setOpen(true);
this.activeTopic = null; if (isSearch) {
} else if (params && params['topic'] && !this.activeTopic) { this.activeTopic = null;
this.activeTopic = this.stakeholder.topics.find(topic => topic.alias === decodeURIComponent(params['topic']) && this.isPublicOrIsMember(topic.isPublic) && topic.isActive); } else if (params && params['topic'] && !this.activeTopic) {
this.activeTopic = this.stakeholder.topics.find(topic => topic.alias === decodeURIComponent(params['topic']) && this.isPublicOrIsMember(topic.isPublic) && topic.isActive);
} else {
this.activeTopic = this.stakeholder.topics.find(topic => this.isPublicOrIsMember(topic.isPublic) && topic.isActive);
}
this.setSideBar();
} else { } else {
this.activeTopic = this.stakeholder.topics.find(topic => this.isPublicOrIsMember(topic.isPublic) && topic.isActive); this.stakeholderService.setStakeholder(null);
LinksResolver.resetProperties();
this.navigateToError();
} }
this.setSideBar();
}, error => { }, error => {
this.stakeholderService.setStakeholder(null); this.stakeholderService.setStakeholder(null);
LinksResolver.resetProperties(); LinksResolver.resetProperties();

View File

@ -20,7 +20,6 @@ import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/e
loadChildren: '../search/search.module#SearchModule', loadChildren: '../search/search.module#SearchModule',
resolve: {envSpecific: EnvironmentSpecificResolver} resolve: {envSpecific: EnvironmentSpecificResolver}
}, },
{ path: ':stakeholder/project-report', loadChildren: '../search/landingPages/htmlProjectReport/libHtmlProjectReport.module#LibHtmlProjectReportModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
{ {
path: ':stakeholder/:topic', path: ':stakeholder/:topic',
component: MonitorComponent, component: MonitorComponent,

View File

@ -1,11 +1,31 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-dataprovider', selector: 'monitor-dataprovider',
template: ` template: `
<div id="page_content"> <div id="page_content">
<dataprovider></dataprovider> <dataprovider *ngIf="initialized"></dataprovider>
</div>`, </div>`,
}) })
export class MonitorDataProviderComponent { export class MonitorDataProviderComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -6,7 +6,7 @@ import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
@NgModule({ @NgModule({
imports: [DataProviderModule, DataProviderRoutingModule], imports: [DataProviderModule, DataProviderRoutingModule, CommonModule],
declarations:[MonitorDataProviderComponent], declarations:[MonitorDataProviderComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorDataProviderComponent] exports:[MonitorDataProviderComponent]

View File

@ -1,12 +1,33 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-dataset', selector: 'monitor-dataset',
template: ` template: `
<div id="page_content"> <div id="page_content">
<result-landing type="dataset"></result-landing> <result-landing *ngIf="initialized" type="dataset"></result-landing>
</div> </div>
`, `,
}) })
export class MonitorDatasetComponent { export class MonitorDatasetComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -4,11 +4,11 @@ import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {DatasetRoutingModule} from './dataset-routing.module'; import {DatasetRoutingModule} from './dataset-routing.module';
import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module";
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [DatasetRoutingModule, ResultLandingModule], imports: [DatasetRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorDatasetComponent], declarations:[MonitorDatasetComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder, IsRouteEnabled],
exports:[MonitorDatasetComponent] exports:[MonitorDatasetComponent]
}) })
export class LibDatasetModule { } export class LibDatasetModule { }

View File

@ -1,16 +0,0 @@
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

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

View File

@ -1,14 +0,0 @@
import {NgModule} from '@angular/core';
import {HtmlProjectReportModule} from '../../../openaireLibrary/landingPages/htmlProjectReport/htmlProjectReport.module';
import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorHtmlProjectReportComponent} from './htmlProjectReport.component';
import {HtmlProjectReportRoutingModule} from './htmlProjectReport-routing.module';
@NgModule({
imports: [HtmlProjectReportModule, HtmlProjectReportRoutingModule],
declarations:[MonitorHtmlProjectReportComponent],
providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorHtmlProjectReportComponent]
})
export class LibHtmlProjectReportModule { }

View File

@ -4,9 +4,10 @@ import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorOrganizationComponent} from './organization.component'; import {MonitorOrganizationComponent} from './organization.component';
import {OrganizationRoutingModule} from './organization-routing.module'; import {OrganizationRoutingModule} from './organization-routing.module';
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [OrganizationModule, OrganizationRoutingModule], imports: [OrganizationModule, OrganizationRoutingModule, CommonModule],
declarations:[MonitorOrganizationComponent], declarations:[MonitorOrganizationComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorOrganizationComponent] exports:[MonitorOrganizationComponent]

View File

@ -1,11 +1,31 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-organization', selector: 'monitor-organization',
template: ` template: `
<div id="page_content"> <div id="page_content">
<organization></organization> <organization *ngIf="initialized"></organization>
</div>`, </div>`,
}) })
export class MonitorOrganizationComponent { export class MonitorOrganizationComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -4,10 +4,11 @@ import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/
import {MonitorOrpComponent} from './orp.component'; import {MonitorOrpComponent} from './orp.component';
import {OrpRoutingModule} from './orp-routing.module'; import {OrpRoutingModule} from './orp-routing.module';
import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module";
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [ imports: [
OrpRoutingModule, ResultLandingModule OrpRoutingModule, ResultLandingModule, CommonModule
], ],
declarations: [ declarations: [
MonitorOrpComponent MonitorOrpComponent

View File

@ -1,13 +1,33 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-orp', selector: 'monitor-orp',
template: ` template: `
<div id="page_content"> <div id="page_content">
<result-landing type="orp"></result-landing> <result-landing *ngIf="initialized" type="orp"></result-landing>
</div> </div>
`, `,
}) })
export class MonitorOrpComponent { export class MonitorOrpComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -4,9 +4,10 @@ import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorProjectComponent} from './project.component'; import {MonitorProjectComponent} from './project.component';
import {ProjectRoutingModule} from './project-routing.module'; import {ProjectRoutingModule} from './project-routing.module';
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [ProjectModule, ProjectRoutingModule], imports: [ProjectModule, ProjectRoutingModule, CommonModule],
declarations:[MonitorProjectComponent], declarations:[MonitorProjectComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorProjectComponent] exports:[MonitorProjectComponent]

View File

@ -1,11 +1,32 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-project', selector: 'monitor-project',
template: ` template: `
<div id="page_content"> <div id="page_content">
<project></project> <project *ngIf="initialized"></project>
</div>`, </div>`,
}) })
export class MonitorProjectComponent { export class MonitorProjectComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -4,9 +4,10 @@ import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previo
import { MonitorPublicationComponent } from './publication.component'; import { MonitorPublicationComponent } from './publication.component';
import {PublicationRoutingModule} from './publication-routing.module'; import {PublicationRoutingModule} from './publication-routing.module';
import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module";
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [PublicationRoutingModule, ResultLandingModule], imports: [PublicationRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorPublicationComponent], declarations:[MonitorPublicationComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorPublicationComponent] exports:[MonitorPublicationComponent]

View File

@ -1,12 +1,32 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-publication', selector: 'monitor-publication',
template: ` template: `
<div id="page_content"> <div id="page_content">
<result-landing type="publication"></result-landing> <result-landing *ngIf="initialized" type="publication"></result-landing>
</div> </div>
`, `,
}) })
export class MonitorPublicationComponent { export class MonitorPublicationComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -4,9 +4,10 @@ import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previo
import {MonitorResultComponent} from './result.component'; import {MonitorResultComponent} from './result.component';
import {ResultRoutingModule} from './result-routing.module'; import {ResultRoutingModule} from './result-routing.module';
import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module"; import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module";
import {CommonModule} from "@angular/common";
@NgModule({ @NgModule({
imports: [ResultRoutingModule, ResultLandingModule], imports: [ResultRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorResultComponent], declarations:[MonitorResultComponent],
providers:[FreeGuard, PreviousRouteRecorder], providers:[FreeGuard, PreviousRouteRecorder],
exports:[MonitorResultComponent] exports:[MonitorResultComponent]

View File

@ -1,11 +1,31 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-result', selector: 'monitor-result',
template: ` template: `
<div id="page_content"> <div id="page_content">
<result-landing type="result"></result-landing> <result-landing *ngIf="initialized" type="result"></result-landing>
</div>`, </div>`,
}) })
export class MonitorResultComponent { export class MonitorResultComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -12,6 +12,7 @@ interface Links {
searchLinkToResults, searchLinkToResults,
searchLinkToProjects, searchLinkToProjects,
searchLinkToDataProviders, searchLinkToDataProviders,
searchLinkToOrganizations,
searchLinkToAdvancedResults, searchLinkToAdvancedResults,
searchLinkToAdvancedProjects, searchLinkToAdvancedProjects,
searchLinkToAdvancedDataProviders, searchLinkToAdvancedDataProviders,
@ -32,6 +33,7 @@ export class LinksResolver {
searchLinkToResults: properties.searchLinkToResults, searchLinkToResults: properties.searchLinkToResults,
searchLinkToDataProviders: properties.searchLinkToDataProviders, searchLinkToDataProviders: properties.searchLinkToDataProviders,
searchLinkToProjects: properties.searchLinkToProjects, searchLinkToProjects: properties.searchLinkToProjects,
searchLinkToOrganizations: properties.searchLinkToOrganizations,
searchLinkToAdvancedResults: properties.searchLinkToAdvancedResults, searchLinkToAdvancedResults: properties.searchLinkToAdvancedResults,
searchLinkToAdvancedProjects: properties.searchLinkToAdvancedProjects, searchLinkToAdvancedProjects: properties.searchLinkToAdvancedProjects,
searchLinkToAdvancedDataProviders: properties.searchLinkToAdvancedDataProviders, searchLinkToAdvancedDataProviders: properties.searchLinkToAdvancedDataProviders,

View File

@ -40,8 +40,6 @@ export class MonitorAdvancedSearchDataprovidersComponent {
this.initialized = true; this.initialized = true;
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -1,13 +1,33 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-advanced-search-organizations', selector: 'monitor-advanced-search-organizations',
template: ` template: `
<div id="page_content"> <div id="page_content">
<search-organizations [simpleView]="false"> <search-organizations *ngIf="initialized" [simpleView]="false">
</search-organizations> </search-organizations>
</div> </div>
` `
}) })
export class MonitorAdvancedSearchOrganizationsComponent { export class MonitorAdvancedSearchOrganizationsComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -43,8 +43,6 @@ export class MonitorAdvancedSearchProjectsComponent {
this.initialized = true; this.initialized = true;
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -43,8 +43,6 @@ export class MonitorAdvancedSearchResearchResultsComponent {
this.initialized = true; this.initialized = true;
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -40,8 +40,6 @@ export class MonitorSearchDataprovidersComponent {
this.initialized = true; this.initialized = true;
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -1,13 +1,33 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
@Component({ @Component({
selector: 'monitor-search-organizations', selector: 'monitor-search-organizations',
template: ` template: `
<div id="page_content"> <div id="page_content">
<search-organizations> <search-organizations *ngIf="initialized">
</search-organizations> </search-organizations>
</div> </div>
` `
}) })
export class MonitorSearchOrganizationsComponent { export class MonitorSearchOrganizationsComponent {
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) {
this.initialized = true;
}
});
}
});
}
} }

View File

@ -44,8 +44,6 @@ export class MonitorSearchProjectsComponent {
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -43,8 +43,6 @@ export class MonitorSearchResearchResultsComponent {
this.initialized = true; this.initialized = true;
} }
}); });
} else {
this.initialized = true;
} }
}); });
} }

View File

@ -57,4 +57,10 @@
.uk-alert.uk-grid { .uk-alert.uk-grid {
display: flex; display: flex;
} }
.uk-alert-primary {
background: #fff;
color: #222080;
border-color: #222080;
}
} }