diff --git a/ui/src/common/useSelectedFields.js b/ui/src/common/useSelectedFields.js index 9784cf32..07ccc918 100644 --- a/ui/src/common/useSelectedFields.js +++ b/ui/src/common/useSelectedFields.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types' import { useDispatch, useSelector } from 'react-redux' import { setOmittedFields, setToggleableFields } from '../actions' +// TODO Refactor export const useSelectedFields = ({ resource, columns, diff --git a/ui/src/playlist/PlaylistEdit.js b/ui/src/playlist/PlaylistEdit.js index 212783d0..cc651a66 100644 --- a/ui/src/playlist/PlaylistEdit.js +++ b/ui/src/playlist/PlaylistEdit.js @@ -9,6 +9,9 @@ import { BooleanInput, required, useTranslate, + usePermissions, + ReferenceInput, + SelectInput, } from 'react-admin' import { isSmartPlaylist, isWritable, Title } from '../common' @@ -29,10 +32,26 @@ const PlaylistTitle = ({ record }) => { const PlaylistEditForm = (props) => { const { record } = props + const { permissions } = usePermissions() return ( + {permissions === 'admin' ? ( + + + + ) : ( + + )} ( + + + ) @@ -68,8 +79,8 @@ const PlaylistList = (props) => { const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md')) useResourceRefresh('playlist') - const toggleableFields = useMemo(() => { - return { + const toggleableFields = useMemo( + () => ({ ownerName: , songCount: isDesktop && , duration: isDesktop && , @@ -79,8 +90,9 @@ const PlaylistList = (props) => { public: !isXsmall && ( ), - } - }, [isDesktop, isXsmall]) + }), + [isDesktop, isXsmall] + ) const columns = useSelectedFields({ resource: 'playlist', diff --git a/ui/src/playlist/PlaylistListActions.js b/ui/src/playlist/PlaylistListActions.js index 54998f3e..3cde0a20 100644 --- a/ui/src/playlist/PlaylistListActions.js +++ b/ui/src/playlist/PlaylistListActions.js @@ -1,4 +1,4 @@ -import React from 'react' +import React, { cloneElement } from 'react' import { sanitizeListRestProps, TopToolbar, @@ -14,6 +14,7 @@ const PlaylistListActions = ({ className, ...rest }) => { return ( + {cloneElement(rest.filters, { context: 'button' })} {translate('ra.action.create')}