quintodrome/ui/src/user/UserEdit.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

83 lines
2.3 KiB
JavaScript
Raw Normal View History

2020-01-19 17:39:37 -09:00
import React from 'react'
2020-06-10 12:13:02 -08:00
import { makeStyles } from '@material-ui/core/styles'
2020-01-19 17:39:37 -09:00
import {
TextInput,
BooleanInput,
DateField,
PasswordInput,
Edit,
required,
2020-01-20 05:54:29 -09:00
email,
2020-01-19 17:39:37 -09:00
SimpleForm,
2020-04-27 19:22:17 -08:00
useTranslate,
2020-06-10 12:13:02 -08:00
Toolbar,
SaveButton,
2020-01-19 17:39:37 -09:00
} from 'react-admin'
import { Title } from '../common'
2020-06-10 12:13:02 -08:00
import DeleteUserButton from './DeleteUserButton'
const useStyles = makeStyles({
toolbar: {
display: 'flex',
justifyContent: 'space-between',
},
})
2020-01-19 17:39:37 -09:00
const UserTitle = ({ record }) => {
2020-04-27 19:22:17 -08:00
const translate = useTranslate()
const resourceName = translate('resources.user.name', { smart_count: 1 })
return <Title subTitle={`${resourceName} ${record ? record.name : ''}`} />
}
2020-06-10 12:13:02 -08:00
2021-05-02 11:03:15 -08:00
const UserToolbar = ({ showDelete, ...props }) => (
2020-06-10 12:13:02 -08:00
<Toolbar {...props} classes={useStyles()}>
<SaveButton disabled={props.pristine} />
2021-05-02 11:03:15 -08:00
{showDelete && <DeleteUserButton />}
2020-06-10 12:13:02 -08:00
</Toolbar>
)
const UserEdit = (props) => {
const { permissions } = props
const translate = useTranslate()
2021-05-02 11:03:15 -08:00
const isMyself = props.id === localStorage.getItem('userId')
const getNameHelperText = () =>
2021-05-02 11:03:15 -08:00
isMyself && {
helperText: translate('resources.user.helperTexts.name'),
}
2021-05-02 11:03:15 -08:00
const canDelete = permissions === 'admin' && !isMyself
return (
<Edit title={<UserTitle />} {...props}>
<SimpleForm
variant={'outlined'}
2021-05-02 11:03:15 -08:00
toolbar={<UserToolbar showDelete={canDelete} />}
redirect={permissions === 'admin' ? 'list' : false}
>
{permissions === 'admin' && (
<TextInput source="userName" validate={[required()]} />
)}
<TextInput
source="name"
validate={[required()]}
{...getNameHelperText()}
/>
<TextInput source="email" validate={[email()]} />
2021-04-29 16:04:01 -08:00
<PasswordInput
source="password"
label={translate('resources.user.fields.changePassword')}
/>
{permissions === 'admin' && (
<BooleanInput source="isAdmin" initialValue={false} />
)}
<DateField variant="body1" source="lastLoginAt" showTime />
{/*<DateField source="lastAccessAt" showTime />*/}
<DateField variant="body1" source="updatedAt" showTime />
<DateField variant="body1" source="createdAt" showTime />
</SimpleForm>
</Edit>
)
}
2020-01-19 17:39:37 -09:00
export default UserEdit