diff --git a/ui/src/App.js b/ui/src/App.js index e3f12e730..ca39a1d75 100644 --- a/ui/src/App.js +++ b/ui/src/App.js @@ -43,6 +43,7 @@ const App = () => { , , , + , permissions === 'admin' ? : null, ]} diff --git a/ui/src/album/AlbumShow.js b/ui/src/album/AlbumShow.js index 095158e80..24db0df4c 100644 --- a/ui/src/album/AlbumShow.js +++ b/ui/src/album/AlbumShow.js @@ -10,8 +10,8 @@ import { import AlbumDetails from './AlbumDetails' import { DurationField, Title } from '../common' import { useStyles } from './styles' -import { SongBulkActions } from '../song/SongBulkActions' import { AlbumActions } from './AlbumActions' +import { AlbumSongBulkActions } from './AlbumSongBulkActions' import { useMediaQuery } from '@material-ui/core' import { setTrack } from '../player' import { useDispatch } from 'react-redux' @@ -46,13 +46,12 @@ const AlbumShow = (props) => { title={} actions={<AlbumActions />} filter={{ album_id: props.id }} - resource={'song'} + resource={'albumSong'} exporter={false} - basePath={'/song'} perPage={1000} pagination={null} sort={{ field: 'discNumber asc, trackNumber asc', order: 'ASC' }} - bulkActionButtons={<SongBulkActions />} + bulkActionButtons={<AlbumSongBulkActions />} > <Datagrid rowClick={(id, basePath, record) => dispatch(setTrack(record))} diff --git a/ui/src/album/AlbumSongBulkActions.js b/ui/src/album/AlbumSongBulkActions.js new file mode 100644 index 000000000..2c7181d76 --- /dev/null +++ b/ui/src/album/AlbumSongBulkActions.js @@ -0,0 +1,16 @@ +import React, { Fragment, useEffect } from 'react' +import { useUnselectAll } from 'react-admin' +import AddToQueueButton from '../song/AddToQueueButton' + +export const AlbumSongBulkActions = (props) => { + const unselectAll = useUnselectAll() + useEffect(() => { + unselectAll('albumSong') + // eslint-disable-next-line + }, []) + return ( + <Fragment> + <AddToQueueButton {...props} /> + </Fragment> + ) +} diff --git a/ui/src/dataProvider.js b/ui/src/dataProvider.js index 4b0280a04..a37dee89d 100644 --- a/ui/src/dataProvider.js +++ b/ui/src/dataProvider.js @@ -1,7 +1,10 @@ import { fetchUtils } from 'react-admin' import jsonServerProvider from 'ra-data-json-server' +const baseUrl = '/app/api' + const httpClient = (url, options = {}) => { + url = url.replace(baseUrl + '/albumSong', baseUrl + '/song') if (!options.headers) { options.headers = new Headers({ Accept: 'application/json' }) } @@ -19,6 +22,6 @@ const httpClient = (url, options = {}) => { }) } -const dataProvider = jsonServerProvider('/app/api', httpClient) +const dataProvider = jsonServerProvider(baseUrl, httpClient) export default dataProvider diff --git a/ui/src/song/SongBulkActions.js b/ui/src/song/SongBulkActions.js index 95ae36cf9..8a882d7ea 100644 --- a/ui/src/song/SongBulkActions.js +++ b/ui/src/song/SongBulkActions.js @@ -1,13 +1,7 @@ import React, { Fragment, useEffect } from 'react' -import { useUnselectAll } from 'react-admin' import AddToQueueButton from './AddToQueueButton' export const SongBulkActions = (props) => { - const unselectAll = useUnselectAll() - useEffect(() => { - console.log('UNSELECT!') - unselectAll('song') - }, []) return ( <Fragment> <AddToQueueButton {...props} />