2020-07-18 07:03:44 +02:00
|
|
|
import React, { Fragment } from 'react'
|
|
|
|
|
2020-05-12 03:27:00 +02:00
|
|
|
import {
|
|
|
|
Edit,
|
2020-07-18 07:03:44 +02:00
|
|
|
FormDataConsumer,
|
2020-05-12 03:27:00 +02:00
|
|
|
SimpleForm,
|
|
|
|
TextInput,
|
2020-07-18 01:56:19 +02:00
|
|
|
TextField,
|
2020-05-12 03:27:00 +02:00
|
|
|
BooleanInput,
|
|
|
|
required,
|
2020-09-15 01:56:05 +02:00
|
|
|
useTranslate,
|
2021-10-31 18:08:53 +01:00
|
|
|
usePermissions,
|
|
|
|
ReferenceInput,
|
|
|
|
SelectInput,
|
2020-05-12 03:27:00 +02:00
|
|
|
} from 'react-admin'
|
2021-11-02 00:21:11 +01:00
|
|
|
import { isWritable, Title } from '../common'
|
2020-05-12 03:27:00 +02:00
|
|
|
|
2021-04-29 04:07:16 +02:00
|
|
|
const SyncFragment = ({ formData, variant, ...rest }) => {
|
2020-07-18 07:03:44 +02:00
|
|
|
return (
|
|
|
|
<Fragment>
|
|
|
|
{formData.path && <BooleanInput source="sync" {...rest} />}
|
|
|
|
{formData.path && <TextField source="path" {...rest} />}
|
|
|
|
</Fragment>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2020-09-15 01:56:05 +02:00
|
|
|
const PlaylistTitle = ({ record }) => {
|
|
|
|
const translate = useTranslate()
|
|
|
|
const resourceName = translate('resources.playlist.name', { smart_count: 1 })
|
|
|
|
return <Title subTitle={`${resourceName} "${record ? record.name : ''}"`} />
|
|
|
|
}
|
|
|
|
|
2021-10-23 03:11:44 +02:00
|
|
|
const PlaylistEditForm = (props) => {
|
|
|
|
const { record } = props
|
2021-10-31 18:08:53 +01:00
|
|
|
const { permissions } = usePermissions()
|
2021-10-23 03:11:44 +02:00
|
|
|
return (
|
|
|
|
<SimpleForm redirect="list" variant={'outlined'} {...props}>
|
2020-05-12 03:27:00 +02:00
|
|
|
<TextInput source="name" validate={required()} />
|
2020-07-18 01:56:19 +02:00
|
|
|
<TextInput multiline source="comment" />
|
2021-10-31 18:08:53 +01:00
|
|
|
{permissions === 'admin' ? (
|
|
|
|
<ReferenceInput
|
|
|
|
source="ownerId"
|
|
|
|
reference="user"
|
|
|
|
perPage={0}
|
|
|
|
sort={{ field: 'name', order: 'ASC' }}
|
|
|
|
>
|
|
|
|
<SelectInput
|
|
|
|
label={'resources.playlist.fields.ownerName'}
|
|
|
|
optionText="userName"
|
|
|
|
/>
|
|
|
|
</ReferenceInput>
|
|
|
|
) : (
|
|
|
|
<TextField source="ownerName" />
|
|
|
|
)}
|
2021-11-02 00:21:11 +01:00
|
|
|
<BooleanInput source="public" disabled={!isWritable(record.ownerId)} />
|
2020-07-18 07:03:44 +02:00
|
|
|
<FormDataConsumer>
|
|
|
|
{(formDataProps) => <SyncFragment {...formDataProps} />}
|
|
|
|
</FormDataConsumer>
|
2020-05-12 03:27:00 +02:00
|
|
|
</SimpleForm>
|
2021-10-23 03:11:44 +02:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
const PlaylistEdit = (props) => (
|
2021-10-31 18:14:59 +01:00
|
|
|
<Edit title={<PlaylistTitle />} actions={false} {...props}>
|
2021-10-23 03:11:44 +02:00
|
|
|
<PlaylistEditForm {...props} />
|
2020-05-12 03:27:00 +02:00
|
|
|
</Edit>
|
|
|
|
)
|
|
|
|
|
|
|
|
export default PlaylistEdit
|