Skip to content

Commit

Permalink
tokenized ACET Executive Summary report
Browse files Browse the repository at this point in the history
  • Loading branch information
mattrwins committed Oct 3, 2023
1 parent 6c5f10b commit 454dcfb
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,39 +69,39 @@ <h1 class="page-header">

<table class="table-site-info">
<tr>
<td>Assessment Name:</td>
<td>{{ 'assessment name' | transloco }}:</td>
<td>{{response?.information?.assessment_Name}}</td>
</tr>
<tr>
<td>Assessment Date:</td>
<td>{{ 'assessment date' | transloco }}:</td>
<td>{{response?.information?.assessment_Date | date:'dd-MMM-yyyy'}}</td>
</tr>
<tr>
<td>Credit Union:</td>
<td>{{ 'acet.credit union' | transloco }}:</td>
<td>{{response?.information?.credit_Union_Name}}</td>
</tr>
<tr>
<td>City or Site Name:</td>
<td>{{ 'city or site name' | transloco }}:</td>
<td>{{response?.information?.city_Or_Site_Name}}</td>
</tr>
<tr>
<td>State, Province or Region:</td>
<td>{{ 'state, province, or region' | transloco }}:</td>
<td>{{response?.information?.state_Province_Or_Region}}</td>
</tr>
<tr>
<td>Charter:</td>
<td>{{ 'acet.charter' | transloco }}:</td>
<td>{{response?.information?.charter}}</td>
</tr>
<tr>
<td>Assets:</td>
<td>{{ 'acet.assets' | transloco }}:</td>
<td>{{response?.information?.assets | currency}}</td>
</tr>
</table>
</div>
<div class="page-break"></div>

<h1 class="page-header">
Maturity Detail
{{ 'maturity detail' | transloco }}
</h1>
<div *ngFor="let domain of domainDataList; index as i">
<hr class="page-line">
Expand All @@ -112,7 +112,7 @@ <h1 class="page-title m-0">{{domain.domainName}}</h1>
<div class="col-4 my-auto">
<div class="alert" [ngClass]="acetSvc.maturityClasses(domain.domainMaturity)"
style="width:125px; margin-right:23px;float:right;margin-top: 1rem">
{{ domain.levelDisplay }}</div>
{{ 'level.' + domain.levelDisplay.toLowerCase() | transloco }}</div>
</div>

</div>
Expand All @@ -125,7 +125,7 @@ <h1 class="data-title m-0">{{factor.assessmentFactor}}</h1>
<div class="col-4 my-auto">
<div class="alert" [ngClass]="acetSvc.maturityClasses(factor.domainMaturity)"
style="width:125px; margin-right:23px;float:right;margin-top: 1rem">
{{ factor.levelDisplay }}</div>
{{ 'level.' + factor.levelDisplay.toLowerCase() | transloco }}</div>
</div>

</div>
Expand All @@ -139,7 +139,7 @@ <h1 class="item-title m-0">{{comp.name}}</h1>
<div class="col-4 my-auto">
<div class="alert" [ngClass]="acetSvc.maturityClasses(comp.assessedMaturityLevel)"
style="width:125px; margin-right:23px;float:right;margin-top: 1rem">
{{ comp.levelDisplay }}</div>
{{ 'level.' + comp.levelDisplay.toLowerCase() | transloco }}</div>
</div>
</div>
<div class="ml-3 mr-3 form">
Expand All @@ -160,40 +160,40 @@ <h1 class="item-title m-0">{{comp.name}}</h1>

<div class="page-break"></div>
<h1 class="page-header">
Inherent Risk Profile
{{ 'irp.inherent risk profile' | transloco }}
</h1>
<hr class="page-line" />
<app-irp-section [acetDashboard]="acetDashboard"></app-irp-section>

<div class="page-break"></div>
<h1 class="page-header">
Cybersecurity Maturity
{{ 'irp.cybersecurity maturity' | transloco }}
</h1>
<hr class="page-line" />
<div class="cover-page-bottom mb-4">
<div class="chart-column">
<p class="page-title" style="text-align: center; padding-right: 460px">Domain
<p class="page-title" style="text-align: center; padding-right: 460px">{{ 'domain' | transloco }}
</p>
</div>
<div class="chart-column">
<p style="text-align: center; color: #1274d2; padding-right: 25px">Maturity
Level</p>
<p style="text-align: center; color: #1274d2; padding-right: 25px">{{ 'maturity level' | transloco }}
</p>
</div>
<div class="chart-column">
<p style="text-align: center; color: #1274d2;">Target Percentage Achieved</p>
<p style="text-align: center; color: #1274d2;">{{ 'acet.target percentage achieved' | transloco }}</p>
</div>

