}
-
-
-
@@ -645,7 +645,7 @@ class ArtistDetails extends Component {
Missing or too many books? Modify or create a new
Metadata Profile
or manually
- Search
+ Search
for new items!
- Are you sure you want to re-tag all files in the {artistNames.length} selected artist?
+ Are you sure you want to re-tag all files in the {authorNames.length} selected author?
-
@@ -257,8 +230,8 @@ class ArtistEditorFooter extends Component {
-
@@ -267,9 +240,9 @@ class ArtistEditorFooter extends Component {
Rename Files
@@ -277,9 +250,9 @@ class ArtistEditorFooter extends Component {
Write Metadata Tags
@@ -287,7 +260,7 @@ class ArtistEditorFooter extends Component {
Set Readarr Tags
@@ -314,17 +287,17 @@ class ArtistEditorFooter extends Component {
onModalClose={this.onTagsModalClose}
/>
-
-
@@ -332,19 +305,19 @@ class ArtistEditorFooter extends Component {
}
}
-ArtistEditorFooter.propTypes = {
+AuthorEditorFooter.propTypes = {
authorIds: PropTypes.arrayOf(PropTypes.number).isRequired,
selectedCount: PropTypes.number.isRequired,
isSaving: PropTypes.bool.isRequired,
saveError: PropTypes.object,
isDeleting: PropTypes.bool.isRequired,
deleteError: PropTypes.object,
- isOrganizingArtist: PropTypes.bool.isRequired,
- isRetaggingArtist: PropTypes.bool.isRequired,
+ isOrganizingAuthor: PropTypes.bool.isRequired,
+ isRetaggingAuthor: PropTypes.bool.isRequired,
showMetadataProfile: PropTypes.bool.isRequired,
onSaveSelected: PropTypes.func.isRequired,
- onOrganizeArtistPress: PropTypes.func.isRequired,
- onRetagArtistPress: PropTypes.func.isRequired
+ onOrganizeAuthorPress: PropTypes.func.isRequired,
+ onRetagAuthorPress: PropTypes.func.isRequired
};
-export default ArtistEditorFooter;
+export default AuthorEditorFooter;
diff --git a/frontend/src/Artist/Editor/ArtistEditorFooterLabel.css b/frontend/src/Author/Editor/AuthorEditorFooterLabel.css
similarity index 100%
rename from frontend/src/Artist/Editor/ArtistEditorFooterLabel.css
rename to frontend/src/Author/Editor/AuthorEditorFooterLabel.css
diff --git a/frontend/src/Artist/Editor/ArtistEditorFooterLabel.js b/frontend/src/Author/Editor/AuthorEditorFooterLabel.js
similarity index 74%
rename from frontend/src/Artist/Editor/ArtistEditorFooterLabel.js
rename to frontend/src/Author/Editor/AuthorEditorFooterLabel.js
index 1c6be745d..edfb883a2 100644
--- a/frontend/src/Artist/Editor/ArtistEditorFooterLabel.js
+++ b/frontend/src/Author/Editor/AuthorEditorFooterLabel.js
@@ -2,9 +2,9 @@ import PropTypes from 'prop-types';
import React from 'react';
import { icons } from 'Helpers/Props';
import SpinnerIcon from 'Components/SpinnerIcon';
-import styles from './ArtistEditorFooterLabel.css';
+import styles from './AuthorEditorFooterLabel.css';
-function ArtistEditorFooterLabel(props) {
+function AuthorEditorFooterLabel(props) {
const {
className,
label,
@@ -27,14 +27,14 @@ function ArtistEditorFooterLabel(props) {
);
}
-ArtistEditorFooterLabel.propTypes = {
+AuthorEditorFooterLabel.propTypes = {
className: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
isSaving: PropTypes.bool.isRequired
};
-ArtistEditorFooterLabel.defaultProps = {
+AuthorEditorFooterLabel.defaultProps = {
className: styles.label
};
-export default ArtistEditorFooterLabel;
+export default AuthorEditorFooterLabel;
diff --git a/frontend/src/Artist/Editor/ArtistEditorRow.js b/frontend/src/Author/Editor/AuthorEditorRow.js
similarity index 76%
rename from frontend/src/Artist/Editor/ArtistEditorRow.js
rename to frontend/src/Author/Editor/AuthorEditorRow.js
index ddf35c228..0f04155e7 100644
--- a/frontend/src/Artist/Editor/ArtistEditorRow.js
+++ b/frontend/src/Author/Editor/AuthorEditorRow.js
@@ -5,16 +5,15 @@ import TagListConnector from 'Components/TagListConnector';
import TableRow from 'Components/Table/TableRow';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
-import ArtistNameLink from 'Artist/ArtistNameLink';
-import ArtistStatusCell from 'Artist/Index/Table/ArtistStatusCell';
-import styles from './ArtistEditorRow.css';
+import AuthorNameLink from 'Author/AuthorNameLink';
+import AuthorStatusCell from 'Author/Index/Table/AuthorStatusCell';
-class ArtistEditorRow extends Component {
+class AuthorEditorRow extends Component {
//
// Listeners
- onAlbumFolderChange = () => {
+ onBookFolderChange = () => {
// Mock handler to satisfy `onChange` being required for `CheckInput`.
//
}
@@ -27,8 +26,8 @@ class ArtistEditorRow extends Component {
id,
status,
titleSlug,
- artistName,
- artistType,
+ authorName,
+ authorType,
monitored,
metadataProfile,
qualityProfile,
@@ -47,16 +46,16 @@ class ArtistEditorRow extends Component {
onSelectedChange={onSelectedChange}
/>
-
-
-
+
@@ -85,12 +84,12 @@ class ArtistEditorRow extends Component {
}
}
-ArtistEditorRow.propTypes = {
+AuthorEditorRow.propTypes = {
id: PropTypes.number.isRequired,
status: PropTypes.string.isRequired,
titleSlug: PropTypes.string.isRequired,
- artistName: PropTypes.string.isRequired,
- artistType: PropTypes.string,
+ authorName: PropTypes.string.isRequired,
+ authorType: PropTypes.string,
monitored: PropTypes.bool.isRequired,
metadataProfile: PropTypes.object.isRequired,
qualityProfile: PropTypes.object.isRequired,
@@ -101,8 +100,8 @@ ArtistEditorRow.propTypes = {
onSelectedChange: PropTypes.func.isRequired
};
-ArtistEditorRow.defaultProps = {
+AuthorEditorRow.defaultProps = {
tags: []
};
-export default ArtistEditorRow;
+export default AuthorEditorRow;
diff --git a/frontend/src/Artist/Editor/ArtistEditorRowConnector.js b/frontend/src/Author/Editor/AuthorEditorRowConnector.js
similarity index 76%
rename from frontend/src/Artist/Editor/ArtistEditorRowConnector.js
rename to frontend/src/Author/Editor/AuthorEditorRowConnector.js
index 32694a6b9..21f5613f3 100644
--- a/frontend/src/Artist/Editor/ArtistEditorRowConnector.js
+++ b/frontend/src/Author/Editor/AuthorEditorRowConnector.js
@@ -4,7 +4,7 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createMetadataProfileSelector from 'Store/Selectors/createMetadataProfileSelector';
import createQualityProfileSelector from 'Store/Selectors/createQualityProfileSelector';
-import ArtistEditorRow from './ArtistEditorRow';
+import AuthorEditorRow from './AuthorEditorRow';
function createMapStateToProps() {
return createSelector(
@@ -19,16 +19,16 @@ function createMapStateToProps() {
);
}
-function ArtistEditorRowConnector(props) {
+function AuthorEditorRowConnector(props) {
return (
-
);
}
-ArtistEditorRowConnector.propTypes = {
+AuthorEditorRowConnector.propTypes = {
qualityProfileId: PropTypes.number.isRequired
};
-export default connect(createMapStateToProps)(ArtistEditorRowConnector);
+export default connect(createMapStateToProps)(AuthorEditorRowConnector);
diff --git a/frontend/src/Search/Artist/AddNewArtistModal.js b/frontend/src/Author/Editor/Delete/DeleteAuthorModal.js
similarity index 68%
rename from frontend/src/Search/Artist/AddNewArtistModal.js
rename to frontend/src/Author/Editor/Delete/DeleteAuthorModal.js
index e94a8a229..39407a26e 100644
--- a/frontend/src/Search/Artist/AddNewArtistModal.js
+++ b/frontend/src/Author/Editor/Delete/DeleteAuthorModal.js
@@ -1,9 +1,9 @@
import PropTypes from 'prop-types';
import React from 'react';
import Modal from 'Components/Modal/Modal';
-import AddNewArtistModalContentConnector from './AddNewArtistModalContentConnector';
+import DeleteAuthorModalContentConnector from './DeleteAuthorModalContentConnector';
-function AddNewArtistModal(props) {
+function DeleteAuthorModal(props) {
const {
isOpen,
onModalClose,
@@ -15,7 +15,7 @@ function AddNewArtistModal(props) {
isOpen={isOpen}
onModalClose={onModalClose}
>
-
@@ -23,9 +23,9 @@ function AddNewArtistModal(props) {
);
}
-AddNewArtistModal.propTypes = {
+DeleteAuthorModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
onModalClose: PropTypes.func.isRequired
};
-export default AddNewArtistModal;
+export default DeleteAuthorModal;
diff --git a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.css b/frontend/src/Author/Editor/Delete/DeleteAuthorModalContent.css
similarity index 100%
rename from frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.css
rename to frontend/src/Author/Editor/Delete/DeleteAuthorModalContent.css
diff --git a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js b/frontend/src/Author/Editor/Delete/DeleteAuthorModalContent.js
similarity index 77%
rename from frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js
rename to frontend/src/Author/Editor/Delete/DeleteAuthorModalContent.js
index 87088b472..c30d786ad 100644
--- a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContent.js
+++ b/frontend/src/Author/Editor/Delete/DeleteAuthorModalContent.js
@@ -9,9 +9,9 @@ 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 styles from './DeleteArtistModalContent.css';
+import styles from './DeleteAuthorModalContent.css';
-class DeleteArtistModalContent extends Component {
+class DeleteAuthorModalContent extends Component {
//
// Lifecycle
@@ -31,7 +31,7 @@ class DeleteArtistModalContent extends Component {
this.setState({ deleteFiles: value });
}
- onDeleteArtistConfirmed = () => {
+ onDeleteAuthorConfirmed = () => {
const deleteFiles = this.state.deleteFiles;
this.setState({ deleteFiles: false });
@@ -43,7 +43,7 @@ class DeleteArtistModalContent extends Component {
render() {
const {
- artist,
+ author,
onModalClose
} = this.props;
const deleteFiles = this.state.deleteFiles;
@@ -51,19 +51,19 @@ class DeleteArtistModalContent extends Component {
return (
- Delete Selected Artist
+ Delete Selected Author
- {`Delete Artist Folder${artist.length > 1 ? 's' : ''}`}
+ {`Delete Author Folder${author.length > 1 ? 's' : ''}`} 1 ? 's' : ''} and all contents`}
+ helpText={`Delete Author Folder${author.length > 1 ? 's' : ''} and all contents`}
kind={kinds.DANGER}
onChange={this.onDeleteFilesChange}
/>
@@ -71,15 +71,15 @@ class DeleteArtistModalContent extends Component {
- {`Are you sure you want to delete ${artist.length} selected artist${artist.length > 1 ? 's' : ''}${deleteFiles ? ' and all contents' : ''}?`}
+ {`Are you sure you want to delete ${author.length} selected author${author.length > 1 ? 's' : ''}${deleteFiles ? ' and all contents' : ''}?`}
+ {s.authorName}
{
deleteFiles &&
@@ -104,7 +104,7 @@ class DeleteArtistModalContent extends Component {
@@ -114,10 +114,10 @@ class DeleteArtistModalContent extends Component {
}
}
-DeleteArtistModalContent.propTypes = {
- artist: PropTypes.arrayOf(PropTypes.object).isRequired,
+DeleteAuthorModalContent.propTypes = {
+ author: PropTypes.arrayOf(PropTypes.object).isRequired,
onModalClose: PropTypes.func.isRequired,
onDeleteSelectedPress: PropTypes.func.isRequired
};
-export default DeleteArtistModalContent;
+export default DeleteAuthorModalContent;
diff --git a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js b/frontend/src/Author/Editor/Delete/DeleteAuthorModalContentConnector.js
similarity index 53%
rename from frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js
rename to frontend/src/Author/Editor/Delete/DeleteAuthorModalContentConnector.js
index 6479f0bd7..5bebec7aa 100644
--- a/frontend/src/Artist/Editor/Delete/DeleteArtistModalContentConnector.js
+++ b/frontend/src/Author/Editor/Delete/DeleteAuthorModalContentConnector.js
@@ -1,29 +1,29 @@
import _ from 'lodash';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import createAllArtistSelector from 'Store/Selectors/createAllArtistSelector';
-import { bulkDeleteArtist } from 'Store/Actions/artistEditorActions';
-import DeleteArtistModalContent from './DeleteArtistModalContent';
+import createAllAuthorSelector from 'Store/Selectors/createAllAuthorsSelector';
+import { bulkDeleteAuthor } from 'Store/Actions/authorEditorActions';
+import DeleteAuthorModalContent from './DeleteAuthorModalContent';
function createMapStateToProps() {
return createSelector(
(state, { authorIds }) => authorIds,
- createAllArtistSelector(),
- (authorIds, allArtists) => {
- const selectedArtist = _.intersectionWith(allArtists, authorIds, (s, id) => {
+ createAllAuthorSelector(),
+ (authorIds, allAuthors) => {
+ const selectedAuthor = _.intersectionWith(allAuthors, authorIds, (s, id) => {
return s.id === id;
});
- const sortedArtist = _.orderBy(selectedArtist, 'sortName');
- const artist = _.map(sortedArtist, (s) => {
+ const sortedAuthor = _.orderBy(selectedAuthor, 'sortName');
+ const author = _.map(sortedAuthor, (s) => {
return {
- artistName: s.artistName,
+ authorName: s.authorName,
path: s.path
};
});
return {
- artist
+ author
};
}
);
@@ -32,7 +32,7 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onDeleteSelectedPress(deleteFiles) {
- dispatch(bulkDeleteArtist({
+ dispatch(bulkDeleteAuthor({
authorIds: props.authorIds,
deleteFiles
}));
@@ -42,4 +42,4 @@ function createMapDispatchToProps(dispatch, props) {
};
}
-export default connect(createMapStateToProps, createMapDispatchToProps)(DeleteArtistModalContent);
+export default connect(createMapStateToProps, createMapDispatchToProps)(DeleteAuthorModalContent);
diff --git a/frontend/src/Artist/Editor/Organize/OrganizeArtistModal.js b/frontend/src/Author/Editor/Organize/OrganizeAuthorModal.js
similarity index 64%
rename from frontend/src/Artist/Editor/Organize/OrganizeArtistModal.js
rename to frontend/src/Author/Editor/Organize/OrganizeAuthorModal.js
index 412396355..0e3791d45 100644
--- a/frontend/src/Artist/Editor/Organize/OrganizeArtistModal.js
+++ b/frontend/src/Author/Editor/Organize/OrganizeAuthorModal.js
@@ -1,9 +1,9 @@
import PropTypes from 'prop-types';
import React from 'react';
import Modal from 'Components/Modal/Modal';
-import OrganizeArtistModalContentConnector from './OrganizeArtistModalContentConnector';
+import OrganizeAuthorModalContentConnector from './OrganizeAuthorModalContentConnector';
-function OrganizeArtistModal(props) {
+function OrganizeAuthorModal(props) {
const {
isOpen,
onModalClose,
@@ -15,7 +15,7 @@ function OrganizeArtistModal(props) {
isOpen={isOpen}
onModalClose={onModalClose}
>
-
@@ -23,9 +23,9 @@ function OrganizeArtistModal(props) {
);
}
-OrganizeArtistModal.propTypes = {
+OrganizeAuthorModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
onModalClose: PropTypes.func.isRequired
};
-export default OrganizeArtistModal;
+export default OrganizeAuthorModal;
diff --git a/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContent.css b/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.css
similarity index 100%
rename from frontend/src/Artist/Editor/Organize/OrganizeArtistModalContent.css
rename to frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.css
diff --git a/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContent.js b/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js
similarity index 66%
rename from frontend/src/Artist/Editor/Organize/OrganizeArtistModalContent.js
rename to frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js
index 5f90eca90..e1aa9b47d 100644
--- a/frontend/src/Artist/Editor/Organize/OrganizeArtistModalContent.js
+++ b/frontend/src/Author/Editor/Organize/OrganizeAuthorModalContent.js
@@ -8,24 +8,24 @@ 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 styles from './OrganizeArtistModalContent.css';
+import styles from './OrganizeAuthorModalContent.css';
-function OrganizeArtistModalContent(props) {
+function OrganizeAuthorModalContent(props) {
const {
- artistNames,
+ authorNames,
onModalClose,
- onOrganizeArtistPress
+ onOrganizeAuthorPress
} = props;
return (
- Organize Selected Artist
+ Organize Selected Author
- Tip: To preview a rename... select "Cancel" then click any artist name and use the
+ Tip: To preview a rename... select "Cancel" then click any author name and use the
- Are you sure you want to organize all files in the {artistNames.length} selected artist?
+ Are you sure you want to organize all files in the {authorNames.length} selected author?
);
}
@@ -98,12 +98,12 @@ function ArtistIndexBannerInfo(props) {
return null;
}
-ArtistIndexBannerInfo.propTypes = {
+AuthorIndexPosterInfo.propTypes = {
qualityProfile: PropTypes.object.isRequired,
showQualityProfile: PropTypes.bool.isRequired,
previousAiring: PropTypes.string,
added: PropTypes.string,
- albumCount: PropTypes.number.isRequired,
+ bookCount: PropTypes.number.isRequired,
path: PropTypes.string.isRequired,
sizeOnDisk: PropTypes.number,
sortKey: PropTypes.string.isRequired,
@@ -112,4 +112,4 @@ ArtistIndexBannerInfo.propTypes = {
timeFormat: PropTypes.string.isRequired
};
-export default ArtistIndexBannerInfo;
+export default AuthorIndexPosterInfo;
diff --git a/frontend/src/Artist/Index/Posters/ArtistIndexPosters.css b/frontend/src/Author/Index/Posters/AuthorIndexPosters.css
similarity index 100%
rename from frontend/src/Artist/Index/Posters/ArtistIndexPosters.css
rename to frontend/src/Author/Index/Posters/AuthorIndexPosters.css
diff --git a/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js b/frontend/src/Author/Index/Posters/AuthorIndexPosters.js
similarity index 91%
rename from frontend/src/Artist/Index/Posters/ArtistIndexPosters.js
rename to frontend/src/Author/Index/Posters/AuthorIndexPosters.js
index bb9a45e5d..bc2da1919 100644
--- a/frontend/src/Artist/Index/Posters/ArtistIndexPosters.js
+++ b/frontend/src/Author/Index/Posters/AuthorIndexPosters.js
@@ -5,13 +5,13 @@ import getIndexOfFirstCharacter from 'Utilities/Array/getIndexOfFirstCharacter';
import hasDifferentItemsOrOrder from 'Utilities/Object/hasDifferentItemsOrOrder';
import dimensions from 'Styles/Variables/dimensions';
import Measure from 'Components/Measure';
-import ArtistIndexItemConnector from 'Artist/Index/ArtistIndexItemConnector';
-import ArtistIndexPoster from './ArtistIndexPoster';
-import styles from './ArtistIndexPosters.css';
+import AuthorIndexItemConnector from 'Author/Index/AuthorIndexItemConnector';
+import AuthorIndexPoster from './AuthorIndexPoster';
+import styles from './AuthorIndexPosters.css';
// Poster container dimensions
-const columnPadding = parseInt(dimensions.artistIndexColumnPadding);
-const columnPaddingSmallScreen = parseInt(dimensions.artistIndexColumnPaddingSmallScreen);
+const columnPadding = parseInt(dimensions.authorIndexColumnPadding);
+const columnPaddingSmallScreen = parseInt(dimensions.authorIndexColumnPaddingSmallScreen);
const progressBarHeight = parseInt(dimensions.progressBarSmallHeight);
const detailedProgressBarHeight = parseInt(dimensions.progressBarMediumHeight);
@@ -86,7 +86,7 @@ function calculatePosterHeight(posterWidth) {
return Math.ceil(posterWidth);
}
-class ArtistIndexPosters extends Component {
+class AuthorIndexPosters extends Component {
//
// Lifecycle
@@ -205,9 +205,9 @@ class ArtistIndexPosters extends Component {
} = posterOptions;
const authorIdx = rowIndex * columnCount + columnIndex;
- const artist = items[authorIdx];
+ const author = items[authorIdx];
- if (!artist) {
+ if (!author) {
return null;
}
@@ -216,9 +216,9 @@ class ArtistIndexPosters extends Component {
key={key}
style={style}
>
-
);
@@ -305,7 +305,7 @@ class ArtistIndexPosters extends Component {
}
}
-ArtistIndexPosters.propTypes = {
+AuthorIndexPosters.propTypes = {
items: PropTypes.arrayOf(PropTypes.object).isRequired,
sortKey: PropTypes.string,
posterOptions: PropTypes.object.isRequired,
@@ -317,4 +317,4 @@ ArtistIndexPosters.propTypes = {
timeFormat: PropTypes.string.isRequired
};
-export default ArtistIndexPosters;
+export default AuthorIndexPosters;
diff --git a/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js b/frontend/src/Author/Index/Posters/AuthorIndexPostersConnector.js
similarity index 80%
rename from frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js
rename to frontend/src/Author/Index/Posters/AuthorIndexPostersConnector.js
index 04c187e4e..3287ffda9 100644
--- a/frontend/src/Artist/Index/Posters/ArtistIndexPostersConnector.js
+++ b/frontend/src/Author/Index/Posters/AuthorIndexPostersConnector.js
@@ -2,11 +2,11 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
import createDimensionsSelector from 'Store/Selectors/createDimensionsSelector';
-import ArtistIndexPosters from './ArtistIndexPosters';
+import AuthorIndexPosters from './AuthorIndexPosters';
function createMapStateToProps() {
return createSelector(
- (state) => state.artistIndex.posterOptions,
+ (state) => state.authorIndex.posterOptions,
createUISettingsSelector(),
createDimensionsSelector(),
(posterOptions, uiSettings, dimensions) => {
@@ -21,4 +21,4 @@ function createMapStateToProps() {
);
}
-export default connect(createMapStateToProps)(ArtistIndexPosters);
+export default connect(createMapStateToProps)(AuthorIndexPosters);
diff --git a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModal.js b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModal.js
similarity index 54%
rename from frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModal.js
rename to frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModal.js
index e1b0a257a..2f2503b25 100644
--- a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModal.js
+++ b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModal.js
@@ -1,15 +1,15 @@
import PropTypes from 'prop-types';
import React from 'react';
import Modal from 'Components/Modal/Modal';
-import ArtistIndexPosterOptionsModalContentConnector from './ArtistIndexPosterOptionsModalContentConnector';
+import AuthorIndexPosterOptionsModalContentConnector from './AuthorIndexPosterOptionsModalContentConnector';
-function ArtistIndexPosterOptionsModal({ isOpen, onModalClose, ...otherProps }) {
+function AuthorIndexPosterOptionsModal({ isOpen, onModalClose, ...otherProps }) {
return (
-
@@ -17,9 +17,9 @@ function ArtistIndexPosterOptionsModal({ isOpen, onModalClose, ...otherProps })
);
}
-ArtistIndexPosterOptionsModal.propTypes = {
+AuthorIndexPosterOptionsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
onModalClose: PropTypes.func.isRequired
};
-export default ArtistIndexPosterOptionsModal;
+export default AuthorIndexPosterOptionsModal;
diff --git a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContent.js
similarity index 96%
rename from frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js
rename to frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContent.js
index 6918436a6..cfb91927d 100644
--- a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContent.js
+++ b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContent.js
@@ -18,7 +18,7 @@ const posterSizeOptions = [
{ key: 'large', value: 'Large' }
];
-class ArtistIndexPosterOptionsModalContent extends Component {
+class AuthorIndexPosterOptionsModalContent extends Component {
//
// Lifecycle
@@ -144,7 +144,7 @@ class ArtistIndexPosterOptionsModalContent extends Component {
type={inputTypes.CHECK}
name="showTitle"
value={showTitle}
- helpText="Show artist name under poster"
+ helpText="Show author name under poster"
onChange={this.onChangePosterOption}
/>
@@ -199,7 +199,7 @@ class ArtistIndexPosterOptionsModalContent extends Component {
}
}
-ArtistIndexPosterOptionsModalContent.propTypes = {
+AuthorIndexPosterOptionsModalContent.propTypes = {
size: PropTypes.string.isRequired,
showTitle: PropTypes.bool.isRequired,
showMonitored: PropTypes.bool.isRequired,
@@ -210,4 +210,4 @@ ArtistIndexPosterOptionsModalContent.propTypes = {
onModalClose: PropTypes.func.isRequired
};
-export default ArtistIndexPosterOptionsModalContent;
+export default AuthorIndexPosterOptionsModalContent;
diff --git a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContentConnector.js
similarity index 53%
rename from frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js
rename to frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContentConnector.js
index 72af268ad..c2b58b93f 100644
--- a/frontend/src/Artist/Index/Posters/Options/ArtistIndexPosterOptionsModalContentConnector.js
+++ b/frontend/src/Author/Index/Posters/Options/AuthorIndexPosterOptionsModalContentConnector.js
@@ -1,13 +1,13 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import { setArtistPosterOption } from 'Store/Actions/artistIndexActions';
-import ArtistIndexPosterOptionsModalContent from './ArtistIndexPosterOptionsModalContent';
+import { setAuthorPosterOption } from 'Store/Actions/authorIndexActions';
+import AuthorIndexPosterOptionsModalContent from './AuthorIndexPosterOptionsModalContent';
function createMapStateToProps() {
return createSelector(
- (state) => state.artistIndex,
- (artistIndex) => {
- return artistIndex.posterOptions;
+ (state) => state.authorIndex,
+ (authorIndex) => {
+ return authorIndex.posterOptions;
}
);
}
@@ -15,9 +15,9 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onChangePosterOption(payload) {
- dispatch(setArtistPosterOption(payload));
+ dispatch(setAuthorPosterOption(payload));
}
};
}
-export default connect(createMapStateToProps, createMapDispatchToProps)(ArtistIndexPosterOptionsModalContent);
+export default connect(createMapStateToProps, createMapDispatchToProps)(AuthorIndexPosterOptionsModalContent);
diff --git a/frontend/src/Artist/Index/ProgressBar/ArtistIndexProgressBar.css b/frontend/src/Author/Index/ProgressBar/AuthorIndexProgressBar.css
similarity index 100%
rename from frontend/src/Artist/Index/ProgressBar/ArtistIndexProgressBar.css
rename to frontend/src/Author/Index/ProgressBar/AuthorIndexProgressBar.css
diff --git a/frontend/src/Artist/Index/ProgressBar/ArtistIndexProgressBar.js b/frontend/src/Author/Index/ProgressBar/AuthorIndexProgressBar.js
similarity index 55%
rename from frontend/src/Artist/Index/ProgressBar/ArtistIndexProgressBar.js
rename to frontend/src/Author/Index/ProgressBar/AuthorIndexProgressBar.js
index 6be32a46d..941e9a277 100644
--- a/frontend/src/Artist/Index/ProgressBar/ArtistIndexProgressBar.js
+++ b/frontend/src/Author/Index/ProgressBar/AuthorIndexProgressBar.js
@@ -1,23 +1,23 @@
import PropTypes from 'prop-types';
import React from 'react';
-import getProgressBarKind from 'Utilities/Artist/getProgressBarKind';
+import getProgressBarKind from 'Utilities/Author/getProgressBarKind';
import { sizes } from 'Helpers/Props';
import ProgressBar from 'Components/ProgressBar';
-import styles from './ArtistIndexProgressBar.css';
+import styles from './AuthorIndexProgressBar.css';
-function ArtistIndexProgressBar(props) {
+function AuthorIndexProgressBar(props) {
const {
monitored,
status,
- trackCount,
- trackFileCount,
- totalTrackCount,
+ bookCount,
+ bookFileCount,
+ totalBookCount,
posterWidth,
detailedProgressBar
} = props;
- const progress = trackCount ? trackFileCount / trackCount * 100 : 100;
- const text = `${trackFileCount} / ${trackCount}`;
+ const progress = bookCount ? bookFileCount / bookCount * 100 : 100;
+ const text = `${bookFileCount} / ${bookCount}`;
return (
);
}
-ArtistIndexProgressBar.propTypes = {
+AuthorIndexProgressBar.propTypes = {
monitored: PropTypes.bool.isRequired,
status: PropTypes.string.isRequired,
- trackCount: PropTypes.number.isRequired,
- trackFileCount: PropTypes.number.isRequired,
- totalTrackCount: PropTypes.number.isRequired,
+ bookCount: PropTypes.number.isRequired,
+ bookFileCount: PropTypes.number.isRequired,
+ totalBookCount: PropTypes.number.isRequired,
posterWidth: PropTypes.number.isRequired,
detailedProgressBar: PropTypes.bool.isRequired
};
-export default ArtistIndexProgressBar;
+export default AuthorIndexProgressBar;
diff --git a/frontend/src/Author/Index/Table/AuthorIndexActionsCell.js b/frontend/src/Author/Index/Table/AuthorIndexActionsCell.js
new file mode 100644
index 000000000..f3d59fedf
--- /dev/null
+++ b/frontend/src/Author/Index/Table/AuthorIndexActionsCell.js
@@ -0,0 +1,102 @@
+import PropTypes from 'prop-types';
+import React, { Component } from 'react';
+import { icons } from 'Helpers/Props';
+import IconButton from 'Components/Link/IconButton';
+import SpinnerIconButton from 'Components/Link/SpinnerIconButton';
+import VirtualTableRowCell from 'Components/Table/Cells/VirtualTableRowCell';
+import EditAuthorModalConnector from 'Author/Edit/EditAuthorModalConnector';
+import DeleteAuthorModal from 'Author/Delete/DeleteAuthorModal';
+
+class AuthorIndexActionsCell extends Component {
+
+ //
+ // Lifecycle
+
+ constructor(props, context) {
+ super(props, context);
+
+ this.state = {
+ isEditAuthorModalOpen: false,
+ isDeleteAuthorModalOpen: false
+ };
+ }
+
+ //
+ // Listeners
+
+ onEditAuthorPress = () => {
+ this.setState({ isEditAuthorModalOpen: true });
+ }
+
+ onEditAuthorModalClose = () => {
+ this.setState({ isEditAuthorModalOpen: false });
+ }
+
+ onDeleteAuthorPress = () => {
+ this.setState({
+ isEditAuthorModalOpen: false,
+ isDeleteAuthorModalOpen: true
+ });
+ }
+
+ onDeleteAuthorModalClose = () => {
+ this.setState({ isDeleteAuthorModalOpen: false });
+ }
+
+ //
+ // Render
+
+ render() {
+ const {
+ id,
+ isRefreshingAuthor,
+ onRefreshAuthorPress,
+ ...otherProps
+ } = this.props;
+
+ const {
+ isEditAuthorModalOpen,
+ isDeleteAuthorModalOpen
+ } = this.state;
+
+ return (
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+AuthorIndexActionsCell.propTypes = {
+ id: PropTypes.number.isRequired,
+ isRefreshingAuthor: PropTypes.bool.isRequired,
+ onRefreshAuthorPress: PropTypes.func.isRequired
+};
+
+export default AuthorIndexActionsCell;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexHeader.css b/frontend/src/Author/Index/Table/AuthorIndexHeader.css
similarity index 94%
rename from frontend/src/Artist/Index/Table/ArtistIndexHeader.css
rename to frontend/src/Author/Index/Table/AuthorIndexHeader.css
index 6da0be920..60c67dde1 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexHeader.css
+++ b/frontend/src/Author/Index/Table/AuthorIndexHeader.css
@@ -18,7 +18,7 @@
flex-grow: 1;
}
-.artistType {
+.authorType {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
flex: 0 0 100px;
@@ -31,8 +31,8 @@
flex: 1 0 125px;
}
-.nextAlbum,
-.lastAlbum,
+.nextBook,
+.lastBook,
.added,
.genres {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
@@ -40,20 +40,20 @@
flex: 0 0 180px;
}
-.albumCount {
+.bookCount {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
flex: 0 0 100px;
}
-.trackProgress,
-.latestAlbum {
+.bookProgress,
+.latestBook {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
flex: 0 0 150px;
}
-.trackCount {
+.bookCount {
composes: headerCell from '~Components/Table/VirtualTableHeaderCell.css';
flex: 0 0 130px;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexHeader.js b/frontend/src/Author/Index/Table/AuthorIndexHeader.js
similarity index 89%
rename from frontend/src/Artist/Index/Table/ArtistIndexHeader.js
rename to frontend/src/Author/Index/Table/AuthorIndexHeader.js
index aed47bafa..74e3eded9 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexHeader.js
+++ b/frontend/src/Author/Index/Table/AuthorIndexHeader.js
@@ -7,10 +7,10 @@ import VirtualTableHeader from 'Components/Table/VirtualTableHeader';
import VirtualTableHeaderCell from 'Components/Table/VirtualTableHeaderCell';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import hasGrowableColumns from './hasGrowableColumns';
-import ArtistIndexTableOptionsConnector from './ArtistIndexTableOptionsConnector';
-import styles from './ArtistIndexHeader.css';
+import AuthorIndexTableOptionsConnector from './AuthorIndexTableOptionsConnector';
+import styles from './AuthorIndexHeader.css';
-function ArtistIndexHeader(props) {
+function AuthorIndexHeader(props) {
const {
showBanners,
columns,
@@ -45,7 +45,7 @@ function ArtistIndexHeader(props) {
{
- this.setState({ isEditArtistModalOpen: true });
+ onEditAuthorPress = () => {
+ this.setState({ isEditAuthorModalOpen: true });
}
- onEditArtistModalClose = () => {
- this.setState({ isEditArtistModalOpen: false });
+ onEditAuthorModalClose = () => {
+ this.setState({ isEditAuthorModalOpen: false });
}
- onDeleteArtistPress = () => {
+ onDeleteAuthorPress = () => {
this.setState({
- isEditArtistModalOpen: false,
- isDeleteArtistModalOpen: true
+ isEditAuthorModalOpen: false,
+ isDeleteAuthorModalOpen: true
});
}
- onDeleteArtistModalClose = () => {
- this.setState({ isDeleteArtistModalOpen: false });
+ onDeleteAuthorModalClose = () => {
+ this.setState({ isDeleteAuthorModalOpen: false });
}
onUseSceneNumberingChange = () => {
@@ -80,13 +80,13 @@ class ArtistIndexRow extends Component {
id,
monitored,
status,
- artistName,
+ authorName,
titleSlug,
- artistType,
+ authorType,
qualityProfile,
metadataProfile,
- nextAlbum,
- lastAlbum,
+ nextBook,
+ lastBook,
added,
statistics,
genres,
@@ -97,24 +97,23 @@ class ArtistIndexRow extends Component {
showBanners,
showSearchAction,
columns,
- isRefreshingArtist,
- isSearchingArtist,
- onRefreshArtistPress,
+ isRefreshingAuthor,
+ isSearchingAuthor,
+ onRefreshAuthorPress,
onSearchPress
} = this.props;
const {
- albumCount,
- trackCount,
- trackFileCount,
- totalTrackCount,
+ bookCount,
+ bookFileCount,
+ totalBookCount,
sizeOnDisk
} = statistics;
const {
hasBannerError,
- isEditArtistModalOpen,
- isDeleteArtistModalOpen
+ isEditAuthorModalOpen,
+ isDeleteAuthorModalOpen
} = this.state;
return (
@@ -132,10 +131,10 @@ class ArtistIndexRow extends Component {
if (name === 'status') {
return (
-
-
- {artistName}
+ {authorName}
}
:
-
}
);
}
- if (name === 'artistType') {
+ if (name === 'authorType') {
return (
- {artistType}
+ {authorType}
);
}
@@ -218,17 +217,17 @@ class ArtistIndexRow extends Component {
);
}
- if (name === 'nextAlbum') {
- if (nextAlbum) {
+ if (name === 'nextBook') {
+ if (nextBook) {
return (
-
);
@@ -243,17 +242,17 @@ class ArtistIndexRow extends Component {
);
}
- if (name === 'lastAlbum') {
- if (lastAlbum) {
+ if (name === 'lastBook') {
+ if (lastBook) {
return (
-
);
@@ -279,19 +278,8 @@ class ArtistIndexRow extends Component {
);
}
- if (name === 'albumCount') {
- return (
-
- {albumCount}
-
- );
- }
-
- if (name === 'trackProgress') {
- const progress = trackCount ? trackFileCount / trackCount * 100 : 100;
+ if (name === 'bookProgress') {
+ const progress = bookCount ? bookFileCount / bookCount * 100 : 100;
return (
);
}
- if (name === 'trackCount') {
- return (
-
- {totalTrackCount}
-
- );
- }
-
if (name === 'path') {
return (
{
@@ -402,16 +379,16 @@ class ArtistIndexRow extends Component {
}
);
@@ -421,37 +398,37 @@ class ArtistIndexRow extends Component {
})
}
-
-
>
);
}
}
-ArtistIndexRow.propTypes = {
+AuthorIndexRow.propTypes = {
id: PropTypes.number.isRequired,
monitored: PropTypes.bool.isRequired,
status: PropTypes.string.isRequired,
- artistName: PropTypes.string.isRequired,
+ authorName: PropTypes.string.isRequired,
titleSlug: PropTypes.string.isRequired,
- artistType: PropTypes.string,
+ authorType: PropTypes.string,
qualityProfile: PropTypes.object.isRequired,
metadataProfile: PropTypes.object.isRequired,
- nextAlbum: PropTypes.object,
- lastAlbum: PropTypes.object,
+ nextBook: PropTypes.object,
+ lastBook: PropTypes.object,
added: PropTypes.string,
statistics: PropTypes.object.isRequired,
- latestAlbum: PropTypes.object,
+ latestBook: PropTypes.object,
path: PropTypes.string.isRequired,
genres: PropTypes.arrayOf(PropTypes.string).isRequired,
ratings: PropTypes.object.isRequired,
@@ -460,21 +437,20 @@ ArtistIndexRow.propTypes = {
showBanners: PropTypes.bool.isRequired,
showSearchAction: PropTypes.bool.isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
- isRefreshingArtist: PropTypes.bool.isRequired,
- isSearchingArtist: PropTypes.bool.isRequired,
- onRefreshArtistPress: PropTypes.func.isRequired,
+ isRefreshingAuthor: PropTypes.bool.isRequired,
+ isSearchingAuthor: PropTypes.bool.isRequired,
+ onRefreshAuthorPress: PropTypes.func.isRequired,
onSearchPress: PropTypes.func.isRequired
};
-ArtistIndexRow.defaultProps = {
+AuthorIndexRow.defaultProps = {
statistics: {
- albumCount: 0,
- trackCount: 0,
- trackFileCount: 0,
- totalTrackCount: 0
+ bookCount: 0,
+ bookFileCount: 0,
+ totalBookCount: 0
},
genres: [],
tags: []
};
-export default ArtistIndexRow;
+export default AuthorIndexRow;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTable.css b/frontend/src/Author/Index/Table/AuthorIndexTable.css
similarity index 100%
rename from frontend/src/Artist/Index/Table/ArtistIndexTable.css
rename to frontend/src/Author/Index/Table/AuthorIndexTable.css
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTable.js b/frontend/src/Author/Index/Table/AuthorIndexTable.js
similarity index 80%
rename from frontend/src/Artist/Index/Table/ArtistIndexTable.js
rename to frontend/src/Author/Index/Table/AuthorIndexTable.js
index 426c61a59..5ab6f9d1b 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexTable.js
+++ b/frontend/src/Author/Index/Table/AuthorIndexTable.js
@@ -4,12 +4,12 @@ import getIndexOfFirstCharacter from 'Utilities/Array/getIndexOfFirstCharacter';
import { sortDirections } from 'Helpers/Props';
import VirtualTable from 'Components/Table/VirtualTable';
import VirtualTableRow from 'Components/Table/VirtualTableRow';
-import ArtistIndexItemConnector from 'Artist/Index/ArtistIndexItemConnector';
-import ArtistIndexHeaderConnector from './ArtistIndexHeaderConnector';
-import ArtistIndexRow from './ArtistIndexRow';
-import styles from './ArtistIndexTable.css';
+import AuthorIndexItemConnector from 'Author/Index/AuthorIndexItemConnector';
+import AuthorIndexHeaderConnector from './AuthorIndexHeaderConnector';
+import AuthorIndexRow from './AuthorIndexRow';
+import styles from './AuthorIndexTable.css';
-class ArtistIndexTable extends Component {
+class AuthorIndexTable extends Component {
//
// Lifecycle
@@ -50,21 +50,21 @@ class ArtistIndexTable extends Component {
showBanners
} = this.props;
- const artist = items[rowIndex];
+ const author = items[rowIndex];
return (
-
@@ -97,7 +97,7 @@ class ArtistIndexTable extends Component {
overscanRowCount={2}
rowRenderer={this.rowRenderer}
header={
- state.app.dimensions,
- (state) => state.artistIndex.tableOptions,
- (state) => state.artistIndex.columns,
+ (state) => state.authorIndex.tableOptions,
+ (state) => state.authorIndex.columns,
(dimensions, tableOptions, columns) => {
return {
isSmallScreen: dimensions.isSmallScreen,
@@ -21,9 +21,9 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onSortPress(sortKey) {
- dispatch(setArtistSort({ sortKey }));
+ dispatch(setAuthorSort({ sortKey }));
}
};
}
-export default connect(createMapStateToProps, createMapDispatchToProps)(ArtistIndexTable);
+export default connect(createMapStateToProps, createMapDispatchToProps)(AuthorIndexTable);
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTableOptions.js b/frontend/src/Author/Index/Table/AuthorIndexTableOptions.js
similarity index 94%
rename from frontend/src/Artist/Index/Table/ArtistIndexTableOptions.js
rename to frontend/src/Author/Index/Table/AuthorIndexTableOptions.js
index 110a024e4..6963db3d7 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexTableOptions.js
+++ b/frontend/src/Author/Index/Table/AuthorIndexTableOptions.js
@@ -5,7 +5,7 @@ import FormGroup from 'Components/Form/FormGroup';
import FormLabel from 'Components/Form/FormLabel';
import FormInputGroup from 'Components/Form/FormInputGroup';
-class ArtistIndexTableOptions extends Component {
+class AuthorIndexTableOptions extends Component {
//
// Lifecycle
@@ -91,10 +91,10 @@ class ArtistIndexTableOptions extends Component {
}
}
-ArtistIndexTableOptions.propTypes = {
+AuthorIndexTableOptions.propTypes = {
showBanners: PropTypes.bool.isRequired,
showSearchAction: PropTypes.bool.isRequired,
onTableOptionChange: PropTypes.func.isRequired
};
-export default ArtistIndexTableOptions;
+export default AuthorIndexTableOptions;
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexTableOptionsConnector.js b/frontend/src/Author/Index/Table/AuthorIndexTableOptionsConnector.js
similarity index 55%
rename from frontend/src/Artist/Index/Table/ArtistIndexTableOptionsConnector.js
rename to frontend/src/Author/Index/Table/AuthorIndexTableOptionsConnector.js
index 0a1607cf2..0bae4b2dc 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexTableOptionsConnector.js
+++ b/frontend/src/Author/Index/Table/AuthorIndexTableOptionsConnector.js
@@ -1,14 +1,14 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
-import ArtistIndexTableOptions from './ArtistIndexTableOptions';
+import AuthorIndexTableOptions from './AuthorIndexTableOptions';
function createMapStateToProps() {
return createSelector(
- (state) => state.artistIndex.tableOptions,
+ (state) => state.authorIndex.tableOptions,
(tableOptions) => {
return tableOptions;
}
);
}
-export default connect(createMapStateToProps)(ArtistIndexTableOptions);
+export default connect(createMapStateToProps)(AuthorIndexTableOptions);
diff --git a/frontend/src/Artist/Index/Table/ArtistStatusCell.css b/frontend/src/Author/Index/Table/AuthorStatusCell.css
similarity index 100%
rename from frontend/src/Artist/Index/Table/ArtistStatusCell.css
rename to frontend/src/Author/Index/Table/AuthorStatusCell.css
diff --git a/frontend/src/Artist/Index/Table/ArtistStatusCell.js b/frontend/src/Author/Index/Table/AuthorStatusCell.js
similarity index 67%
rename from frontend/src/Artist/Index/Table/ArtistStatusCell.js
rename to frontend/src/Author/Index/Table/AuthorStatusCell.js
index 26fde0e12..8cb12c03e 100644
--- a/frontend/src/Artist/Index/Table/ArtistStatusCell.js
+++ b/frontend/src/Author/Index/Table/AuthorStatusCell.js
@@ -3,19 +3,19 @@ import React from 'react';
import { icons } from 'Helpers/Props';
import Icon from 'Components/Icon';
import VirtualTableRowCell from 'Components/Table/Cells/TableRowCell';
-import styles from './ArtistStatusCell.css';
+import styles from './AuthorStatusCell.css';
-function ArtistStatusCell(props) {
+function AuthorStatusCell(props) {
const {
className,
- artistType,
+ authorType,
monitored,
status,
component: Component,
...otherProps
} = props;
- const endedString = artistType === 'Person' ? 'Deceased' : 'Ended';
+ const endedString = authorType === 'Person' ? 'Deceased' : 'Ended';
return (
);
}
-ArtistStatusCell.propTypes = {
+AuthorStatusCell.propTypes = {
className: PropTypes.string.isRequired,
- artistType: PropTypes.string,
+ authorType: PropTypes.string,
monitored: PropTypes.bool.isRequired,
status: PropTypes.string.isRequired,
component: PropTypes.elementType
};
-ArtistStatusCell.defaultProps = {
+AuthorStatusCell.defaultProps = {
className: styles.status,
component: VirtualTableRowCell
};
-export default ArtistStatusCell;
+export default AuthorStatusCell;
diff --git a/frontend/src/Artist/Index/Table/hasGrowableColumns.js b/frontend/src/Author/Index/Table/hasGrowableColumns.js
similarity index 100%
rename from frontend/src/Artist/Index/Table/hasGrowableColumns.js
rename to frontend/src/Author/Index/Table/hasGrowableColumns.js
diff --git a/frontend/src/Artist/MoveArtist/MoveArtistModal.css b/frontend/src/Author/MoveAuthor/MoveAuthorModal.css
similarity index 100%
rename from frontend/src/Artist/MoveArtist/MoveArtistModal.css
rename to frontend/src/Author/MoveAuthor/MoveAuthorModal.css
diff --git a/frontend/src/Artist/MoveArtist/MoveArtistModal.js b/frontend/src/Author/MoveAuthor/MoveAuthorModal.js
similarity index 82%
rename from frontend/src/Artist/MoveArtist/MoveArtistModal.js
rename to frontend/src/Author/MoveAuthor/MoveAuthorModal.js
index 3f78187ff..4141c94de 100644
--- a/frontend/src/Artist/MoveArtist/MoveArtistModal.js
+++ b/frontend/src/Author/MoveAuthor/MoveAuthorModal.js
@@ -7,16 +7,16 @@ 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 styles from './MoveArtistModal.css';
+import styles from './MoveAuthorModal.css';
-function MoveArtistModal(props) {
+function MoveAuthorModal(props) {
const {
originalPath,
destinationPath,
destinationRootFolder,
isOpen,
onSavePress,
- onMoveArtistPress
+ onMoveAuthorPress
} = props;
if (
@@ -46,8 +46,8 @@ function MoveArtistModal(props) {
{
destinationRootFolder ?
- `Would you like to move the artist folders to '${destinationRootFolder}'?` :
- `Would you like to move the artist files from '${originalPath}' to '${destinationPath}'?`
+ `Would you like to move the author folders to '${destinationRootFolder}'?` :
+ `Would you like to move the author files from '${originalPath}' to '${destinationPath}'?`
}
@@ -61,7 +61,7 @@ function MoveArtistModal(props) {
@@ -71,13 +71,13 @@ function MoveArtistModal(props) {
);
}
-MoveArtistModal.propTypes = {
+MoveAuthorModal.propTypes = {
originalPath: PropTypes.string,
destinationPath: PropTypes.string,
destinationRootFolder: PropTypes.string,
isOpen: PropTypes.bool.isRequired,
onSavePress: PropTypes.func.isRequired,
- onMoveArtistPress: PropTypes.func.isRequired
+ onMoveAuthorPress: PropTypes.func.isRequired
};
-export default MoveArtistModal;
+export default MoveAuthorModal;
diff --git a/frontend/src/Artist/NoArtist.css b/frontend/src/Author/NoAuthor.css
similarity index 100%
rename from frontend/src/Artist/NoArtist.css
rename to frontend/src/Author/NoAuthor.css
diff --git a/frontend/src/Artist/NoArtist.js b/frontend/src/Author/NoAuthor.js
similarity index 90%
rename from frontend/src/Artist/NoArtist.js
rename to frontend/src/Author/NoAuthor.js
index 0615fe058..edbcf70fd 100644
--- a/frontend/src/Artist/NoArtist.js
+++ b/frontend/src/Author/NoAuthor.js
@@ -2,9 +2,9 @@ import PropTypes from 'prop-types';
import React from 'react';
import { kinds } from 'Helpers/Props';
import Button from 'Components/Link/Button';
-import styles from './NoArtist.css';
+import styles from './NoAuthor.css';
-function NoArtist(props) {
+function NoAuthor(props) {
const { totalItems } = props;
if (totalItems > 0) {
@@ -44,8 +44,8 @@ function NoArtist(props) {
);
}
-NoArtist.propTypes = {
+NoAuthor.propTypes = {
totalItems: PropTypes.number.isRequired
};
-export default NoArtist;
+export default NoAuthor;
diff --git a/frontend/src/Album/AlbumCover.js b/frontend/src/Book/BookCover.js
similarity index 94%
rename from frontend/src/Album/AlbumCover.js
rename to frontend/src/Book/BookCover.js
index 538fa5db8..22fde5ae4 100644
--- a/frontend/src/Album/AlbumCover.js
+++ b/frontend/src/Book/BookCover.js
@@ -1,12 +1,12 @@
import PropTypes from 'prop-types';
import React from 'react';
-import ArtistImage from 'Artist/ArtistImage';
+import AuthorImage from 'Author/AuthorImage';
const coverPlaceholder = 'data:image/png;base64,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';
-function AlbumCover(props) {
+function BookCover(props) {
return (
-
+
-
@@ -69,12 +69,12 @@ class AlbumSearchCell extends Component {
}
}
-AlbumSearchCell.propTypes = {
+BookSearchCell.propTypes = {
bookId: PropTypes.number.isRequired,
authorId: PropTypes.number.isRequired,
- albumTitle: PropTypes.string.isRequired,
+ bookTitle: PropTypes.string.isRequired,
isSearching: PropTypes.bool.isRequired,
onSearchPress: PropTypes.func.isRequired
};
-export default AlbumSearchCell;
+export default BookSearchCell;
diff --git a/frontend/src/Album/AlbumSearchCellConnector.js b/frontend/src/Book/BookSearchCellConnector.js
similarity index 70%
rename from frontend/src/Album/AlbumSearchCellConnector.js
rename to frontend/src/Book/BookSearchCellConnector.js
index 3182d159e..46276e027 100644
--- a/frontend/src/Album/AlbumSearchCellConnector.js
+++ b/frontend/src/Book/BookSearchCellConnector.js
@@ -1,22 +1,22 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { isCommandExecuting } from 'Utilities/Command';
-import createArtistSelector from 'Store/Selectors/createArtistSelector';
+import createAuthorSelector from 'Store/Selectors/createAuthorSelector';
import createCommandsSelector from 'Store/Selectors/createCommandsSelector';
import { executeCommand } from 'Store/Actions/commandActions';
import * as commandNames from 'Commands/commandNames';
-import AlbumSearchCell from './AlbumSearchCell';
+import BookSearchCell from './BookSearchCell';
function createMapStateToProps() {
return createSelector(
(state, { bookId }) => bookId,
- createArtistSelector(),
+ createAuthorSelector(),
createCommandsSelector(),
- (bookId, artist, commands) => {
+ (bookId, author, commands) => {
const isSearching = commands.some((command) => {
- const albumSearch = command.name === commandNames.ALBUM_SEARCH;
+ const bookSearch = command.name === commandNames.BOOK_SEARCH;
- if (!albumSearch) {
+ if (!bookSearch) {
return false;
}
@@ -27,8 +27,8 @@ function createMapStateToProps() {
});
return {
- artistMonitored: artist.monitored,
- artistType: artist.artistType,
+ authorMonitored: author.monitored,
+ authorType: author.authorType,
isSearching
};
}
@@ -39,11 +39,11 @@ function createMapDispatchToProps(dispatch, props) {
return {
onSearchPress(name, path) {
dispatch(executeCommand({
- name: commandNames.ALBUM_SEARCH,
+ name: commandNames.BOOK_SEARCH,
bookIds: [props.bookId]
}));
}
};
}
-export default connect(createMapStateToProps, createMapDispatchToProps)(AlbumSearchCell);
+export default connect(createMapStateToProps, createMapDispatchToProps)(BookSearchCell);
diff --git a/frontend/src/Album/AlbumTitleLink.css b/frontend/src/Book/BookTitleLink.css
similarity index 100%
rename from frontend/src/Album/AlbumTitleLink.css
rename to frontend/src/Book/BookTitleLink.css
diff --git a/frontend/src/Album/AlbumTitleLink.js b/frontend/src/Book/BookTitleLink.js
similarity index 75%
rename from frontend/src/Album/AlbumTitleLink.js
rename to frontend/src/Book/BookTitleLink.js
index 8fe86db47..1f13a922b 100644
--- a/frontend/src/Album/AlbumTitleLink.js
+++ b/frontend/src/Book/BookTitleLink.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import Link from 'Components/Link/Link';
-function AlbumTitleLink({ titleSlug, title, disambiguation }) {
+function BookTitleLink({ titleSlug, title, disambiguation }) {
const link = `/book/${titleSlug}`;
return (
@@ -12,10 +12,10 @@ function AlbumTitleLink({ titleSlug, title, disambiguation }) {
);
}
-AlbumTitleLink.propTypes = {
+BookTitleLink.propTypes = {
titleSlug: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
disambiguation: PropTypes.string
};
-export default AlbumTitleLink;
+export default BookTitleLink;
diff --git a/frontend/src/Album/Delete/DeleteAlbumModal.js b/frontend/src/Book/Delete/DeleteBookModal.js
similarity index 69%
rename from frontend/src/Album/Delete/DeleteAlbumModal.js
rename to frontend/src/Book/Delete/DeleteBookModal.js
index a18644d64..b955b0775 100644
--- a/frontend/src/Album/Delete/DeleteAlbumModal.js
+++ b/frontend/src/Book/Delete/DeleteBookModal.js
@@ -2,9 +2,9 @@ import PropTypes from 'prop-types';
import React from 'react';
import { sizes } from 'Helpers/Props';
import Modal from 'Components/Modal/Modal';
-import DeleteAlbumModalContentConnector from './DeleteAlbumModalContentConnector';
+import DeleteBookModalContentConnector from './DeleteBookModalContentConnector';
-function DeleteAlbumModal(props) {
+function DeleteBookModal(props) {
const {
isOpen,
onModalClose,
@@ -17,7 +17,7 @@ function DeleteAlbumModal(props) {
size={sizes.MEDIUM}
onModalClose={onModalClose}
>
-
@@ -25,9 +25,9 @@ function DeleteAlbumModal(props) {
);
}
-DeleteAlbumModal.propTypes = {
+DeleteBookModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
onModalClose: PropTypes.func.isRequired
};
-export default DeleteAlbumModal;
+export default DeleteBookModal;
diff --git a/frontend/src/Artist/Delete/DeleteArtistModalContent.css b/frontend/src/Book/Delete/DeleteBookModalContent.css
similarity index 100%
rename from frontend/src/Artist/Delete/DeleteArtistModalContent.css
rename to frontend/src/Book/Delete/DeleteBookModalContent.css
diff --git a/frontend/src/Album/Delete/DeleteAlbumModalContent.js b/frontend/src/Book/Delete/DeleteBookModalContent.js
similarity index 78%
rename from frontend/src/Album/Delete/DeleteAlbumModalContent.js
rename to frontend/src/Book/Delete/DeleteBookModalContent.js
index eb2ca2dd9..70fb2767e 100644
--- a/frontend/src/Album/Delete/DeleteAlbumModalContent.js
+++ b/frontend/src/Book/Delete/DeleteBookModalContent.js
@@ -10,9 +10,9 @@ 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 styles from './DeleteAlbumModalContent.css';
+import styles from './DeleteBookModalContent.css';
-class DeleteAlbumModalContent extends Component {
+class DeleteBookModalContent extends Component {
//
// Lifecycle
@@ -37,7 +37,7 @@ class DeleteAlbumModalContent extends Component {
this.setState({ addImportListExclusion: value });
}
- onDeleteAlbumConfirmed = () => {
+ onDeleteBookConfirmed = () => {
const deleteFiles = this.state.deleteFiles;
const addImportListExclusion = this.state.addImportListExclusion;
@@ -57,15 +57,15 @@ class DeleteAlbumModalContent extends Component {
} = this.props;
const {
- trackFileCount,
+ bookFileCount,
sizeOnDisk
} = statistics;
const deleteFiles = this.state.deleteFiles;
const addImportListExclusion = this.state.addImportListExclusion;
- const deleteFilesLabel = `Delete ${trackFileCount} Track Files`;
- const deleteFilesHelpText = 'Delete the track files';
+ const deleteFilesLabel = `Delete ${bookFileCount} Book Files`;
+ const deleteFilesHelpText = 'Delete the book files';
return (
@@ -106,18 +106,18 @@ class DeleteAlbumModalContent extends Component {
{
!addImportListExclusion &&
-
If you don't add an import list exclusion and the artist has a metadata profile other than 'None' then this album may be re-added during the next artist refresh.
+
If you don't add an import list exclusion and the author has a metadata profile other than 'None' then this book may be re-added during the next author refresh.