add search

This commit is contained in:
Proddy
2022-04-19 17:22:20 +02:00
parent 22595b0f24
commit 09d25c04bc
4 changed files with 92 additions and 77 deletions

View File

@@ -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",

View File

@@ -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",

View File

@@ -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<number>(0);
const [confirmReset, setConfirmReset] = useState<boolean>(false);
const [selectedFilters, setSelectedFilters] = useState<number>(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 = () => {
>
<Grid item>
<Typography align="right" variant="subtitle2" color="primary">
Set filter:&nbsp;
Filter:&nbsp;
</Typography>
</Grid>
<Grid item>
@@ -348,18 +348,33 @@ const SettingsCustomization: FC = () => {
</ToggleButtonGroup>
</Grid>
<Grid item>
<Button size="small" variant="contained" color="primary" onClick={() => maskDisabled(true)}>
set all disabled
<Box sx={{ display: 'flex', alignItems: 'flex-end' }}>
<SearchIcon color="primary" sx={{ fontSize: 16, mr: 1, my: 0.5 }} />
<TextField
variant="standard"
onChange={(event) => {
setSearch(event.target.value);
}}
/>
</Box>
</Grid>
<Grid item>
<Button size="small" variant="outlined" color="primary" onClick={() => maskDisabled(true)}>
disable MQTT+WEB
</Button>
</Grid>
<Grid item>
<Button size="small" variant="contained" color="primary" onClick={() => maskDisabled(false)}>
set all enabled
<Button size="small" variant="outlined" color="primary" onClick={() => maskDisabled(false)}>
enable MQTT+WEB
</Button>
</Grid>
</Grid>
<Table
data={{ nodes: deviceEntities.filter((de) => 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 }}

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.4.0b12t2"
#define EMSESP_APP_VERSION "3.4.0b12t3"