From 47923686ec7c039a54f601d760906128087307c6 Mon Sep 17 00:00:00 2001 From: monsieurswag Date: Wed, 11 Sep 2024 17:14:13 +0200 Subject: [PATCH 1/3] Add ModelTable for remediation plan --- .../components/ModelTable/ModelTable.svelte | 2 +- .../[id=uuid]/remediation-plan/+page.svelte | 133 +++++++----------- 2 files changed, 54 insertions(+), 81 deletions(-) diff --git a/frontend/src/lib/components/ModelTable/ModelTable.svelte b/frontend/src/lib/components/ModelTable/ModelTable.svelte index 4cac0595f..ca2a18266 100644 --- a/frontend/src/lib/components/ModelTable/ModelTable.svelte +++ b/frontend/src/lib/components/ModelTable/ModelTable.svelte @@ -93,7 +93,7 @@ export let identifierField = 'id'; export let deleteForm: SuperValidated | undefined = undefined; export let URLModel: urlModel | undefined = undefined; - export let detailQueryParameter: string | undefined; + export let detailQueryParameter: string | undefined = undefined; detailQueryParameter = detailQueryParameter ? `?${detailQueryParameter}` : ''; export let hideFilters = false; diff --git a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte index f33d1a983..2cb429c60 100644 --- a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte +++ b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte @@ -4,6 +4,8 @@ import { breadcrumbObject } from '$lib/utils/stores'; import { safeTranslate } from '$lib/utils/i18n.js'; import { toCamelCase } from '$lib/utils/locales.js'; + import type { TableSource } from '$lib/components/ModelTable/types'; + import ModelTable from '$lib/components/ModelTable/ModelTable.svelte'; export let data; @@ -33,6 +35,24 @@ return 'bg-gray-200'; } }; + + const APPLIED_CONTROL_FIELDS = [ + "name", "description", "category", "csf_function", "reference_control", "eta", "effort", "link", "status" + ]; + function makeSourceFromScenario(appliedControls): TableSource { + const fields = APPLIED_CONTROL_FIELDS; + const head = Object.fromEntries(fields.map((field) => [ + field, toCamelCase(field) + ])); + + return { + head: head, + body: appliedControls.map((appliedControl) => Object.fromEntries( + fields.map((field) => [field, appliedControl[field]]) + )), + meta: appliedControls + }; + }
@@ -56,84 +76,37 @@

{m.associatedRiskScenarios()}:

-
- - - - {#each data.risk_assessment.risk_scenarios as scenario} - - - - {#if scenario.existing_controls} - - - - - - - {/if} - - {#if scenario.applied_controls.length > 0} - - - - - - - - - - - - - - - - {#each scenario.applied_controls as measure, index} - goto(`/applied-controls/${measure.id}`)} - > - - - - - - - - - - - - {/each} - {/if} - - {#if !scenario.existing_controls && !(scenario.applied_controls.length > 0)} - - - - {/if} - {/each} - -
- {scenario.name} - {scenario.treatment} -
{m.existingControls()}:
{scenario.existing_controls}
{m.additionalMeasures()}:
#{m.name()}{m.description()}{m.category()}{m.csfFunction()}{m.referenceControl()}{m.eta()}{m.effort()}{m.link()}{m.status()}
M.{index + 1}{measure.name ?? '--'}{measure.description ?? '--'}{measure.category ?? '--'}{measure.csf_function ?? '--'}{measure.reference_control ? measure.reference_control.str : '--'}{measure.eta ?? '--'}{measure.effort ?? '--'}{measure.link ?? '--'} {safeTranslate(toCamelCase(measure.status))} -
- - {m.noAppliedControlYet()} -
+
+ {#each data.risk_assessment.risk_scenarios as scenario} + + + {scenario.name} + {safeTranslate(scenario.treatment)} + + + {#if scenario.existing_controls} + + {m.existingControls()}: + + + {scenario.existing_controls} + + {/if} + {#if scenario.applied_controls.length > 0} + + {/if} + {#if !scenario.existing_controls && !(scenario.applied_controls.length > 0)} + + + + {m.noAppliedControlYet()} + + + {/if} + {/each}
From 385477480d3b8352551b397e2a0129f8fead2a8a Mon Sep 17 00:00:00 2001 From: monsieurswag Date: Wed, 11 Sep 2024 17:15:18 +0200 Subject: [PATCH 2/3] Formatter --- .../[id=uuid]/remediation-plan/+page.svelte | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte index 2cb429c60..d86775aec 100644 --- a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte +++ b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte @@ -37,19 +37,25 @@ }; const APPLIED_CONTROL_FIELDS = [ - "name", "description", "category", "csf_function", "reference_control", "eta", "effort", "link", "status" + 'name', + 'description', + 'category', + 'csf_function', + 'reference_control', + 'eta', + 'effort', + 'link', + 'status' ]; function makeSourceFromScenario(appliedControls): TableSource { const fields = APPLIED_CONTROL_FIELDS; - const head = Object.fromEntries(fields.map((field) => [ - field, toCamelCase(field) - ])); + const head = Object.fromEntries(fields.map((field) => [field, toCamelCase(field)])); return { head: head, - body: appliedControls.map((appliedControl) => Object.fromEntries( - fields.map((field) => [field, appliedControl[field]]) - )), + body: appliedControls.map((appliedControl) => + Object.fromEntries(fields.map((field) => [field, appliedControl[field]])) + ), meta: appliedControls }; } @@ -98,7 +104,10 @@ {/if} {#if scenario.applied_controls.length > 0} - + {/if} {#if !scenario.existing_controls && !(scenario.applied_controls.length > 0)} From 10903824c2efd9448aa9055036a83ded383a56ef Mon Sep 17 00:00:00 2001 From: monsieurswag Date: Wed, 11 Sep 2024 17:30:30 +0200 Subject: [PATCH 3/3] Remove dead code --- .../[id=uuid]/remediation-plan/+page.svelte | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte index d86775aec..ccd19a0ca 100644 --- a/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte +++ b/frontend/src/routes/(app)/risk-assessments/[id=uuid]/remediation-plan/+page.svelte @@ -1,5 +1,4 @@