mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-30 03:38:26 -07:00
[UI Work] Artist Detail Page, Album Studio, Wanted, NavSearch, Rename
This commit is contained in:
parent
456ead09da
commit
0054226307
93 changed files with 590 additions and 603 deletions
|
@ -108,7 +108,7 @@ class CutoffUnmet extends Component {
|
|||
items,
|
||||
columns,
|
||||
totalRecords,
|
||||
isSearchingForEpisodes,
|
||||
isSearchingForAlbums,
|
||||
isSearchingForCutoffUnmetEpisodes,
|
||||
isSaving,
|
||||
filterKey,
|
||||
|
@ -133,7 +133,7 @@ class CutoffUnmet extends Component {
|
|||
label="Search Selected"
|
||||
iconName={icons.SEARCH}
|
||||
isDisabled={!itemsSelected}
|
||||
isSpinning={isSearchingForEpisodes}
|
||||
isSpinning={isSearchingForAlbums}
|
||||
onPress={this.onSearchSelectedPress}
|
||||
/>
|
||||
|
||||
|
@ -271,7 +271,7 @@ CutoffUnmet.propTypes = {
|
|||
items: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
totalRecords: PropTypes.number,
|
||||
isSearchingForEpisodes: PropTypes.bool.isRequired,
|
||||
isSearchingForAlbums: PropTypes.bool.isRequired,
|
||||
isSearchingForCutoffUnmetEpisodes: PropTypes.bool.isRequired,
|
||||
isSaving: PropTypes.bool.isRequired,
|
||||
filterKey: PropTypes.string,
|
||||
|
|
|
@ -18,11 +18,11 @@ function createMapStateToProps() {
|
|||
(state) => state.wanted.cutoffUnmet,
|
||||
createCommandsSelector(),
|
||||
(cutoffUnmet, commands) => {
|
||||
const isSearchingForEpisodes = _.some(commands, { name: commandNames.EPISODE_SEARCH });
|
||||
const isSearchingForAlbums = _.some(commands, { name: commandNames.EPISODE_SEARCH });
|
||||
const isSearchingForCutoffUnmetEpisodes = _.some(commands, { name: commandNames.CUTOFF_UNMET_EPISODE_SEARCH });
|
||||
|
||||
return {
|
||||
isSearchingForEpisodes,
|
||||
isSearchingForAlbums,
|
||||
isSearchingForCutoffUnmetEpisodes,
|
||||
isSaving: _.some(cutoffUnmet.items, { isSaving: true }),
|
||||
...cutoffUnmet
|
||||
|
|
|
@ -117,8 +117,8 @@ class Missing extends Component {
|
|||
items,
|
||||
columns,
|
||||
totalRecords,
|
||||
isSearchingForEpisodes,
|
||||
isSearchingForMissingEpisodes,
|
||||
isSearchingForAlbums,
|
||||
isSearchingForMissingAlbums,
|
||||
isSaving,
|
||||
filterKey,
|
||||
filterValue,
|
||||
|
@ -143,7 +143,7 @@ class Missing extends Component {
|
|||
label="Search Selected"
|
||||
iconName={icons.SEARCH}
|
||||
isDisabled={!itemsSelected}
|
||||
isSpinning={isSearchingForEpisodes}
|
||||
isSpinning={isSearchingForAlbums}
|
||||
onPress={this.onSearchSelectedPress}
|
||||
/>
|
||||
|
||||
|
@ -160,7 +160,7 @@ class Missing extends Component {
|
|||
<PageToolbarButton
|
||||
label="Search All"
|
||||
iconName={icons.SEARCH}
|
||||
isSpinning={isSearchingForMissingEpisodes}
|
||||
isSpinning={isSearchingForMissingAlbums}
|
||||
onPress={this.onSearchAllMissingPress}
|
||||
/>
|
||||
|
||||
|
@ -258,11 +258,11 @@ class Missing extends Component {
|
|||
<ConfirmModal
|
||||
isOpen={isConfirmSearchAllMissingModalOpen}
|
||||
kind={kinds.DANGER}
|
||||
title="Search for all missing episodes"
|
||||
title="Search for all missing albums"
|
||||
message={
|
||||
<div>
|
||||
<div>
|
||||
Are you sure you want to search for all {totalRecords} missing episodes?
|
||||
Are you sure you want to search for all {totalRecords} missing albums?
|
||||
</div>
|
||||
<div>
|
||||
This cannot be cancelled once started without restarting Lidarr.
|
||||
|
@ -293,8 +293,8 @@ Missing.propTypes = {
|
|||
items: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
totalRecords: PropTypes.number,
|
||||
isSearchingForEpisodes: PropTypes.bool.isRequired,
|
||||
isSearchingForMissingEpisodes: PropTypes.bool.isRequired,
|
||||
isSearchingForAlbums: PropTypes.bool.isRequired,
|
||||
isSearchingForMissingAlbums: PropTypes.bool.isRequired,
|
||||
isSaving: PropTypes.bool.isRequired,
|
||||
filterKey: PropTypes.string,
|
||||
filterValue: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),
|
||||
|
|
|
@ -17,12 +17,12 @@ function createMapStateToProps() {
|
|||
(state) => state.wanted.missing,
|
||||
createCommandsSelector(),
|
||||
(missing, commands) => {
|
||||
const isSearchingForEpisodes = _.some(commands, { name: commandNames.EPISODE_SEARCH });
|
||||
const isSearchingForMissingEpisodes = _.some(commands, { name: commandNames.MISSING_EPISODE_SEARCH });
|
||||
const isSearchingForAlbums = _.some(commands, { name: commandNames.EPISODE_SEARCH });
|
||||
const isSearchingForMissingAlbums = _.some(commands, { name: commandNames.MISSING_EPISODE_SEARCH });
|
||||
|
||||
return {
|
||||
isSearchingForEpisodes,
|
||||
isSearchingForMissingEpisodes,
|
||||
isSearchingForAlbums,
|
||||
isSearchingForMissingAlbums,
|
||||
isSaving: _.some(missing.items, { isSaving: true }),
|
||||
...missing
|
||||
};
|
||||
|
|
|
@ -15,15 +15,15 @@ import styles from './MissingRow.css';
|
|||
function MissingRow(props) {
|
||||
const {
|
||||
id,
|
||||
episodeFileId,
|
||||
series,
|
||||
seasonNumber,
|
||||
episodeNumber,
|
||||
absoluteEpisodeNumber,
|
||||
sceneSeasonNumber,
|
||||
sceneEpisodeNumber,
|
||||
sceneAbsoluteEpisodeNumber,
|
||||
airDateUtc,
|
||||
// episodeFileId,
|
||||
artist,
|
||||
// seasonNumber,
|
||||
// episodeNumber,
|
||||
// absoluteEpisodeNumber,
|
||||
// sceneSeasonNumber,
|
||||
// sceneEpisodeNumber,
|
||||
// sceneAbsoluteEpisodeNumber,
|
||||
releaseDate,
|
||||
title,
|
||||
isSelected,
|
||||
columns,
|
||||
|
@ -49,42 +49,42 @@ function MissingRow(props) {
|
|||
return null;
|
||||
}
|
||||
|
||||
if (name === 'series.sortTitle') {
|
||||
if (name === 'artist.sortName') {
|
||||
return (
|
||||
<TableRowCell key={name}>
|
||||
<ArtistNameLink
|
||||
titleSlug={series.titleSlug}
|
||||
title={series.title}
|
||||
nameSlug={artist.nameSlug}
|
||||
artistName={artist.artistName}
|
||||
/>
|
||||
</TableRowCell>
|
||||
);
|
||||
}
|
||||
|
||||
if (name === 'episode') {
|
||||
return (
|
||||
<TableRowCell
|
||||
key={name}
|
||||
className={styles.episode}
|
||||
>
|
||||
<SeasonEpisodeNumber
|
||||
seasonNumber={seasonNumber}
|
||||
episodeNumber={episodeNumber}
|
||||
absoluteEpisodeNumber={absoluteEpisodeNumber}
|
||||
seriesType={series.seriesType}
|
||||
sceneSeasonNumber={sceneSeasonNumber}
|
||||
sceneEpisodeNumber={sceneEpisodeNumber}
|
||||
sceneAbsoluteEpisodeNumber={sceneAbsoluteEpisodeNumber}
|
||||
/>
|
||||
</TableRowCell>
|
||||
);
|
||||
}
|
||||
// if (name === 'episode') {
|
||||
// return (
|
||||
// <TableRowCell
|
||||
// key={name}
|
||||
// className={styles.episode}
|
||||
// >
|
||||
// <SeasonEpisodeNumber
|
||||
// seasonNumber={seasonNumber}
|
||||
// episodeNumber={episodeNumber}
|
||||
// absoluteEpisodeNumber={absoluteEpisodeNumber}
|
||||
// seriesType={series.seriesType}
|
||||
// sceneSeasonNumber={sceneSeasonNumber}
|
||||
// sceneEpisodeNumber={sceneEpisodeNumber}
|
||||
// sceneAbsoluteEpisodeNumber={sceneAbsoluteEpisodeNumber}
|
||||
// />
|
||||
// </TableRowCell>
|
||||
// );
|
||||
// }
|
||||
|
||||
if (name === 'episodeTitle') {
|
||||
if (name === 'albumTitle') {
|
||||
return (
|
||||
<TableRowCell key={name}>
|
||||
<EpisodeTitleLink
|
||||
episodeId={id}
|
||||
artistId={series.id}
|
||||
artistId={artist.id}
|
||||
episodeEntity={episodeEntities.WANTED_MISSING}
|
||||
episodeTitle={title}
|
||||
showOpenSeriesButton={true}
|
||||
|
@ -93,36 +93,36 @@ function MissingRow(props) {
|
|||
);
|
||||
}
|
||||
|
||||
if (name === 'airDateUtc') {
|
||||
if (name === 'releaseDate') {
|
||||
return (
|
||||
<RelativeDateCellConnector
|
||||
key={name}
|
||||
date={airDateUtc}
|
||||
date={releaseDate}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (name === 'status') {
|
||||
return (
|
||||
<TableRowCell
|
||||
key={name}
|
||||
className={styles.status}
|
||||
>
|
||||
<EpisodeStatusConnector
|
||||
episodeId={id}
|
||||
episodeFileId={episodeFileId}
|
||||
episodeEntity={episodeEntities.WANTED_MISSING}
|
||||
/>
|
||||
</TableRowCell>
|
||||
);
|
||||
}
|
||||
// if (name === 'status') {
|
||||
// return (
|
||||
// <TableRowCell
|
||||
// key={name}
|
||||
// className={styles.status}
|
||||
// >
|
||||
// <EpisodeStatusConnector
|
||||
// episodeId={id}
|
||||
// episodeFileId={episodeFileId}
|
||||
// episodeEntity={episodeEntities.WANTED_MISSING}
|
||||
// />
|
||||
// </TableRowCell>
|
||||
// );
|
||||
// }
|
||||
|
||||
if (name === 'actions') {
|
||||
return (
|
||||
<EpisodeSearchCellConnector
|
||||
key={name}
|
||||
episodeId={id}
|
||||
artistId={series.id}
|
||||
artistId={artist.id}
|
||||
episodeTitle={title}
|
||||
episodeEntity={episodeEntities.WANTED_MISSING}
|
||||
showOpenSeriesButton={true}
|
||||
|
@ -137,15 +137,15 @@ function MissingRow(props) {
|
|||
|
||||
MissingRow.propTypes = {
|
||||
id: PropTypes.number.isRequired,
|
||||
episodeFileId: PropTypes.number,
|
||||
series: PropTypes.object.isRequired,
|
||||
seasonNumber: PropTypes.number.isRequired,
|
||||
episodeNumber: PropTypes.number.isRequired,
|
||||
absoluteEpisodeNumber: PropTypes.number,
|
||||
sceneSeasonNumber: PropTypes.number,
|
||||
sceneEpisodeNumber: PropTypes.number,
|
||||
sceneAbsoluteEpisodeNumber: PropTypes.number,
|
||||
airDateUtc: PropTypes.string.isRequired,
|
||||
// episodeFileId: PropTypes.number,
|
||||
artist: PropTypes.object.isRequired,
|
||||
// seasonNumber: PropTypes.number.isRequired,
|
||||
// episodeNumber: PropTypes.number.isRequired,
|
||||
// absoluteEpisodeNumber: PropTypes.number,
|
||||
// sceneSeasonNumber: PropTypes.number,
|
||||
// sceneEpisodeNumber: PropTypes.number,
|
||||
// sceneAbsoluteEpisodeNumber: PropTypes.number,
|
||||
releaseDate: PropTypes.string.isRequired,
|
||||
title: PropTypes.string.isRequired,
|
||||
isSelected: PropTypes.bool,
|
||||
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue