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 &&