@@ -74,6 +74,9 @@ const ApplyNewStandard = () => {
74
74
const [ templateStandard , setTemplateStandard ] = useState ( )
75
75
const [ loadedTemplate , setLoadedTemplate ] = useState ( false )
76
76
const [ loadingTemplate , setLoadingTemplate ] = useState ( false )
77
+ const [ enabledAlertsCount , setEnabledAlertsCount ] = useState ( 0 )
78
+ const [ enabledRemediationsCount , setEnabledRemediationsCount ] = useState ( 0 )
79
+ const [ enabledWarningsCount , setEnabledWarningsCount ] = useState ( 0 )
77
80
78
81
const { data : listStandardTemplates = [ ] , refetch : refetchStandardsTemplates } =
79
82
useGenericGetRequestQuery ( {
@@ -265,6 +268,11 @@ const ApplyNewStandard = () => {
265
268
const { data : listStandardsAllTenants = [ ] } = useGenericGetRequestQuery ( {
266
269
path : 'api/listStandards' ,
267
270
} )
271
+ const { data : consolidatedStandards = [ ] , isSuccess : consolidatedSuccess } =
272
+ useGenericGetRequestQuery ( {
273
+ path : 'api/listStandards' ,
274
+ params : { TenantFilter : tenantDomain , ShowConsolidated : true } ,
275
+ } )
268
276
269
277
const {
270
278
data : listStandardResults = [ ] ,
@@ -305,11 +313,30 @@ const ApplyNewStandard = () => {
305
313
}
306
314
const keys = item . name . split ( '.' )
307
315
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
+ ) {
309
321
return ''
310
322
}
311
323
return `* Enabled via All Tenants`
312
324
}
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
+ }
313
340
314
341
const groupedStandards = allStandardsList . reduce ( ( acc , obj ) => {
315
342
acc [ obj . cat ] = acc [ obj . cat ] || [ ]
@@ -320,26 +347,59 @@ const ApplyNewStandard = () => {
320
347
// Function to count enabled standards
321
348
function countEnabledStandards ( standards , type ) {
322
349
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
+ }
333
360
return count
334
361
}
335
362
336
363
// 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')
339
367
const enabledRemediationsCount = countEnabledStandards(enabledStandards, 'remediate')
340
- const enabledWarningsCount = countEnabledStandards ( enabledStandards , 'report' )
368
+ const enabledWarningsCount = countEnabledStandards(enabledStandards, 'report') */
341
369
const totalAvailableStandards = allStandardsList . length
342
370
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
+
343
403
return (
344
404
< CippPage title = "Standards" tenantSelector = { false } >
345
405
< >
@@ -385,7 +445,7 @@ const ApplyNewStandard = () => {
385
445
: 'None'
386
446
}
387
447
title = { `${ enabledWarningsCount } out of ${ totalAvailableStandards } ` }
388
- value = "Enabled Warnings "
448
+ value = "Enabled Reports "
389
449
/>
390
450
</ CCol >
391
451
< CCol md = { 4 } >
@@ -558,7 +618,10 @@ const ApplyNewStandard = () => {
558
618
< h5 > Report</ h5 >
559
619
< RFFCFormSwitch
560
620
name = { `${ obj . name } .report` }
561
- disabled = { obj . disabledFeatures ?. report }
621
+ disabled = {
622
+ obj . disabledFeatures ?. report ||
623
+ isAllTenantEnabled ( obj , 'report' )
624
+ }
562
625
helpText = "Report stores the data in the database to use in custom BPA reports."
563
626
sublabel = { getLabel ( obj , 'report' ) }
564
627
/>
@@ -567,7 +630,10 @@ const ApplyNewStandard = () => {
567
630
< h5 > Alert</ h5 >
568
631
< RFFCFormSwitch
569
632
name = { `${ obj . name } .alert` }
570
- disabled = { obj . disabledFeatures ?. warn }
633
+ disabled = {
634
+ obj . disabledFeatures ?. warn ||
635
+ isAllTenantEnabled ( obj , 'alert' )
636
+ }
571
637
helpText = "Alert Generates an alert in the log, if remediate is enabled the log entry will also say if the remediation was successful."
572
638
sublabel = { getLabel ( obj , 'alert' ) }
573
639
/>
@@ -576,7 +642,10 @@ const ApplyNewStandard = () => {
576
642
< h5 > Remediate</ h5 >
577
643
< RFFCFormSwitch
578
644
name = { `${ obj . name } .remediate` }
579
- disabled = { obj . disabledFeatures ?. remediate }
645
+ disabled = {
646
+ obj . disabledFeatures ?. remediate ||
647
+ isAllTenantEnabled ( obj , 'remediate' )
648
+ }
580
649
helpText = { 'Remediate executes the fix for standard.' }
581
650
sublabel = { getLabel ( obj , 'remediate' ) }
582
651
/>
0 commit comments