From 8eb3632fd252477115b1bf092ff3581ca335fe3a Mon Sep 17 00:00:00 2001 From: Ioannis Kalyvas Date: Thu, 28 Jun 2018 12:28:16 +0300 Subject: [PATCH] no message --- dmp-frontend/src/app/app-routing.module.ts | 33 +++++--------- dmp-frontend/src/app/app.component.html | 2 +- dmp-frontend/src/app/app.component.ts | 10 ++++- .../dataset-wizard.component.ts | 30 ++++++++++++- .../src/app/datasets/dataset.routes.ts | 45 ++++++++++++++++--- .../listing/dataset-listing.component.ts | 5 ++- dmp-frontend/src/app/dmps/dmps.routes.ts | 30 ++++++------- .../app/dmps/editor/dmp-editor.component.ts | 1 - .../dmps/listing/dmp-listing.component.html | 2 +- .../app/dmps/listing/dmp-listing.component.ts | 10 +++-- .../app/models/datasets/DatasetWizardModel.ts | 4 +- .../src/app/projects/project.routes.ts | 11 +++-- .../breadcrumb/breadcrumb-resolver.service.ts | 1 + .../breadcrumb/breadcrumb.component.ts | 4 +- .../app/welcomepage/welcomepage.component.ts | 15 ++++--- 15 files changed, 137 insertions(+), 66 deletions(-) diff --git a/dmp-frontend/src/app/app-routing.module.ts b/dmp-frontend/src/app/app-routing.module.ts index 867ad6ab1..ac9c630c0 100644 --- a/dmp-frontend/src/app/app-routing.module.ts +++ b/dmp-frontend/src/app/app-routing.module.ts @@ -12,8 +12,7 @@ const appRoutes: Routes = [ path: 'datasets', loadChildren: './datasets/dataset.module#DatasetModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'Folder' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -21,8 +20,7 @@ const appRoutes: Routes = [ path: 'about', loadChildren: './about/about.module#AboutModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'About' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -30,8 +28,7 @@ const appRoutes: Routes = [ path: 'projects', loadChildren: './projects/projects.module#ProjectsModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'Projects' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -39,8 +36,7 @@ const appRoutes: Routes = [ path: "dmps", loadChildren: './dmps/dmps.module#DataManagementPlanModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'DMPs' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -48,8 +44,7 @@ const appRoutes: Routes = [ path: "dmp-profiles", loadChildren: './dmp-profiles/dmp-profile.module#DataManagamentPlanProfileModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'DMP Profiles' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -57,8 +52,7 @@ const appRoutes: Routes = [ path: 'form', loadChildren: './dataset-profile-form/dataset-profile.module#DatasetProfileModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'Dataset Profile' + breadcrumb: true }, canActivate: [AuthGuard] }, @@ -66,8 +60,7 @@ const appRoutes: Routes = [ path: 'home', component: HomepageComponent, data: { - // Interpolates values resolved by the router - breadcrumbs: 'Home' + breadcrumb: false }, canActivate: [AuthGuard] }, @@ -75,8 +68,7 @@ const appRoutes: Routes = [ path: '', redirectTo: '/welcome', data: { - // Interpolates values resolved by the router - breadcrumbs: 'Home' + breadcrumbs: true }, pathMatch: 'full' }, @@ -84,7 +76,7 @@ const appRoutes: Routes = [ path: "unauthorized", loadChildren: './unauthorized/unauthorized.module#UnauthorizedModule', data: { - // Interpolates values resolved by the router + breadcrumb: true }, }, { @@ -95,23 +87,20 @@ const appRoutes: Routes = [ path: "datasetsProfiles", loadChildren: './datasets-admin-listing/dataset-admin.module#DatasetAdminModule', data: { - // Interpolates values resolved by the router - breadcrumbs: 'Datasets Profiles' + breadcrumb: true }, }, { path: "welcome", component: WelcomepageComponent, data: { - // Interpolates values resolved by the router - breadcrumbs: 'Home' + breadcrumb: true }, }, { path: "api/oauth/authorized/b2access", component: B2AccessLoginComponent, data: { - // Interpolates values resolved by the router }, } ]; diff --git a/dmp-frontend/src/app/app.component.html b/dmp-frontend/src/app/app.component.html index ba98603d4..b80834747 100644 --- a/dmp-frontend/src/app/app.component.html +++ b/dmp-frontend/src/app/app.component.html @@ -9,7 +9,7 @@
- +
diff --git a/dmp-frontend/src/app/app.component.ts b/dmp-frontend/src/app/app.component.ts index bf7bf8656..cbd0b406a 100644 --- a/dmp-frontend/src/app/app.component.ts +++ b/dmp-frontend/src/app/app.component.ts @@ -1,8 +1,9 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute, NavigationExtras } from '@angular/router'; +import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute, NavigationExtras, NavigationEnd } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { LanguageResolverService } from './services/language-resolver/language-resolver.service'; import { BreadCrumbResolverService } from './services/breadcrumb/breadcrumb-resolver.service'; +import { Observable } from 'rxjs/Observable'; declare const gapi: any; @@ -17,6 +18,7 @@ declare var $: any; }) export class AppComponent implements OnInit { + hasBreadCrumb = Observable.of(false); constructor( private router: Router, private route: ActivatedRoute, @@ -40,6 +42,12 @@ export class AppComponent implements OnInit { } ngOnInit() { + this.hasBreadCrumb = this.router.events + .filter(event => event instanceof NavigationEnd) + .map(() => this.route) + .map(route => route.firstChild) + .switchMap(route => route.data) + .map(data => data['breadcrumb']) } login() { diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts index 0f5691e6e..7f8574d99 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts @@ -30,6 +30,9 @@ import { ServiceModel } from '../../models/services/ServiceModel'; import { DataRepositoryModel } from '../../models/dataRepositories/DataRepositoryModel'; import { ExternalSourcesConfigurationService } from '../../services/external-sources/external-sources-configuration.service'; import { ExternalSourcesConfiguration } from '../../models/external-sources/ExternalSourcesConfiguration'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { Observable } from 'rxjs/Observable'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; @Component({ selector: 'app-dataset-wizard-component', @@ -37,7 +40,8 @@ import { ExternalSourcesConfiguration } from '../../models/external-sources/Exte styleUrls: ['./dataset-wizard.component.scss'], encapsulation: ViewEncapsulation.None }) -export class DatasetWizardComponent { +export class DatasetWizardComponent implements OnInit, IBreadCrumbComponent { + breadCrumbs: Observable; @ViewChild('stepper') stepper: MatStepper; //autocomplete Display Functions; @@ -111,6 +115,30 @@ export class DatasetWizardComponent { this.datasetWizardService.getSingle(this.itemId).map(data => data as DatasetWizardModel) .subscribe(data => { this.datasetWizardModel = JsonSerializer.fromJSONObject(data, DatasetWizardModel); + this.breadCrumbs = Observable.of([ + { + parentComponentName: null, + label: "Datasets", + url: "/datasets", + notFoundResolver: [ + { + parentComponentName: null, + label: this.datasetWizardModel.dmp.project.label, + url: "/projects/edit/" + this.datasetWizardModel.dmp.project.id + }, + { + parentComponentName: null, + label: this.datasetWizardModel.dmp.label, + url: "/dmps/edit/" + this.datasetWizardModel.dmp.id, + }, + ] + }, + { + parentComponentName: null, + label: this.datasetWizardModel.label, + url: "/datasets/" + this.datasetWizardModel.id + } + ]) this.formGroup = this.datasetWizardModel.buildForm(); this.loadDatasetProfiles(); }); diff --git a/dmp-frontend/src/app/datasets/dataset.routes.ts b/dmp-frontend/src/app/datasets/dataset.routes.ts index c023af169..bf9958fc9 100644 --- a/dmp-frontend/src/app/datasets/dataset.routes.ts +++ b/dmp-frontend/src/app/datasets/dataset.routes.ts @@ -4,9 +4,44 @@ import { RouterModule, Routes } from '@angular/router'; import { AuthGuard } from '../shared/guards/auth.guard'; export const DatasetRoutes: Routes = [ - { path: "new/:dmpId", component: DatasetWizardComponent, canActivate: [AuthGuard] }, - { path: "edit/:id", component: DatasetWizardComponent, canActivate: [AuthGuard] }, - { path: "new", component: DatasetWizardComponent, canActivate: [AuthGuard] }, - { path: '', component: DatasetListingComponent, canActivate: [AuthGuard] }, - { path: "dmp/:dmpId", component: DatasetListingComponent, canActivate: [AuthGuard] } + { + path: "new/:dmpId", + component: DatasetWizardComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true + }, + }, + { + path: "edit/:id", + component: DatasetWizardComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true + }, + }, + { + path: "new", + component: DatasetWizardComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true + }, + }, + { + path: '', + component: DatasetListingComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true + }, + }, + { + path: "dmp/:dmpId", + component: DatasetListingComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true + }, + } ]; diff --git a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts index 739760b64..e8b119a3a 100644 --- a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts +++ b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts @@ -56,13 +56,14 @@ export class DatasetListingComponent implements OnInit, IBreadCrumbComponent { ngOnInit() { - this.route.params.subscribe((params: Params) => { + this.route.params.subscribe(async (params: Params) => { this.dmpId = params['dmpId']; this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); this.refresh(); this.criteria.setRefreshCallback(() => this.refresh()); if (this.dmpId != null) { - this.breadCrumbs = Observable.of([{ parentComponentName: "DataManagementPlanEditorComponent", label: params['dmpLabel'], url: "dmps/edit/" + this.dmpId }, { parentComponentName: null, label: 'Datasets', url: "dmps" }]) + let dmp = await this.dataManagementPlanService.getSingle(this.dmpId).toPromise() + this.breadCrumbs = Observable.of([{ parentComponentName: "DataManagementPlanEditorComponent", label: dmp.label, url: "dmps/edit/" + this.dmpId }, { parentComponentName: null, label: 'Datasets', url: "dmps" }]) if (params['dmpLabel'] != undefined) this.titlePrefix = "for " + params['dmpLabel']; } else { diff --git a/dmp-frontend/src/app/dmps/dmps.routes.ts b/dmp-frontend/src/app/dmps/dmps.routes.ts index 773261739..b1469ff98 100644 --- a/dmp-frontend/src/app/dmps/dmps.routes.ts +++ b/dmp-frontend/src/app/dmps/dmps.routes.ts @@ -10,29 +10,29 @@ export const DataManagementPlanRoutes: Routes = [ path: '', component: DataManagementPlanListingComponent, data: { - breadcrumbs: '' - } + breadcrumb: true + }, }, { path: 'viewversions/:groupId', component: DataManagementPlanListingComponent, data: { - breadcrumbs: 'group' - } + breadcrumb: true + }, }, { path: 'project/:projectId', component: DataManagementPlanListingComponent, data: { - breadcrumbs: 'project' - } + breadcrumb: true + }, }, { path: 'edit/:id', component: DataManagementPlanEditorComponent, data: { - breadcrumbs: 'edit' - } + breadcrumb: true + }, }, { path: 'new', @@ -46,22 +46,22 @@ export const DataManagementPlanRoutes: Routes = [ component: DataManagementPlanWizardComponent, data: { clone: false, - breadcrumbs: 'new version' - } + breadcrumb: true + }, }, { path: 'clone/:id', component: DataManagementPlanWizardComponent, data: { - clone: true, - breadcrumbs: 'clone' - } + clone: false, + breadcrumb: true + }, }, { path: "invitation/:id", component: InvitationAcceptedComponent, data: { - breadcrumbs: 'ivitation' - } + breadcrumb: true + }, } ]; diff --git a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts index 2652f0d84..bd21fc334 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts @@ -78,7 +78,6 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC private languageResolverService: LanguageResolverService ) { this.filteredOptions = dmpProfileService.getAll({ criteria: new DataManagementPlanProfileCriteria() }); - } ngAfterViewInit() { diff --git a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html index f8d01161c..4da90fbb5 100644 --- a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html +++ b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html @@ -63,7 +63,7 @@ add{{'DMP-LISTING.ACTIONS.ADD-DATASET' | translate}} -