From 09d25c04bc877e0726de702f31764ffc397584c6 Mon Sep 17 00:00:00 2001 From: Proddy Date: Tue, 19 Apr 2022 17:22:20 +0200 Subject: [PATCH] add search --- interface/package-lock.json | 118 +++++++++--------- interface/package.json | 10 +- .../src/project/SettingsCustomization.tsx | 39 ++++-- src/version.h | 2 +- 4 files changed, 92 insertions(+), 77 deletions(-) diff --git a/interface/package-lock.json b/interface/package-lock.json index a2162566b..6fded4ef9 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -11,11 +11,11 @@ "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", "@msgpack/msgpack": "^2.7.2", - "@mui/icons-material": "^5.6.1", - "@mui/material": "^5.6.1", - "@table-library/react-table-library": "^2.0.32", - "@types/lodash": "^4.14.181", - "@types/node": "^17.0.24", + "@mui/icons-material": "^5.6.2", + "@mui/material": "^5.6.2", + "@table-library/react-table-library": "^3.0.0", + "@types/lodash": "^4.14.182", + "@types/node": "^17.0.25", "@types/react": "^17.0.43", "@types/react-dom": "^17.0.14", "@types/react-router-dom": "^5.3.3", @@ -2856,9 +2856,9 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.76", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.76.tgz", - "integrity": "sha512-Pd0l4DvjXiGRyipn/CTDlYB2XrJwhpLktVXvbvcmzL2SMDaNprSarZqBkPHIubkulmRDZEEcnFDrpKgeSJDg4A==", + "version": "5.0.0-alpha.77", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.77.tgz", + "integrity": "sha512-Zqm3qlczGViD3lJSYo8ZnQLHJ3PwGYftbDfVuh2Rq5OD88F7H6oDILlqknzty59NDkeSVO2qlymYmHOY1nLodg==", "dependencies": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", @@ -2888,9 +2888,9 @@ } }, "node_modules/@mui/icons-material": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.6.1.tgz", - "integrity": "sha512-I1x8u+FRLOmoJpRJASMx9UG+jZrSkNLyRQmBXivQQwXu3m3iasMoaKYhhI0J18t8+FWktbkNTp63oEUHE9Gw0Q==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.6.2.tgz", + "integrity": "sha512-9QdI7axKuBAyaGz4mtdi7Uy1j73/thqFmEuxpJHxNC7O8ADEK1Da3t2veK2tgmsXsUlAHcAG63gg+GvWWeQNqQ==", "dependencies": { "@babel/runtime": "^7.17.2" }, @@ -2913,13 +2913,13 @@ } }, "node_modules/@mui/material": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.1.tgz", - "integrity": "sha512-xg6pPq+1jxWupwmPpnfmsHNjrsOe2xynUQWrRfcH8WHrrr1sQulq0VF4gORq/l8DD8a/jb4s8SsC20e/e6mHKQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.2.tgz", + "integrity": "sha512-bwMvroBrMgUTwUh/BcjhtcJwEw9uH4chV3+ZSj6RckOJtMj8U4yEeD7S4NgHE8Ioj5eObKFzHpih/cTD1sDRpg==", "dependencies": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.76", - "@mui/system": "^5.6.1", + "@mui/base": "5.0.0-alpha.77", + "@mui/system": "^5.6.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", "@types/react-transition-group": "^4.4.4", @@ -2957,9 +2957,9 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.6.1.tgz", - "integrity": "sha512-8lgh+tUt/3ftStfvml3dwAzhW3fe/cUFjLcBViOTnWk7UixWR79me4qehsO4NVj0THpu3d2qclrLzdD8qBAWAQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.6.2.tgz", + "integrity": "sha512-IbrSfFXfiZdyhRMC2bgGTFtb16RBQ5mccmjeh3MtAERWuepiCK7gkW5D9WhEsfTu6iez+TEjeUKSgmMHlsM2mg==", "dependencies": { "@babel/runtime": "^7.17.2", "@mui/utils": "^5.6.1", @@ -3013,12 +3013,12 @@ } }, "node_modules/@mui/system": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.1.tgz", - "integrity": "sha512-Y5pDvEOK6VOY+0vgNeyDuEEO5QCinhXbZQDyLOlaGLKuAoRGLXO9pcSsjZoGkewYZitXD44EDfgBQ+BqsAfgUA==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.2.tgz", + "integrity": "sha512-Wg9TRbvavSwEYk6UdpnoDx+CqJfaAN7AzlmwEx7DtGmx0snFVBST8FVb1Ev1vXosxEnq6/fe7ZDRobFVewvEPQ==", "dependencies": { "@babel/runtime": "^7.17.2", - "@mui/private-theming": "^5.6.1", + "@mui/private-theming": "^5.6.2", "@mui/styled-engine": "^5.6.1", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", @@ -3549,9 +3549,9 @@ } }, "node_modules/@table-library/react-table-library": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-2.0.32.tgz", - "integrity": "sha512-hHxR5DkAdU+62rRukjId1XqdI1ZkWQhdmvYwJM60StrFpah0nbpk8/HG21k7mFdlwjoO7HtDgWDDReLDUbPS7Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-3.0.0.tgz", + "integrity": "sha512-XkFS6+M1oWfno9raVjLWzcP/wSUwm50xzBozHMORRMO4NZ484TBr+f+tTcgyl5eJnEJxSNAkEClv+iB9t0QR+Q==", "dependencies": { "clsx": "1.1.1", "react-virtualized-auto-sizer": "1.0.6", @@ -3753,9 +3753,9 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "node_modules/@types/lodash": { - "version": "4.14.181", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.181.tgz", - "integrity": "sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==" + "version": "4.14.182", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", + "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" }, "node_modules/@types/mime": { "version": "1.3.2", @@ -3763,9 +3763,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -19555,9 +19555,9 @@ "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" }, "@mui/base": { - "version": "5.0.0-alpha.76", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.76.tgz", - "integrity": "sha512-Pd0l4DvjXiGRyipn/CTDlYB2XrJwhpLktVXvbvcmzL2SMDaNprSarZqBkPHIubkulmRDZEEcnFDrpKgeSJDg4A==", + "version": "5.0.0-alpha.77", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.77.tgz", + "integrity": "sha512-Zqm3qlczGViD3lJSYo8ZnQLHJ3PwGYftbDfVuh2Rq5OD88F7H6oDILlqknzty59NDkeSVO2qlymYmHOY1nLodg==", "requires": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", @@ -19570,21 +19570,21 @@ } }, "@mui/icons-material": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.6.1.tgz", - "integrity": "sha512-I1x8u+FRLOmoJpRJASMx9UG+jZrSkNLyRQmBXivQQwXu3m3iasMoaKYhhI0J18t8+FWktbkNTp63oEUHE9Gw0Q==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.6.2.tgz", + "integrity": "sha512-9QdI7axKuBAyaGz4mtdi7Uy1j73/thqFmEuxpJHxNC7O8ADEK1Da3t2veK2tgmsXsUlAHcAG63gg+GvWWeQNqQ==", "requires": { "@babel/runtime": "^7.17.2" } }, "@mui/material": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.1.tgz", - "integrity": "sha512-xg6pPq+1jxWupwmPpnfmsHNjrsOe2xynUQWrRfcH8WHrrr1sQulq0VF4gORq/l8DD8a/jb4s8SsC20e/e6mHKQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.2.tgz", + "integrity": "sha512-bwMvroBrMgUTwUh/BcjhtcJwEw9uH4chV3+ZSj6RckOJtMj8U4yEeD7S4NgHE8Ioj5eObKFzHpih/cTD1sDRpg==", "requires": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.76", - "@mui/system": "^5.6.1", + "@mui/base": "5.0.0-alpha.77", + "@mui/system": "^5.6.2", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", "@types/react-transition-group": "^4.4.4", @@ -19597,9 +19597,9 @@ } }, "@mui/private-theming": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.6.1.tgz", - "integrity": "sha512-8lgh+tUt/3ftStfvml3dwAzhW3fe/cUFjLcBViOTnWk7UixWR79me4qehsO4NVj0THpu3d2qclrLzdD8qBAWAQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.6.2.tgz", + "integrity": "sha512-IbrSfFXfiZdyhRMC2bgGTFtb16RBQ5mccmjeh3MtAERWuepiCK7gkW5D9WhEsfTu6iez+TEjeUKSgmMHlsM2mg==", "requires": { "@babel/runtime": "^7.17.2", "@mui/utils": "^5.6.1", @@ -19617,12 +19617,12 @@ } }, "@mui/system": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.1.tgz", - "integrity": "sha512-Y5pDvEOK6VOY+0vgNeyDuEEO5QCinhXbZQDyLOlaGLKuAoRGLXO9pcSsjZoGkewYZitXD44EDfgBQ+BqsAfgUA==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.2.tgz", + "integrity": "sha512-Wg9TRbvavSwEYk6UdpnoDx+CqJfaAN7AzlmwEx7DtGmx0snFVBST8FVb1Ev1vXosxEnq6/fe7ZDRobFVewvEPQ==", "requires": { "@babel/runtime": "^7.17.2", - "@mui/private-theming": "^5.6.1", + "@mui/private-theming": "^5.6.2", "@mui/styled-engine": "^5.6.1", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", @@ -19933,9 +19933,9 @@ } }, "@table-library/react-table-library": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-2.0.32.tgz", - "integrity": "sha512-hHxR5DkAdU+62rRukjId1XqdI1ZkWQhdmvYwJM60StrFpah0nbpk8/HG21k7mFdlwjoO7HtDgWDDReLDUbPS7Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@table-library/react-table-library/-/react-table-library-3.0.0.tgz", + "integrity": "sha512-XkFS6+M1oWfno9raVjLWzcP/wSUwm50xzBozHMORRMO4NZ484TBr+f+tTcgyl5eJnEJxSNAkEClv+iB9t0QR+Q==", "requires": { "clsx": "1.1.1", "react-virtualized-auto-sizer": "1.0.6", @@ -20126,9 +20126,9 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/lodash": { - "version": "4.14.181", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.181.tgz", - "integrity": "sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==" + "version": "4.14.182", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", + "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" }, "@types/mime": { "version": "1.3.2", @@ -20136,9 +20136,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.24.tgz", - "integrity": "sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "@types/parse-json": { "version": "4.0.0", diff --git a/interface/package.json b/interface/package.json index 5001fd899..103e24276 100644 --- a/interface/package.json +++ b/interface/package.json @@ -7,11 +7,11 @@ "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", "@msgpack/msgpack": "^2.7.2", - "@mui/icons-material": "^5.6.1", - "@mui/material": "^5.6.1", - "@table-library/react-table-library": "^2.0.32", - "@types/lodash": "^4.14.181", - "@types/node": "^17.0.24", + "@mui/icons-material": "^5.6.2", + "@mui/material": "^5.6.2", + "@table-library/react-table-library": "^3.0.0", + "@types/lodash": "^4.14.182", + "@types/node": "^17.0.25", "@types/react": "^17.0.43", "@types/react-dom": "^17.0.14", "@types/react-router-dom": "^5.3.3", diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index 5f537fcb9..b64e08e58 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -12,7 +12,8 @@ import { ToggleButton, ToggleButtonGroup, Tooltip, - Grid + Grid, + TextField } from '@mui/material'; import { Table } from '@table-library/react-table-library/table'; @@ -32,6 +33,7 @@ import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore import KeyboardArrowUpOutlinedIcon from '@mui/icons-material/KeyboardArrowUpOutlined'; import KeyboardArrowDownOutlinedIcon from '@mui/icons-material/KeyboardArrowDownOutlined'; import UnfoldMoreOutlinedIcon from '@mui/icons-material/UnfoldMoreOutlined'; +import SearchIcon from '@mui/icons-material/Search'; import { ButtonRow, FormLoader, ValidatedTextField, SectionContent } from '../components'; @@ -50,6 +52,7 @@ const SettingsCustomization: FC = () => { const [selectedDevice, setSelectedDevice] = useState(0); const [confirmReset, setConfirmReset] = useState(false); const [selectedFilters, setSelectedFilters] = useState(0); + const [search, setSearch] = useState(''); // eslint-disable-next-line const [masks, setMasks] = useState(() => ['']); @@ -231,11 +234,8 @@ const SettingsCustomization: FC = () => { .filter((de) => de.m !== de.om) .map((new_de) => new_de.m.toString(16).padStart(2, '0') + new_de.s); - if (masked_entities.length > 50) { - enqueueSnackbar( - 'Too many selected entities (' + masked_entities.length + '). Limit is 50. Please Save in batches', - { variant: 'warning' } - ); + if (masked_entities.length > 60) { + enqueueSnackbar('Selected entities exceeded limit of 60. Please Save in batches', { variant: 'warning' }); return; } @@ -313,7 +313,7 @@ const SettingsCustomization: FC = () => { > - Set filter:  + Filter:  @@ -348,18 +348,33 @@ const SettingsCustomization: FC = () => { - - de.m & selectedFilters || !selectedFilters) }} + data={{ + nodes: deviceEntities.filter( + (de) => (de.m & selectedFilters || !selectedFilters) && de.id.toLowerCase().includes(search.toLowerCase()) + ) + }} theme={entities_theme} sort={entity_sort} layout={{ custom: true, horizontalScroll: true }} diff --git a/src/version.h b/src/version.h index 7814cfaf4..a7efafb90 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.4.0b12t2" +#define EMSESP_APP_VERSION "3.4.0b12t3"