From 6c4316479ccf7f676344a74b95b092fc0ad6cc09 Mon Sep 17 00:00:00 2001 From: Timo Pagel Date: Fri, 10 Nov 2023 11:24:56 +0100 Subject: [PATCH] feat: BREAKING CHANGE: Use UUID for navigation. Old dimension/subdimesion/activityName will not work anymore --- .../activity-description.component.ts | 68 ++++++++++++++++--- .../component/matrix/matrix.component.html | 1 + src/app/component/matrix/matrix.component.ts | 3 +- 3 files changed, 63 insertions(+), 9 deletions(-) diff --git a/src/app/component/activity-description/activity-description.component.ts b/src/app/component/activity-description/activity-description.component.ts index c9a09fc0..d57fade2 100644 --- a/src/app/component/activity-description/activity-description.component.ts +++ b/src/app/component/activity-description/activity-description.component.ts @@ -83,10 +83,7 @@ export class ActivityDescriptionComponent implements OnInit { ngOnInit() { this.route.queryParams.subscribe(params => { - this.currentActivity.dimension = params['dimension']; - this.currentActivity.subDimension = params['subDimension']; - this.currentActivity.level = 'level-' + params['level']; - this.currentActivity.activityName = params['activityName']; + this.currentActivity.uuid = params['uuid']; }); //gets value from sample file @@ -103,10 +100,65 @@ export class ActivityDescriptionComponent implements OnInit { // Function sets data this.yaml.getJson().subscribe(data => { this.YamlObject = data; - var data = - this.YamlObject[this.currentActivity.dimension][ - this.currentActivity.subDimension - ][this.currentActivity.activityName]; + + var allDimensionNames = Object.keys(this.YamlObject); + for (let i = 0; i < allDimensionNames.length; i++) { + var subdimensionsInCurrentDimension = Object.keys( + this.YamlObject[allDimensionNames[i]] + ); + + for (let j = 0; j < subdimensionsInCurrentDimension.length; j++) { + var temp: any = { + Dimension: allDimensionNames[i], + SubDimension: subdimensionsInCurrentDimension[j], + }; + var activityInCurrentSubDimension: string[] = Object.keys( + this.YamlObject[allDimensionNames[i]][ + subdimensionsInCurrentDimension[j] + ] + ); + + for (let a = 0; a < activityInCurrentSubDimension.length; a++) { + var currentActivityName = activityInCurrentSubDimension[a]; + + try { + console.log(this.currentActivity.uuid, this.currentActivity.uuid); + console.log( + 'uuid', + this.YamlObject[allDimensionNames[i]][ + subdimensionsInCurrentDimension[j] + ][currentActivityName].uuid + ); + console.log( + 'currentActivityName', + this.YamlObject[allDimensionNames[i]][ + subdimensionsInCurrentDimension[j] + ][currentActivityName] + ); + if ( + this.YamlObject[allDimensionNames[i]][ + subdimensionsInCurrentDimension[j] + ][currentActivityName].uuid == this.currentActivity.uuid + ) { + data = + this.YamlObject[allDimensionNames[i]][ + subdimensionsInCurrentDimension[j] + ][currentActivityName]; + this.currentActivity = data; + this.currentActivity.dimension = allDimensionNames[i]; + this.currentActivity.subDimension = + subdimensionsInCurrentDimension[j]; + this.currentActivity.activityName = currentActivityName; + console.log('found'); + break; + } + } catch { + console.log('Level for activity does not exist'); + } + } + } + } + this.currentActivity.description = this.defineStringValues( data['description'], '' diff --git a/src/app/component/matrix/matrix.component.html b/src/app/component/matrix/matrix.component.html index 854e5586..6d0cb47e 100644 --- a/src/app/component/matrix/matrix.component.html +++ b/src/app/component/matrix/matrix.component.html @@ -67,6 +67,7 @@ style="margin-bottom: 1em" (click)=" navigate( + YamlObject[element.Dimension][element.SubDimension][activity].uuid, element.Dimension, element.SubDimension, i + 1, diff --git a/src/app/component/matrix/matrix.component.ts b/src/app/component/matrix/matrix.component.ts index 796c3d31..9e26af41 100644 --- a/src/app/component/matrix/matrix.component.ts +++ b/src/app/component/matrix/matrix.component.ts @@ -309,9 +309,10 @@ export class MatrixComponent implements OnInit { // activity description routing + providing parameters - navigate(dim: string, subdim: string, lvl: Number, activityName: string) { + navigate(uuid: String, dim: string, subdim: string, lvl: Number, activityName: string) { let navigationExtras: NavigationExtras = { queryParams: { + uuid: uuid, dimension: dim, subDimension: subdim, level: lvl,