Skip to content

Commit 5d760f3

Browse files
committed
Minor fixes + parsed YAML for mapping section
1 parent 1bf7781 commit 5d760f3

9 files changed

Lines changed: 2903 additions & 3287 deletions

File tree

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,24 @@
1-
table {
2-
width: 100%;
3-
}
4-
1+
.content{
2+
width: 100%;
3+
background-color: gainsboro;
4+
}
5+
6+
.matrix-table{
7+
margin: 20px;
8+
}
9+
10+
.mat-cell{
11+
padding: 20px;
12+
width: 12.5%;
13+
max-width: 12.5%;
14+
word-wrap: break-word;
15+
}
16+
17+
.mat-header-cell{
18+
padding: 10px;
19+
width: 12.5%;
20+
max-width: 12.5%;
21+
word-wrap: break-word;
22+
font-size: 16px;
23+
font-weight: bold;
24+
}
Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,47 @@
1-
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
1+
<div class="content">
2+
<app-top-header section="Mappings"></app-top-header>
23

3-
<!--- Note that these columns can be defined in any order.
4-
The actual rendered columns are set as a property on the row definition" -->
5-
6-
<!-- Position Column -->
7-
<ng-container matColumnDef="position">
8-
<th mat-header-cell *matHeaderCellDef> No. </th>
9-
<td mat-cell *matCellDef="let element"> {{element.position}} </td>
4+
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8 matrix-table" >
5+
6+
<ng-container matColumnDef="dimension">
7+
<th mat-header-cell *matHeaderCellDef> Dimension </th>
8+
<td mat-cell *matCellDef="let element"> {{element.dimension}} </td>
109
</ng-container>
11-
12-
<!-- Name Column -->
13-
<ng-container matColumnDef="name">
14-
<th mat-header-cell *matHeaderCellDef> Name </th>
15-
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
10+
11+
<ng-container matColumnDef="subDimension">
12+
<th mat-header-cell *matHeaderCellDef> Sub-Dimension </th>
13+
<td mat-cell *matCellDef="let element"> {{element.subDimension}} </td>
1614
</ng-container>
17-
18-
<!-- Weight Column -->
19-
<ng-container matColumnDef="weight">
20-
<th mat-header-cell *matHeaderCellDef> Weight </th>
21-
<td mat-cell *matCellDef="let element"> {{element.weight}} </td>
15+
16+
<ng-container matColumnDef="taskName">
17+
<th mat-header-cell *matHeaderCellDef> Task </th>
18+
<td mat-cell *matCellDef="let element"> {{element.taskName}} </td>
2219
</ng-container>
23-
24-
<!-- Symbol Column -->
25-
<ng-container matColumnDef="symbol">
26-
<th mat-header-cell *matHeaderCellDef> Symbol </th>
27-
<td mat-cell *matCellDef="let element"> {{element.symbol}} </td>
20+
21+
<ng-container matColumnDef="samm2">
22+
<th mat-header-cell *matHeaderCellDef> SAMM </th>
23+
<td mat-cell *matCellDef="let element">
24+
<ul>
25+
<li *ngFor="let sammElement of element.samm2">
26+
{{sammElement}}
27+
</li>
28+
</ul>
29+
</td>
2830
</ng-container>
29-
31+
32+
<ng-container matColumnDef="ISO">
33+
<th mat-header-cell *matHeaderCellDef> ISO </th>
34+
<td mat-cell *matCellDef="let element">
35+
<ul>
36+
<li *ngFor="let ISOElement of element.ISO">
37+
{{ISOElement}}
38+
</li>
39+
</ul>
40+
</td>
41+
</ng-container>
42+
3043
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
3144
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
3245
</table>
33-
46+
</div>
3447

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,63 @@
11
import { Component, OnInit } from '@angular/core';
2+
import { ymlService } from '../../service/yaml-parser/yaml-parser.service';
3+
import { MatTableDataSource } from '@angular/material/table';
24

