diff --git a/frontend/src/Activity/History/History.js b/frontend/src/Activity/History/History.js index f8990cfbf..ca3295ae3 100644 --- a/frontend/src/Activity/History/History.js +++ b/frontend/src/Activity/History/History.js @@ -54,7 +54,7 @@ class History extends Component { totalRecords, isAlbumsFetching, isAlbumsPopulated, - episodesError, + albumsError, onFilterSelect, onFirstPagePress, ...otherProps @@ -62,7 +62,7 @@ class History extends Component { const isFetchingAny = isFetching || isAlbumsFetching; const isAllPopulated = isPopulated && (isAlbumsPopulated || !items.length); - const hasError = error || episodesError; + const hasError = error || albumsError; return ( @@ -209,7 +209,7 @@ History.propTypes = { totalRecords: PropTypes.number, isAlbumsFetching: PropTypes.bool.isRequired, isAlbumsPopulated: PropTypes.bool.isRequired, - episodesError: PropTypes.object, + albumsError: PropTypes.object, onFilterSelect: PropTypes.func.isRequired, onFirstPagePress: PropTypes.func.isRequired }; diff --git a/frontend/src/Activity/History/HistoryConnector.js b/frontend/src/Activity/History/HistoryConnector.js index 2535fe7de..35da9cc5d 100644 --- a/frontend/src/Activity/History/HistoryConnector.js +++ b/frontend/src/Activity/History/HistoryConnector.js @@ -6,20 +6,20 @@ import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePo import hasDifferentItems from 'Utilities/Object/hasDifferentItems'; import selectUniqueIds from 'Utilities/Object/selectUniqueIds'; import * as historyActions from 'Store/Actions/historyActions'; -import { fetchEpisodes, clearEpisodes } from 'Store/Actions/episodeActions'; +import { fetchAlbums, clearAlbums } from 'Store/Actions/albumActions'; import { fetchTracks, clearTracks } from 'Store/Actions/trackActions'; import History from './History'; function createMapStateToProps() { return createSelector( (state) => state.history, - (state) => state.episodes, + (state) => state.albums, (state) => state.tracks, - (history, episodes, tracks) => { + (history, albums, tracks) => { return { - isAlbumsFetching: episodes.isFetching, - isAlbumsPopulated: episodes.isPopulated, - episodesError: episodes.error, + isAlbumsFetching: albums.isFetching, + isAlbumsPopulated: albums.isPopulated, + albumsError: albums.error, isTracksFetching: tracks.isFetching, isTracksPopulated: tracks.isPopulated, tracksError: tracks.error, @@ -31,8 +31,8 @@ function createMapStateToProps() { const mapDispatchToProps = { ...historyActions, - fetchEpisodes, - clearEpisodes, + fetchAlbums, + clearAlbums, fetchTracks, clearTracks }; @@ -52,9 +52,9 @@ class HistoryConnector extends Component { const albumIds = selectUniqueIds(this.props.items, 'albumId'); const trackIds = selectUniqueIds(this.props.items, 'trackId'); if (albumIds.length) { - this.props.fetchEpisodes({ albumIds }); + this.props.fetchAlbums({ albumIds }); } else { - this.props.clearEpisodes(); + this.props.clearAlbums(); } if (trackIds.length) { this.props.fetchTracks({ trackIds }); @@ -67,7 +67,7 @@ class HistoryConnector extends Component { componentWillUnmount() { unregisterPagePopulator(this.repopulate); this.props.clearHistory(); - this.props.clearEpisodes(); + this.props.clearAlbums(); this.props.clearTracks(); } @@ -149,8 +149,8 @@ HistoryConnector.propTypes = { setHistoryFilter: PropTypes.func.isRequired, setHistoryTableOption: PropTypes.func.isRequired, clearHistory: PropTypes.func.isRequired, - fetchEpisodes: PropTypes.func.isRequired, - clearEpisodes: PropTypes.func.isRequired, + fetchAlbums: PropTypes.func.isRequired, + clearAlbums: PropTypes.func.isRequired, fetchTracks: PropTypes.func.isRequired, clearTracks: PropTypes.func.isRequired }; diff --git a/frontend/src/Activity/History/HistoryRow.js b/frontend/src/Activity/History/HistoryRow.js index 3eb438e75..8823aacba 100644 --- a/frontend/src/Activity/History/HistoryRow.js +++ b/frontend/src/Activity/History/HistoryRow.js @@ -5,8 +5,8 @@ import IconButton from 'Components/Link/IconButton'; import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector'; import TableRow from 'Components/Table/TableRow'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; -import episodeEntities from 'Album/episodeEntities'; -import EpisodeTitleLink from 'Album/EpisodeTitleLink'; +import albumEntities from 'Album/albumEntities'; +import AlbumTitleLink from 'Album/AlbumTitleLink'; import EpisodeLanguage from 'Album/EpisodeLanguage'; import EpisodeQuality from 'Album/EpisodeQuality'; import ArtistNameLink from 'Artist/ArtistNameLink'; @@ -110,14 +110,14 @@ class HistoryRow extends Component { ); } - if (name === 'episodeTitle') { + if (name === 'albumTitle') { return ( - diff --git a/frontend/src/Activity/History/HistoryRowConnector.js b/frontend/src/Activity/History/HistoryRowConnector.js index 9cafd2e95..c1e70edff 100644 --- a/frontend/src/Activity/History/HistoryRowConnector.js +++ b/frontend/src/Activity/History/HistoryRowConnector.js @@ -4,7 +4,7 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions'; import createArtistSelector from 'Store/Selectors/createArtistSelector'; -import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector'; +import createAlbumSelector from 'Store/Selectors/createAlbumSelector'; import createTrackSelector from 'Store/Selectors/createTrackSelector'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; import HistoryRow from './HistoryRow'; @@ -12,7 +12,7 @@ import HistoryRow from './HistoryRow'; function createMapStateToProps() { return createSelector( createArtistSelector(), - createEpisodeSelector(), + createAlbumSelector(), createTrackSelector(), createUISettingsSelector(), (artist, album, track, uiSettings) => { diff --git a/frontend/src/Activity/Queue/Queue.js b/frontend/src/Activity/Queue/Queue.js index f3144bb0a..0392f7ebb 100644 --- a/frontend/src/Activity/Queue/Queue.js +++ b/frontend/src/Activity/Queue/Queue.js @@ -119,7 +119,7 @@ class Queue extends Component { items, isAlbumsFetching, isAlbumsPopulated, - episodesError, + albumsError, columns, totalRecords, isGrabbing, @@ -139,7 +139,7 @@ class Queue extends Component { const isRefreshing = isFetching || isAlbumsFetching || isCheckForFinishedDownloadExecuting; const isAllPopulated = isPopulated && (isAlbumsPopulated || !items.length); - const hasError = error || episodesError; + const hasError = error || albumsError; const selectedCount = this.getSelectedIds().length; const disableSelectedActions = selectedCount === 0; @@ -250,7 +250,7 @@ Queue.propTypes = { items: PropTypes.arrayOf(PropTypes.object).isRequired, isAlbumsFetching: PropTypes.bool.isRequired, isAlbumsPopulated: PropTypes.bool.isRequired, - episodesError: PropTypes.object, + albumsError: PropTypes.object, columns: PropTypes.arrayOf(PropTypes.object).isRequired, totalRecords: PropTypes.number, isGrabbing: PropTypes.bool.isRequired, diff --git a/frontend/src/Activity/Queue/QueueConnector.js b/frontend/src/Activity/Queue/QueueConnector.js index 966e46900..d9de161f2 100644 --- a/frontend/src/Activity/Queue/QueueConnector.js +++ b/frontend/src/Activity/Queue/QueueConnector.js @@ -9,22 +9,22 @@ import selectUniqueIds from 'Utilities/Object/selectUniqueIds'; import createCommandsSelector from 'Store/Selectors/createCommandsSelector'; import { executeCommand } from 'Store/Actions/commandActions'; import * as queueActions from 'Store/Actions/queueActions'; -import { fetchEpisodes, clearEpisodes } from 'Store/Actions/episodeActions'; +import { fetchAlbums, clearAlbums } from 'Store/Actions/albumActions'; import * as commandNames from 'Commands/commandNames'; import Queue from './Queue'; function createMapStateToProps() { return createSelector( - (state) => state.episodes, + (state) => state.albums, (state) => state.queue.paged, createCommandsSelector(), - (episodes, queue, commands) => { + (albums, queue, commands) => { const isCheckForFinishedDownloadExecuting = _.some(commands, { name: commandNames.CHECK_FOR_FINISHED_DOWNLOAD }); return { - isAlbumsFetching: episodes.isFetching, - isAlbumsPopulated: episodes.isPopulated, - episodesError: episodes.error, + isAlbumsFetching: albums.isFetching, + isAlbumsPopulated: albums.isPopulated, + albumsError: albums.error, isCheckForFinishedDownloadExecuting, ...queue }; @@ -34,8 +34,8 @@ function createMapStateToProps() { const mapDispatchToProps = { ...queueActions, - fetchEpisodes, - clearEpisodes, + fetchAlbums, + clearAlbums, executeCommand }; @@ -53,9 +53,9 @@ class QueueConnector extends Component { if (hasDifferentItems(prevProps.items, this.props.items)) { const albumIds = selectUniqueIds(this.props.items, 'albumId'); if (albumIds.length) { - this.props.fetchEpisodes({ albumIds }); + this.props.fetchAlbums({ albumIds }); } else { - this.props.clearEpisodes(); + this.props.clearAlbums(); } } @@ -64,7 +64,7 @@ class QueueConnector extends Component { componentWillUnmount() { unregisterPagePopulator(this.repopulate); this.props.clearQueue(); - this.props.clearEpisodes(); + this.props.clearAlbums(); } // @@ -158,8 +158,8 @@ QueueConnector.propTypes = { clearQueue: PropTypes.func.isRequired, grabQueueItems: PropTypes.func.isRequired, removeQueueItems: PropTypes.func.isRequired, - fetchEpisodes: PropTypes.func.isRequired, - clearEpisodes: PropTypes.func.isRequired, + fetchAlbums: PropTypes.func.isRequired, + clearAlbums: PropTypes.func.isRequired, executeCommand: PropTypes.func.isRequired }; diff --git a/frontend/src/Activity/Queue/QueueDetails.js b/frontend/src/Activity/Queue/QueueDetails.js index f6e360c0a..8256b8af3 100644 --- a/frontend/src/Activity/Queue/QueueDetails.js +++ b/frontend/src/Activity/Queue/QueueDetails.js @@ -76,7 +76,7 @@ function QueueDetails(props) { return ( ); } diff --git a/frontend/src/Activity/Queue/QueueRow.js b/frontend/src/Activity/Queue/QueueRow.js index 3123b1fb6..f5f766895 100644 --- a/frontend/src/Activity/Queue/QueueRow.js +++ b/frontend/src/Activity/Queue/QueueRow.js @@ -8,7 +8,7 @@ import TableRow from 'Components/Table/TableRow'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableSelectCell from 'Components/Table/Cells/TableSelectCell'; import ProtocolLabel from 'Activity/Queue/ProtocolLabel'; -import EpisodeTitleLink from 'Album/EpisodeTitleLink'; +import AlbumTitleLink from 'Album/AlbumTitleLink'; import EpisodeQuality from 'Album/EpisodeQuality'; import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal'; import ArtistNameLink from 'Artist/ArtistNameLink'; @@ -68,7 +68,7 @@ class QueueRow extends Component { statusMessages, errorMessage, artist, - episode, + album, quality, protocol, indexer, @@ -152,14 +152,14 @@ class QueueRow extends Component { ); } - if (name === 'episodeTitle') { + if (name === 'albumTitle') { return ( - @@ -300,7 +300,7 @@ QueueRow.propTypes = { statusMessages: PropTypes.arrayOf(PropTypes.object), errorMessage: PropTypes.string, artist: PropTypes.object.isRequired, - episode: PropTypes.object.isRequired, + album: PropTypes.object.isRequired, quality: PropTypes.object.isRequired, protocol: PropTypes.string.isRequired, indexer: PropTypes.string, diff --git a/frontend/src/Activity/Queue/QueueRowConnector.js b/frontend/src/Activity/Queue/QueueRowConnector.js index bc6221d84..3c89a868b 100644 --- a/frontend/src/Activity/Queue/QueueRowConnector.js +++ b/frontend/src/Activity/Queue/QueueRowConnector.js @@ -5,16 +5,16 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { grabQueueItem, removeQueueItem } from 'Store/Actions/queueActions'; import createArtistSelector from 'Store/Selectors/createArtistSelector'; -import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector'; +import createAlbumSelector from 'Store/Selectors/createAlbumSelector'; import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector'; import QueueRow from './QueueRow'; function createMapStateToProps() { return createSelector( createArtistSelector(), - createEpisodeSelector(), + createAlbumSelector(), createUISettingsSelector(), - (artist, episode, uiSettings) => { + (artist, album, uiSettings) => { const result = _.pick(uiSettings, [ 'showRelativeDates', 'shortDateFormat', @@ -22,7 +22,7 @@ function createMapStateToProps() { ]); result.artist = artist; - result.episode = episode; + result.album = album; return result; } @@ -51,7 +51,7 @@ class QueueRowConnector extends Component { // Render render() { - if (!this.props.episode) { + if (!this.props.album) { return null; } @@ -67,7 +67,7 @@ class QueueRowConnector extends Component { QueueRowConnector.propTypes = { id: PropTypes.number.isRequired, - episode: PropTypes.object, + album: PropTypes.object, grabQueueItem: PropTypes.func.isRequired, removeQueueItem: PropTypes.func.isRequired }; diff --git a/frontend/src/Album/EpisodeDetailsModal.js b/frontend/src/Album/AlbumDetailsModal.js similarity index 67% rename from frontend/src/Album/EpisodeDetailsModal.js rename to frontend/src/Album/AlbumDetailsModal.js index 945c2fb8e..5f55cd10f 100644 --- a/frontend/src/Album/EpisodeDetailsModal.js +++ b/frontend/src/Album/AlbumDetailsModal.js @@ -1,9 +1,9 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Modal from 'Components/Modal/Modal'; -import EpisodeDetailsModalContentConnector from './EpisodeDetailsModalContentConnector'; +import AlbumDetailsModalContentConnector from './AlbumDetailsModalContentConnector'; -class EpisodeDetailsModal extends Component { +class AlbumDetailsModal extends Component { // // Render @@ -20,7 +20,7 @@ class EpisodeDetailsModal extends Component { isOpen={isOpen} onModalClose={onModalClose} > - @@ -29,9 +29,9 @@ class EpisodeDetailsModal extends Component { } } -EpisodeDetailsModal.propTypes = { +AlbumDetailsModal.propTypes = { isOpen: PropTypes.bool.isRequired, onModalClose: PropTypes.func.isRequired }; -export default EpisodeDetailsModal; +export default AlbumDetailsModal; diff --git a/frontend/src/Album/EpisodeDetailsModalContent.css b/frontend/src/Album/AlbumDetailsModalContent.css similarity index 100% rename from frontend/src/Album/EpisodeDetailsModalContent.css rename to frontend/src/Album/AlbumDetailsModalContent.css diff --git a/frontend/src/Album/EpisodeDetailsModalContent.js b/frontend/src/Album/AlbumDetailsModalContent.js similarity index 85% rename from frontend/src/Album/EpisodeDetailsModalContent.js rename to frontend/src/Album/AlbumDetailsModalContent.js index ceb212a0f..42a8357d0 100644 --- a/frontend/src/Album/EpisodeDetailsModalContent.js +++ b/frontend/src/Album/AlbumDetailsModalContent.js @@ -1,17 +1,17 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { Tab, Tabs, TabList, TabPanel } from 'react-tabs'; -import episodeEntities from 'Album/episodeEntities'; +import albumEntities from 'Album/albumEntities'; import Button from 'Components/Link/Button'; import ModalContent from 'Components/Modal/ModalContent'; import ModalHeader from 'Components/Modal/ModalHeader'; import ModalBody from 'Components/Modal/ModalBody'; import ModalFooter from 'Components/Modal/ModalFooter'; import MonitorToggleButton from 'Components/MonitorToggleButton'; -import EpisodeSummaryConnector from './Summary/EpisodeSummaryConnector'; +import AlbumSummaryConnector from './Summary/AlbumSummaryConnector'; import AlbumHistoryConnector from './History/AlbumHistoryConnector'; -import EpisodeSearchConnector from './Search/EpisodeSearchConnector'; -import styles from './EpisodeDetailsModalContent.css'; +import AlbumSearchConnector from './Search/AlbumSearchConnector'; +import styles from './AlbumDetailsModalContent.css'; const tabs = [ 'details', @@ -19,7 +19,7 @@ const tabs = [ 'search' ]; -class EpisodeDetailsModalContent extends Component { +class AlbumDetailsModalContent extends Component { // // Lifecycle @@ -45,13 +45,13 @@ class EpisodeDetailsModalContent extends Component { render() { const { albumId, - episodeEntity, + albumEntity, artistId, artistName, nameSlug, albumLabel, artistMonitored, - episodeTitle, + albumTitle, releaseDate, monitored, isSaving, @@ -84,7 +84,7 @@ class EpisodeDetailsModalContent extends Component { - - {episodeTitle} + {albumTitle} @@ -119,9 +119,9 @@ class EpisodeDetailsModalContent extends Component { - - { const { @@ -52,11 +52,11 @@ function createMapDispatchToProps(dispatch, props) { onMonitorAlbumPress(monitored) { const { albumId, - episodeEntity + albumEntity } = this.props; - dispatch(toggleEpisodeMonitored({ - episodeEntity, + dispatch(toggleAlbumMonitored({ + albumEntity, albumId, monitored })); @@ -64,7 +64,7 @@ function createMapDispatchToProps(dispatch, props) { }; } -class EpisodeDetailsModalContentConnector extends Component { +class AlbumDetailsModalContentConnector extends Component { // // Lifecycle @@ -103,14 +103,14 @@ class EpisodeDetailsModalContentConnector extends Component { } = this.props; return ( - + ); } } -EpisodeDetailsModalContentConnector.propTypes = { +AlbumDetailsModalContentConnector.propTypes = { albumId: PropTypes.number.isRequired, - episodeEntity: PropTypes.string.isRequired, + albumEntity: PropTypes.string.isRequired, artistId: PropTypes.number.isRequired, dispatchFetchTracks: PropTypes.func.isRequired, dispatchClearTracks: PropTypes.func.isRequired, @@ -118,8 +118,8 @@ EpisodeDetailsModalContentConnector.propTypes = { dispatchClearReleases: PropTypes.func.isRequired }; -EpisodeDetailsModalContentConnector.defaultProps = { - episodeEntity: episodeEntities.EPISODES +AlbumDetailsModalContentConnector.defaultProps = { + albumEntity: albumEntities.ALBUMS }; -export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeDetailsModalContentConnector); +export default connect(createMapStateToProps, createMapDispatchToProps)(AlbumDetailsModalContentConnector); diff --git a/frontend/src/Album/EpisodeSearchCell.css b/frontend/src/Album/AlbumSearchCell.css similarity index 83% rename from frontend/src/Album/EpisodeSearchCell.css rename to frontend/src/Album/AlbumSearchCell.css index 5e99b51eb..651683153 100644 --- a/frontend/src/Album/EpisodeSearchCell.css +++ b/frontend/src/Album/AlbumSearchCell.css @@ -1,4 +1,4 @@ -.episodeSearchCell { +.AlbumSearchCell { composes: cell from 'Components/Table/Cells/TableRowCell.css'; width: 70px; diff --git a/frontend/src/Album/EpisodeSearchCell.js b/frontend/src/Album/AlbumSearchCell.js similarity index 79% rename from frontend/src/Album/EpisodeSearchCell.js rename to frontend/src/Album/AlbumSearchCell.js index eebc9aebf..e2ad58550 100644 --- a/frontend/src/Album/EpisodeSearchCell.js +++ b/frontend/src/Album/AlbumSearchCell.js @@ -4,10 +4,10 @@ import { icons } from 'Helpers/Props'; import IconButton from 'Components/Link/IconButton'; import SpinnerIconButton from 'Components/Link/SpinnerIconButton'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; -import EpisodeDetailsModal from './EpisodeDetailsModal'; -import styles from './EpisodeSearchCell.css'; +import AlbumDetailsModal from './AlbumDetailsModal'; +import styles from './AlbumSearchCell.css'; -class EpisodeSearchCell extends Component { +class AlbumSearchCell extends Component { // // Lifecycle @@ -38,14 +38,14 @@ class EpisodeSearchCell extends Component { const { albumId, artistId, - episodeTitle, + albumTitle, isSearching, onSearchPress, ...otherProps } = this.props; return ( - + - { const isSearching = _.some(commands, (command) => { - const episodeSearch = command.name === commandNames.ALBUM_SEARCH; + const albumSearch = command.name === commandNames.ALBUM_SEARCH; - if (!episodeSearch) { + if (!albumSearch) { return false; } @@ -44,4 +44,4 @@ function createMapDispatchToProps(dispatch, props) { }; } -export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeSearchCell); +export default connect(createMapStateToProps, createMapDispatchToProps)(AlbumSearchCell); diff --git a/frontend/src/Album/EpisodeTitleLink.css b/frontend/src/Album/AlbumTitleLink.css similarity index 100% rename from frontend/src/Album/EpisodeTitleLink.css rename to frontend/src/Album/AlbumTitleLink.css diff --git a/frontend/src/Album/EpisodeTitleLink.js b/frontend/src/Album/AlbumTitleLink.js similarity index 67% rename from frontend/src/Album/EpisodeTitleLink.js rename to frontend/src/Album/AlbumTitleLink.js index 39efb7c8f..3b7b86535 100644 --- a/frontend/src/Album/EpisodeTitleLink.js +++ b/frontend/src/Album/AlbumTitleLink.js @@ -1,10 +1,10 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Link from 'Components/Link/Link'; -import EpisodeDetailsModal from 'Album/EpisodeDetailsModal'; -import styles from './EpisodeTitleLink.css'; +import AlbumDetailsModal from 'Album/AlbumDetailsModal'; +import styles from './AlbumTitleLink.css'; -class EpisodeTitleLink extends Component { +class AlbumTitleLink extends Component { // // Lifecycle @@ -33,7 +33,7 @@ class EpisodeTitleLink extends Component { render() { const { - episodeTitle, + albumTitle, ...otherProps } = this.props; @@ -43,12 +43,12 @@ class EpisodeTitleLink extends Component { className={styles.link} onPress={this.onLinkPress} > - {episodeTitle} + {albumTitle} - @@ -57,12 +57,12 @@ class EpisodeTitleLink extends Component { } } -EpisodeTitleLink.propTypes = { - episodeTitle: PropTypes.string.isRequired +AlbumTitleLink.propTypes = { + albumTitle: PropTypes.string.isRequired }; -EpisodeTitleLink.defaultProps = { +AlbumTitleLink.defaultProps = { showArtistButton: false }; -export default EpisodeTitleLink; +export default AlbumTitleLink; diff --git a/frontend/src/Album/EpisodeStatusConnector.js b/frontend/src/Album/EpisodeStatusConnector.js index f19513b8b..f3a390748 100644 --- a/frontend/src/Album/EpisodeStatusConnector.js +++ b/frontend/src/Album/EpisodeStatusConnector.js @@ -3,18 +3,18 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector'; +import createAlbumSelector from 'Store/Selectors/createAlbumSelector'; import createQueueItemSelector from 'Store/Selectors/createQueueItemSelector'; import createTrackFileSelector from 'Store/Selectors/createTrackFileSelector'; import EpisodeStatus from './EpisodeStatus'; function createMapStateToProps() { return createSelector( - createEpisodeSelector(), + createAlbumSelector(), createQueueItemSelector(), createTrackFileSelector(), - (episode, queueItem, trackFile) => { - const result = _.pick(episode, [ + (album, queueItem, trackFile) => { + const result = _.pick(album, [ 'airDateUtc', 'monitored', 'grabbed' diff --git a/frontend/src/Album/Search/EpisodeSearch.css b/frontend/src/Album/Search/AlbumSearch.css similarity index 100% rename from frontend/src/Album/Search/EpisodeSearch.css rename to frontend/src/Album/Search/AlbumSearch.css diff --git a/frontend/src/Album/Search/EpisodeSearch.js b/frontend/src/Album/Search/AlbumSearch.js similarity index 89% rename from frontend/src/Album/Search/EpisodeSearch.js rename to frontend/src/Album/Search/AlbumSearch.js index f3ab8fdec..3fd280b3d 100644 --- a/frontend/src/Album/Search/EpisodeSearch.js +++ b/frontend/src/Album/Search/AlbumSearch.js @@ -3,9 +3,9 @@ import React from 'react'; import { icons, kinds, sizes } from 'Helpers/Props'; import Button from 'Components/Link/Button'; import Icon from 'Components/Icon'; -import styles from './EpisodeSearch.css'; +import styles from './AlbumSearch.css'; -function EpisodeSearch(props) { +function AlbumSearch(props) { const { onQuickSearchPress, onInteractiveSearchPress @@ -47,9 +47,9 @@ function EpisodeSearch(props) { ); } -EpisodeSearch.propTypes = { +AlbumSearch.propTypes = { onQuickSearchPress: PropTypes.func.isRequired, onInteractiveSearchPress: PropTypes.func.isRequired }; -export default EpisodeSearch; +export default AlbumSearch; diff --git a/frontend/src/Album/Search/EpisodeSearchConnector.js b/frontend/src/Album/Search/AlbumSearchConnector.js similarity index 84% rename from frontend/src/Album/Search/EpisodeSearchConnector.js rename to frontend/src/Album/Search/AlbumSearchConnector.js index 0759ec1f0..0aef8503c 100644 --- a/frontend/src/Album/Search/EpisodeSearchConnector.js +++ b/frontend/src/Album/Search/AlbumSearchConnector.js @@ -4,8 +4,8 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import { executeCommand } from 'Store/Actions/commandActions'; import * as commandNames from 'Commands/commandNames'; -import EpisodeSearch from './EpisodeSearch'; -import InteractiveEpisodeSearchConnector from './InteractiveEpisodeSearchConnector'; +import AlbumSearch from './AlbumSearch'; +import InteractiveAlbumSearchConnector from './InteractiveAlbumSearchConnector'; function createMapStateToProps() { return createSelector( @@ -22,7 +22,7 @@ const mapDispatchToProps = { executeCommand }; -class EpisodeSearchConnector extends Component { +class AlbumSearchConnector extends Component { // // Lifecycle @@ -63,14 +63,14 @@ class EpisodeSearchConnector extends Component { render() { if (this.state.isInteractiveSearchOpen) { return ( - ); } return ( - { return ( - Releases - @@ -92,7 +92,7 @@ class EpisodeSummary extends Component {
{ -
+
{ items.length ?
: -
+
No tracks in this group
} @@ -124,7 +124,7 @@ class EpisodeSummary extends Component { state.tracks, - createEpisodeSelector(), + createAlbumSelector(), createCommandsSelector(), createDimensionsSelector(), createArtistSelector(), - (tracks, episode, commands, dimensions, artist) => { - const filteredItems = _.filter(tracks.items, { albumId: episode.id }); + (tracks, album, commands, dimensions, artist) => { + const filteredItems = _.filter(tracks.items, { albumId: album.id }); const mediumSortedItems = _.orderBy(filteredItems, 'absoluteTrackNumber'); const items = _.orderBy(mediumSortedItems, 'mediumNumber'); return { - network: episode.label, + network: album.label, qualityProfileId: artist.qualityProfileId, - releaseDate: episode.releaseDate, - overview: episode.overview, + releaseDate: album.releaseDate, + overview: album.overview, items, columns: tracks.columns }; @@ -37,10 +37,10 @@ function createMapDispatchToProps(dispatch, props) { onDeleteTrackFile() { dispatch(deleteTrackFile({ id: props.trackFileId, - episodeEntity: props.episodeEntity + albumEntity: props.albumEntity })); } }; } -export default connect(createMapStateToProps, createMapDispatchToProps)(EpisodeSummary); +export default connect(createMapStateToProps, createMapDispatchToProps)(AlbumSummary); diff --git a/frontend/src/Album/episodeEntities.js b/frontend/src/Album/albumEntities.js similarity index 67% rename from frontend/src/Album/episodeEntities.js rename to frontend/src/Album/albumEntities.js index fe21d4ed0..4f5a26a61 100644 --- a/frontend/src/Album/episodeEntities.js +++ b/frontend/src/Album/albumEntities.js @@ -1,12 +1,12 @@ export const CALENDAR = 'calendar'; -export const EPISODES = 'episodes'; -export const INTERACTIVE_IMPORT = 'interactiveImport.episodes'; +export const ALBUMS = 'albums'; +export const INTERACTIVE_IMPORT = 'interactiveImport.albums'; export const WANTED_CUTOFF_UNMET = 'wanted.cutoffUnmet'; export const WANTED_MISSING = 'wanted.missing'; export default { CALENDAR, - EPISODES, + ALBUMS, INTERACTIVE_IMPORT, WANTED_CUTOFF_UNMET, WANTED_MISSING diff --git a/frontend/src/AlbumStudio/AlbumStudioAlbum.css b/frontend/src/AlbumStudio/AlbumStudioAlbum.css index 603d98ecd..1ef8e94f0 100644 --- a/frontend/src/AlbumStudio/AlbumStudioAlbum.css +++ b/frontend/src/AlbumStudio/AlbumStudioAlbum.css @@ -13,12 +13,12 @@ padding: 0 4px; } -.episodes { +.tracks { padding: 0 4px; background-color: $white; color: $defaultColor; } -.allEpisodes { +.allTracks { background-color: #e0ffe0; } diff --git a/frontend/src/AlbumStudio/AlbumStudioAlbum.js b/frontend/src/AlbumStudio/AlbumStudioAlbum.js index a1e96a4a2..65bb4cb0c 100644 --- a/frontend/src/AlbumStudio/AlbumStudioAlbum.js +++ b/frontend/src/AlbumStudio/AlbumStudioAlbum.js @@ -54,8 +54,8 @@ class AlbumStudioAlbum extends Component {
diff --git a/frontend/src/AlbumStudio/AlbumStudioConnector.js b/frontend/src/AlbumStudio/AlbumStudioConnector.js index aba720cb9..15a8a74da 100644 --- a/frontend/src/AlbumStudio/AlbumStudioConnector.js +++ b/frontend/src/AlbumStudio/AlbumStudioConnector.js @@ -4,7 +4,7 @@ import { createSelector } from 'reselect'; import connectSection from 'Store/connectSection'; import createClientSideCollectionSelector from 'Store/Selectors/createClientSideCollectionSelector'; import { setAlbumStudioSort, setAlbumStudioFilter, saveAlbumStudio } from 'Store/Actions/albumStudioActions'; -import { fetchEpisodes, clearEpisodes } from 'Store/Actions/episodeActions'; +import { fetchAlbums, clearAlbums } from 'Store/Actions/albumActions'; import AlbumStudio from './AlbumStudio'; function createMapStateToProps() { @@ -19,8 +19,8 @@ function createMapStateToProps() { } const mapDispatchToProps = { - fetchEpisodes, - clearEpisodes, + fetchAlbums, + clearAlbums, setAlbumStudioSort, setAlbumStudioFilter, saveAlbumStudio @@ -43,11 +43,11 @@ class AlbumStudioConnector extends Component { // Control populate = () => { - this.props.fetchEpisodes(); + this.props.fetchAlbums(); } unpopulate = () => { - this.props.clearEpisodes(); + this.props.clearAlbums(); } // @@ -83,8 +83,8 @@ class AlbumStudioConnector extends Component { AlbumStudioConnector.propTypes = { setAlbumStudioSort: PropTypes.func.isRequired, setAlbumStudioFilter: PropTypes.func.isRequired, - fetchEpisodes: PropTypes.func.isRequired, - clearEpisodes: PropTypes.func.isRequired, + fetchAlbums: PropTypes.func.isRequired, + clearAlbums: PropTypes.func.isRequired, saveAlbumStudio: PropTypes.func.isRequired }; diff --git a/frontend/src/AlbumStudio/AlbumStudioRowConnector.js b/frontend/src/AlbumStudio/AlbumStudioRowConnector.js index 12dfc12ea..392e9602c 100644 --- a/frontend/src/AlbumStudio/AlbumStudioRowConnector.js +++ b/frontend/src/AlbumStudio/AlbumStudioRowConnector.js @@ -5,15 +5,15 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import createArtistSelector from 'Store/Selectors/createArtistSelector'; import { toggleArtistMonitored } from 'Store/Actions/artistActions'; -import { toggleEpisodeMonitored } from 'Store/Actions/episodeActions'; +import { toggleAlbumMonitored } from 'Store/Actions/albumActions'; import AlbumStudioRow from './AlbumStudioRow'; function createMapStateToProps() { return createSelector( - (state) => state.episodes, + (state) => state.albums, createArtistSelector(), - (episodes, artist) => { - const albumsInArtist = _.filter(episodes.items, { artistId: artist.id }); + (albums, artist) => { + const albumsInArtist = _.filter(albums.items, { artistId: artist.id }); const sortedAlbums = _.orderBy(albumsInArtist, 'releaseDate', 'desc'); return { @@ -32,7 +32,7 @@ function createMapStateToProps() { const mapDispatchToProps = { toggleArtistMonitored, - toggleEpisodeMonitored + toggleAlbumMonitored }; class AlbumStudioRowConnector extends Component { @@ -53,7 +53,7 @@ class AlbumStudioRowConnector extends Component { } onAlbumMonitoredPress = (albumId, monitored) => { - this.props.toggleEpisodeMonitored({ + this.props.toggleAlbumMonitored({ albumId, monitored }); @@ -77,7 +77,7 @@ AlbumStudioRowConnector.propTypes = { artistId: PropTypes.number.isRequired, monitored: PropTypes.bool.isRequired, toggleArtistMonitored: PropTypes.func.isRequired, - toggleEpisodeMonitored: PropTypes.func.isRequired + toggleAlbumMonitored: PropTypes.func.isRequired }; export default connect(createMapStateToProps, mapDispatchToProps)(AlbumStudioRowConnector); diff --git a/frontend/src/Artist/Details/AlbumRow.js b/frontend/src/Artist/Details/AlbumRow.js index 8f3a8df71..973efcbc0 100644 --- a/frontend/src/Artist/Details/AlbumRow.js +++ b/frontend/src/Artist/Details/AlbumRow.js @@ -7,13 +7,13 @@ import TableRow from 'Components/Table/TableRow'; import Label from 'Components/Label'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import formatTimeSpan from 'Utilities/Date/formatTimeSpan'; -import EpisodeSearchCellConnector from 'Album/EpisodeSearchCellConnector'; -import EpisodeTitleLink from 'Album/EpisodeTitleLink'; +import AlbumSearchCellConnector from 'Album/AlbumSearchCellConnector'; +import AlbumTitleLink from 'Album/AlbumTitleLink'; import styles from './AlbumRow.css'; -function getEpisodeCountKind(monitored, trackFileCount, episodeCount) { - if (trackFileCount === episodeCount && episodeCount > 0) { +function getTrackCountKind(monitored, trackFileCount, trackCount) { + if (trackFileCount === trackCount && trackCount > 0) { return kinds.SUCCESS; } @@ -111,10 +111,10 @@ class AlbumRow extends Component { key={name} className={styles.title} > - @@ -168,7 +168,7 @@ class AlbumRow extends Component { >