mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-30 03:38:26 -07:00
[UI Work] Add Artist, Import Artist, Calendar
This commit is contained in:
parent
a747c5f135
commit
77f1d2e64c
109 changed files with 891 additions and 1082 deletions
|
@ -15,7 +15,7 @@ import ModalBody from 'Components/Modal/ModalBody';
|
|||
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||
import Table from 'Components/Table/Table';
|
||||
import TableBody from 'Components/Table/TableBody';
|
||||
import SelectSeriesModal from 'InteractiveImport/Series/SelectSeriesModal';
|
||||
import SelectArtistModal from 'InteractiveImport/Series/SelectArtistModal';
|
||||
import SelectSeasonModal from 'InteractiveImport/Season/SelectSeasonModal';
|
||||
import InteractiveImportRow from './InteractiveImportRow';
|
||||
import styles from './InteractiveImportModalContent.css';
|
||||
|
@ -78,7 +78,7 @@ class InteractiveImportModalContent extends Component {
|
|||
lastToggled: null,
|
||||
selectedState: {},
|
||||
invalidRowsSelected: [],
|
||||
isSelectSeriesModalOpen: false,
|
||||
isSelectArtistModalOpen: false,
|
||||
isSelectSeasonModalOpen: false
|
||||
};
|
||||
}
|
||||
|
@ -127,16 +127,16 @@ class InteractiveImportModalContent extends Component {
|
|||
this.props.onImportModeChange(value);
|
||||
}
|
||||
|
||||
onSelectSeriesPress = () => {
|
||||
this.setState({ isSelectSeriesModalOpen: true });
|
||||
onSelectArtistPress = () => {
|
||||
this.setState({ isSelectArtistModalOpen: true });
|
||||
}
|
||||
|
||||
onSelectSeasonPress = () => {
|
||||
this.setState({ isSelectSeasonModalOpen: true });
|
||||
}
|
||||
|
||||
onSelectSeriesModalClose = () => {
|
||||
this.setState({ isSelectSeriesModalOpen: false });
|
||||
onSelectArtistModalClose = () => {
|
||||
this.setState({ isSelectArtistModalOpen: false });
|
||||
}
|
||||
|
||||
onSelectSeasonModalClose = () => {
|
||||
|
@ -168,7 +168,7 @@ class InteractiveImportModalContent extends Component {
|
|||
allUnselected,
|
||||
selectedState,
|
||||
invalidRowsSelected,
|
||||
isSelectSeriesModalOpen,
|
||||
isSelectArtistModalOpen,
|
||||
isSelectSeasonModalOpen
|
||||
} = this.state;
|
||||
|
||||
|
@ -249,7 +249,7 @@ class InteractiveImportModalContent extends Component {
|
|||
}
|
||||
|
||||
<div className={downloadId ? styles.leftButtons : styles.centerButtons}>
|
||||
<Button onPress={this.onSelectSeriesPress}>
|
||||
<Button onPress={this.onSelectArtistPress}>
|
||||
Select Series
|
||||
</Button>
|
||||
|
||||
|
@ -278,10 +278,10 @@ class InteractiveImportModalContent extends Component {
|
|||
</div>
|
||||
</ModalFooter>
|
||||
|
||||
<SelectSeriesModal
|
||||
isOpen={isSelectSeriesModalOpen}
|
||||
<SelectArtistModal
|
||||
isOpen={isSelectArtistModalOpen}
|
||||
ids={selectedIds}
|
||||
onModalClose={this.onSelectSeriesModalClose}
|
||||
onModalClose={this.onSelectArtistModalClose}
|
||||
/>
|
||||
|
||||
<SelectSeasonModal
|
||||
|
|
|
@ -9,7 +9,7 @@ import TableRowCellButton from 'Components/Table/Cells/TableRowCellButton';
|
|||
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
|
||||
import Popover from 'Components/Tooltip/Popover';
|
||||
import EpisodeQuality from 'Episode/EpisodeQuality';
|
||||
import SelectSeriesModal from 'InteractiveImport/Series/SelectSeriesModal';
|
||||
import SelectArtistModal from 'InteractiveImport/Series/SelectArtistModal';
|
||||
import SelectSeasonModal from 'InteractiveImport/Season/SelectSeasonModal';
|
||||
import SelectEpisodeModal from 'InteractiveImport/Episode/SelectEpisodeModal';
|
||||
import SelectQualityModal from 'InteractiveImport/Quality/SelectQualityModal';
|
||||
|
@ -25,7 +25,7 @@ class InteractiveImportRow extends Component {
|
|||
super(props, context);
|
||||
|
||||
this.state = {
|
||||
isSelectSeriesModalOpen: false,
|
||||
isSelectArtistModalOpen: false,
|
||||
isSelectSeasonModalOpen: false,
|
||||
isSelectEpisodeModalOpen: false,
|
||||
isSelectQualityModalOpen: false
|
||||
|
@ -87,8 +87,8 @@ class InteractiveImportRow extends Component {
|
|||
//
|
||||
// Listeners
|
||||
|
||||
onSelectSeriesPress = () => {
|
||||
this.setState({ isSelectSeriesModalOpen: true });
|
||||
onSelectArtistPress = () => {
|
||||
this.setState({ isSelectArtistModalOpen: true });
|
||||
}
|
||||
|
||||
onSelectSeasonPress = () => {
|
||||
|
@ -103,8 +103,8 @@ class InteractiveImportRow extends Component {
|
|||
this.setState({ isSelectQualityModalOpen: true });
|
||||
}
|
||||
|
||||
onSelectSeriesModalClose = (changed) => {
|
||||
this.setState({ isSelectSeriesModalOpen: false });
|
||||
onSelectArtistModalClose = (changed) => {
|
||||
this.setState({ isSelectArtistModalOpen: false });
|
||||
this.selectRowAfterChange(changed);
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ class InteractiveImportRow extends Component {
|
|||
} = this.props;
|
||||
|
||||
const {
|
||||
isSelectSeriesModalOpen,
|
||||
isSelectArtistModalOpen,
|
||||
isSelectSeasonModalOpen,
|
||||
isSelectEpisodeModalOpen,
|
||||
isSelectQualityModalOpen
|
||||
|
@ -171,7 +171,7 @@ class InteractiveImportRow extends Component {
|
|||
</TableRowCell>
|
||||
|
||||
<TableRowCellButton
|
||||
onPress={this.onSelectSeriesPress}
|
||||
onPress={this.onSelectArtistPress}
|
||||
>
|
||||
{
|
||||
showSeriesPlaceholder ? <InteractiveImportRowCellPlaceholder /> : seriesTitle
|
||||
|
@ -238,10 +238,10 @@ class InteractiveImportRow extends Component {
|
|||
}
|
||||
</TableRowCell>
|
||||
|
||||
<SelectSeriesModal
|
||||
isOpen={isSelectSeriesModalOpen}
|
||||
<SelectArtistModal
|
||||
isOpen={isSelectArtistModalOpen}
|
||||
ids={[id]}
|
||||
onModalClose={this.onSelectSeriesModalClose}
|
||||
onModalClose={this.onSelectArtistModalClose}
|
||||
/>
|
||||
|
||||
<SelectSeasonModal
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import SelectSeriesModalContentConnector from './SelectSeriesModalContentConnector';
|
||||
import SelectArtistModalContentConnector from './SelectArtistModalContentConnector';
|
||||
|
||||
class SelectSeriesModal extends Component {
|
||||
class SelectArtistModal extends Component {
|
||||
|
||||
//
|
||||
// Render
|
||||
|
@ -20,7 +20,7 @@ class SelectSeriesModal extends Component {
|
|||
isOpen={isOpen}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
<SelectSeriesModalContentConnector
|
||||
<SelectArtistModalContentConnector
|
||||
{...otherProps}
|
||||
onModalClose={onModalClose}
|
||||
/>
|
||||
|
@ -29,9 +29,9 @@ class SelectSeriesModal extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
SelectSeriesModal.propTypes = {
|
||||
SelectArtistModal.propTypes = {
|
||||
isOpen: PropTypes.bool.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default SelectSeriesModal;
|
||||
export default SelectArtistModal;
|
|
@ -8,10 +8,10 @@ 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 SelectSeriesRow from './SelectSeriesRow';
|
||||
import styles from './SelectSeriesModalContent.css';
|
||||
import SelectArtistRow from './SelectArtistRow';
|
||||
import styles from './SelectArtistModalContent.css';
|
||||
|
||||
class SelectSeriesModalContent extends Component {
|
||||
class SelectArtistModalContent extends Component {
|
||||
|
||||
//
|
||||
// Lifecycle
|
||||
|
@ -67,7 +67,7 @@ class SelectSeriesModalContent extends Component {
|
|||
items.map((item) => {
|
||||
return item.title.toLowerCase().includes(filter) ?
|
||||
(
|
||||
<SelectSeriesRow
|
||||
<SelectArtistRow
|
||||
key={item.id}
|
||||
id={item.id}
|
||||
title={item.title}
|
||||
|
@ -90,10 +90,10 @@ class SelectSeriesModalContent extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
SelectSeriesModalContent.propTypes = {
|
||||
SelectArtistModalContent.propTypes = {
|
||||
items: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
onSeriesSelect: PropTypes.func.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default SelectSeriesModalContent;
|
||||
export default SelectArtistModalContent;
|
|
@ -5,7 +5,7 @@ import { connect } from 'react-redux';
|
|||
import { createSelector } from 'reselect';
|
||||
import { updateInteractiveImportItem } from 'Store/Actions/interactiveImportActions';
|
||||
import createAllSeriesSelector from 'Store/Selectors/createAllSeriesSelector';
|
||||
import SelectSeriesModalContent from './SelectSeriesModalContent';
|
||||
import SelectArtistModalContent from './SelectArtistModalContent';
|
||||
|
||||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
|
@ -22,7 +22,7 @@ const mapDispatchToProps = {
|
|||
updateInteractiveImportItem
|
||||
};
|
||||
|
||||
class SelectSeriesModalContentConnector extends Component {
|
||||
class SelectArtistModalContentConnector extends Component {
|
||||
|
||||
//
|
||||
// Listeners
|
||||
|
@ -47,7 +47,7 @@ class SelectSeriesModalContentConnector extends Component {
|
|||
|
||||
render() {
|
||||
return (
|
||||
<SelectSeriesModalContent
|
||||
<SelectArtistModalContent
|
||||
{...this.props}
|
||||
onSeriesSelect={this.onSeriesSelect}
|
||||
/>
|
||||
|
@ -55,11 +55,11 @@ class SelectSeriesModalContentConnector extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
SelectSeriesModalContentConnector.propTypes = {
|
||||
SelectArtistModalContentConnector.propTypes = {
|
||||
ids: PropTypes.arrayOf(PropTypes.number).isRequired,
|
||||
items: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
updateInteractiveImportItem: PropTypes.func.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default connect(createMapStateToProps, mapDispatchToProps)(SelectSeriesModalContentConnector);
|
||||
export default connect(createMapStateToProps, mapDispatchToProps)(SelectArtistModalContentConnector);
|
|
@ -1,9 +1,9 @@
|
|||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import Link from 'Components/Link/Link';
|
||||
import styles from './SelectSeriesRow.css';
|
||||
import styles from './SelectArtistRow.css';
|
||||
|
||||
class SelectSeriesRow extends Component {
|
||||
class SelectArtistRow extends Component {
|
||||
|
||||
//
|
||||
// Listeners
|
||||
|
@ -28,10 +28,10 @@ class SelectSeriesRow extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
SelectSeriesRow.propTypes = {
|
||||
SelectArtistRow.propTypes = {
|
||||
id: PropTypes.number.isRequired,
|
||||
title: PropTypes.string.isRequired,
|
||||
onSeriesSelect: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default SelectSeriesRow;
|
||||
export default SelectArtistRow;
|
Loading…
Add table
Add a link
Reference in a new issue