11< h2 mat-dialog-title align ="center "> Report Configuration</ h2 >
22
33< mat-dialog-content class ="config-content ">
4-
54 <!-- Display Configuration -->
65 < div class ="config-section ">
76 < h3 > Display Configuration</ h3 >
87
98 < div class ="config-row ">
109 < span class ="config-row-label "> Column Grouping:</ span >
11- < mat-button-toggle-group class = "column-toggle " [value] ="config.columnGrouping " (change) ="setColumnGrouping($event.value) ">
10+ < mat-button-toggle-group
11+ class ="column-toggle "
12+ [value] ="config.columnGrouping "
13+ (change) ="setColumnGrouping($event.value) ">
1214 < mat-button-toggle value ="byProgress "> By Progress Stage</ mat-button-toggle >
1315 < mat-button-toggle value ="byTeam "> By Team</ mat-button-toggle >
1416 </ mat-button-toggle-group >
1517 </ div >
16-
17- < mat-checkbox [checked] ="config.showDescription "
18- (change) ="toggleAttribute('showDescription') ">
19- Show Description
20- </ mat-checkbox >
21-
22- < div class ="config-row slider-row " *ngIf ="config.showDescription ">
23- < span class ="config-row-label "> Description Word Cap: < strong > {{ config.descriptionWordCap }}</ strong > </ span >
24- < mat-slider class ="word-cap-slider " min ="5 " [max] ="maxWordCap " step ="5 " thumbLabel [displayWith] ="wordCapLabel "
25- [value] ="config.descriptionWordCap " (input) ="onWordCapChange($event) ">
26- </ mat-slider >
27- </ div >
2818 </ div >
2919
3020 < mat-divider > </ mat-divider >
3121
32- <!-- Teams -->
22+ <!-- Activity Attributes -->
3323 < div class ="config-section ">
34- < h3 > Teams</ h3 >
35- < p class ="config-hint "> Select which teams to include in the report.</ p >
36- < div class ="select-all-actions ">
37- < button mat-button color ="primary " (click) ="selectAllTeams() "> Select All</ button >
38- < button mat-button (click) ="deselectAllTeams() "> Deselect All</ button >
39- < button *ngIf ="groupNames.length > 0 " mat-stroked-button [matMenuTriggerFor] ="groupMenu "
40- class ="group-dropdown-btn ">
41- < mat-icon > group</ mat-icon >
42- Select Group
43- < mat-icon > arrow_drop_down</ mat-icon >
44- </ button >
45- < mat-menu #groupMenu ="matMenu ">
46- < button mat-menu-item *ngFor ="let group of groupNames " (click) ="selectGroup(group) ">
47- {{ group }}
48- </ button >
49- </ mat-menu >
50- </ div >
24+ < h3 > Activity Attributes</ h3 >
25+ < p class ="config-hint "> Choose which activity fields to show as columns in the report.</ p >
26+
5127 < div class ="checkbox-grid ">
52- < mat-checkbox *ngFor ="let team of allTeams " [checked] ="isTeamSelected(team) " (change) ="toggleTeam(team) ">
53- {{ team }}
28+ < mat-checkbox
29+ [checked] ="config.activityAttributes.showUuid "
30+ (change) ="toggleActivityAttribute('showUuid') ">
31+ UUID
32+ </ mat-checkbox >
33+ < mat-checkbox
34+ [checked] ="config.activityAttributes.showDescription "
35+ (change) ="toggleActivityAttribute('showDescription') ">
36+ Description
37+ </ mat-checkbox >
38+ < mat-checkbox
39+ [checked] ="config.activityAttributes.showRisk "
40+ (change) ="toggleActivityAttribute('showRisk') ">
41+ Risk
42+ </ mat-checkbox >
43+ < mat-checkbox
44+ [checked] ="config.activityAttributes.showMeasure "
45+ (change) ="toggleActivityAttribute('showMeasure') ">
46+ Measure
47+ </ mat-checkbox >
48+ < mat-checkbox
49+ [checked] ="config.activityAttributes.showDifficultyOfImplementation "
50+ (change) ="toggleActivityAttribute('showDifficultyOfImplementation') ">
51+ Difficulty of Implementation
52+ </ mat-checkbox >
53+ < mat-checkbox
54+ [checked] ="config.activityAttributes.showUsefulness "
55+ (change) ="toggleActivityAttribute('showUsefulness') ">
56+ Usefulness
57+ </ mat-checkbox >
58+ < mat-checkbox
59+ [checked] ="config.activityAttributes.showImplementation "
60+ (change) ="toggleActivityAttribute('showImplementation') ">
61+ Implementation
62+ </ mat-checkbox >
63+ < mat-checkbox
64+ [checked] ="config.activityAttributes.showDependsOn "
65+ (change) ="toggleActivityAttribute('showDependsOn') ">
66+ Depends On
5467 </ mat-checkbox >
5568 </ div >
69+
70+ <!-- References with sub-toggles -->
71+ < div class ="references-section ">
72+ < mat-checkbox
73+ [checked] ="config.activityAttributes.showReferences "
74+ (change) ="toggleActivityAttribute('showReferences') ">
75+ References
76+ </ mat-checkbox >
77+ < div class ="references-subtoggle " *ngIf ="config.activityAttributes.showReferences ">
78+ < mat-checkbox
79+ class ="subtoggle-checkbox "
80+ [checked] ="config.activityAttributes.showReferencesIso27001_2017 "
81+ (change) ="toggleActivityAttribute('showReferencesIso27001_2017') ">
82+ ISO 27001:2017
83+ </ mat-checkbox >
84+ < mat-checkbox
85+ class ="subtoggle-checkbox "
86+ [checked] ="config.activityAttributes.showReferencesIso27001_2022 "
87+ (change) ="toggleActivityAttribute('showReferencesIso27001_2022') ">
88+ ISO 27001:2022
89+ </ mat-checkbox >
90+ < mat-checkbox
91+ class ="subtoggle-checkbox "
92+ [checked] ="config.activityAttributes.showReferencesSamm2 "
93+ (change) ="toggleActivityAttribute('showReferencesSamm2') ">
94+ SAMM2
95+ </ mat-checkbox >
96+ < mat-checkbox
97+ class ="subtoggle-checkbox "
98+ [checked] ="config.activityAttributes.showReferencesOpenCRE "
99+ (change) ="toggleActivityAttribute('showReferencesOpenCRE') ">
100+ OpenCRE
101+ </ mat-checkbox >
102+ </ div >
103+ </ div >
104+
105+ < div class ="checkbox-grid " style ="margin-top: 8px ">
106+ <!-- To be implemented after issue #501 -->
107+ <!-- <mat-checkbox [checked]="config.activityAttributes.showEvidence"
108+ (change)="toggleActivityAttribute('showEvidence')">
109+ Evidence
110+ </mat-checkbox> -->
111+ < mat-checkbox
112+ [checked] ="config.activityAttributes.showTags "
113+ (change) ="toggleActivityAttribute('showTags') ">
114+ Tags
115+ </ mat-checkbox >
116+ </ div >
117+ < div class ="config-row slider-row " *ngIf ="hasAnyMarkdownAttribute ">
118+ < span class ="config-row-label ">
119+ Word Cap
120+ < mat-icon
121+ matTooltip ="Limits the number of words shown for description, risk, measure, and evidence fields. Set to a high value to show full text. "
122+ matTooltipClass ="compact-tooltip info-icon "
123+ > info</ mat-icon
124+ >
125+ :
126+ < strong > {{ config.descriptionWordCap }}</ strong >
127+ </ span >
128+ < mat-slider
129+ class ="word-cap-slider "
130+ min ="5 "
131+ [max] ="maxWordCap "
132+ step ="5 "
133+ thumbLabel
134+ [displayWith] ="wordCapLabel "
135+ [value] ="config.descriptionWordCap "
136+ (input) ="onWordCapChange($event) ">
137+ </ mat-slider >
138+ </ div >
56139 </ div >
57140
58141 < mat-divider > </ mat-divider >
@@ -62,7 +145,9 @@ <h3>Teams</h3>
62145 < h3 > Dimensions</ h3 >
63146 < p class ="config-hint "> Uncheck dimensions to exclude all their activities.</ p >
64147 < div class ="checkbox-grid ">
65- < mat-checkbox *ngFor ="let dim of allDimensions " [checked] ="!isDimensionExcluded(dim) "
148+ < mat-checkbox
149+ *ngFor ="let dim of allDimensions "
150+ [checked] ="!isDimensionExcluded(dim) "
66151 (change) ="toggleDimension(dim) ">
67152 {{ dim }}
68153 </ mat-checkbox >
@@ -76,7 +161,9 @@ <h3>Dimensions</h3>
76161 < h3 > Subdimensions</ h3 >
77162 < p class ="config-hint "> Uncheck subdimensions to exclude their activities.</ p >
78163 < div class ="checkbox-grid subdimension-grid ">
79- < mat-checkbox *ngFor ="let subdim of allSubdimensions " [checked] ="!isSubdimensionExcluded(subdim) "
164+ < mat-checkbox
165+ *ngFor ="let subdim of allSubdimensions "
166+ [checked] ="!isSubdimensionExcluded(subdim) "
80167 (change) ="toggleSubdimension(subdim) ">
81168 {{ subdim }}
82169 </ mat-checkbox >
@@ -95,7 +182,9 @@ <h3>Individual Activities</h3>
95182 < mat-icon matSuffix > search</ mat-icon >
96183 </ mat-form-field >
97184 < div class ="activity-list ">
98- < mat-checkbox *ngFor ="let activity of filteredActivities " [checked] ="!isActivityExcluded(activity.uuid) "
185+ < mat-checkbox
186+ *ngFor ="let activity of filteredActivities "
187+ [checked] ="!isActivityExcluded(activity.uuid) "
99188 (change) ="toggleActivity(activity.uuid) ">
100189 < span class ="activity-checkbox-label ">
101190 < span class ="activity-name "> {{ activity.name }}</ span >
@@ -106,12 +195,18 @@ <h3>Individual Activities</h3>
106195 </ div >
107196
108197 < mat-divider > </ mat-divider >
198+ <!-- Teams -->
199+ < app-team-selector
200+ [allTeams] ="allTeams "
201+ [(selectedTeams)] ="config.selectedTeams "
202+ [teamGroups] ="teamGroups "> </ app-team-selector >
109203
204+ < mat-divider > </ mat-divider >
110205</ mat-dialog-content >
111206
112207< mat-dialog-actions align ="end ">
113208 < button mat-button (click) ="onCancel() "> Cancel</ button >
114209 < button mat-raised-button color ="primary " (click) ="onSave() ">
115210 Save Configuration and Generate Report
116211 </ button >
117- </ mat-dialog-actions >
212+ </ mat-dialog-actions >
0 commit comments