Skip to content

Commit 5266acd

Browse files
authored
Limit spreadsheet node aliases to 5 (#3075)
Signed-off-by: David BRAQUART <[email protected]>
1 parent 9c536be commit 5266acd

File tree

4 files changed

+9
-1
lines changed

4 files changed

+9
-1
lines changed

src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/nodes-config/node-config-table.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { useFieldArray } from 'react-hook-form';
1313
import { useIntl } from 'react-intl';
1414
import { AppState } from '../../../../../redux/reducer';
1515
import { CurrentTreeNode } from '../../../../graph/tree-node.type';
16-
import { NODE_ALIAS, NODE_NAME, NODES_ALIASES } from './nodes-config-dialog.utils';
16+
import { NODE_ALIAS, NODE_NAME, NODES_ALIASES, NODES_ALIASES_MAX_NUMBER } from './nodes-config-dialog.utils';
1717

1818
const NodeConfigTable = () => {
1919
const treeModel = useSelector((state: AppState) => state.networkModificationTreeModel);
@@ -75,6 +75,7 @@ const NodeConfigTable = () => {
7575
withAddRowsDialog={false}
7676
disableDragAndDrop={true}
7777
showMoveArrow={false}
78+
maxRows={NODES_ALIASES_MAX_NUMBER}
7879
/>
7980
);
8081
};

src/components/spreadsheet-view/spreadsheet/spreadsheet-toolbar/nodes-config/nodes-config-dialog.utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { areArrayElementsUnique } from '../../../../utils/utils';
1111
export const NODE_ALIAS = 'alias';
1212
export const NODE_NAME = 'name';
1313
export const NODES_ALIASES = 'nodesAliases';
14+
export const NODES_ALIASES_MAX_NUMBER = 5;
1415

1516
export const initialNodesForm: NodesForm = {
1617
[NODES_ALIASES]: [],
@@ -45,6 +46,10 @@ export const nodesFormSchema = yup.object().shape({
4546
.test('uniqueNodeNames', 'spreadsheet/parameter_aliases/unique_node_names', (array) => {
4647
const nodeNamesArray = array.map((l) => l[NODE_NAME]).filter((value) => value);
4748
return areArrayElementsUnique(nodeNamesArray);
49+
})
50+
// error message must be in-sync with NODES_ALIASES_MAX_NUMBER and MaximumRowNumberError from commons-ui
51+
.test('maxNodeNames', 'spreadsheet/parameter_aliases/maximum_row_number_error', (array) => {
52+
return array.length <= NODES_ALIASES_MAX_NUMBER;
4853
}),
4954
});
5055

src/translations/spreadsheet-en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ const spreadsheetEn = {
108108
'spreadsheet/parameter_aliases/node_doesnt_exist': 'No node with this name',
109109
'spreadsheet/parameter_aliases/unique_aliases': 'Aliases should be unique',
110110
'spreadsheet/parameter_aliases/unique_node_names': 'Each node can only have one alias',
111+
'spreadsheet/parameter_aliases/maximum_row_number_error': 'The number of rows must not exceed the value 5',
111112
'spreadsheet/filter/config': 'Gridsuite filters',
112113
'spreadsheet/remove_spreadsheet_confirmation':
113114
'Are you sure you want to remove the spreadsheet "{spreadsheetName}"?',

src/translations/spreadsheet-fr.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ const spreadsheetFr = {
113113
'spreadsheet/parameter_aliases/node_doesnt_exist': 'Aucun nœud avec ce nom',
114114
'spreadsheet/parameter_aliases/unique_aliases': 'Les alias doivent être unique',
115115
'spreadsheet/parameter_aliases/unique_node_names': 'Chaque nœud ne peut avoir qu’un seul alias',
116+
'spreadsheet/parameter_aliases/maximum_row_number_error': 'Le nombre de lignes ne doit pas dépasser la valeur 5',
116117
'spreadsheet/filter/config': 'Filtres Gridsuite',
117118
'spreadsheet/remove_spreadsheet_confirmation': 'Êtes-vous sûr de vouloir supprimer le tableur {spreadsheetName} ?',
118119
'spreadsheet/remove_spreadsheet_error': 'Erreur lors de la suppression du tableur',

0 commit comments

Comments
 (0)