Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import { NotificationsUrlKeys, useNotificationsListener } from '@gridsuite/commons-ui';
import { NotificationsUrlKeys, useNotificationsListener, useSnackMessage } from '@gridsuite/commons-ui';
import type { UUID } from 'crypto';
import { useCallback, useEffect, useMemo, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
Expand Down Expand Up @@ -37,6 +37,7 @@ export const useSpreadsheetEquipments = (
nodeAliases: NodeAlias[] | undefined,
active: boolean = false
) => {
const { snackError } = useSnackMessage();
const dispatch = useDispatch();
const allEquipments = useSelector((state: AppState) => state.spreadsheetNetwork);
const equipments = useSelector((state: AppState) => state.spreadsheetNetwork[type]);
Expand Down Expand Up @@ -186,13 +187,29 @@ export const useSpreadsheetEquipments = (
Promise.allSettled(promises).then((results) => {
const updates: UpdateEquipmentsAction['equipments'] = {};
if (results[0].status === 'rejected') {
//TODO show snackbar error?
console.error(
`(re)loading of spreadsheet data of type ${type} ${results[0].status}`,
results[0].reason
);
snackError({
headerId: 'spreadsheet/loading/error_fetching_type_title',
headerValues: { type },
messageTxt: `Details: ${results[0].reason}`,
});
} else {
updates[type] = results[0].value;
}
if (results.length > 1) {
if (results[1].status === 'rejected') {
//TODO show snackbar error?
console.error(
`(re)loading of spreadsheet data of type ${type} ${results[1].status}`,
results[1].reason
);
snackError({
headerId: 'spreadsheet/loading/error_fetching_type_title',
headerValues: { type: SpreadsheetEquipmentType.BRANCH },
messageTxt: `Details: ${results[1].reason}`,
});
} else {
updates[SpreadsheetEquipmentType.BRANCH] = results[1].value;
}
Expand Down Expand Up @@ -238,6 +255,7 @@ export const useSpreadsheetEquipments = (
allEquipments,
equipmentToUpdateId,
highlightUpdatedEquipment,
snackError,
]
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ import { type AppState } from '../../../../../redux/reducer';
import { setGlobalFiltersToSpreadsheetConfig } from 'services/study/study-config';
import type { GlobalFilter } from '../../../../results/common/global-filter/global-filter-types';
import { FilterType } from '../../../../results/common/utils';
import GlobalFilterSelector from '../../../../results/common/global-filter/global-filter-selector';
import GlobalFilterSelector, {
type GlobalFilterSelectorProps,
} from '../../../../results/common/global-filter/global-filter-selector';
import { EQUIPMENT_TYPES } from '@powsybl/network-viewer';
import { addToRecentGlobalFilters } from '../../../../../redux/actions';
import { useGlobalFilterOptions } from '../../../../results/common/global-filter/use-global-filter-options';
Expand Down Expand Up @@ -52,15 +54,26 @@ export default function SpreadsheetGlobalFilter({ tableDefinition }: Readonly<Sp
[debouncedSetFilters, tableDefinition.uuid]
);

const filters = useMemo(
const filters = useMemo<GlobalFilterSelectorProps['filters']>(
() => [
...(tableDefinition.type === SpreadsheetEquipmentType.SUBSTATION ? voltageLevelsFilter : []),
...(tableDefinition.type === SpreadsheetEquipmentType.SUBSTATION ? [] : voltageLevelsFilter),
...countriesFilter,
...propertiesFilter,
],
[countriesFilter, propertiesFilter, tableDefinition.type, voltageLevelsFilter]
);

const filterTypes = useMemo<GlobalFilterSelectorProps['filterableEquipmentTypes']>(
() => [
...(tableDefinition.type === SpreadsheetEquipmentType.BRANCH
? [EQUIPMENT_TYPES.LINE, EQUIPMENT_TYPES.TWO_WINDINGS_TRANSFORMER]
: [tableDefinition.type as unknown as EQUIPMENT_TYPES]),
EQUIPMENT_TYPES.SUBSTATION,
EQUIPMENT_TYPES.VOLTAGE_LEVEL,
],
[tableDefinition.type]
);

useEffect(() => {
if (globalFilterSpreadsheetState) {
dispatch(
Expand All @@ -73,11 +86,7 @@ export default function SpreadsheetGlobalFilter({ tableDefinition }: Readonly<Sp

return (
<GlobalFilterSelector
filterableEquipmentTypes={[
tableDefinition.type as unknown as EQUIPMENT_TYPES, //TODO what to do with BRANCH type?
EQUIPMENT_TYPES.SUBSTATION,
EQUIPMENT_TYPES.VOLTAGE_LEVEL,
]}
filterableEquipmentTypes={filterTypes}
filters={filters}
onChange={handleFilterChange}
preloadedGlobalFilters={globalFilterSpreadsheetState}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
IElementUpdateDialog,
UseStateBooleanReturn,
useSnackMessage,
EquipmentType,

Check warning on line 15 in src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/save/save-naming-filter-dialog.tsx

View workflow job for this annotation

GitHub Actions / build / build

'EquipmentType' is defined but never used
createFilter,
saveFilter,
NewFilterType,
Expand Down Expand Up @@ -59,7 +59,7 @@
return {
id: filterId,
type: 'IDENTIFIER_LIST',
equipmentType: tableDefinition.type as unknown as EquipmentType,
equipmentType: tableDefinition.type,
filterEquipmentsAttributes: ids.map((eqId) => ({ equipmentID: eqId })),
};
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import type { RefObject } from 'react';
import { CustomColDef } from 'components/custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type';
import { SpreadsheetTabDefinition } from '../../types/spreadsheet.type';
import { SpreadsheetEquipmentType, type SpreadsheetTabDefinition } from '../../types/spreadsheet.type';
import { AgGridReact } from 'ag-grid-react';
import { Grid, Theme } from '@mui/material';
import { ColumnsConfig } from './columns-config';
Expand All @@ -16,6 +17,8 @@
import SpreadsheetGlobalFilter from './global-filter/spreadsheet-global-filter';
import { FilteredRowCounter } from './row-counter/filtered-row-counter';
import { UseFilteredRowCounterInfoReturn } from './row-counter/use-filtered-row-counter';
import { useParameterState } from '../../../dialogs/parameters/use-parameters-state';

Check warning on line 20 in src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/spreadsheet-toolbar.tsx

View workflow job for this annotation

GitHub Actions / build / build

'useParameterState' is defined but never used
import { PARAM_DEVELOPER_MODE } from '../../../../utils/config-params';

Check warning on line 21 in src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/spreadsheet-toolbar.tsx

View workflow job for this annotation

GitHub Actions / build / build

'PARAM_DEVELOPER_MODE' is defined but never used

const styles = {
toolbar: (theme: Theme) => ({
Expand All @@ -32,7 +35,7 @@
};

interface SpreadsheetToolbarProps {
gridRef: React.RefObject<AgGridReact>;
gridRef: RefObject<AgGridReact>;
tableDefinition: SpreadsheetTabDefinition;
rowCounterInfos: UseFilteredRowCounterInfoReturn;
columns: CustomColDef[];
Expand All @@ -51,7 +54,9 @@
return (
<Grid container columnSpacing={2} sx={styles.toolbar}>
<Grid item sx={styles.filterContainer}>
<SpreadsheetGlobalFilter tableDefinition={tableDefinition} />
{tableDefinition.type !== SpreadsheetEquipmentType.BRANCH && (
<SpreadsheetGlobalFilter tableDefinition={tableDefinition} />
)}
</Grid>
<Grid item>
<FilteredRowCounter rowCounterInfos={rowCounterInfos} tableDefinition={tableDefinition} />
Expand Down
4 changes: 2 additions & 2 deletions src/components/spreadsheet-view/spreadsheet/spreadsheet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import React, { useMemo, useRef } from 'react';
import { memo, useMemo, useRef } from 'react';
import { CustomColDef } from 'components/custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type';
import { rowIndexColumnDefinition } from '../columns/common-column-definitions';
import { SpreadsheetTabDefinition } from '../types/spreadsheet.type';
Expand All @@ -29,7 +29,7 @@ interface SpreadsheetProps {
active: boolean;
}

export const Spreadsheet = React.memo(
export const Spreadsheet = memo(
({
currentNode,
tableDefinition,
Expand Down
1 change: 1 addition & 0 deletions src/translations/spreadsheet-en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ const spreadsheetEn = {
'spreadsheet/rename_spreadsheet_error': 'Error while renaming spreadsheet',
'spreadsheet/rename_dialog_title': 'Rename spreadsheet',
'spreadsheet/spreadsheet_name_le_60': 'Spreadsheet name must be at most 60 characters',
'spreadsheet/loading/error_fetching_type_title': 'Error during (re)load of spreadsheet(s) of type {type}',

'spreadsheet/global-model-edition/edit': 'Model edition',
'spreadsheet/global-model-edition/column_id': 'ID',
Expand Down
5 changes: 3 additions & 2 deletions src/translations/spreadsheet-fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,13 @@ const spreadsheetFr = {
'spreadsheet/reset_filters_error': 'Erreur lors de la réinitialisation des filtres du tableur',
'spreadsheet/rename/label': 'Renommer',
'spreadsheet/delete/label': 'Supprimer',
'spreadsheet/edit/label': 'Editer',
'spreadsheet/edit/label': 'Éditer',
'spreadsheet/rename_spreadsheet_error': 'Erreur lors du renommage du tableur',
'spreadsheet/rename_dialog_title': 'Renommer le tableur',
'spreadsheet/spreadsheet_name_le_60': 'Le nom du tableur ne peut dépasser 60 caractères',
'spreadsheet/loading/error_fetching_type_title': 'Erreur lors du (re)chargement du/des tableaux de type {type}',

'spreadsheet/global-model-edition/edit': 'Editer le modèle',
'spreadsheet/global-model-edition/edit': 'Éditer le modèle',
'spreadsheet/global-model-edition/column_id': 'ID',
'spreadsheet/global-model-edition/column_name': 'Nom',
'spreadsheet/global-model-edition/column_type': 'Type',
Expand Down
Loading