3-
export interface PeriodicElement {
4-
name: string;
5-
position: number;
6-
weight: number;
7-
symbol: string;
5+
export interface MappingElement {
6+
dimension: string;
7+
subDimension: string;
8+
taskName: string;
9+
samm2: string[];
10+
ISO:string[];
811
}
912

10-
const ELEMENT_DATA: PeriodicElement[] = [
11-
{position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
12-
{position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'},
13-
{position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'},
14-
{position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
15-
{position: 5, name: 'Boron', weight: 10.811, symbol: 'B'},
16-
{position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C'},
17-
{position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N'},
18-
{position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O'},
19-
{position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F'},
20-
{position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne'},
21-
];
2213

2314
@Component({
2415
selector: 'app-mapping',
2516
templateUrl: './mapping.component.html',
2617
styleUrls: ['./mapping.component.css']
2718
})
2819
export class MappingComponent implements OnInit {
20+
MAPPING_DATA:MappingElement[]=[]
21+
dataSource:any= new MatTableDataSource<MappingElement>(this.MAPPING_DATA);
22+
YamlObject:any;
2923

30-
displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];
31-
dataSource = ELEMENT_DATA;
32-
33-
constructor() { }
24+
displayedColumns: string[] = ['dimension', 'subDimension', 'taskName','samm2' ,'ISO'];
25+
allDimensionNames:string[]=[];
26+
temporaryMappingElement:any
27+
constructor(private yaml:ymlService) { }
3428

3529
ngOnInit(): void {
30+
//gets value from generated folder
31+
this.yaml.setURI('./assets/YAML/generated/sample.yaml');
32+
// Function sets data
33+
this.yaml.getJson().subscribe((data) => {
34+
this.YamlObject = data;
35+
this.allDimensionNames= Object.keys(this.YamlObject)
36+
for(let i =0;i<this.allDimensionNames.length;i++){
37+
var subdimensionsInCurrentDimension = Object.keys(this.YamlObject[this.allDimensionNames[i]])
38+
for(let j=0;j<subdimensionsInCurrentDimension.length;j++){
39+
var taskInCurrentSubDimension:string[]= Object.keys(this.YamlObject[this.allDimensionNames[i]][subdimensionsInCurrentDimension[j]])
40+
for(let a=0;a<taskInCurrentSubDimension.length;a++){
41+
this.setValueandAppendToDataset(this.allDimensionNames[i],subdimensionsInCurrentDimension[j],taskInCurrentSubDimension[a])
42+
}
43+
}
44+
}
45+
// weird fix to render DOM for table viewing in angular material
46+
this.dataSource._data.next(this.dataSource.data);
47+
})
48+
49+
//this.dataSource=new MatTableDataSource([...this.dataSource]);
50+
//console.log(this.dataSource.data)
51+
}
52+
53+
//Sets dataSource value
54+
setValueandAppendToDataset(dim:string,subDim:string,task:string){
55+
var ISOArray:string[]=this.YamlObject[dim][subDim][task]['references']['iso27001-2017']
56+
var SAMMArray:string[]=this.YamlObject[dim][subDim][task]['references']['samm2']
57+
this.temporaryMappingElement={"dimension":dim,"subDimension":subDim,"taskName":task,"ISO":ISOArray,"samm2":SAMMArray}
58+
//console.log(this.temp)
59+
this.dataSource.data.push(this.temporaryMappingElement)
60+
3661
}
3762

3863
}

src/app/component/matrix/matrix.component.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
font-size: 16px;
2727
font-weight: bold;
2828
}
29+
2930
button{
3031
background-color: white;
3132
border: none;

src/app/component/matrix/matrix.component.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,4 @@
6060
<tr mat-header-row *matHeaderRowDef="displayedColumns" ></tr>
6161
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
6262
</table>
63-
64-
6563
</div>

src/app/component/matrix/matrix.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ export class MatrixComponent implements OnInit {
9797
//console.log(this.YamlObject['dimension'][i]['subdimension'][lvlTemp][k]['name'])
9898
}
9999

100-
console.log(temp)
100+
console.log(temp)
101101
this.MATRIX_DATA.push(temp)
102102
}
103103
}

src/app/component/task-description/task-description.component.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ <h1>{{currentTask.dimension}} -> {{currentTask.subDimension}}: {{currentTask.tas
1919
<b>Risk</b>
2020
</mat-panel-title>
2121
</mat-expansion-panel-header>
22-
<ul *ngFor="let risk of currentTask.risk">
23-
<li>{{risk}}</li>
24-
</ul>
22+
<p [innerHTML]="currentTask.risk"></p>
2523
</mat-expansion-panel>
2624
<mat-expansion-panel>
2725
<mat-expansion-panel-header>

src/app/component/task-description/task-description.component.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export interface taskDescription {
1717
level:string
1818
taskName:string
1919
description:string
20-
risk: string[]
20+
risk: string
2121
measure: string
2222
implementatonGuide:string
2323
iso:string[]
@@ -36,7 +36,7 @@ export interface taskDescription {
3636
})
3737
export class TaskDescriptionComponent implements OnInit {
3838

39-
currentTask: taskDescription={dimension:'',subDimension:'',level:'',taskName:'',description:'',risk:[],
39+
currentTask: taskDescription={dimension:'',subDimension:'',level:'',taskName:'',description:'',risk:'',
4040
measure:'',implementatonGuide:'',samm:[''],iso:[''],knowledge:-1,resources:-1,
4141
time:-1,dependsOn:[], implementation:[]}
4242

@@ -72,7 +72,7 @@ export class TaskDescriptionComponent implements OnInit {
7272
this.YamlObject = data;
7373
var data =this.YamlObject[this.currentTask.dimension][this.currentTask.subDimension][this.currentTask.taskName]
7474
this.currentTask.description=this.defineStringValues(data['description'],'')
75-
this.currentTask.risk=this.defineStringArrayValues(data['risk'],[])
75+
this.currentTask.risk=this.defineStringValues(data['risk'],'')
7676
this.currentTask.measure=this.defineStringValues(data['measure'],'')
7777
try{
7878
data['meta']
@@ -92,8 +92,8 @@ export class TaskDescriptionComponent implements OnInit {
9292
}
9393
try{
9494
data['references']
95-
this.currentTask.iso=this.defineStringArrayValues(data['iso27001-2017'],[])
96-
this.currentTask.samm=this.defineStringArrayValues(data['samm2'],[])
95+
this.currentTask.iso=this.defineStringArrayValues(data['references']['iso27001-2017'],[])
96+
this.currentTask.samm=this.defineStringArrayValues(data['references']['samm2'],[])
9797
}
9898
catch{
9999
console.log('references does not exist')

0 commit comments

Comments
 (0)