From c26b42d3932794c764e2990abcba5944b69f17e4 Mon Sep 17 00:00:00 2001 From: Caroline Jeandat Date: Tue, 16 Sep 2025 13:09:54 +0200 Subject: [PATCH 1/2] add new fields --- .../security-analysis-result-n.tsx | 7 ++ .../security-analysis-result-utils.ts | 69 ++++++++++++++++--- .../security-analysis.type.ts | 12 +++- 3 files changed, 76 insertions(+), 12 deletions(-) diff --git a/src/components/results/securityanalysis/security-analysis-result-n.tsx b/src/components/results/securityanalysis/security-analysis-result-n.tsx index c2c2987264..10fad1a808 100644 --- a/src/components/results/securityanalysis/security-analysis-result-n.tsx +++ b/src/components/results/securityanalysis/security-analysis-result-n.tsx @@ -42,6 +42,13 @@ export const SecurityAnalysisResultN: FunctionComponent { return { - headerName: intl.formatMessage({ - id: intlId, - }), + headerName: intl.formatMessage({ id: intlId }), colId: fieldId, field: fieldId, - valueFormatter: (param: ValueFormatterParams) => convertDuration(param.value), context: { sortParams, filterComponent: CustomAggridDurationFilter, @@ -232,6 +230,17 @@ const makeAgGridDurationColumn = ( }, }, }, + valueGetter: (param: ValueGetterParams) => { + if ( + param.data.limitType !== intl.formatMessage({ id: 'CURRENT' }) || + param.data[fieldId] === UNDEFINED_ACCEPTABLE_DURATION + ) { + return ' '; + } else if (param.data[fieldId] === null) { + return intl.formatMessage({ id: 'NoneUpcomingOverload' }); + } + return convertDuration(param.data[fieldId]); + }, }; }; @@ -252,7 +261,7 @@ export const securityAnalysisTableNColumnsDefinition = ( updateFilterCallback: onFilter, }; return [ - makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Equipment', 'locationId', intl, filterParams, sortParams)), + makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Equipment', 'subjectId', intl, filterParams, sortParams)), makeAgGridCustomHeaderColumn({ headerName: intl.formatMessage({ id: 'ViolationType' }), colId: 'limitType', @@ -270,22 +279,59 @@ export const securityAnalysisTableNColumnsDefinition = ( }, }, }), + makeAgGridCustomHeaderColumn( + makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, { ...sortParams, isChildren: true }) + ), makeAgGridCustomHeaderColumn({ ...makeAgGridStringColumn('LimitNameCurrentViolation', 'limitName', intl, filterParams, sortParams, [ FILTER_TEXT_COMPARATORS.EQUALS, ]), valueFormatter: (params: ValueFormatterParams) => formatNAValue(params.value, intl), }), - makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLabelAOrKv', 'limit', intl, filterParams, sortParams)), - - makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('CalculatedValue', 'value', intl, filterParams, sortParams)), - makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLoading', 'loading', intl, filterParams, sortParams)), + makeAgGridCustomHeaderColumn( + makeAgGridFloatColumn('PatlLoading', 'patlLoading', intl, filterParams, { + ...sortParams, + isChildren: true, + }) + ), + makeAgGridCustomHeaderColumn( + makeAgGridDurationColumn('actualOverloadDuration', 'acceptableDuration', intl, filterParams, sortParams) + ), + makeAgGridCustomHeaderColumn( + makeAgGridDurationColumn( + 'upComingOverloadDuration', + 'upcomingAcceptableDuration', + intl, + filterParams, + sortParams + ) + ), + makeAgGridCustomHeaderColumn({ + ...makeAgGridStringColumn( + 'NextLimitNameCurrentViolation', + 'nextLimitName', + intl, + filterParams, + { + ...sortParams, + isChildren: true, + }, + [FILTER_TEXT_COMPARATORS.EQUALS] + ), + valueFormatter: (params: ValueFormatterParams) => formatNAValue(params.value, intl), + }), + makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLabelAOrKv', 'limit', intl, filterParams, sortParams)), makeAgGridCustomHeaderColumn( - makeAgGridDurationColumn('Overload', 'acceptableDuration', intl, filterParams, sortParams) + makeAgGridFloatColumn('PatlLimitValue', 'patlLimit', intl, filterParams, { + ...sortParams, + isChildren: true, + }) ), + makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('CalculatedValue', 'value', intl, filterParams, sortParams)), + makeAgGridCustomHeaderColumn({ headerName: intl.formatMessage({ id: 'LimitSide' }), colId: 'side', @@ -776,8 +822,11 @@ export const FROM_COLUMN_TO_FIELD_N: Record = { side: 'side', acceptableDuration: 'acceptableDuration', limit: 'limit', + patlLimit: 'patlLimit', value: 'value', loading: 'loading', + patlLoading: 'patlLoading', + upcomingAcceptableDuration: 'upcomingAcceptableDuration', }; export const FROM_COLUMN_TO_FIELD_NMK_CONTINGENCIES: Record = { diff --git a/src/components/results/securityanalysis/security-analysis.type.ts b/src/components/results/securityanalysis/security-analysis.type.ts index 269348fa3b..a0542c27d3 100644 --- a/src/components/results/securityanalysis/security-analysis.type.ts +++ b/src/components/results/securityanalysis/security-analysis.type.ts @@ -144,11 +144,19 @@ export interface SecurityAnalysisResultNmkProps { } export interface SecurityAnalysisNTableRow { + subjectId?: string; + locationId?: string; limit?: number; + limitName?: string | null; limitType?: string; - loading?: number; - subjectId?: string; + nextLimitName?: string | null; value?: number; + loading?: number; + patlLoading?: number; + patlLimit?: number; + acceptableDuration?: number | null; + upcomingAcceptableDuration?: number | null; + side?: string; } export interface SecurityAnalysisResultProps { From d7f54e47e014da68d996ad8b1ef6a49cf9213b16 Mon Sep 17 00:00:00 2001 From: Caroline Jeandat Date: Tue, 16 Sep 2025 13:49:51 +0200 Subject: [PATCH 2/2] fix --- .../security-analysis-result-utils.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/components/results/securityanalysis/security-analysis-result-utils.ts b/src/components/results/securityanalysis/security-analysis-result-utils.ts index a047d8b510..e4928b216a 100644 --- a/src/components/results/securityanalysis/security-analysis-result-utils.ts +++ b/src/components/results/securityanalysis/security-analysis-result-utils.ts @@ -279,9 +279,7 @@ export const securityAnalysisTableNColumnsDefinition = ( }, }, }), - makeAgGridCustomHeaderColumn( - makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, { ...sortParams, isChildren: true }) - ), + makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, sortParams)), makeAgGridCustomHeaderColumn({ ...makeAgGridStringColumn('LimitNameCurrentViolation', 'limitName', intl, filterParams, sortParams, [ FILTER_TEXT_COMPARATORS.EQUALS, @@ -290,10 +288,7 @@ export const securityAnalysisTableNColumnsDefinition = ( }), makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLoading', 'loading', intl, filterParams, sortParams)), makeAgGridCustomHeaderColumn( - makeAgGridFloatColumn('PatlLoading', 'patlLoading', intl, filterParams, { - ...sortParams, - isChildren: true, - }) + makeAgGridFloatColumn('PatlLoading', 'patlLoading', intl, filterParams, sortParams) ), makeAgGridCustomHeaderColumn( makeAgGridDurationColumn('actualOverloadDuration', 'acceptableDuration', intl, filterParams, sortParams) @@ -313,10 +308,7 @@ export const securityAnalysisTableNColumnsDefinition = ( 'nextLimitName', intl, filterParams, - { - ...sortParams, - isChildren: true, - }, + sortParams, [FILTER_TEXT_COMPARATORS.EQUALS] ), valueFormatter: (params: ValueFormatterParams) => formatNAValue(params.value, intl), @@ -324,10 +316,7 @@ export const securityAnalysisTableNColumnsDefinition = ( makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLabelAOrKv', 'limit', intl, filterParams, sortParams)), makeAgGridCustomHeaderColumn( - makeAgGridFloatColumn('PatlLimitValue', 'patlLimit', intl, filterParams, { - ...sortParams, - isChildren: true, - }) + makeAgGridFloatColumn('PatlLimitValue', 'patlLimit', intl, filterParams, sortParams) ), makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('CalculatedValue', 'value', intl, filterParams, sortParams)),