diff --git a/frontend/src/Activity/Blacklist/BlacklistRow.js b/frontend/src/Activity/Blacklist/BlacklistRow.js index 50d71c30f..af7db6372 100644 --- a/frontend/src/Activity/Blacklist/BlacklistRow.js +++ b/frontend/src/Activity/Blacklist/BlacklistRow.js @@ -64,12 +64,12 @@ class BlacklistRow extends Component { return null; } - if (name === 'series.sortTitle') { + if (name === 'series.sortName') { return ( ); diff --git a/frontend/src/Activity/History/HistoryRow.js b/frontend/src/Activity/History/HistoryRow.js index 145185ebe..550b373dd 100644 --- a/frontend/src/Activity/History/HistoryRow.js +++ b/frontend/src/Activity/History/HistoryRow.js @@ -115,7 +115,7 @@ class HistoryRow extends Component { episodeEntity={episodeEntities.EPISODES} artistId={artist.id} episodeTitle={album.title} - showOpenSeriesButton={true} + showOpenArtistButton={true} /> ); diff --git a/frontend/src/Activity/Queue/QueueRow.js b/frontend/src/Activity/Queue/QueueRow.js index 0f9138911..451fd4b99 100644 --- a/frontend/src/Activity/Queue/QueueRow.js +++ b/frontend/src/Activity/Queue/QueueRow.js @@ -163,7 +163,7 @@ class QueueRow extends Component { episodeFileId={episode.episodeFileId} episodeEntity={episodeEntity} episodeTitle={episode.title} - showOpenSeriesButton={true} + showOpenArtistButton={true} /> ); diff --git a/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.css b/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.css index 38ccffb4d..a1b48638b 100644 --- a/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.css +++ b/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.css @@ -20,7 +20,7 @@ height: 250px; } -.title { +.name { font-weight: 300; font-size: 36px; } diff --git a/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.js b/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.js index b90593696..9a63518f8 100644 --- a/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.js +++ b/frontend/src/AddArtist/AddNewArtist/AddNewArtistSearchResult.js @@ -18,7 +18,7 @@ class AddNewArtistSearchResult extends Component { super(props, context); this.state = { - isNewAddSeriesModalOpen: false + isNewAddArtistModalOpen: false }; } @@ -32,11 +32,11 @@ class AddNewArtistSearchResult extends Component { // Listeners onPress = () => { - this.setState({ isNewAddSeriesModalOpen: true }); + this.setState({ isNewAddArtistModalOpen: true }); } onAddSerisModalClose = () => { - this.setState({ isNewAddSeriesModalOpen: false }); + this.setState({ isNewAddArtistModalOpen: false }); } // @@ -51,7 +51,7 @@ class AddNewArtistSearchResult extends Component { network, status, overview, - seasonCount, + albumCount, ratings, images, isExistingArtist, @@ -61,8 +61,8 @@ class AddNewArtistSearchResult extends Component { const linkProps = isExistingArtist ? { to: `/artist/${nameSlug}` } : { onPress: this.onPress }; let seasons = '1 Season'; - if (seasonCount > 1) { - seasons = `${seasonCount} Seasons`; + if (albumCount > 1) { + seasons = `${albumCount} Seasons`; } return ( @@ -115,7 +115,7 @@ class AddNewArtistSearchResult extends Component { } { - !!seasonCount && + !!albumCount && @@ -138,7 +138,7 @@ class AddNewArtistSearchResult extends Component { @@ -95,7 +95,7 @@ ImportArtistRow.propTypes = { languageProfileId: PropTypes.number.isRequired, // seriesType: PropTypes.string.isRequired, albumFolder: PropTypes.bool.isRequired, - selectedSeries: PropTypes.object, + selectedArtist: PropTypes.object, isExistingArtist: PropTypes.bool.isRequired, items: PropTypes.arrayOf(PropTypes.object).isRequired, queued: PropTypes.bool.isRequired, diff --git a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistRowConnector.js b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistRowConnector.js index a16183125..48c7ecbf5 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistRowConnector.js +++ b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistRowConnector.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import { queueLookupSeries, setImportArtistValue } from 'Store/Actions/importArtistActions'; +import { queueLookupArtist, setImportArtistValue } from 'Store/Actions/importArtistActions'; import createAllArtistSelector from 'Store/Selectors/createAllArtistSelector'; import ImportArtistRow from './ImportArtistRow'; @@ -22,8 +22,8 @@ function createMapStateToProps() { createImportArtistItemSelector(), createAllArtistSelector(), (item, series) => { - const selectedSeries = item && item.selectedSeries; - const isExistingArtist = !!selectedSeries && _.some(series, { foreignArtistId: selectedSeries.foreignArtistId }); + const selectedArtist = item && item.selectedArtist; + const isExistingArtist = !!selectedArtist && _.some(series, { foreignArtistId: selectedArtist.foreignArtistId }); return { ...item, @@ -34,7 +34,7 @@ function createMapStateToProps() { } const mapDispatchToProps = { - queueLookupSeries, + queueLookupArtist, setImportArtistValue }; @@ -84,7 +84,7 @@ ImportArtistRowConnector.propTypes = { // seriesType: PropTypes.string, albumFolder: PropTypes.bool, items: PropTypes.arrayOf(PropTypes.object), - queueLookupSeries: PropTypes.func.isRequired, + queueLookupArtist: PropTypes.func.isRequired, setImportArtistValue: PropTypes.func.isRequired }; diff --git a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTable.js b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTable.js index cce61ac82..0db24c7ee 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTable.js +++ b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTable.js @@ -72,30 +72,30 @@ class ImportArtistTable extends Component { return; } - const selectedSeries = item.selectedSeries; + const selectedArtist = item.selectedArtist; const isSelected = selectedState[id]; - const isExistingArtist = !!selectedSeries && - _.some(prevProps.allSeries, { foreignArtistId: selectedSeries.foreignArtistId }); + const isExistingArtist = !!selectedArtist && + _.some(prevProps.allArtists, { foreignArtistId: selectedArtist.foreignArtistId }); - // Props doesn't have a selected series or - // the selected series is an existing series. - if ((selectedSeries && !prevItem.selectedSeries) || (isExistingArtist && !prevItem.selectedSeries)) { + // Props doesn't have a selected artist or + // the selected artist is an existing artist. + if ((selectedArtist && !prevItem.selectedArtist) || (isExistingArtist && !prevItem.selectedArtist)) { onSelectedChange({ id, value: false }); return; } - // State is selected, but a series isn't selected or - // the selected series is an existing series. - if (isSelected && (!selectedSeries || isExistingArtist)) { + // State is selected, but a artist isn't selected or + // the selected artist is an existing artist. + if (isSelected && (!selectedArtist || isExistingArtist)) { onSelectedChange({ id, value: false }); return; } - // A series is being selected that wasn't previously selected. - if (selectedSeries && selectedSeries !== prevItem.selectedSeries) { + // A artist is being selected that wasn't previously selected. + if (selectedArtist && selectedArtist !== prevItem.selectedArtist) { onSelectedChange({ id, value: true }); return; @@ -198,7 +198,7 @@ ImportArtistTable.propTypes = { allUnselected: PropTypes.bool.isRequired, selectedState: PropTypes.object.isRequired, isSmallScreen: PropTypes.bool.isRequired, - allSeries: PropTypes.arrayOf(PropTypes.object), + allArtists: PropTypes.arrayOf(PropTypes.object), contentBody: PropTypes.object.isRequired, showLanguageProfile: PropTypes.bool.isRequired, scrollTop: PropTypes.number.isRequired, diff --git a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTableConnector.js b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTableConnector.js index aaeec9b1f..c30ad3dc7 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTableConnector.js +++ b/frontend/src/AddArtist/ImportArtist/Import/ImportArtistTableConnector.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import { queueLookupSeries, setImportArtistValue } from 'Store/Actions/importArtistActions'; +import { queueLookupArtist, setImportArtistValue } from 'Store/Actions/importArtistActions'; import createAllArtistSelector from 'Store/Selectors/createAllArtistSelector'; import ImportArtistTable from './ImportArtistTable'; @@ -10,7 +10,7 @@ function createMapStateToProps() { (state) => state.importArtist, (state) => state.app.dimensions, createAllArtistSelector(), - (addArtist, importArtist, dimensions, allSeries) => { + (addArtist, importArtist, dimensions, allArtists) => { return { defaultMonitor: addArtist.defaults.monitor, defaultQualityProfileId: addArtist.defaults.qualityProfileId, @@ -19,7 +19,7 @@ function createMapStateToProps() { defaultAlbumFolder: addArtist.defaults.albumFolder, items: importArtist.items, isSmallScreen: dimensions.isSmallScreen, - allSeries + allArtists }; } ); @@ -28,7 +28,7 @@ function createMapStateToProps() { function createMapDispatchToProps(dispatch, props) { return { onSeriesLookup(name, path) { - dispatch(queueLookupSeries({ + dispatch(queueLookupArtist({ name, path, term: name diff --git a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistName.js b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistName.js index 52a99b731..a88839bb6 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistName.js +++ b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistName.js @@ -7,9 +7,7 @@ import styles from './ImportArtistName.css'; function ImportArtistName(props) { const { artistName, - overview, // year, - // network, isExistingArtist } = props; @@ -18,9 +16,6 @@ function ImportArtistName(props) {
{artistName}
-
- {overview} -
{ isExistingArtist && @@ -36,9 +31,7 @@ function ImportArtistName(props) { ImportArtistName.propTypes = { artistName: PropTypes.string.isRequired, - overview: PropTypes.string.isRequired, // year: PropTypes.number.isRequired, - // network: PropTypes.string, isExistingArtist: PropTypes.bool.isRequired }; diff --git a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSearchResult.js b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSearchResult.js index 2fd017e91..d4d3bd104 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSearchResult.js +++ b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSearchResult.js @@ -19,9 +19,8 @@ class ImportArtistSearchResult extends Component { render() { const { artistName, - overview, + // overview, // year, - // network, isExistingArtist } = this.props; @@ -32,9 +31,8 @@ class ImportArtistSearchResult extends Component { > @@ -45,9 +43,8 @@ class ImportArtistSearchResult extends Component { ImportArtistSearchResult.propTypes = { foreignArtistId: PropTypes.string.isRequired, artistName: PropTypes.string.isRequired, - overview: PropTypes.string.isRequired, + // overview: PropTypes.string.isRequired, // year: PropTypes.number.isRequired, - // network: PropTypes.string, isExistingArtist: PropTypes.bool.isRequired, onPress: PropTypes.func.isRequired }; diff --git a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtist.js b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtist.js index dcabc12a0..7557ae0c5 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtist.js +++ b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtist.js @@ -110,7 +110,7 @@ class ImportArtistSelectArtist extends Component { render() { const { - selectedSeries, + selectedArtist, isExistingArtist, isFetching, isPopulated, @@ -146,7 +146,7 @@ class ImportArtistSelectArtist extends Component { } { - isPopulated && selectedSeries && isExistingArtist && + isPopulated && selectedArtist && isExistingArtist && } { - isPopulated && !selectedSeries && + isPopulated && !selectedArtist &&
); @@ -249,7 +247,7 @@ class ImportArtistSelectArtist extends Component { ImportArtistSelectArtist.propTypes = { id: PropTypes.string.isRequired, - selectedSeries: PropTypes.object, + selectedArtist: PropTypes.object, isExistingArtist: PropTypes.bool.isRequired, isFetching: PropTypes.bool.isRequired, isPopulated: PropTypes.bool.isRequired, diff --git a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtistConnector.js b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtistConnector.js index cc55f53cd..21662faa7 100644 --- a/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtistConnector.js +++ b/frontend/src/AddArtist/ImportArtist/Import/SelectArtist/ImportArtistSelectArtistConnector.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import { queueLookupSeries, setImportArtistValue } from 'Store/Actions/importArtistActions'; +import { queueLookupArtist, setImportArtistValue } from 'Store/Actions/importArtistActions'; import createImportArtistItemSelector from 'Store/Selectors/createImportArtistItemSelector'; import ImportArtistSelectArtist from './ImportArtistSelectArtist'; @@ -17,7 +17,7 @@ function createMapStateToProps() { } const mapDispatchToProps = { - queueLookupSeries, + queueLookupArtist, setImportArtistValue }; @@ -27,7 +27,7 @@ class ImportArtistSelectArtistConnector extends Component { // Listeners onSearchInputChange = (term) => { - this.props.queueLookupSeries({ + this.props.queueLookupArtist({ name: this.props.id, term }); @@ -41,7 +41,7 @@ class ImportArtistSelectArtistConnector extends Component { this.props.setImportArtistValue({ id, - selectedSeries: _.find(items, { foreignArtistId }) + selectedArtist: _.find(items, { foreignArtistId }) }); } @@ -62,9 +62,9 @@ class ImportArtistSelectArtistConnector extends Component { ImportArtistSelectArtistConnector.propTypes = { id: PropTypes.string.isRequired, items: PropTypes.arrayOf(PropTypes.object), - selectedSeries: PropTypes.object, + selectedArtist: PropTypes.object, isSelected: PropTypes.bool, - queueLookupSeries: PropTypes.func.isRequired, + queueLookupArtist: PropTypes.func.isRequired, setImportArtistValue: PropTypes.func.isRequired }; diff --git a/frontend/src/AlbumStudio/AlbumStudio.js b/frontend/src/AlbumStudio/AlbumStudio.js index 67f916ec6..8b62a0d81 100644 --- a/frontend/src/AlbumStudio/AlbumStudio.js +++ b/frontend/src/AlbumStudio/AlbumStudio.js @@ -172,7 +172,7 @@ class AlbumStudio extends Component { filterValue={filterValue} onPress={onFilterSelect} > - Missing Episodes + Missing Albums diff --git a/frontend/src/Artist/ArtistPoster.js b/frontend/src/Artist/ArtistPoster.js index 80bc979f9..964e4f684 100644 --- a/frontend/src/Artist/ArtistPoster.js +++ b/frontend/src/Artist/ArtistPoster.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import LazyLoad from 'react-lazyload'; -const posterPlaceholder = 'data:image/png;base64,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'; +const posterPlaceholder = 'data:image/png;base64,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'; function findPoster(images) { return _.find(images, { coverType: 'poster' }); diff --git a/frontend/src/Artist/Delete/DeleteArtistModalContent.js b/frontend/src/Artist/Delete/DeleteArtistModalContent.js index d30a589de..444b75bc8 100644 --- a/frontend/src/Artist/Delete/DeleteArtistModalContent.js +++ b/frontend/src/Artist/Delete/DeleteArtistModalContent.js @@ -33,7 +33,7 @@ class DeleteArtistModalContent extends Component { this.setState({ deleteFiles: value }); } - onDeleteSeriesConfirmed = () => { + onDeleteArtistConfirmed = () => { const deleteFiles = this.state.deleteFiles; this.setState({ deleteFiles: false }); @@ -113,7 +113,7 @@ class DeleteArtistModalContent extends Component { diff --git a/frontend/src/Artist/Details/AlbumRow.js b/frontend/src/Artist/Details/AlbumRow.js index 8c0e2b804..0285030d4 100644 --- a/frontend/src/Artist/Details/AlbumRow.js +++ b/frontend/src/Artist/Details/AlbumRow.js @@ -115,7 +115,7 @@ class AlbumRow extends Component { episodeId={id} artistId={artistId} episodeTitle={title} - showOpenSeriesButton={false} + showOpenArtistButton={false} /> ); @@ -216,4 +216,11 @@ AlbumRow.propTypes = { onMonitorAlbumPress: PropTypes.func.isRequired }; +AlbumRow.defaultProps = { + statistics: { + trackCount: 0, + trackFileCount: 0 + } +}; + export default AlbumRow; diff --git a/frontend/src/Artist/Details/ArtistDetails.js b/frontend/src/Artist/Details/ArtistDetails.js index 842c60363..77a0a6c83 100644 --- a/frontend/src/Artist/Details/ArtistDetails.js +++ b/frontend/src/Artist/Details/ArtistDetails.js @@ -102,15 +102,15 @@ class ArtistDetails extends Component { this.setState({ isManageEpisodesOpen: false }); } - onEditSeriesPress = () => { + onEditArtistPress = () => { this.setState({ isEditArtistModalOpen: true }); } - onEditSeriesModalClose = () => { + onEditArtistModalClose = () => { this.setState({ isEditArtistModalOpen: false }); } - onDeleteSeriesPress = () => { + onDeleteArtistPress = () => { this.setState({ isEditArtistModalOpen: false, isDeleteArtistModalOpen: true @@ -243,13 +243,13 @@ class ArtistDetails extends Component { @@ -517,8 +517,8 @@ class ArtistDetails extends Component { state.episodeFiles, createAllArtistSelector(), createCommandsSelector(), - (nameSlug, episodes, episodeFiles, allSeries, commands) => { - const sortedArtist = _.orderBy(allSeries, 'sortName'); - const seriesIndex = _.findIndex(sortedArtist, { nameSlug }); - const series = sortedArtist[seriesIndex]; + (nameSlug, episodes, episodeFiles, allArtists, commands) => { + const sortedArtist = _.orderBy(allArtists, 'sortName'); + const artistIndex = _.findIndex(sortedArtist, { nameSlug }); + const series = sortedArtist[artistIndex]; if (!series) { return {}; } - const previousArtist = sortedArtist[seriesIndex - 1] || _.last(sortedArtist); - const nextArtist = sortedArtist[seriesIndex + 1] || _.first(sortedArtist); + const previousArtist = sortedArtist[artistIndex - 1] || _.last(sortedArtist); + const nextArtist = sortedArtist[artistIndex + 1] || _.first(sortedArtist); const isArtistRefreshing = !!findCommand(commands, { name: commandNames.REFRESH_ARTIST, artistId: series.id }); const allArtistRefreshing = _.some(commands, (command) => command.name === commandNames.REFRESH_ARTIST && !command.body.artistId); const isRefreshing = isArtistRefreshing || allArtistRefreshing; diff --git a/frontend/src/Artist/Details/ArtistDetailsPageConnector.js b/frontend/src/Artist/Details/ArtistDetailsPageConnector.js index 29817c512..f4e52b344 100644 --- a/frontend/src/Artist/Details/ArtistDetailsPageConnector.js +++ b/frontend/src/Artist/Details/ArtistDetailsPageConnector.js @@ -12,11 +12,11 @@ function createMapStateToProps() { return createSelector( (state, { match }) => match, createAllArtistSelector(), - (match, allSeries) => { + (match, allArtists) => { const nameSlug = match.params.nameSlug; - const seriesIndex = _.findIndex(allSeries, { nameSlug }); + const artistIndex = _.findIndex(allArtists, { nameSlug }); - if (seriesIndex > -1) { + if (artistIndex > -1) { return { nameSlug }; diff --git a/frontend/src/Artist/Edit/EditArtistModalContent.js b/frontend/src/Artist/Edit/EditArtistModalContent.js index b8494c525..d9a872e66 100644 --- a/frontend/src/Artist/Edit/EditArtistModalContent.js +++ b/frontend/src/Artist/Edit/EditArtistModalContent.js @@ -27,7 +27,7 @@ class EditArtistModalContent extends Component { onInputChange, onSavePress, onModalClose, - onDeleteSeriesPress, + onDeleteArtistPress, ...otherProps } = this.props; @@ -127,7 +127,7 @@ class EditArtistModalContent extends Component { @@ -159,7 +159,7 @@ EditArtistModalContent.propTypes = { onInputChange: PropTypes.func.isRequired, onSavePress: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired, - onDeleteSeriesPress: PropTypes.func.isRequired + onDeleteArtistPress: PropTypes.func.isRequired }; export default EditArtistModalContent; diff --git a/frontend/src/Artist/Edit/EditArtistModalContentConnector.js b/frontend/src/Artist/Edit/EditArtistModalContentConnector.js index fb6dd77d4..2564de7e2 100644 --- a/frontend/src/Artist/Edit/EditArtistModalContentConnector.js +++ b/frontend/src/Artist/Edit/EditArtistModalContentConnector.js @@ -5,7 +5,7 @@ import { connect } from 'react-redux'; import { createSelector } from 'reselect'; import selectSettings from 'Store/Selectors/selectSettings'; import createArtistSelector from 'Store/Selectors/createArtistSelector'; -import { setSeriesValue, saveArtist } from 'Store/Actions/artistActions'; +import { setArtistValue, saveArtist } from 'Store/Actions/artistActions'; import EditArtistModalContent from './EditArtistModalContent'; function createMapStateToProps() { @@ -46,7 +46,7 @@ function createMapStateToProps() { } const mapDispatchToProps = { - setSeriesValue, + setArtistValue, saveArtist }; @@ -65,7 +65,7 @@ class EditArtistModalContentConnector extends Component { // Listeners onInputChange = ({ name, value }) => { - this.props.setSeriesValue({ name, value }); + this.props.setArtistValue({ name, value }); } onSavePress = () => { @@ -90,7 +90,7 @@ EditArtistModalContentConnector.propTypes = { artistId: PropTypes.number, isSaving: PropTypes.bool.isRequired, saveError: PropTypes.object, - setSeriesValue: PropTypes.func.isRequired, + setArtistValue: PropTypes.func.isRequired, saveArtist: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; diff --git a/frontend/src/Artist/Editor/ArtistEditor.js b/frontend/src/Artist/Editor/ArtistEditor.js index 3599695b1..17b0fa91a 100644 --- a/frontend/src/Artist/Editor/ArtistEditor.js +++ b/frontend/src/Artist/Editor/ArtistEditor.js @@ -220,7 +220,7 @@ class ArtistEditor extends Component { filterValue={filterValue} onPress={onFilterSelect} > - Missing Episodes + Missing Albums diff --git a/frontend/src/Artist/Editor/ArtistEditorFooter.css b/frontend/src/Artist/Editor/ArtistEditorFooter.css index 5b509936b..cc01c33ea 100644 --- a/frontend/src/Artist/Editor/ArtistEditorFooter.css +++ b/frontend/src/Artist/Editor/ArtistEditorFooter.css @@ -51,7 +51,7 @@ justify-content: space-between; } - .selectedSeriesLabel { + .selectedArtistLabel { text-align: left; } } diff --git a/frontend/src/Artist/Editor/ArtistEditorFooter.js b/frontend/src/Artist/Editor/ArtistEditorFooter.js index 319dd004a..95ae60675 100644 --- a/frontend/src/Artist/Editor/ArtistEditorFooter.js +++ b/frontend/src/Artist/Editor/ArtistEditorFooter.js @@ -5,7 +5,7 @@ import SelectInput from 'Components/Form/SelectInput'; import LanguageProfileSelectInputConnector from 'Components/Form/LanguageProfileSelectInputConnector'; import QualityProfileSelectInputConnector from 'Components/Form/QualityProfileSelectInputConnector'; import RootFolderSelectInputConnector from 'Components/Form/RootFolderSelectInputConnector'; -import SeriesTypeSelectInput from 'Components/Form/SeriesTypeSelectInput'; +// import SeriesTypeSelectInput from 'Components/Form/SeriesTypeSelectInput'; import SpinnerButton from 'Components/Link/SpinnerButton'; import PageContentFooter from 'Components/Page/PageContentFooter'; import TagsModal from './Tags/TagsModal'; diff --git a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js b/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js index fb1a407be..c39f7f285 100644 --- a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js +++ b/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js @@ -31,7 +31,7 @@ class DeleteArtistModalContent extends Component { this.setState({ deleteFiles: value }); } - onDeleteSeriesConfirmed = () => { + onDeleteArtistConfirmed = () => { const deleteFiles = this.state.deleteFiles; this.setState({ deleteFiles: false }); @@ -104,7 +104,7 @@ class DeleteArtistModalContent extends Component { diff --git a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js b/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js index 2130824a1..83787010d 100644 --- a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js +++ b/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js @@ -9,12 +9,12 @@ function createMapStateToProps() { return createSelector( (state, { artistIds }) => artistIds, createAllArtistSelector(), - (artistIds, allSeries) => { - const selectedSeries = _.intersectionWith(allSeries, artistIds, (s, id) => { + (artistIds, allArtists) => { + const selectedArtist = _.intersectionWith(allArtists, artistIds, (s, id) => { return s.id === id; }); - const sortedArtist = _.orderBy(selectedSeries, 'sortName'); + const sortedArtist = _.orderBy(selectedArtist, 'sortName'); const series = _.map(sortedArtist, (s) => { return { artistName: s.artistName, diff --git a/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContentConnector.js b/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContentConnector.js index 002437858..063b85e2d 100644 --- a/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContentConnector.js +++ b/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContentConnector.js @@ -12,8 +12,8 @@ function createMapStateToProps() { return createSelector( (state, { artistIds }) => artistIds, createAllArtistSelector(), - (artistIds, allSeries) => { - const series = _.intersectionWith(allSeries, artistIds, (s, id) => { + (artistIds, allArtists) => { + const series = _.intersectionWith(allArtists, artistIds, (s, id) => { return s.id === id; }); diff --git a/frontend/src/Artist/Editor/Tags/TagsModalContentConnector.js b/frontend/src/Artist/Editor/Tags/TagsModalContentConnector.js index de19248d7..5acae0402 100644 --- a/frontend/src/Artist/Editor/Tags/TagsModalContentConnector.js +++ b/frontend/src/Artist/Editor/Tags/TagsModalContentConnector.js @@ -10,8 +10,8 @@ function createMapStateToProps() { (state, { artistIds }) => artistIds, createAllArtistSelector(), createTagsSelector(), - (artistIds, allSeries, tagList) => { - const series = _.intersectionWith(allSeries, artistIds, (s, id) => { + (artistIds, allArtists, tagList) => { + const series = _.intersectionWith(allArtists, artistIds, (s, id) => { return s.id === id; }); diff --git a/frontend/src/Artist/Index/ArtistIndex.js b/frontend/src/Artist/Index/ArtistIndex.js index 9559240d8..b4d646636 100644 --- a/frontend/src/Artist/Index/ArtistIndex.js +++ b/frontend/src/Artist/Index/ArtistIndex.js @@ -85,7 +85,7 @@ class ArtistIndex extends Component { sortDirection } = this.props; - // Reset if not sorting by sortTitle + // Reset if not sorting by sortName if (sortKey !== 'sortName') { this.setState({ jumpBarItems: [] }); return; @@ -162,7 +162,7 @@ class ArtistIndex extends Component { sortKey, sortDirection, view, - isRefreshingSeries, + isRefreshingArtist, isRssSyncExecuting, scrollTop, onSortSelect, @@ -191,7 +191,7 @@ class ArtistIndex extends Component { label="Update all" iconName={icons.REFRESH} spinningName={icons.REFRESH} - isSpinning={isRefreshingSeries} + isSpinning={isRefreshingArtist} onPress={onRefreshArtistPress} /> @@ -311,7 +311,7 @@ ArtistIndex.propTypes = { sortKey: PropTypes.string, sortDirection: PropTypes.oneOf(sortDirections.all), view: PropTypes.string.isRequired, - isRefreshingSeries: PropTypes.bool.isRequired, + isRefreshingArtist: PropTypes.bool.isRequired, isRssSyncExecuting: PropTypes.bool.isRequired, scrollTop: PropTypes.number.isRequired, isSmallScreen: PropTypes.bool.isRequired, diff --git a/frontend/src/Artist/Index/ArtistIndexConnector.js b/frontend/src/Artist/Index/ArtistIndexConnector.js index 784b9d100..8687c7b3c 100644 --- a/frontend/src/Artist/Index/ArtistIndexConnector.js +++ b/frontend/src/Artist/Index/ArtistIndexConnector.js @@ -40,17 +40,17 @@ function getScrollTop(view, scrollTop, isSmallScreen) { function createMapStateToProps() { return createSelector( (state) => state.series, - (state) => state.seriesIndex, + (state) => state.artistIndex, createCommandSelector(commandNames.REFRESH_ARTIST), createCommandSelector(commandNames.RSS_SYNC), createDimensionsSelector(), - (series, seriesIndex, isRefreshingSeries, isRssSyncExecuting, dimensionsState) => { + (series, artistIndex, isRefreshingArtist, isRssSyncExecuting, dimensionsState) => { return { - isRefreshingSeries, + isRefreshingArtist, isRssSyncExecuting, isSmallScreen: dimensionsState.isSmallScreen, ...series, - ...seriesIndex + ...artistIndex }; } ); @@ -109,7 +109,7 @@ class ArtistIndexConnector extends Component { this.setState({ scrollTop }, () => { - scrollPositions.seriesIndex = scrollTop; + scrollPositions.artistIndex = scrollTop; }); } @@ -156,5 +156,5 @@ ArtistIndexConnector.propTypes = { export default withScrollPosition( connect(createMapStateToProps, mapDispatchToProps)(ArtistIndexConnector), - 'seriesIndex' + 'artistIndex' ); diff --git a/frontend/src/Artist/Index/ArtistIndexFooter.js b/frontend/src/Artist/Index/ArtistIndexFooter.js index 70664e528..9ffc8262a 100644 --- a/frontend/src/Artist/Index/ArtistIndexFooter.js +++ b/frontend/src/Artist/Index/ArtistIndexFooter.js @@ -6,15 +6,15 @@ import styles from './ArtistIndexFooter.css'; function ArtistIndexFooter({ series }) { const count = series.length; - let episodes = 0; - let episodeFiles = 0; + let tracks = 0; + let trackFiles = 0; let ended = 0; let continuing = 0; let monitored = 0; series.forEach((s) => { - episodes += s.trackCount || 0; - episodeFiles += s.trackFileCount || 0; + tracks += s.trackCount || 0; + trackFiles += s.trackFileCount || 0; if (s.status === 'ended') { ended++; @@ -84,12 +84,12 @@ function ArtistIndexFooter({ series }) {
diff --git a/frontend/src/Artist/Index/ArtistIndexItemConnector.js b/frontend/src/Artist/Index/ArtistIndexItemConnector.js index 7b848f366..216c3fbbe 100644 --- a/frontend/src/Artist/Index/ArtistIndexItemConnector.js +++ b/frontend/src/Artist/Index/ArtistIndexItemConnector.js @@ -12,23 +12,23 @@ import * as commandNames from 'Commands/commandNames'; function createMapStateToProps() { return createSelector( (state, { id }) => id, - (state, { seasons }) => seasons, + (state, { albums }) => albums, createQualityProfileSelector(), createLanguageProfileSelector(), createCommandsSelector(), - (artistId, seasons, qualityProfile, languageProfile, commands) => { - const isRefreshingSeries = _.some(commands, (command) => { + (artistId, albums, qualityProfile, languageProfile, commands) => { + const isRefreshingArtist = _.some(commands, (command) => { return command.name === commandNames.REFRESH_ARTIST && command.body.artistId === artistId; }); - const latestSeason = _.maxBy(seasons, (season) => season.seasonNumber); + const latestAlbum = _.first(_.orderBy(albums, 'releaseDate', 'desc')); return { qualityProfile, languageProfile, - latestSeason, - isRefreshingSeries + latestAlbum, + isRefreshingArtist }; } ); diff --git a/frontend/src/Artist/Index/Menus/ArtistIndexFilterMenu.js b/frontend/src/Artist/Index/Menus/ArtistIndexFilterMenu.js index 2fab66a36..5b78ce44d 100644 --- a/frontend/src/Artist/Index/Menus/ArtistIndexFilterMenu.js +++ b/frontend/src/Artist/Index/Menus/ArtistIndexFilterMenu.js @@ -60,7 +60,7 @@ function ArtistIndexFilterMenu(props) { filterValue={filterValue} onPress={onFilterSelect} > - Missing Episodes + Missing Albums diff --git a/frontend/src/Artist/Index/Menus/ArtistIndexSortMenu.js b/frontend/src/Artist/Index/Menus/ArtistIndexSortMenu.js index 6941e0536..d618b96ba 100644 --- a/frontend/src/Artist/Index/Menus/ArtistIndexSortMenu.js +++ b/frontend/src/Artist/Index/Menus/ArtistIndexSortMenu.js @@ -24,15 +24,6 @@ function ArtistIndexSortMenu(props) { Name - - Network - - - Latest Season + Latest Album { + onEditArtistPress = () => { this.setState({ isEditArtistModalOpen: true }); } - onEditSeriesModalClose = () => { + onEditArtistModalClose = () => { this.setState({ isEditArtistModalOpen: false }); } - onDeleteSeriesPress = () => { + onDeleteArtistPress = () => { this.setState({ isEditArtistModalOpen: false, isDeleteArtistModalOpen: true @@ -73,7 +73,7 @@ class ArtistIndexPoster extends Component { showRelativeDates, shortDateFormat, timeFormat, - isRefreshingSeries, + isRefreshingArtist, onRefreshArtistPress, ...otherProps } = this.props; @@ -99,7 +99,7 @@ class ArtistIndexPoster extends Component { className={styles.action} name={icons.REFRESH} title="Refresh Artist" - isSpinning={isRefreshingSeries} + isSpinning={isRefreshingArtist} onPress={onRefreshArtistPress} /> @@ -107,7 +107,7 @@ class ArtistIndexPoster extends Component { className={styles.action} name={icons.EDIT} title="Edit Artist" - onPress={this.onEditSeriesPress} + onPress={this.onEditArtistPress} /> @@ -183,8 +183,8 @@ class ArtistIndexPoster extends Component { - {network} - - ); - } - if (sortKey === 'qualityProfileId') { return (
@@ -72,17 +63,17 @@ function ArtistIndexPosterInfo(props) { } if (sortKey === 'albumCount') { - let seasons = '1 season'; + let albums = '1 album'; if (albumCount === 0) { - seasons = 'No seasons'; + albums = 'No albums'; } else if (albumCount > 1) { - seasons = `${albumCount} seasons`; + albums = `${albumCount} albums`; } return (
- {seasons} + {albums}
); } @@ -107,7 +98,6 @@ function ArtistIndexPosterInfo(props) { } ArtistIndexPosterInfo.propTypes = { - network: PropTypes.string, qualityProfile: PropTypes.object.isRequired, previousAiring: PropTypes.string, added: PropTypes.string, diff --git a/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js b/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js index b815d5708..69c5db179 100644 --- a/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js +++ b/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js @@ -60,7 +60,6 @@ function calculateRowHeight(posterHeight, sortKey, isSmallScreen, posterOptions) } switch (sortKey) { - case 'network': case 'seasons': case 'previousAiring': case 'added': @@ -79,7 +78,7 @@ function calculateRowHeight(posterHeight, sortKey, isSmallScreen, posterOptions) } function calculatePosterHeight(posterWidth) { - return Math.ceil((250 / 170) * posterWidth); + return Math.ceil(posterWidth); } class ArtistIndexPosters extends Component { @@ -94,7 +93,7 @@ class ArtistIndexPosters extends Component { width: 0, columnWidth: 182, columnCount: 1, - posterWidth: 162, + posterWidth: 238, posterHeight: 238, rowHeight: calculateRowHeight(238, null, props.isSmallScreen, {}) }; @@ -149,7 +148,7 @@ class ArtistIndexPosters extends Component { } = this.state; const index = _.findIndex(items, (item) => { - const firstCharacter = item.sortTitle.charAt(0); + const firstCharacter = item.sortName.charAt(0); if (character === '#') { return !isNaN(firstCharacter); diff --git a/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js b/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js index 9e200cfa6..58ce328a4 100644 --- a/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js +++ b/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js @@ -7,7 +7,7 @@ import ArtistIndexPosters from './ArtistIndexPosters'; function createMapStateToProps() { return createSelector( - (state) => state.seriesIndex.posterOptions, + (state) => state.artistIndex.posterOptions, createClientSideCollectionSelector(), createUISettingsSelector(), createDimensionsSelector(), @@ -29,5 +29,5 @@ export default connectSection( undefined, undefined, { withRef: true }, - { section: 'series', uiSection: 'seriesIndex' } + { section: 'series', uiSection: 'artistIndex' } )(ArtistIndexPosters); diff --git a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js b/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js index 275af0528..6e0a5aa54 100644 --- a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js +++ b/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js @@ -124,13 +124,13 @@ class ArtistIndexPosterOptionsModalContent extends Component { - Show Title + Show Name diff --git a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js b/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js index 878518647..72af268ad 100644 --- a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js +++ b/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js @@ -5,9 +5,9 @@ import ArtistIndexPosterOptionsModalContent from './ArtistIndexPosterOptionsModa function createMapStateToProps() { return createSelector( - (state) => state.seriesIndex, - (seriesIndex) => { - return seriesIndex.posterOptions; + (state) => state.artistIndex, + (artistIndex) => { + return artistIndex.posterOptions; } ); } diff --git a/frontend/src/Artist/Index/Table/ArtistIndexActionsCell.js b/frontend/src/Artist/Index/Table/ArtistIndexActionsCell.js index ccacb73b2..3f37cd56a 100644 --- a/frontend/src/Artist/Index/Table/ArtistIndexActionsCell.js +++ b/frontend/src/Artist/Index/Table/ArtistIndexActionsCell.js @@ -24,15 +24,15 @@ class ArtistIndexActionsCell extends Component { // // Listeners - onEditSeriesPress = () => { + onEditArtistPress = () => { this.setState({ isEditArtistModalOpen: true }); } - onEditSeriesModalClose = () => { + onEditArtistModalClose = () => { this.setState({ isEditArtistModalOpen: false }); } - onDeleteSeriesPress = () => { + onDeleteArtistPress = () => { this.setState({ isEditArtistModalOpen: false, isDeleteArtistModalOpen: true @@ -49,7 +49,7 @@ class ArtistIndexActionsCell extends Component { render() { const { id, - isRefreshingSeries, + isRefreshingArtist, onRefreshArtistPress, ...otherProps } = this.props; @@ -66,21 +66,21 @@ class ArtistIndexActionsCell extends Component { { + onEditArtistPress = () => { this.setState({ isEditArtistModalOpen: true }); } - onEditSeriesModalClose = () => { + onEditArtistModalClose = () => { this.setState({ isEditArtistModalOpen: false }); } - onDeleteSeriesPress = () => { + onDeleteArtistPress = () => { this.setState({ isEditArtistModalOpen: false, isDeleteArtistModalOpen: true @@ -66,7 +66,6 @@ class ArtistIndexRow extends Component { status, artistName, nameSlug, - network, qualityProfile, languageProfile, nextAiring, @@ -76,13 +75,13 @@ class ArtistIndexRow extends Component { trackCount, trackFileCount, totalTrackCount, - latestSeason, + latestAlbum, path, sizeOnDisk, tags, // useSceneNumbering, columns, - isRefreshingSeries, + isRefreshingArtist, onRefreshArtistPress } = this.props; @@ -130,17 +129,6 @@ class ArtistIndexRow extends Component { ); } - if (name === 'network') { - return ( - - {network} - - ); - } - if (name === 'qualityProfileId') { return ( @@ -320,14 +308,14 @@ class ArtistIndexRow extends Component { ); @@ -340,8 +328,8 @@ class ArtistIndexRow extends Component { { - const firstCharacter = item.sortTitle.charAt(0); + const firstCharacter = item.sortName.charAt(0); if (character === '#') { return !isNaN(firstCharacter); diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTableConnector.js b/frontend/src/Artist/Index/Table/ArtistIndexTableConnector.js index f94950b87..0bf6af71f 100644 --- a/frontend/src/Artist/Index/Table/ArtistIndexTableConnector.js +++ b/frontend/src/Artist/Index/Table/ArtistIndexTableConnector.js @@ -30,5 +30,5 @@ export default connectSection( createMapDispatchToProps, undefined, { withRef: true }, - { section: 'series', uiSection: 'seriesIndex' } + { section: 'series', uiSection: 'artistIndex' } )(ArtistIndexTable); diff --git a/frontend/src/Artist/Index/Table/artistIndexCellRenderers.js b/frontend/src/Artist/Index/Table/artistIndexCellRenderers.js index b15554482..b5ea45e4f 100644 --- a/frontend/src/Artist/Index/Table/artistIndexCellRenderers.js +++ b/frontend/src/Artist/Index/Table/artistIndexCellRenderers.js @@ -23,7 +23,6 @@ export default function artistIndexCellRenderers(cellProps) { status, name, nameSlug, - network, qualityProfileId, nextAiring, previousAiring, @@ -46,7 +45,7 @@ export default function artistIndexCellRenderers(cellProps) { ); } - if (dataKey === 'sortTitle') { + if (dataKey === 'sortName') { return ( - {network} - - - ); - } - if (dataKey === 'qualityProfileId') { return (
diff --git a/frontend/src/Calendar/Events/CalendarEvent.css b/frontend/src/Calendar/Events/CalendarEvent.css index ac055a531..dcb7d4308 100644 --- a/frontend/src/Calendar/Events/CalendarEvent.css +++ b/frontend/src/Calendar/Events/CalendarEvent.css @@ -61,7 +61,7 @@ } } -.unaired { +.unreleased { border-left-color: $primaryColor; &:global(.colorImpaired) { diff --git a/frontend/src/Calendar/Events/CalendarEvent.js b/frontend/src/Calendar/Events/CalendarEvent.js index 9773ba137..1f16ce3e0 100644 --- a/frontend/src/Calendar/Events/CalendarEvent.js +++ b/frontend/src/Calendar/Events/CalendarEvent.js @@ -116,7 +116,7 @@ class CalendarEvent extends Component { episodeEntity={episodeEntities.CALENDAR} artistId={artist.id} episodeTitle={title} - showOpenSeriesButton={true} + showOpenArtistButton={true} onModalClose={this.onDetailsModalClose} /> diff --git a/frontend/src/Calendar/Legend/Legend.js b/frontend/src/Calendar/Legend/Legend.js index 15ace7de2..759ebf5a7 100644 --- a/frontend/src/Calendar/Legend/Legend.js +++ b/frontend/src/Calendar/Legend/Legend.js @@ -22,7 +22,7 @@ function Legend({ colorImpairedMode }) {
diff --git a/frontend/src/Calendar/Legend/LegendItem.css b/frontend/src/Calendar/Legend/LegendItem.css index e15a58472..fb49d8608 100644 --- a/frontend/src/Calendar/Legend/LegendItem.css +++ b/frontend/src/Calendar/Legend/LegendItem.css @@ -32,6 +32,6 @@ composes: missing from 'Calendar/Events/CalendarEvent.css'; } -.unaired { - composes: unaired from 'Calendar/Events/CalendarEvent.css'; +.unreleased { + composes: unreleased from 'Calendar/Events/CalendarEvent.css'; } diff --git a/frontend/src/Calendar/getStatusStyle.js b/frontend/src/Calendar/getStatusStyle.js index 3016a10c1..5e60b301f 100644 --- a/frontend/src/Calendar/getStatusStyle.js +++ b/frontend/src/Calendar/getStatusStyle.js @@ -19,7 +19,7 @@ function getStatusStyle(episodeNumber, downloading, startTime, isMonitored) { return 'missing'; } - return 'unaired'; + return 'unreleased'; } export default getStatusStyle; diff --git a/frontend/src/Components/Page/Header/ArtistSearchInput.js b/frontend/src/Components/Page/Header/ArtistSearchInput.js index bb043c73d..0de1dedb9 100644 --- a/frontend/src/Components/Page/Header/ArtistSearchInput.js +++ b/frontend/src/Components/Page/Header/ArtistSearchInput.js @@ -76,7 +76,7 @@ class ArtistSearchInput extends Component { ); } - goToSeries(series) { + goToArtist(series) { this.setState({ value: '' }); this.props.onGoToSeries(series.nameSlug); } @@ -121,9 +121,9 @@ class ArtistSearchInput extends Component { // otherwise go to the selected series. if (highlightedSuggestionIndex == null) { - this.goToSeries(suggestions[0]); + this.goToArtist(suggestions[0]); } else { - this.goToSeries(suggestions[highlightedSuggestionIndex]); + this.goToArtist(suggestions[highlightedSuggestionIndex]); } } @@ -155,7 +155,7 @@ class ArtistSearchInput extends Component { if (suggestion.type === ADD_NEW_TYPE) { this.props.onGoToAddNewArtist(this.state.value); } else { - this.goToSeries(suggestion); + this.goToArtist(suggestion); } } diff --git a/frontend/src/Content/Images/poster-dark-square.png b/frontend/src/Content/Images/poster-dark-square.png new file mode 100644 index 000000000..2d7608f3d Binary files /dev/null and b/frontend/src/Content/Images/poster-dark-square.png differ diff --git a/frontend/src/Episode/EpisodeDetailsModalContent.css b/frontend/src/Episode/EpisodeDetailsModalContent.css index 4c690eb6a..9d428208d 100644 --- a/frontend/src/Episode/EpisodeDetailsModalContent.css +++ b/frontend/src/Episode/EpisodeDetailsModalContent.css @@ -1,4 +1,4 @@ -.seriesTitle { +.artistName { margin-left: 5px; } diff --git a/frontend/src/Episode/EpisodeDetailsModalContent.js b/frontend/src/Episode/EpisodeDetailsModalContent.js index 24ca04c16..243841820 100644 --- a/frontend/src/Episode/EpisodeDetailsModalContent.js +++ b/frontend/src/Episode/EpisodeDetailsModalContent.js @@ -47,7 +47,7 @@ class EpisodeDetailsModalContent extends Component { episodeId, episodeEntity, artistId, - seriesTitle, + artistName, nameSlug, albumLabel, artistMonitored, @@ -55,7 +55,7 @@ class EpisodeDetailsModalContent extends Component { releaseDate, monitored, isSaving, - showOpenSeriesButton, + showOpenArtistButton, startInteractiveSearch, onMonitorAlbumPress, onModalClose @@ -78,8 +78,8 @@ class EpisodeDetailsModalContent extends Component { onPress={onMonitorAlbumPress} /> - - {seriesTitle} + + {artistName} - @@ -146,7 +146,7 @@ class EpisodeDetailsModalContent extends Component { { - showOpenSeriesButton && + showOpenArtistButton &&