add media_name
prop for /media
route
This commit is contained in:
parent
f649b1390e
commit
9a2ad7036b
@ -12,7 +12,7 @@ interface CustomDataGridProps extends DataGridProps {
|
|||||||
resource?: string // Add this prop
|
resource?: string // Add this prop
|
||||||
}
|
}
|
||||||
|
|
||||||
const DEV_FIELDS = ['id', 'code', 'country_code', 'city_id', 'carrier_id', 'main_color', 'left_color', 'right_color', 'logo', 'slogan'] as const
|
const DEV_FIELDS = ['id', 'code', 'country_code', 'city_id', 'carrier_id', 'main_color', 'left_color', 'right_color', 'logo', 'slogan', 'filename'] as const
|
||||||
|
|
||||||
export const CustomDataGrid = ({hasCoordinates = false, columns = [], resource, ...props}: CustomDataGridProps) => {
|
export const CustomDataGrid = ({hasCoordinates = false, columns = [], resource, ...props}: CustomDataGridProps) => {
|
||||||
// const isDev = import.meta.env.DEV
|
// const isDev = import.meta.env.DEV
|
||||||
|
@ -7,7 +7,7 @@ import {MEDIA_TYPES} from '../../lib/constants'
|
|||||||
import {ALLOWED_IMAGE_TYPES, ALLOWED_VIDEO_TYPES, useMediaFileUpload} from '../../components/media/MediaFormUtils'
|
import {ALLOWED_IMAGE_TYPES, ALLOWED_VIDEO_TYPES, useMediaFileUpload} from '../../components/media/MediaFormUtils'
|
||||||
|
|
||||||
type MediaFormValues = {
|
type MediaFormValues = {
|
||||||
filename: string
|
media_name: string
|
||||||
media_type: number
|
media_type: number
|
||||||
file?: File
|
file?: File
|
||||||
}
|
}
|
||||||
@ -42,13 +42,20 @@ export const MediaCreate = () => {
|
|||||||
...saveButtonProps,
|
...saveButtonProps,
|
||||||
disabled: !!errors.file || !selectedFile,
|
disabled: !!errors.file || !selectedFile,
|
||||||
onClick: handleSubmit((data) => {
|
onClick: handleSubmit((data) => {
|
||||||
const formData = new FormData()
|
|
||||||
formData.append('filename', data.filename)
|
|
||||||
formData.append('type', String(data.media_type))
|
|
||||||
if (data.file) {
|
if (data.file) {
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('media_name', data.media_name)
|
||||||
|
formData.append('filename', data.file.name)
|
||||||
|
formData.append('type', String(data.media_type))
|
||||||
formData.append('file', data.file)
|
formData.append('file', data.file)
|
||||||
|
|
||||||
|
console.log('Отправляемые данные:')
|
||||||
|
for (const pair of formData.entries()) {
|
||||||
|
console.log(pair[0] + ': ' + pair[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
onFinish(formData)
|
||||||
}
|
}
|
||||||
onFinish(formData)
|
|
||||||
}),
|
}),
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -78,20 +85,20 @@ export const MediaCreate = () => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
{...register('filename', {
|
{...register('media_name', {
|
||||||
required: 'Это поле является обязательным',
|
required: 'Это поле является обязательным',
|
||||||
})}
|
})}
|
||||||
error={!!(errors as any)?.filename}
|
error={!!(errors as any)?.media_name}
|
||||||
helperText={(errors as any)?.filename?.message}
|
helperText={(errors as any)?.media_name?.message}
|
||||||
margin="normal"
|
margin="normal"
|
||||||
fullWidth
|
fullWidth
|
||||||
InputLabelProps={{shrink: true}}
|
InputLabelProps={{shrink: true}}
|
||||||
type="text"
|
type="text"
|
||||||
label="Название *"
|
label="Название *"
|
||||||
name="filename"
|
name="media_name"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Box component="form" sx={{display: 'flex', flexDirection: 'column'}} autoComplete="off">
|
<Box component="form" sx={{display: 'flex', flexDirection: 'column'}} autoComplete="off" style={{marginTop: 10}}>
|
||||||
<Box display="flex" flexDirection="column-reverse" alignItems="center" gap={6}>
|
<Box display="flex" flexDirection="column-reverse" alignItems="center" gap={6}>
|
||||||
<Box display="flex" flexDirection="column" alignItems="center" gap={2}>
|
<Box display="flex" flexDirection="column" alignItems="center" gap={2}>
|
||||||
<Button variant="contained" component="label" disabled={!selectedMediaType}>
|
<Button variant="contained" component="label" disabled={!selectedMediaType}>
|
||||||
@ -112,7 +119,7 @@ export const MediaCreate = () => {
|
|||||||
)}
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
{previewUrl && (
|
{previewUrl && selectedMediaType === 1 && (
|
||||||
<Box mt={2} display="flex" justifyContent="center">
|
<Box mt={2} display="flex" justifyContent="center">
|
||||||
<img src={previewUrl} alt="Preview" style={{maxWidth: '200px', borderRadius: 8}} />
|
<img src={previewUrl} alt="Preview" style={{maxWidth: '200px', borderRadius: 8}} />
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -9,7 +9,7 @@ import {MEDIA_TYPES} from '../../lib/constants'
|
|||||||
import {ALLOWED_IMAGE_TYPES, ALLOWED_VIDEO_TYPES, useMediaFileUpload} from '../../components/media/MediaFormUtils'
|
import {ALLOWED_IMAGE_TYPES, ALLOWED_VIDEO_TYPES, useMediaFileUpload} from '../../components/media/MediaFormUtils'
|
||||||
|
|
||||||
type MediaFormValues = {
|
type MediaFormValues = {
|
||||||
filename: string
|
media_name: string
|
||||||
media_type: number
|
media_type: number
|
||||||
file?: File
|
file?: File
|
||||||
}
|
}
|
||||||
@ -28,7 +28,7 @@ export const MediaEdit = () => {
|
|||||||
control,
|
control,
|
||||||
} = useForm<MediaFormValues>({
|
} = useForm<MediaFormValues>({
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
filename: '',
|
media_name: '',
|
||||||
media_type: '',
|
media_type: '',
|
||||||
file: undefined,
|
file: undefined,
|
||||||
},
|
},
|
||||||
@ -50,7 +50,7 @@ export const MediaEdit = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (record?.id) {
|
if (record?.id) {
|
||||||
setPreviewUrl(`https://wn.krbl.ru/media/${record.id}/download`)
|
setPreviewUrl(`https://wn.krbl.ru/media/${record.id}/download`)
|
||||||
setValue('filename', record?.filename || '')
|
setValue('media_name', record?.media_name || '')
|
||||||
setValue('media_type', record?.media_type)
|
setValue('media_type', record?.media_type)
|
||||||
}
|
}
|
||||||
}, [record, setValue, setPreviewUrl])
|
}, [record, setValue, setPreviewUrl])
|
||||||
@ -62,7 +62,8 @@ export const MediaEdit = () => {
|
|||||||
disabled: !!errors.file,
|
disabled: !!errors.file,
|
||||||
onClick: handleSubmit((data) => {
|
onClick: handleSubmit((data) => {
|
||||||
const formData = {
|
const formData = {
|
||||||
filename: data.filename,
|
media_name: data.media_name,
|
||||||
|
filename: selectedFile?.name || record?.filename,
|
||||||
type: Number(data.media_type),
|
type: Number(data.media_type),
|
||||||
}
|
}
|
||||||
onFinish(formData)
|
onFinish(formData)
|
||||||
@ -97,20 +98,20 @@ export const MediaEdit = () => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
{...register('filename', {
|
{...register('media_name', {
|
||||||
required: 'Это поле является обязательным',
|
required: 'Это поле является обязательным',
|
||||||
})}
|
})}
|
||||||
error={!!(errors as any)?.filename}
|
error={!!(errors as any)?.media_name}
|
||||||
helperText={(errors as any)?.filename?.message}
|
helperText={(errors as any)?.media_name?.message}
|
||||||
margin="normal"
|
margin="normal"
|
||||||
fullWidth
|
fullWidth
|
||||||
InputLabelProps={{shrink: true}}
|
InputLabelProps={{shrink: true}}
|
||||||
type="text"
|
type="text"
|
||||||
label="Название *"
|
label="Название *"
|
||||||
name="filename"
|
name="media_name"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Box display="flex" flexDirection="column-reverse" alignItems="center" gap={4}>
|
<Box display="flex" flexDirection="column-reverse" alignItems="center" gap={4} style={{marginTop: 10}}>
|
||||||
<Box display="flex" flexDirection="column" alignItems="center" gap={2}>
|
<Box display="flex" flexDirection="column" alignItems="center" gap={2}>
|
||||||
<Button variant="contained" component="label" disabled={!selectedMediaType}>
|
<Button variant="contained" component="label" disabled={!selectedMediaType}>
|
||||||
{selectedFile ? 'Изменить файл' : 'Загрузить файл'}
|
{selectedFile ? 'Изменить файл' : 'Загрузить файл'}
|
||||||
@ -130,9 +131,9 @@ export const MediaEdit = () => {
|
|||||||
)}
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
{previewUrl && (
|
{previewUrl && selectedMediaType === 1 && (
|
||||||
<Box mt={2} display="flex" justifyContent="center">
|
<Box mt={2} display="flex" justifyContent="center">
|
||||||
<img src={previewUrl} alt="Preview" style={{maxWidth: '300px', objectFit: 'contain'}} />
|
<img src={previewUrl} alt="Preview" style={{maxWidth: '200px', borderRadius: 8}} />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -22,13 +22,22 @@ export const MediaList = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'filename',
|
field: 'filename',
|
||||||
headerName: 'Название',
|
headerName: 'Название файла',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
minWidth: 250,
|
minWidth: 250,
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
align: 'left',
|
align: 'left',
|
||||||
headerAlign: 'left',
|
headerAlign: 'left',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: 'media_name',
|
||||||
|
headerName: 'Название',
|
||||||
|
type: 'string',
|
||||||
|
minWidth: 150,
|
||||||
|
display: 'flex',
|
||||||
|
align: 'left',
|
||||||
|
headerAlign: 'left',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: 'media_type',
|
field: 'media_type',
|
||||||
headerName: 'Тип',
|
headerName: 'Тип',
|
||||||
|
@ -11,7 +11,8 @@ export const MediaShow = () => {
|
|||||||
const record = data?.data
|
const record = data?.data
|
||||||
|
|
||||||
const fields = [
|
const fields = [
|
||||||
{label: 'Название', data: 'filename'},
|
// {label: 'Название файла', data: 'filename'},
|
||||||
|
{label: 'Название', data: 'media_name'},
|
||||||
{
|
{
|
||||||
label: 'Тип',
|
label: 'Тип',
|
||||||
data: 'media_type',
|
data: 'media_type',
|
||||||
|
Loading…
Reference in New Issue
Block a user