diff options
author | Ashutosh Bishnoi <mail2bishnoi@gmail.com> | 2021-01-07 17:06:20 +0530 |
---|---|---|
committer | Ashutosh Bishnoi <mail2bishnoi@gmail.com> | 2021-01-07 17:06:20 +0530 |
commit | e3ead466abdb03c5f1eb5d3979ad286d38ac95cb (patch) | |
tree | cdad1611572a9da78c79f41894f32294136fbf92 | |
parent | a87f06b4cb10014b431e0a3ea8d6ba1da5a02fc1 (diff) | |
download | trackermap-web-e3ead466abdb03c5f1eb5d3979ad286d38ac95cb.tar.gz trackermap-web-e3ead466abdb03c5f1eb5d3979ad286d38ac95cb.tar.bz2 trackermap-web-e3ead466abdb03c5f1eb5d3979ad286d38ac95cb.zip |
Hiding add computed attribute button for non admin users
-rw-r--r-- | modern/src/EditCollectionView.js | 12 | ||||
-rw-r--r-- | modern/src/settings/ComputedAttributePage.js | 1 | ||||
-rw-r--r-- | modern/src/settings/ComputedAttributesPage.js | 18 |
3 files changed, 21 insertions, 10 deletions
diff --git a/modern/src/EditCollectionView.js b/modern/src/EditCollectionView.js index bec10562..f15d72cf 100644 --- a/modern/src/EditCollectionView.js +++ b/modern/src/EditCollectionView.js @@ -5,6 +5,7 @@ import Menu from '@material-ui/core/Menu'; import MenuItem from '@material-ui/core/MenuItem'; import Fab from '@material-ui/core/Fab'; import AddIcon from '@material-ui/icons/Add'; +import { useSelector } from 'react-redux'; import t from './common/localization'; import RemoveDialog from './RemoveDialog'; @@ -25,6 +26,7 @@ const EditCollectionView = ({ content, editPath, endpoint }) => { const [selectedAnchorEl, setSelectedAnchorEl] = useState(null); const [removeDialogShown, setRemoveDialogShown] = useState(false); const [updateTimestamp, setUpdateTimestamp] = useState(Date.now()); + const adminEnabled = useSelector(state => state.session.user && state.session.user.administrator); const menuShow = (anchorId, itemId) => { setSelectedAnchorEl(anchorId); @@ -60,9 +62,13 @@ const EditCollectionView = ({ content, editPath, endpoint }) => { return ( <> <Content updateTimestamp={updateTimestamp} onMenuClick={menuShow} /> - <Fab size="medium" color="primary" className={classes.fab} onClick={handleAdd}> - <AddIcon /> - </Fab> + {adminEnabled && + ( + <Fab size="medium" color="primary" className={classes.fab} onClick={handleAdd}> + <AddIcon /> + </Fab> + ) + } <Menu open={!!selectedAnchorEl} anchorEl={selectedAnchorEl} onClose={menuHide}> <MenuItem onClick={handleEdit}>{t('sharedEdit')}</MenuItem> <MenuItem onClick={handleRemove}>{t('sharedRemove')}</MenuItem> diff --git a/modern/src/settings/ComputedAttributePage.js b/modern/src/settings/ComputedAttributePage.js index 7ff9511f..73759fab 100644 --- a/modern/src/settings/ComputedAttributePage.js +++ b/modern/src/settings/ComputedAttributePage.js @@ -2,7 +2,6 @@ import React, { useState } from 'react'; import { Accordion, AccordionSummary, AccordionDetails, makeStyles, Typography, FormControl, InputLabel, MenuItem, Select, TextField } from "@material-ui/core"; import t from '../common/localization'; import EditItemView from '../EditItemView'; - import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import positionAttributes from '../attributes/positionAttributes'; diff --git a/modern/src/settings/ComputedAttributesPage.js b/modern/src/settings/ComputedAttributesPage.js index 53d1172c..dde6b237 100644 --- a/modern/src/settings/ComputedAttributesPage.js +++ b/modern/src/settings/ComputedAttributesPage.js @@ -2,6 +2,7 @@ import React, { useState } from 'react'; import MainToolbar from '../MainToolbar'; import { TableContainer, Table, TableRow, TableCell, TableHead, TableBody, makeStyles, IconButton } from '@material-ui/core'; import MoreVertIcon from '@material-ui/icons/MoreVert'; +import { useSelector } from 'react-redux'; import t from '../common/localization'; import { useEffectAsync } from '../reactHelper'; import EditCollectionView from '../EditCollectionView'; @@ -17,6 +18,7 @@ const ComputedAttributeView = ({ updateTimestamp, onMenuClick }) => { const classes = useStyles(); const [items, setItems] = useState([]); + const adminEnabled = useSelector(state => state.session.user && state.session.user.administrator); useEffectAsync(async () => { const response = await fetch('/api/attributes/computed'); @@ -30,7 +32,7 @@ const ComputedAttributeView = ({ updateTimestamp, onMenuClick }) => { <Table> <TableHead> <TableRow> - <TableCell className={classes.columnAction} /> + {adminEnabled && (<TableCell className={classes.columnAction} />)} <TableCell>{t('sharedDescription')}</TableCell> <TableCell>{t('sharedAttribute')}</TableCell> <TableCell>{t('sharedExpression')}</TableCell> @@ -40,11 +42,15 @@ const ComputedAttributeView = ({ updateTimestamp, onMenuClick }) => { <TableBody> {items.map((item) => ( <TableRow key={item.id}> - <TableCell className={classes.columnAction} padding="none"> - <IconButton onClick={(event) => onMenuClick(event.currentTarget, item.id)}> - <MoreVertIcon /> - </IconButton> - </TableCell> + {adminEnabled && + ( + <TableCell className={classes.columnAction} padding="none"> + <IconButton onClick={(event) => onMenuClick(event.currentTarget, item.id)}> + <MoreVertIcon /> + </IconButton> + </TableCell> + ) + } <TableCell>{item.description}</TableCell> <TableCell>{item.attribute}</TableCell> <TableCell>{item.expression}</TableCell> |