mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-04-21 22:05:38 -04:00
New: Custom Format Language Condition
This commit is contained in:
@@ -66,8 +66,8 @@ const columns = [
|
||||
isVisible: true
|
||||
},
|
||||
{
|
||||
name: 'language',
|
||||
label: 'Language',
|
||||
name: 'languages',
|
||||
label: 'Languages',
|
||||
isSortable: true,
|
||||
isVisible: true
|
||||
},
|
||||
|
||||
+5
-5
@@ -193,7 +193,7 @@ class InteractiveImportModalContentConnector extends Component {
|
||||
episodes,
|
||||
releaseGroup,
|
||||
quality,
|
||||
language,
|
||||
languages,
|
||||
episodeFileId
|
||||
} = item;
|
||||
|
||||
@@ -217,8 +217,8 @@ class InteractiveImportModalContentConnector extends Component {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!language) {
|
||||
this.setState({ interactiveImportErrorMessage: 'Language must be chosen for each selected file' });
|
||||
if (!languages) {
|
||||
this.setState({ interactiveImportErrorMessage: 'Language(s) must be chosen for each selected file' });
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -230,7 +230,7 @@ class InteractiveImportModalContentConnector extends Component {
|
||||
id: episodeFileId,
|
||||
releaseGroup,
|
||||
quality,
|
||||
language
|
||||
languages
|
||||
});
|
||||
|
||||
return;
|
||||
@@ -244,7 +244,7 @@ class InteractiveImportModalContentConnector extends Component {
|
||||
episodeIds: episodes.map((e) => e.id),
|
||||
releaseGroup,
|
||||
quality,
|
||||
language,
|
||||
languages,
|
||||
downloadId: this.props.downloadId,
|
||||
episodeFileId
|
||||
});
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}
|
||||
|
||||
.quality,
|
||||
.language {
|
||||
.languages {
|
||||
composes: cell from '~Components/Table/Cells/TableRowCell.css';
|
||||
|
||||
text-align: center;
|
||||
|
||||
@@ -7,7 +7,7 @@ import TableRowCellButton from 'Components/Table/Cells/TableRowCellButton';
|
||||
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
|
||||
import TableRow from 'Components/Table/TableRow';
|
||||
import Popover from 'Components/Tooltip/Popover';
|
||||
import EpisodeLanguage from 'Episode/EpisodeLanguage';
|
||||
import EpisodeLanguages from 'Episode/EpisodeLanguages';
|
||||
import EpisodeQuality from 'Episode/EpisodeQuality';
|
||||
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
|
||||
import SelectEpisodeModal from 'InteractiveImport/Episode/SelectEpisodeModal';
|
||||
@@ -47,7 +47,7 @@ class InteractiveImportRow extends Component {
|
||||
seasonNumber,
|
||||
episodes,
|
||||
quality,
|
||||
language,
|
||||
languages,
|
||||
episodeFileId,
|
||||
columns
|
||||
} = this.props;
|
||||
@@ -58,7 +58,7 @@ class InteractiveImportRow extends Component {
|
||||
seasonNumber != null &&
|
||||
episodes.length &&
|
||||
quality &&
|
||||
language
|
||||
languages
|
||||
) {
|
||||
this.props.onSelectedChange({
|
||||
id,
|
||||
@@ -79,7 +79,7 @@ class InteractiveImportRow extends Component {
|
||||
seasonNumber,
|
||||
episodes,
|
||||
quality,
|
||||
language,
|
||||
languages,
|
||||
isSelected,
|
||||
onValidRowChange
|
||||
} = this.props;
|
||||
@@ -89,7 +89,7 @@ class InteractiveImportRow extends Component {
|
||||
prevProps.seasonNumber === seasonNumber &&
|
||||
!hasDifferentItems(prevProps.episodes, episodes) &&
|
||||
prevProps.quality === quality &&
|
||||
prevProps.language === language &&
|
||||
prevProps.languages === languages &&
|
||||
prevProps.isSelected === isSelected
|
||||
) {
|
||||
return;
|
||||
@@ -100,7 +100,7 @@ class InteractiveImportRow extends Component {
|
||||
seasonNumber != null &&
|
||||
episodes.length &&
|
||||
quality &&
|
||||
language
|
||||
languages
|
||||
);
|
||||
|
||||
if (isSelected && !isValid) {
|
||||
@@ -210,7 +210,7 @@ class InteractiveImportRow extends Component {
|
||||
seasonNumber,
|
||||
episodes,
|
||||
quality,
|
||||
language,
|
||||
languages,
|
||||
releaseGroup,
|
||||
size,
|
||||
rejections,
|
||||
@@ -252,7 +252,7 @@ class InteractiveImportRow extends Component {
|
||||
const showEpisodeNumbersPlaceholder = isSelected && Number.isInteger(seasonNumber) && !episodes.length;
|
||||
const showReleaseGroupPlaceholder = isSelected && !releaseGroup;
|
||||
const showQualityPlaceholder = isSelected && !quality;
|
||||
const showLanguagePlaceholder = isSelected && !language;
|
||||
const showLanguagePlaceholder = isSelected && !languages;
|
||||
|
||||
return (
|
||||
<TableRow>
|
||||
@@ -352,10 +352,10 @@ class InteractiveImportRow extends Component {
|
||||
}
|
||||
|
||||
{
|
||||
!showLanguagePlaceholder && !!language &&
|
||||
<EpisodeLanguage
|
||||
!showLanguagePlaceholder && !!languages &&
|
||||
<EpisodeLanguages
|
||||
className={styles.label}
|
||||
language={language}
|
||||
languages={languages}
|
||||
/>
|
||||
}
|
||||
</TableRowCellButton>
|
||||
@@ -441,7 +441,7 @@ class InteractiveImportRow extends Component {
|
||||
<SelectLanguageModal
|
||||
isOpen={isSelectLanguageModalOpen}
|
||||
ids={[id]}
|
||||
languageId={language ? language.id : 0}
|
||||
languageId={languages ? languages.id : 0}
|
||||
modalTitle={modalTitle}
|
||||
onModalClose={this.onSelectLanguageModalClose}
|
||||
/>
|
||||
@@ -460,7 +460,7 @@ InteractiveImportRow.propTypes = {
|
||||
episodes: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
releaseGroup: PropTypes.string,
|
||||
quality: PropTypes.object,
|
||||
language: PropTypes.object,
|
||||
languages: PropTypes.arrayOf(PropTypes.object),
|
||||
size: PropTypes.number.isRequired,
|
||||
rejections: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||
|
||||
Reference in New Issue
Block a user