Skip to content

Commit e3b9262

Browse files
authored
Merge pull request #2433 from JohnDuprey/dev
Standards
2 parents 492535d + cb1561f commit e3b9262

File tree

1 file changed

+87
-18
lines changed

1 file changed

+87
-18
lines changed

src/views/tenant/standards/ListAppliedStandards.jsx

Lines changed: 87 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ const ApplyNewStandard = () => {
7474
const [templateStandard, setTemplateStandard] = useState()
7575
const [loadedTemplate, setLoadedTemplate] = useState(false)
7676
const [loadingTemplate, setLoadingTemplate] = useState(false)
77+
const [enabledAlertsCount, setEnabledAlertsCount] = useState(0)
78+
const [enabledRemediationsCount, setEnabledRemediationsCount] = useState(0)
79+
const [enabledWarningsCount, setEnabledWarningsCount] = useState(0)
7780

7881
const { data: listStandardTemplates = [], refetch: refetchStandardsTemplates } =
7982
useGenericGetRequestQuery({
@@ -265,6 +268,11 @@ const ApplyNewStandard = () => {
265268
const { data: listStandardsAllTenants = [] } = useGenericGetRequestQuery({
266269
path: 'api/listStandards',
267270
})
271+
const { data: consolidatedStandards = [], isSuccess: consolidatedSuccess } =
272+
useGenericGetRequestQuery({
273+
path: 'api/listStandards',
274+
params: { TenantFilter: tenantDomain, ShowConsolidated: true },
275+
})
268276

269277
const {
270278
data: listStandardResults = [],
@@ -305,11 +313,30 @@ const ApplyNewStandard = () => {
305313
}
306314
const keys = item.name.split('.')
307315
let value = keys.reduce((prev, curr) => prev && prev[curr], allTenantsStandard)
308-
if (!value || !value[type]) {
316+
if (
317+
!value ||
318+
!value[type] ||
319+
listStandardResults[0]?.standards?.OverrideAllTenants?.remediate === true
320+
) {
309321
return ''
310322
}
311323
return `* Enabled via All Tenants`
312324
}
325+
function isAllTenantEnabled(item, type) {
326+
if (!item || !item.name) {
327+
return ''
328+
}
329+
const keys = item.name.split('.')
330+
let value = keys.reduce((prev, curr) => prev && prev[curr], allTenantsStandard)
331+
if (
332+
!value ||
333+
!value[type] ||
334+
listStandardResults[0]?.standards?.OverrideAllTenants?.remediate === true
335+
) {
336+
return false
337+
}
338+
return true
339+
}
313340

314341
const groupedStandards = allStandardsList.reduce((acc, obj) => {
315342
acc[obj.cat] = acc[obj.cat] || []
@@ -320,26 +347,59 @@ const ApplyNewStandard = () => {
320347
// Function to count enabled standards
321348
function countEnabledStandards(standards, type) {
322349
let count = 0
323-
Object.keys(standards).forEach((key) => {
324-
const standard = standards[key]
325-
// Check if 'Enabled' exists and the specific type is true, for non-v2 standards
326-
if (standard?.Enabled && standard?.Enabled[type]) {
327-
count++
328-
} else if (standard && standard[type]) {
329-
// Check if the type exists directly under the standard
330-
count++
331-
}
332-
})
350+
if (standards.length > 0) {
351+
Object.keys(standards).forEach((standard) => {
352+
var setting = standard?.Settings
353+
if (setting) {
354+
if (type in Object.keys(setting) && setting[type] === true) {
355+
count++
356+
}
357+
}
358+
})
359+
}
333360
return count
334361
}
335362

336363
// Assuming listStandardResults[0] contains your JSON object
337-
const enabledStandards = listStandardResults[0] ? listStandardResults[0].standards : {}
338-
const enabledAlertsCount = countEnabledStandards(enabledStandards, 'alert')
364+
//console.log(consolidatedStandards)
365+
const enabledStandards = consolidatedStandards ? consolidatedStandards : []
366+
/*const enabledAlertsCount = countEnabledStandards(enabledStandards, 'alert')
339367
const enabledRemediationsCount = countEnabledStandards(enabledStandards, 'remediate')
340-
const enabledWarningsCount = countEnabledStandards(enabledStandards, 'report')
368+
const enabledWarningsCount = countEnabledStandards(enabledStandards, 'report') */
341369
const totalAvailableStandards = allStandardsList.length
342370

371+
useEffect(() => {
372+
if (consolidatedSuccess && consolidatedStandards.length > 0) {
373+
var actions = ['alert', 'remediate', 'report']
374+
var enabledCounts = {
375+
alert: 0,
376+
remediate: 0,
377+
report: 0,
378+
}
379+
consolidatedStandards.map((standard) => {
380+
console.log(standard.Standard)
381+
if (standard?.Settings) {
382+
actions.map((action) => {
383+
if (standard?.Settings[action] === true) {
384+
enabledCounts[action]++
385+
}
386+
})
387+
}
388+
})
389+
console.log(enabledCounts)
390+
391+
setEnabledAlertsCount(enabledCounts['alert'])
392+
setEnabledRemediationsCount(enabledCounts['remediate'])
393+
setEnabledWarningsCount(enabledCounts['report'])
394+
}
395+
}, [
396+
consolidatedStandards,
397+
consolidatedSuccess,
398+
setEnabledAlertsCount,
399+
setEnabledRemediationsCount,
400+
setEnabledWarningsCount,
401+
])
402+
343403
return (
344404
<CippPage title="Standards" tenantSelector={false}>
345405
<>
@@ -385,7 +445,7 @@ const ApplyNewStandard = () => {
385445
: 'None'
386446
}
387447
title={`${enabledWarningsCount} out of ${totalAvailableStandards}`}
388-
value="Enabled Warnings"
448+
value="Enabled Reports"
389449
/>
390450
</CCol>
391451
<CCol md={4}>
@@ -558,7 +618,10 @@ const ApplyNewStandard = () => {
558618
<h5>Report</h5>
559619
<RFFCFormSwitch
560620
name={`${obj.name}.report`}
561-
disabled={obj.disabledFeatures?.report}
621+
disabled={
622+
obj.disabledFeatures?.report ||
623+
isAllTenantEnabled(obj, 'report')
624+
}
562625
helpText="Report stores the data in the database to use in custom BPA reports."
563626
sublabel={getLabel(obj, 'report')}
564627
/>
@@ -567,7 +630,10 @@ const ApplyNewStandard = () => {
567630
<h5>Alert</h5>
568631
<RFFCFormSwitch
569632
name={`${obj.name}.alert`}
570-
disabled={obj.disabledFeatures?.warn}
633+
disabled={
634+
obj.disabledFeatures?.warn ||
635+
isAllTenantEnabled(obj, 'alert')
636+
}
571637
helpText="Alert Generates an alert in the log, if remediate is enabled the log entry will also say if the remediation was successful."
572638
sublabel={getLabel(obj, 'alert')}
573639
/>
@@ -576,7 +642,10 @@ const ApplyNewStandard = () => {
576642
<h5>Remediate</h5>
577643
<RFFCFormSwitch
578644
name={`${obj.name}.remediate`}
579-
disabled={obj.disabledFeatures?.remediate}
645+
disabled={
646+
obj.disabledFeatures?.remediate ||
647+
isAllTenantEnabled(obj, 'remediate')
648+
}
580649
helpText={'Remediate executes the fix for standard.'}
581650
sublabel={getLabel(obj, 'remediate')}
582651
/>

0 commit comments

Comments
 (0)