</div>
<div class="cover-page-bottom mb-4" style="text-indent: 24px">
<div class="chart-column">
<div *ngFor="let domainData of domainDataList; index as i">
<p style="text-align: left; padding-bottom: 24px">
<b>Domain {{i+1}}:</b> {{domainData.domainName}}</p>
<b>{{ 'domain' | transloco }} {{i+1}}:</b> {{domainData.domainName}}</p>
</div>
</div>
<div class="chart-column">
<div *ngFor="let domainData of domainDataList; index as i">
<p class="chart-maturity-level"><b>{{domainData.domainMaturity}}</b></p>
<p class="chart-maturity-level"><b>{{ 'level.'+domainData.domainMaturity.toLowerCase() | transloco }}</b></p>
</div>
</div>
<div class="chart-column">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,15 @@ export class AcetExecutiveComponent implements OnInit {

ngOnInit(): void {
this.titleService.setTitle("Executive Report - ACET");
// this.titleService.setTitle(this.tSvc.translate('reports.acet.executive summary.executive summary'));
if (this.tSvc.getActiveLang() == "es") {
this.sortDomainListKey = ["Gestión y Supervisión del Riesgo Cibernético",
"Inteligencia de Amenazas y Colaboración",
"Controles de Ciberseguridad",
"Gestión de Dependencia Externa",
"Gestión de Incidentes Cibernéticos y Resiliencia"
];
}
//this.titleService.setTitle(this.tSvc.translate('reports.acet.executive summary.page tab title'));

this.getMatRange();

Expand Down Expand Up @@ -141,7 +149,6 @@ export class AcetExecutiveComponent implements OnInit {
})
})
this.domainDataList = this.sortedDomainList;

},
error => {
console.log('Error getting all documents: ' + (<Error>error).name + (<Error>error).message);
Expand All @@ -152,6 +159,19 @@ export class AcetExecutiveComponent implements OnInit {
(data: AcetDashboard) => {
this.acetDashboard = data;

// Subtracts ISE irp answers from the ACET irp results so they don't mess things up.
let lastHeader = this.acetDashboard.irps.length - 1;
let iseRisk = this.acetDashboard.irps[lastHeader].riskCount;
let acetRisk = this.acetDashboard.sumRisk;
let result = acetRisk.map((item, index) => item - iseRisk[index]);
this.acetDashboard.sumRisk = result;

let highest = Math.max(...this.acetDashboard.sumRisk);
let index = this.acetDashboard.sumRisk.indexOf(highest);
this.acetDashboard.sumRiskLevel = (index + 1);

// Remove the ISE irp from ACET IRP's results table.
this.acetDashboard.irps.pop();
for (let i = 0; i < this.acetDashboard.irps.length; i++) {
this.acetDashboard.irps[i].comment = this.acetSvc.interpretRiskLevel(this.acetDashboard.irps[i].riskLevel);
}
Expand Down
16 changes: 9 additions & 7 deletions CSETWebNg/src/app/reports/irp/irp.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------->
<div class="mt-3 mb-4">
<div *transloco="let t; read: 'irp'" class="mt-3 mb-4">
<app-inherent-risk-profile [acetDashboard]="acetDashboard"></app-inherent-risk-profile>

<div class="ml-3">
<div>Overall Risk Level is <span class="blue-text font-weight-bold">
{{ acetSvc.interpretRiskLevel(acetDashboard?.sumRiskLevel) }}
<div>{{ t('overall risk level is') }} <span class="blue-text font-weight-bold">
{{ acetSvc.interpretRiskLevel(acetDashboard?.sumRiskLevel).substring(0, 4) +
t(acetSvc.interpretRiskLevel(acetDashboard?.sumRiskLevel).substring(4).toLowerCase()) }}
</span>
</div>
<div *ngIf="!acetDashboard?.override || acetDashboard?.override == '' || acetDashboard?.override == 0">
Overall Risk Level has not been overridden
{{ t('overall risk level has not been overridden') }}
</div>
<div *ngIf="!!acetDashboard?.override && acetDashboard?.override != '' && acetDashboard?.override !== 0">
Overall Risk Level has been overriden to <span class="blue-text font-weight-bold">{{
acetSvc.interpretRiskLevel(acetDashboard?.override) }}</span>
<div>Override Reason:
{{ t('overall risk level has been overriden to') }} <span class="blue-text font-weight-bold">{{
acetSvc.interpretRiskLevel(acetDashboard?.override).substring(0, 4) +
t(acetSvc.interpretRiskLevel(acetDashboard?.override).substring(4).toLowerCase()) }}</span>
<div>{{ t('override reason') }}:
<em>
{{ acetDashboard?.overrideReason }}
</em>
Expand Down
6 changes: 6 additions & 0 deletions CSETWebNg/src/assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"facility name": "Facility Name",
"city or site name": "City or Site Name",
"state province region": "State/Province/Region",
"state, province, or region": "State, Province, or Region",
"assessment type": "Assessment Type",
"demographics": "Demographics",
"critical service name": "Critical Service Name",
Expand All @@ -28,6 +29,7 @@
"requires review": "Requires Review",
"domain": "Domain",
"maturity level": "Maturity Level",
"maturity detail": "Maturity Detail",
"no search results": "No items were found matching the search request.",
"auto load guidance": "Auto-load Guidance",

Expand Down Expand Up @@ -117,6 +119,7 @@
"assets": "Assets",
"auto populate": "Auto-populated based on data provided",
"target maturity range": "Target Maturity Range",
"target percentage achieved": "Target Percentage Achieved",
"maturity results": "ACET Maturity Results",
"actual level": "Actual Level",
"assessment factor": "Assessment Factor",
Expand Down Expand Up @@ -208,6 +211,8 @@
"totals": "Totals",
"risk levels": "Risk Levels",
"overall risk level is": "Overall Risk Level is",
"overall risk level has not been overridden": "Overall Risk Level has not been overridden",
"overall risk level has been overriden to": "Overall Risk Level has been overriden to",
"override risk level": "Override Risk Level",
"override risk level is": "Override Risk Level is",
"override reason": "Override Reason",
Expand Down Expand Up @@ -247,6 +252,7 @@
"acet reports": "ACET Reports",
"executive summary": {
"executive summary": "ACET Executive Summary",
"page tab title": "Executive Report - ACET",
"executive summary title 1": "EXECUTIVE",
"executive summary title 2": "SUMMARY",
"site information": "Site Information"
Expand Down
11 changes: 10 additions & 1 deletion CSETWebNg/src/assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@
"facility name": "Nombre de facilidad",
"city or site name": "Nombre de ciudad o sitio",
"state province region": "Estado/provincia/región",
"state, province, or region": "Estado, provincia, o región",
"assessment type": "Tipo de evaluación",
"demographics": "Demografía",
"critical service name": "Nombre del servicio critíco",
"critical service description": "Descripción del servicio critíco",
"domain": "Dominio",
"maturity level": "Nivel de madurez",
"maturity detail": "[ES] Maturity Detail",
"no search results": "No se encontraron artículos que coincidan con la solicitud de búsqueda.",
"auto load guidance": "Carga automática de guía",

Expand Down Expand Up @@ -59,6 +61,7 @@
"assets": "Activos",
"auto populate": "Auto-generado basado en los datos proporcionados.",
"target maturity range": "Rango de madurez objetivo",
"target percentage achieved": "[ES] Target Percentage Achieved",
"maturity results": "Resultados de madurez de ACET",
"actual level": "Nivel actual",
"assessment factor": "Factor de evaluación",
Expand Down Expand Up @@ -200,6 +203,8 @@
"totals": "Totales",
"risk levels": "Niveles de iesgo",
"overall risk level is": "El nivel de riesgo general es",
"overall risk level has not been overridden": "[ES] Overall Risk Level has not been overridden",
"overall risk level has been overriden to": "[ES] Overall Risk Level has been overriden to",
"override risk level": "Anular el nivel de riesgo",
"override risk level is": "Anular el nivel de riesgo es",
"override reason": "Anular el motivo",
Expand Down Expand Up @@ -239,7 +244,11 @@
"acet": {
"acet reports": "Los informes de ACET",
"executive summary": {
"executive summary": "Resumen ejecutivo de ACET"
"executive summary": "Resumen ejecutivo de ACET",
"page tab title": "Executive Summary - ACET",
"executive summary title 1": "RESUMEN",
"executive summary title 2": "EJECUTIVO",
"site information": "[ES] Site Information"
},
"gap report": {
"gap report": "Informe de brechas de ACET",
Expand Down

0 comments on commit 454dcfb

Please sign in to comment.