@@ -288,25 +268,6 @@ class InteractiveImportRow extends Component {
}
-
- {
- showLanguagePlaceholder &&
-
- }
-
- {
- !showLanguagePlaceholder && !!language &&
-
- }
-
-
{formatBytes(size)}
@@ -376,13 +337,6 @@ class InteractiveImportRow extends Component {
real={quality ? quality.revision.real > 0 : false}
onModalClose={this.onSelectQualityModalClose}
/>
-
-
);
}
@@ -398,7 +352,6 @@ InteractiveImportRow.propTypes = {
albumReleaseId: PropTypes.number,
tracks: PropTypes.arrayOf(PropTypes.object).isRequired,
quality: PropTypes.object,
- language: PropTypes.object,
size: PropTypes.number.isRequired,
rejections: PropTypes.arrayOf(PropTypes.object).isRequired,
audioTags: PropTypes.object.isRequired,
diff --git a/frontend/src/InteractiveImport/Language/SelectLanguageModal.js b/frontend/src/InteractiveImport/Language/SelectLanguageModal.js
deleted file mode 100644
index 938d26a6d..000000000
--- a/frontend/src/InteractiveImport/Language/SelectLanguageModal.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import Modal from 'Components/Modal/Modal';
-import SelectLanguageModalContentConnector from './SelectLanguageModalContentConnector';
-
-class SelectLanguageModal extends Component {
-
- //
- // Render
-
- render() {
- const {
- isOpen,
- onModalClose,
- ...otherProps
- } = this.props;
-
- return (
-
-
-
- );
- }
-}
-
-SelectLanguageModal.propTypes = {
- isOpen: PropTypes.bool.isRequired,
- onModalClose: PropTypes.func.isRequired
-};
-
-export default SelectLanguageModal;
diff --git a/frontend/src/InteractiveImport/Language/SelectLanguageModalContent.js b/frontend/src/InteractiveImport/Language/SelectLanguageModalContent.js
deleted file mode 100644
index ff99ce6bf..000000000
--- a/frontend/src/InteractiveImport/Language/SelectLanguageModalContent.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import { inputTypes } from 'Helpers/Props';
-import Button from 'Components/Link/Button';
-import LoadingIndicator from 'Components/Loading/LoadingIndicator';
-import Form from 'Components/Form/Form';
-import FormGroup from 'Components/Form/FormGroup';
-import FormLabel from 'Components/Form/FormLabel';
-import FormInputGroup from 'Components/Form/FormInputGroup';
-import ModalContent from 'Components/Modal/ModalContent';
-import ModalHeader from 'Components/Modal/ModalHeader';
-import ModalBody from 'Components/Modal/ModalBody';
-import ModalFooter from 'Components/Modal/ModalFooter';
-
-function SelectLanguageModalContent(props) {
- const {
- languageId,
- isFetching,
- isPopulated,
- error,
- items,
- onModalClose,
- onLanguageSelect
- } = props;
-
- const languageOptions = items.map(({ language }) => {
- return {
- key: language.id,
- value: language.name
- };
- });
-
- return (
-
-
- Manual Import - Select Language
-
-
-
- {
- isFetching &&
-
- }
-
- {
- !isFetching && !!error &&
- Unable to load languages
- }
-
- {
- isPopulated && !error &&
-
- }
-
-
-
-
-
-
- );
-}
-
-SelectLanguageModalContent.propTypes = {
- languageId: PropTypes.number.isRequired,
- isFetching: PropTypes.bool.isRequired,
- isPopulated: PropTypes.bool.isRequired,
- error: PropTypes.object,
- items: PropTypes.arrayOf(PropTypes.object).isRequired,
- onLanguageSelect: PropTypes.func.isRequired,
- onModalClose: PropTypes.func.isRequired
-};
-
-export default SelectLanguageModalContent;
diff --git a/frontend/src/InteractiveImport/Language/SelectLanguageModalContentConnector.js b/frontend/src/InteractiveImport/Language/SelectLanguageModalContentConnector.js
deleted file mode 100644
index 56e95b861..000000000
--- a/frontend/src/InteractiveImport/Language/SelectLanguageModalContentConnector.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import _ from 'lodash';
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
-import { fetchLanguageProfileSchema } from 'Store/Actions/settingsActions';
-import { updateInteractiveImportItem } from 'Store/Actions/interactiveImportActions';
-import SelectLanguageModalContent from './SelectLanguageModalContent';
-
-function createMapStateToProps() {
- return createSelector(
- (state) => state.settings.languageProfiles,
- (languageProfiles) => {
- const {
- isSchemaFetching: isFetching,
- isSchemaPopulated: isPopulated,
- schemaError: error,
- schema
- } = languageProfiles;
-
- return {
- isFetching,
- isPopulated,
- error,
- items: schema.languages ? [...schema.languages].reverse() : []
- };
- }
- );
-}
-
-const mapDispatchToProps = {
- fetchLanguageProfileSchema,
- updateInteractiveImportItem
-};
-
-class SelectLanguageModalContentConnector extends Component {
-
- //
- // Lifecycle
-
- componentDidMount = () => {
- if (!this.props.isPopulated) {
- this.props.fetchLanguageProfileSchema();
- }
- }
-
- //
- // Listeners
-
- onLanguageSelect = ({ value }) => {
- const languageId = parseInt(value);
- const language = _.find(this.props.items,
- (item) => item.language.id === languageId).language;
-
- this.props.updateInteractiveImportItem({
- id: this.props.id,
- language
- });
-
- this.props.onModalClose(true);
- }
-
- //
- // Render
-
- render() {
- return (
-
- );
- }
-}
-
-SelectLanguageModalContentConnector.propTypes = {
- id: PropTypes.number.isRequired,
- isFetching: PropTypes.bool.isRequired,
- isPopulated: PropTypes.bool.isRequired,
- error: PropTypes.object,
- items: PropTypes.arrayOf(PropTypes.object).isRequired,
- fetchLanguageProfileSchema: PropTypes.func.isRequired,
- updateInteractiveImportItem: PropTypes.func.isRequired,
- onModalClose: PropTypes.func.isRequired
-};
-
-export default connect(createMapStateToProps, mapDispatchToProps)(SelectLanguageModalContentConnector);
diff --git a/frontend/src/InteractiveSearch/InteractiveSearch.js b/frontend/src/InteractiveSearch/InteractiveSearch.js
index 6714c8cc6..bc47e4e96 100644
--- a/frontend/src/InteractiveSearch/InteractiveSearch.js
+++ b/frontend/src/InteractiveSearch/InteractiveSearch.js
@@ -48,12 +48,6 @@ const columns = [
isSortable: true,
isVisible: true
},
- {
- name: 'languageWeight',
- label: 'Language',
- isSortable: true,
- isVisible: true
- },
{
name: 'qualityWeight',
label: 'Quality',
diff --git a/frontend/src/InteractiveSearch/InteractiveSearchRow.css b/frontend/src/InteractiveSearch/InteractiveSearchRow.css
index fffa424d8..57fffadc7 100644
--- a/frontend/src/InteractiveSearch/InteractiveSearchRow.css
+++ b/frontend/src/InteractiveSearch/InteractiveSearchRow.css
@@ -4,17 +4,12 @@
word-break: break-all;
}
-.quality,
-.language {
+.quality {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
text-align: center;
}
-.language {
- width: 100px;
-}
-
.preferredWordScore {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
diff --git a/frontend/src/InteractiveSearch/InteractiveSearchRow.js b/frontend/src/InteractiveSearch/InteractiveSearchRow.js
index cf4d16a3e..a413c60a9 100644
--- a/frontend/src/InteractiveSearch/InteractiveSearchRow.js
+++ b/frontend/src/InteractiveSearch/InteractiveSearchRow.js
@@ -11,7 +11,6 @@ import ConfirmModal from 'Components/Modal/ConfirmModal';
import TableRow from 'Components/Table/TableRow';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import Popover from 'Components/Tooltip/Popover';
-import TrackLanguage from 'Album/TrackLanguage';
import TrackQuality from 'Album/TrackQuality';
import ProtocolLabel from 'Activity/Queue/ProtocolLabel';
import Peers from './Peers';
@@ -112,7 +111,6 @@ class InteractiveSearchRow extends Component {
seeders,
leechers,
quality,
- language,
preferredWordScore,
rejections,
downloadAllowed,
@@ -162,10 +160,6 @@ class InteractiveSearchRow extends Component {
}
-
-
-
-
@@ -245,7 +239,6 @@ InteractiveSearchRow.propTypes = {
seeders: PropTypes.number,
leechers: PropTypes.number,
quality: PropTypes.object.isRequired,
- language: PropTypes.object.isRequired,
preferredWordScore: PropTypes.number.isRequired,
rejections: PropTypes.arrayOf(PropTypes.string).isRequired,
downloadAllowed: PropTypes.bool.isRequired,
diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.css b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.css
index 79a4f0d94..23e22b6dc 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.css
+++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.css
@@ -4,7 +4,6 @@
margin-right: auto;
}
-.hideLanguageProfile,
.hideMetadataProfile {
composes: group from '~Components/Form/FormGroup.css';
diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
index 24e143ca3..6a2826802 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
+++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
@@ -62,7 +62,6 @@ function EditImportListModalContent(props) {
onSavePress,
onTestPress,
onDeleteImportListPress,
- showLanguageProfile,
showMetadataProfile,
...otherProps
} = props;
@@ -74,7 +73,6 @@ function EditImportListModalContent(props) {
shouldMonitor,
rootFolderPath,
qualityProfileId,
- languageProfileId,
metadataProfileId,
tags,
fields
@@ -174,18 +172,6 @@ function EditImportListModalContent(props) {
/>
-
- Language Profile
-
-
-
-
Metadata Profile
@@ -280,7 +266,6 @@ EditImportListModalContent.propTypes = {
isTesting: PropTypes.bool.isRequired,
saveError: PropTypes.object,
item: PropTypes.object.isRequired,
- showLanguageProfile: PropTypes.bool.isRequired,
showMetadataProfile: PropTypes.bool.isRequired,
onInputChange: PropTypes.func.isRequired,
onFieldChange: PropTypes.func.isRequired,
diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContentConnector.js b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContentConnector.js
index 40fb07505..527b021f2 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContentConnector.js
+++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContentConnector.js
@@ -9,13 +9,11 @@ import EditImportListModalContent from './EditImportListModalContent';
function createMapStateToProps() {
return createSelector(
(state) => state.settings.advancedSettings,
- (state) => state.settings.languageProfiles,
(state) => state.settings.metadataProfiles,
createProviderSettingsSelector('importLists'),
- (advancedSettings, languageProfiles, metadataProfiles, importList) => {
+ (advancedSettings, metadataProfiles, importList) => {
return {
advancedSettings,
- showLanguageProfile: languageProfiles.items.length > 1,
showMetadataProfile: metadataProfiles.items.length > 1,
...importList
};
diff --git a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModal.js b/frontend/src/Settings/Profiles/Language/EditLanguageProfileModal.js
deleted file mode 100644
index 6a17fd1fc..000000000
--- a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModal.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import { sizes } from 'Helpers/Props';
-import Modal from 'Components/Modal/Modal';
-import EditLanguageProfileModalContentConnector from './EditLanguageProfileModalContentConnector';
-
-function EditLanguageProfileModal({ isOpen, onModalClose, ...otherProps }) {
- return (
-
-
-
- );
-}
-
-EditLanguageProfileModal.propTypes = {
- isOpen: PropTypes.bool.isRequired,
- onModalClose: PropTypes.func.isRequired
-};
-
-export default EditLanguageProfileModal;
diff --git a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalConnector.js b/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalConnector.js
deleted file mode 100644
index 8e112c9e1..000000000
--- a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalConnector.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { clearPendingChanges } from 'Store/Actions/baseActions';
-import EditLanguageProfileModal from './EditLanguageProfileModal';
-
-function mapStateToProps() {
- return {};
-}
-
-const mapDispatchToProps = {
- clearPendingChanges
-};
-
-class EditLanguageProfileModalConnector extends Component {
-
- //
- // Listeners
-
- onModalClose = () => {
- this.props.clearPendingChanges({ section: 'settings.languageProfiles' });
- this.props.onModalClose();
- }
-
- //
- // Render
-
- render() {
- return (
-
- );
- }
-}
-
-EditLanguageProfileModalConnector.propTypes = {
- onModalClose: PropTypes.func.isRequired,
- clearPendingChanges: PropTypes.func.isRequired
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(EditLanguageProfileModalConnector);
diff --git a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.css b/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.css
deleted file mode 100644
index 74dd1c8b7..000000000
--- a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.deleteButtonContainer {
- margin-right: auto;
-}
diff --git a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.js b/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.js
deleted file mode 100644
index 4d79b177f..000000000
--- a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContent.js
+++ /dev/null
@@ -1,165 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import { inputTypes, kinds } from 'Helpers/Props';
-import Button from 'Components/Link/Button';
-import SpinnerErrorButton from 'Components/Link/SpinnerErrorButton';
-import LoadingIndicator from 'Components/Loading/LoadingIndicator';
-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 Form from 'Components/Form/Form';
-import FormGroup from 'Components/Form/FormGroup';
-import FormLabel from 'Components/Form/FormLabel';
-import FormInputGroup from 'Components/Form/FormInputGroup';
-import LanguageProfileItems from './LanguageProfileItems';
-import styles from './EditLanguageProfileModalContent.css';
-
-function EditLanguageProfileModalContent(props) {
- const {
- isFetching,
- error,
- isSaving,
- saveError,
- languages,
- item,
- isInUse,
- onInputChange,
- onCutoffChange,
- onSavePress,
- onModalClose,
- onDeleteLanguageProfilePress,
- ...otherProps
- } = props;
-
- const {
- id,
- name,
- upgradeAllowed,
- cutoff,
- languages: itemLanguages
- } = item;
-
- return (
-
-
- {id ? 'Edit Language Profile' : 'Add Language Profile'}
-
-
-
- {
- isFetching &&
-
- }
-
- {
- !isFetching && !!error &&
- Unable to add a new language profile, please try again.
- }
-
- {
- !isFetching && !error &&
-
- }
-
-
- {
- id &&
-
-
-
- }
-
-
-
-
- Save
-
-
-
- );
-}
-
-EditLanguageProfileModalContent.propTypes = {
- isFetching: PropTypes.bool.isRequired,
- error: PropTypes.object,
- isSaving: PropTypes.bool.isRequired,
- saveError: PropTypes.object,
- languages: PropTypes.arrayOf(PropTypes.object).isRequired,
- item: PropTypes.object.isRequired,
- isInUse: PropTypes.bool.isRequired,
- onInputChange: PropTypes.func.isRequired,
- onCutoffChange: PropTypes.func.isRequired,
- onSavePress: PropTypes.func.isRequired,
- onModalClose: PropTypes.func.isRequired,
- onDeleteLanguageProfilePress: PropTypes.func
-};
-
-export default EditLanguageProfileModalContent;
diff --git a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContentConnector.js b/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContentConnector.js
deleted file mode 100644
index 3cad2bb3c..000000000
--- a/frontend/src/Settings/Profiles/Language/EditLanguageProfileModalContentConnector.js
+++ /dev/null
@@ -1,189 +0,0 @@
-import _ from 'lodash';
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
-import createProfileInUseSelector from 'Store/Selectors/createProfileInUseSelector';
-import createProviderSettingsSelector from 'Store/Selectors/createProviderSettingsSelector';
-import { fetchLanguageProfileSchema, setLanguageProfileValue, saveLanguageProfile } from 'Store/Actions/settingsActions';
-import EditLanguageProfileModalContent from './EditLanguageProfileModalContent';
-
-function createLanguagesSelector() {
- return createSelector(
- createProviderSettingsSelector('languageProfiles'),
- (languageProfile) => {
- const languages = languageProfile.item.languages;
- if (!languages || !languages.value) {
- return [];
- }
-
- return _.reduceRight(languages.value, (result, { allowed, language }) => {
- if (allowed) {
- result.push({
- key: language.id,
- value: language.name
- });
- }
-
- return result;
- }, []);
- }
- );
-}
-
-function createMapStateToProps() {
- return createSelector(
- createProviderSettingsSelector('languageProfiles'),
- createLanguagesSelector(),
- createProfileInUseSelector('languageProfileId'),
- (languageProfile, languages, isInUse) => {
- return {
- languages,
- ...languageProfile,
- isInUse
- };
- }
- );
-}
-
-const mapDispatchToProps = {
- fetchLanguageProfileSchema,
- setLanguageProfileValue,
- saveLanguageProfile
-};
-
-class EditLanguageProfileModalContentConnector extends Component {
-
- //
- // Lifecycle
-
- constructor(props, context) {
- super(props, context);
-
- this.state = {
- dragIndex: null,
- dropIndex: null
- };
- }
-
- componentDidMount() {
- if (!this.props.id && !this.props.isPopulated) {
- this.props.fetchLanguageProfileSchema();
- }
- }
-
- componentDidUpdate(prevProps, prevState) {
- if (prevProps.isSaving && !this.props.isSaving && !this.props.saveError) {
- this.props.onModalClose();
- }
- }
-
- //
- // Listeners
-
- onInputChange = ({ name, value }) => {
- this.props.setLanguageProfileValue({ name, value });
- }
-
- onCutoffChange = ({ name, value }) => {
- const id = parseInt(value);
- const item = _.find(this.props.item.languages.value, (i) => i.language.id === id);
-
- this.props.setLanguageProfileValue({ name, value: item.language });
- }
-
- onSavePress = () => {
- this.props.saveLanguageProfile({ id: this.props.id });
- }
-
- onLanguageProfileItemAllowedChange = (id, allowed) => {
- const languageProfile = _.cloneDeep(this.props.item);
-
- const item = _.find(languageProfile.languages.value, (i) => i.language.id === id);
- item.allowed = allowed;
-
- this.props.setLanguageProfileValue({
- name: 'languages',
- value: languageProfile.languages.value
- });
-
- const cutoff = languageProfile.cutoff.value;
-
- // If the cutoff isn't allowed anymore or there isn't a cutoff set one
- if (!cutoff || !_.find(languageProfile.languages.value, (i) => i.language.id === cutoff.id).allowed) {
- const firstAllowed = _.find(languageProfile.languages.value, { allowed: true });
-
- this.props.setLanguageProfileValue({ name: 'cutoff', value: firstAllowed ? firstAllowed.language : null });
- }
- }
-
- onLanguageProfileItemDragMove = (dragIndex, dropIndex) => {
- if (this.state.dragIndex !== dragIndex || this.state.dropIndex !== dropIndex) {
- this.setState({
- dragIndex,
- dropIndex
- });
- }
- }
-
- onLanguageProfileItemDragEnd = ({ id }, didDrop) => {
- const {
- dragIndex,
- dropIndex
- } = this.state;
-
- if (didDrop && dropIndex !== null) {
- const languageProfile = _.cloneDeep(this.props.item);
-
- const languages = languageProfile.languages.value.splice(dragIndex, 1);
- languageProfile.languages.value.splice(dropIndex, 0, languages[0]);
-
- this.props.setLanguageProfileValue({
- name: 'languages',
- value: languageProfile.languages.value
- });
- }
-
- this.setState({
- dragIndex: null,
- dropIndex: null
- });
- }
-
- //
- // Render
-
- render() {
- if (_.isEmpty(this.props.item.languages) && !this.props.isFetching) {
- return null;
- }
-
- return (
-
- );
- }
-}
-
-EditLanguageProfileModalContentConnector.propTypes = {
- id: PropTypes.number,
- isFetching: PropTypes.bool.isRequired,
- isPopulated: PropTypes.bool.isRequired,
- isSaving: PropTypes.bool.isRequired,
- saveError: PropTypes.object,
- item: PropTypes.object.isRequired,
- setLanguageProfileValue: PropTypes.func.isRequired,
- fetchLanguageProfileSchema: PropTypes.func.isRequired,
- saveLanguageProfile: PropTypes.func.isRequired,
- onModalClose: PropTypes.func.isRequired
-};
-
-export default connect(createMapStateToProps, mapDispatchToProps)(EditLanguageProfileModalContentConnector);
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfile.css b/frontend/src/Settings/Profiles/Language/LanguageProfile.css
deleted file mode 100644
index da85dc483..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfile.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.languageProfile {
- composes: card from '~Components/Card.css';
-
- width: 300px;
-}
-
-.nameContainer {
- display: flex;
- justify-content: space-between;
-}
-
-.name {
- @add-mixin truncate;
-
- margin-bottom: 20px;
- font-weight: 300;
- font-size: 24px;
-}
-
-.cloneButton {
- composes: button from '~Components/Link/IconButton.css';
-
- height: 36px;
-}
-
-.languages {
- display: flex;
- flex-wrap: wrap;
- margin-top: 5px;
- pointer-events: all;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfile.js b/frontend/src/Settings/Profiles/Language/LanguageProfile.js
deleted file mode 100644
index 07435b207..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfile.js
+++ /dev/null
@@ -1,147 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { icons, kinds } from 'Helpers/Props';
-import Card from 'Components/Card';
-import Label from 'Components/Label';
-import IconButton from 'Components/Link/IconButton';
-import ConfirmModal from 'Components/Modal/ConfirmModal';
-import EditLanguageProfileModalConnector from './EditLanguageProfileModalConnector';
-import styles from './LanguageProfile.css';
-
-class LanguageProfile extends Component {
-
- //
- // Lifecycle
-
- constructor(props, context) {
- super(props, context);
-
- this.state = {
- isEditLanguageProfileModalOpen: false,
- isDeleteLanguageProfileModalOpen: false
- };
- }
-
- //
- // Listeners
-
- onEditLanguageProfilePress = () => {
- this.setState({ isEditLanguageProfileModalOpen: true });
- }
-
- onEditLanguageProfileModalClose = () => {
- this.setState({ isEditLanguageProfileModalOpen: false });
- }
-
- onDeleteLanguageProfilePress = () => {
- this.setState({
- isEditLanguageProfileModalOpen: false,
- isDeleteLanguageProfileModalOpen: true
- });
- }
-
- onDeleteLanguageProfileModalClose = () => {
- this.setState({ isDeleteLanguageProfileModalOpen: false });
- }
-
- onConfirmDeleteLanguageProfile = () => {
- this.props.onConfirmDeleteLanguageProfile(this.props.id);
- }
-
- onCloneLanguageProfilePress = () => {
- const {
- id,
- onCloneLanguageProfilePress
- } = this.props;
-
- onCloneLanguageProfilePress(id);
- }
-
- //
- // Render
-
- render() {
- const {
- id,
- name,
- upgradeAllowed,
- cutoff,
- languages,
- isDeleting
- } = this.props;
-
- return (
-
-
-
-
- {
- languages.map((item) => {
- if (!item.allowed) {
- return null;
- }
-
- const isCutoff = upgradeAllowed && item.language.id === cutoff.id;
-
- return (
-
- );
- })
- }
-
-
-
-
-
-
- );
- }
-}
-
-LanguageProfile.propTypes = {
- id: PropTypes.number.isRequired,
- name: PropTypes.string.isRequired,
- upgradeAllowed: PropTypes.bool.isRequired,
- cutoff: PropTypes.object.isRequired,
- languages: PropTypes.arrayOf(PropTypes.object).isRequired,
- isDeleting: PropTypes.bool.isRequired,
- onConfirmDeleteLanguageProfile: PropTypes.func.isRequired,
- onCloneLanguageProfilePress: PropTypes.func.isRequired
-};
-
-export default LanguageProfile;
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItem.css b/frontend/src/Settings/Profiles/Language/LanguageProfileItem.css
deleted file mode 100644
index a10233929..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItem.css
+++ /dev/null
@@ -1,44 +0,0 @@
-.languageProfileItem {
- display: flex;
- align-items: stretch;
- width: 100%;
- border: 1px solid #aaa;
- border-radius: 4px;
- background: #fafafa;
-}
-
-.checkContainer {
- position: relative;
- margin-right: 4px;
- margin-bottom: 7px;
- margin-left: 8px;
-}
-
-.languageName {
- display: flex;
- flex-grow: 1;
- margin-bottom: 0;
- margin-left: 2px;
- font-weight: normal;
- line-height: 36px;
- cursor: pointer;
-}
-
-.dragHandle {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-shrink: 0;
- margin-left: auto;
- width: $dragHandleWidth;
- text-align: center;
- cursor: grab;
-}
-
-.dragIcon {
- top: 0;
-}
-
-.isDragging {
- opacity: 0.25;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItem.js b/frontend/src/Settings/Profiles/Language/LanguageProfileItem.js
deleted file mode 100644
index 2a3671268..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItem.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import classNames from 'classnames';
-import { icons } from 'Helpers/Props';
-import Icon from 'Components/Icon';
-import CheckInput from 'Components/Form/CheckInput';
-import styles from './LanguageProfileItem.css';
-
-class LanguageProfileItem extends Component {
-
- //
- // Listeners
-
- onAllowedChange = ({ value }) => {
- const {
- languageId,
- onLanguageProfileItemAllowedChange
- } = this.props;
-
- onLanguageProfileItemAllowedChange(languageId, value);
- }
-
- //
- // Render
-
- render() {
- const {
- name,
- allowed,
- isDragging,
- connectDragSource
- } = this.props;
-
- return (
-
-
-
- {
- connectDragSource(
-
-
-
- )
- }
-
- );
- }
-}
-
-LanguageProfileItem.propTypes = {
- languageId: PropTypes.number.isRequired,
- name: PropTypes.string.isRequired,
- allowed: PropTypes.bool.isRequired,
- sortIndex: PropTypes.number.isRequired,
- isDragging: PropTypes.bool.isRequired,
- connectDragSource: PropTypes.func,
- onLanguageProfileItemAllowedChange: PropTypes.func
-};
-
-LanguageProfileItem.defaultProps = {
- // The drag preview will not connect the drag handle.
- connectDragSource: (node) => node
-};
-
-export default LanguageProfileItem;
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.css b/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.css
deleted file mode 100644
index b927d9bce..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.css
+++ /dev/null
@@ -1,4 +0,0 @@
-.dragPreview {
- width: 380px;
- opacity: 0.75;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.js b/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.js
deleted file mode 100644
index b7a08d89b..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragPreview.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { DragLayer } from 'react-dnd';
-import dimensions from 'Styles/Variables/dimensions.js';
-import { QUALITY_PROFILE_ITEM } from 'Helpers/dragTypes';
-import DragPreviewLayer from 'Components/DragPreviewLayer';
-import LanguageProfileItem from './LanguageProfileItem';
-import styles from './LanguageProfileItemDragPreview.css';
-
-const formGroupSmallWidth = parseInt(dimensions.formGroupSmallWidth);
-const formLabelLargeWidth = parseInt(dimensions.formLabelLargeWidth);
-const formLabelRightMarginWidth = parseInt(dimensions.formLabelRightMarginWidth);
-const dragHandleWidth = parseInt(dimensions.dragHandleWidth);
-
-function collectDragLayer(monitor) {
- return {
- item: monitor.getItem(),
- itemType: monitor.getItemType(),
- currentOffset: monitor.getSourceClientOffset()
- };
-}
-
-class LanguageProfileItemDragPreview extends Component {
-
- //
- // Render
-
- render() {
- const {
- item,
- itemType,
- currentOffset
- } = this.props;
-
- if (!currentOffset || itemType !== QUALITY_PROFILE_ITEM) {
- return null;
- }
-
- // The offset is shifted because the drag handle is on the right edge of the
- // list item and the preview is wider than the drag handle.
-
- const { x, y } = currentOffset;
- const handleOffset = formGroupSmallWidth - formLabelLargeWidth - formLabelRightMarginWidth - dragHandleWidth;
- const transform = `translate3d(${x - handleOffset}px, ${y}px, 0)`;
-
- const style = {
- position: 'absolute',
- WebkitTransform: transform,
- msTransform: transform,
- transform
- };
-
- const {
- languageId,
- name,
- allowed,
- sortIndex
- } = item;
-
- return (
-
-
-
-
-
- );
- }
-}
-
-LanguageProfileItemDragPreview.propTypes = {
- item: PropTypes.object,
- itemType: PropTypes.string,
- currentOffset: PropTypes.shape({
- x: PropTypes.number.isRequired,
- y: PropTypes.number.isRequired
- })
-};
-
-/* eslint-disable new-cap */
-export default DragLayer(collectDragLayer)(LanguageProfileItemDragPreview);
-/* eslint-enable new-cap */
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.css b/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.css
deleted file mode 100644
index f59379129..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.languageProfileItemDragSource {
- padding: 4px 0;
-}
-
-.languageProfileItemPlaceholder {
- width: 100%;
- height: 36px;
- border: 1px dotted #aaa;
- border-radius: 4px;
-}
-
-.languageProfileItemPlaceholderBefore {
- margin-bottom: 8px;
-}
-
-.languageProfileItemPlaceholderAfter {
- margin-top: 8px;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.js b/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.js
deleted file mode 100644
index c154960a8..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItemDragSource.js
+++ /dev/null
@@ -1,159 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { findDOMNode } from 'react-dom';
-import { DragSource, DropTarget } from 'react-dnd';
-import classNames from 'classnames';
-import { QUALITY_PROFILE_ITEM } from 'Helpers/dragTypes';
-import LanguageProfileItem from './LanguageProfileItem';
-import styles from './LanguageProfileItemDragSource.css';
-
-const languageProfileItemDragSource = {
- beginDrag({ languageId, name, allowed, sortIndex }) {
- return {
- languageId,
- name,
- allowed,
- sortIndex
- };
- },
-
- endDrag(props, monitor, component) {
- props.onLanguageProfileItemDragEnd(monitor.getItem(), monitor.didDrop());
- }
-};
-
-const languageProfileItemDropTarget = {
- hover(props, monitor, component) {
- const dragIndex = monitor.getItem().sortIndex;
- const hoverIndex = props.sortIndex;
-
- const hoverBoundingRect = findDOMNode(component).getBoundingClientRect();
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
- const clientOffset = monitor.getClientOffset();
- const hoverClientY = clientOffset.y - hoverBoundingRect.top;
-
- // Moving up, only trigger if drag position is above 50%
- if (dragIndex < hoverIndex && hoverClientY > hoverMiddleY) {
- return;
- }
-
- // Moving down, only trigger if drag position is below 50%
- if (dragIndex > hoverIndex && hoverClientY < hoverMiddleY) {
- return;
- }
-
- props.onLanguageProfileItemDragMove(dragIndex, hoverIndex);
- }
-};
-
-function collectDragSource(connect, monitor) {
- return {
- connectDragSource: connect.dragSource(),
- isDragging: monitor.isDragging()
- };
-}
-
-function collectDropTarget(connect, monitor) {
- return {
- connectDropTarget: connect.dropTarget(),
- isOver: monitor.isOver()
- };
-}
-
-class LanguageProfileItemDragSource extends Component {
-
- //
- // Render
-
- render() {
- const {
- languageId,
- name,
- allowed,
- sortIndex,
- isDragging,
- isDraggingUp,
- isDraggingDown,
- isOver,
- connectDragSource,
- connectDropTarget,
- onLanguageProfileItemAllowedChange
- } = this.props;
-
- const isBefore = !isDragging && isDraggingUp && isOver;
- const isAfter = !isDragging && isDraggingDown && isOver;
-
- // if (isDragging && !isOver) {
- // return null;
- // }
-
- return connectDropTarget(
-
- {
- isBefore &&
-
- }
-
-
-
- {
- isAfter &&
-
- }
-
- );
- }
-}
-
-LanguageProfileItemDragSource.propTypes = {
- languageId: PropTypes.number.isRequired,
- name: PropTypes.string.isRequired,
- allowed: PropTypes.bool.isRequired,
- sortIndex: PropTypes.number.isRequired,
- isDragging: PropTypes.bool,
- isDraggingUp: PropTypes.bool,
- isDraggingDown: PropTypes.bool,
- isOver: PropTypes.bool,
- connectDragSource: PropTypes.func,
- connectDropTarget: PropTypes.func,
- onLanguageProfileItemAllowedChange: PropTypes.func.isRequired,
- onLanguageProfileItemDragMove: PropTypes.func.isRequired,
- onLanguageProfileItemDragEnd: PropTypes.func.isRequired
-};
-
-/* eslint-disable new-cap */
-export default DropTarget(
- QUALITY_PROFILE_ITEM,
- languageProfileItemDropTarget,
- collectDropTarget
-)(DragSource(
- QUALITY_PROFILE_ITEM,
- languageProfileItemDragSource,
- collectDragSource
-)(LanguageProfileItemDragSource));
-/* eslint-enable new-cap */
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItems.css b/frontend/src/Settings/Profiles/Language/LanguageProfileItems.css
deleted file mode 100644
index 48b30f326..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItems.css
+++ /dev/null
@@ -1,6 +0,0 @@
-.languages {
- margin-top: 10px;
- /* TODO: This should consider the number of languages in the list */
- min-height: 550px;
- user-select: none;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileItems.js b/frontend/src/Settings/Profiles/Language/LanguageProfileItems.js
deleted file mode 100644
index 831743cbe..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileItems.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import FormGroup from 'Components/Form/FormGroup';
-import FormLabel from 'Components/Form/FormLabel';
-import FormInputHelpText from 'Components/Form/FormInputHelpText';
-import LanguageProfileItemDragSource from './LanguageProfileItemDragSource';
-import LanguageProfileItemDragPreview from './LanguageProfileItemDragPreview';
-import styles from './LanguageProfileItems.css';
-
-class LanguageProfileItems extends Component {
-
- //
- // Render
-
- render() {
- const {
- dragIndex,
- dropIndex,
- languageProfileItems,
- errors,
- warnings,
- ...otherProps
- } = this.props;
-
- const isDragging = dropIndex !== null;
- const isDraggingUp = isDragging && dropIndex > dragIndex;
- const isDraggingDown = isDragging && dropIndex < dragIndex;
-
- return (
-
- Languages
-
-
-
- {
- errors.map((error, index) => {
- return (
-
- );
- })
- }
-
- {
- warnings.map((warning, index) => {
- return (
-
- );
- })
- }
-
-
- {
- languageProfileItems.map(({ allowed, language }, index) => {
- return (
-
- );
- }).reverse()
- }
-
-
-
-
-
- );
- }
-}
-
-LanguageProfileItems.propTypes = {
- dragIndex: PropTypes.number,
- dropIndex: PropTypes.number,
- languageProfileItems: PropTypes.arrayOf(PropTypes.object).isRequired,
- errors: PropTypes.arrayOf(PropTypes.object),
- warnings: PropTypes.arrayOf(PropTypes.object)
-};
-
-LanguageProfileItems.defaultProps = {
- errors: [],
- warnings: []
-};
-
-export default LanguageProfileItems;
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfileNameConnector.js b/frontend/src/Settings/Profiles/Language/LanguageProfileNameConnector.js
deleted file mode 100644
index 61a7153b5..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfileNameConnector.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
-import createLanguageProfileSelector from 'Store/Selectors/createLanguageProfileSelector';
-
-function createMapStateToProps() {
- return createSelector(
- createLanguageProfileSelector(),
- (languageProfile) => {
- return {
- name: languageProfile.name
- };
- }
- );
-}
-
-function LanguageProfileNameConnector({ name, ...otherProps }) {
- return (
-
- {name}
-
- );
-}
-
-LanguageProfileNameConnector.propTypes = {
- languageProfileId: PropTypes.number.isRequired,
- name: PropTypes.string.isRequired
-};
-
-export default connect(createMapStateToProps)(LanguageProfileNameConnector);
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfiles.css b/frontend/src/Settings/Profiles/Language/LanguageProfiles.css
deleted file mode 100644
index 7f2e3cf5d..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfiles.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.languageProfiles {
- display: flex;
- flex-wrap: wrap;
-}
-
-.addLanguageProfile {
- composes: languageProfile from '~./LanguageProfile.css';
-
- background-color: $cardAlternateBackgroundColor;
- color: $gray;
- text-align: center;
- font-size: 45px;
-}
-
-.center {
- display: inline-block;
- padding: 5px 20px 0;
- border: 1px solid $borderColor;
- border-radius: 4px;
- background-color: $white;
-}
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfiles.js b/frontend/src/Settings/Profiles/Language/LanguageProfiles.js
deleted file mode 100644
index 30dddbcf6..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfiles.js
+++ /dev/null
@@ -1,107 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import sortByName from 'Utilities/Array/sortByName';
-import { icons } from 'Helpers/Props';
-import FieldSet from 'Components/FieldSet';
-import Card from 'Components/Card';
-import Icon from 'Components/Icon';
-import PageSectionContent from 'Components/Page/PageSectionContent';
-import LanguageProfile from './LanguageProfile';
-import EditLanguageProfileModalConnector from './EditLanguageProfileModalConnector';
-import styles from './LanguageProfiles.css';
-
-class LanguageProfiles extends Component {
-
- //
- // Lifecycle
-
- constructor(props, context) {
- super(props, context);
-
- this.state = {
- isLanguageProfileModalOpen: false
- };
- }
-
- //
- // Listeners
-
- onCloneLanguageProfilePress = (id) => {
- this.props.onCloneLanguageProfilePress(id);
- this.setState({ isLanguageProfileModalOpen: true });
- }
-
- onEditLanguageProfilePress = () => {
- this.setState({ isLanguageProfileModalOpen: true });
- }
-
- onModalClose = () => {
- this.setState({ isLanguageProfileModalOpen: false });
- }
-
- //
- // Render
-
- render() {
- const {
- items,
- isDeleting,
- onConfirmDeleteLanguageProfile,
- ...otherProps
- } = this.props;
-
- return (
-
- );
- }
-}
-
-LanguageProfiles.propTypes = {
- advancedSettings: PropTypes.bool.isRequired,
- isFetching: PropTypes.bool.isRequired,
- error: PropTypes.object,
- items: PropTypes.arrayOf(PropTypes.object).isRequired,
- isDeleting: PropTypes.bool.isRequired,
- onConfirmDeleteLanguageProfile: PropTypes.func.isRequired,
- onCloneLanguageProfilePress: PropTypes.func.isRequired
-};
-
-export default LanguageProfiles;
diff --git a/frontend/src/Settings/Profiles/Language/LanguageProfilesConnector.js b/frontend/src/Settings/Profiles/Language/LanguageProfilesConnector.js
deleted file mode 100644
index 1b122ab0f..000000000
--- a/frontend/src/Settings/Profiles/Language/LanguageProfilesConnector.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { createSelector } from 'reselect';
-import { fetchLanguageProfiles, deleteLanguageProfile, cloneLanguageProfile } from 'Store/Actions/settingsActions';
-import LanguageProfiles from './LanguageProfiles';
-
-function createMapStateToProps() {
- return createSelector(
- (state) => state.settings.advancedSettings,
- (state) => state.settings.languageProfiles,
- (advancedSettings, languageProfiles) => {
- return {
- advancedSettings,
- ...languageProfiles
- };
- }
- );
-}
-
-const mapDispatchToProps = {
- dispatchFetchLanguageProfiles: fetchLanguageProfiles,
- dispatchDeleteLanguageProfile: deleteLanguageProfile,
- dispatchCloneLanguageProfile: cloneLanguageProfile
-};
-
-class LanguageProfilesConnector extends Component {
-
- //
- // Lifecycle
-
- componentDidMount() {
- this.props.dispatchFetchLanguageProfiles();
- }
-
- //
- // Listeners
-
- onConfirmDeleteLanguageProfile = (id) => {
- this.props.dispatchDeleteLanguageProfile({ id });
- }
-
- onCloneLanguageProfilePress = (id) => {
- this.props.dispatchCloneLanguageProfile({ id });
- }
-
- //
- // Render
-
- render() {
- return (
-
- );
- }
-}
-
-LanguageProfilesConnector.propTypes = {
- dispatchFetchLanguageProfiles: PropTypes.func.isRequired,
- dispatchDeleteLanguageProfile: PropTypes.func.isRequired,
- dispatchCloneLanguageProfile: PropTypes.func.isRequired
-};
-
-export default connect(createMapStateToProps, mapDispatchToProps)(LanguageProfilesConnector);
diff --git a/frontend/src/Settings/Profiles/Profiles.js b/frontend/src/Settings/Profiles/Profiles.js
index 98349b32c..a65eddafb 100644
--- a/frontend/src/Settings/Profiles/Profiles.js
+++ b/frontend/src/Settings/Profiles/Profiles.js
@@ -5,7 +5,6 @@ import PageContent from 'Components/Page/PageContent';
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
import SettingsToolbarConnector from 'Settings/SettingsToolbarConnector';
import QualityProfilesConnector from './Quality/QualityProfilesConnector';
-import LanguageProfilesConnector from './Language/LanguageProfilesConnector';
import MetadataProfilesConnector from './Metadata/MetadataProfilesConnector';
import DelayProfilesConnector from './Delay/DelayProfilesConnector';
import ReleaseProfilesConnector from './Release/ReleaseProfilesConnector';
@@ -24,7 +23,6 @@ class Profiles extends Component {
-
diff --git a/frontend/src/Settings/Settings.js b/frontend/src/Settings/Settings.js
index 744e4f49d..368b2c47b 100644
--- a/frontend/src/Settings/Settings.js
+++ b/frontend/src/Settings/Settings.js
@@ -32,7 +32,7 @@ function Settings() {
- Quality, Language, Metadata, Delay, and Release profiles
+ Quality, Metadata, Delay, and Release profiles
{
- return {
- section,
- ...payload
- };
-});
-
-export const cloneLanguageProfile = createAction(CLONE_LANGUAGE_PROFILE);
-
-//
-// Details
-
-export default {
-
- //
- // State
-
- defaultState: {
- isFetching: false,
- isPopulated: false,
- error: null,
- isDeleting: false,
- deleteError: null,
- isSchemaFetching: false,
- isSchemaPopulated: false,
- schemaError: null,
- schema: {},
- isSaving: false,
- saveError: null,
- items: [],
- pendingChanges: {}
- },
-
- //
- // Action Handlers
-
- actionHandlers: {
- [FETCH_LANGUAGE_PROFILES]: createFetchHandler(section, '/languageprofile'),
- [FETCH_LANGUAGE_PROFILE_SCHEMA]: createFetchSchemaHandler(section, '/languageprofile/schema'),
- [SAVE_LANGUAGE_PROFILE]: createSaveProviderHandler(section, '/languageprofile'),
- [DELETE_LANGUAGE_PROFILE]: createRemoveItemHandler(section, '/languageprofile')
- },
-
- //
- // Reducers
-
- reducers: {
- [SET_LANGUAGE_PROFILE_VALUE]: createSetSettingValueReducer(section),
-
- [CLONE_LANGUAGE_PROFILE]: function(state, { payload }) {
- const id = payload.id;
- const newState = getSectionState(state, section);
- const item = newState.items.find((i) => i.id === id);
- const pendingChanges = { ...item, id: 0 };
- delete pendingChanges.id;
-
- pendingChanges.name = `${pendingChanges.name} - Copy`;
- newState.pendingChanges = pendingChanges;
-
- return updateSectionState(state, section, newState);
- }
- }
-
-};
diff --git a/frontend/src/Store/Actions/actionTypes.js b/frontend/src/Store/Actions/actionTypes.js
index a0c784a7d..dcb13d86d 100644
--- a/frontend/src/Store/Actions/actionTypes.js
+++ b/frontend/src/Store/Actions/actionTypes.js
@@ -14,8 +14,3 @@ export const SET_IS_SIDEBAR_VISIBLE = 'SET_IS_SIDEBAR_VISIBLE';
export const FETCH_GENERAL_SETTINGS = 'settings/general/fetchGeneralSettings';
export const SET_GENERAL_SETTINGS_VALUE = 'settings/general/setGeneralSettingsValue';
export const SAVE_GENERAL_SETTINGS = 'settings/general/saveGeneralSettings';
-
-//
-// Languages
-
-export const FETCH_LANGUAGES = 'FETCH_LANGUAGES';
diff --git a/frontend/src/Store/Actions/addArtistActions.js b/frontend/src/Store/Actions/addArtistActions.js
index 93306b2f2..44496f6d5 100644
--- a/frontend/src/Store/Actions/addArtistActions.js
+++ b/frontend/src/Store/Actions/addArtistActions.js
@@ -33,7 +33,6 @@ export const defaultState = {
rootFolderPath: '',
monitor: monitorOptions[0].key,
qualityProfileId: 0,
- languageProfileId: 0,
metadataProfileId: 0,
albumFolder: true,
tags: []
diff --git a/frontend/src/Store/Actions/albumStudioActions.js b/frontend/src/Store/Actions/albumStudioActions.js
index 9686715a6..5225c27cf 100644
--- a/frontend/src/Store/Actions/albumStudioActions.js
+++ b/frontend/src/Store/Actions/albumStudioActions.js
@@ -52,12 +52,6 @@ export const defaultState = {
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE
},
- {
- name: 'languageProfileId',
- label: 'Language Profile',
- type: filterBuilderTypes.EXACT,
- valueType: filterBuilderValueTypes.LANGUAGE_PROFILE
- },
{
name: 'metadataProfileId',
label: 'Metadata Profile',
diff --git a/frontend/src/Store/Actions/artistEditorActions.js b/frontend/src/Store/Actions/artistEditorActions.js
index 3b10686db..238419df0 100644
--- a/frontend/src/Store/Actions/artistEditorActions.js
+++ b/frontend/src/Store/Actions/artistEditorActions.js
@@ -49,12 +49,6 @@ export const defaultState = {
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE
},
- {
- name: 'languageProfileId',
- label: 'Language Profile',
- type: filterBuilderTypes.EXACT,
- valueType: filterBuilderValueTypes.LANGUAGE_PROFILE
- },
{
name: 'metadataProfileId',
label: 'Metadata Profile',
diff --git a/frontend/src/Store/Actions/artistIndexActions.js b/frontend/src/Store/Actions/artistIndexActions.js
index bcbd9dc52..597844df6 100644
--- a/frontend/src/Store/Actions/artistIndexActions.js
+++ b/frontend/src/Store/Actions/artistIndexActions.js
@@ -85,12 +85,6 @@ export const defaultState = {
isSortable: true,
isVisible: true
},
- {
- name: 'languageProfileId',
- label: 'Language Profile',
- isSortable: true,
- isVisible: false
- },
{
name: 'metadataProfileId',
label: 'Metadata Profile',
@@ -250,12 +244,6 @@ export const defaultState = {
type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.QUALITY_PROFILE
},
- {
- name: 'languageProfileId',
- label: 'Language Profile',
- type: filterBuilderTypes.EXACT,
- valueType: filterBuilderValueTypes.LANGUAGE_PROFILE
- },
{
name: 'metadataProfileId',
label: 'Metadata Profile',
diff --git a/frontend/src/Store/Actions/blacklistActions.js b/frontend/src/Store/Actions/blacklistActions.js
index a6775e836..2dde21b1e 100644
--- a/frontend/src/Store/Actions/blacklistActions.js
+++ b/frontend/src/Store/Actions/blacklistActions.js
@@ -38,11 +38,6 @@ export const defaultState = {
isSortable: true,
isVisible: true
},
- {
- name: 'language',
- label: 'Language',
- isVisible: false
- },
{
name: 'quality',
label: 'Quality',
diff --git a/frontend/src/Store/Actions/historyActions.js b/frontend/src/Store/Actions/historyActions.js
index f1beca264..d7552b938 100644
--- a/frontend/src/Store/Actions/historyActions.js
+++ b/frontend/src/Store/Actions/historyActions.js
@@ -50,11 +50,6 @@ export const defaultState = {
label: 'Track Title',
isVisible: true
},
- {
- name: 'language',
- label: 'Language',
- isVisible: false
- },
{
name: 'quality',
label: 'Quality',
diff --git a/frontend/src/Store/Actions/queueActions.js b/frontend/src/Store/Actions/queueActions.js
index 8f67e08bc..85c301c7d 100644
--- a/frontend/src/Store/Actions/queueActions.js
+++ b/frontend/src/Store/Actions/queueActions.js
@@ -80,12 +80,6 @@ export const defaultState = {
isSortable: true,
isVisible: false
},
- {
- name: 'language',
- label: 'Language',
- isSortable: true,
- isVisible: false
- },
{
name: 'quality',
label: 'Quality',
diff --git a/frontend/src/Store/Actions/settingsActions.js b/frontend/src/Store/Actions/settingsActions.js
index b549c914d..2a7cfc8b9 100644
--- a/frontend/src/Store/Actions/settingsActions.js
+++ b/frontend/src/Store/Actions/settingsActions.js
@@ -7,7 +7,6 @@ import downloadClientOptions from './Settings/downloadClientOptions';
import general from './Settings/general';
import indexerOptions from './Settings/indexerOptions';
import indexers from './Settings/indexers';
-import languageProfiles from './Settings/languageProfiles';
import importLists from './Settings/importLists';
import importListExclusions from './Settings/importListExclusions';
import metadataProfiles from './Settings/metadataProfiles';
@@ -31,7 +30,6 @@ export * from './Settings/importLists';
export * from './Settings/importListExclusions';
export * from './Settings/indexerOptions';
export * from './Settings/indexers';
-export * from './Settings/languageProfiles';
export * from './Settings/metadataProfiles';
export * from './Settings/mediaManagement';
export * from './Settings/metadata';
@@ -62,7 +60,6 @@ export const defaultState = {
general: general.defaultState,
indexerOptions: indexerOptions.defaultState,
indexers: indexers.defaultState,
- languageProfiles: languageProfiles.defaultState,
importLists: importLists.defaultState,
importListExclusions: importListExclusions.defaultState,
metadataProfiles: metadataProfiles.defaultState,
@@ -103,7 +100,6 @@ export const actionHandlers = handleThunks({
...general.actionHandlers,
...indexerOptions.actionHandlers,
...indexers.actionHandlers,
- ...languageProfiles.actionHandlers,
...importLists.actionHandlers,
...importListExclusions.actionHandlers,
...metadataProfiles.actionHandlers,
@@ -135,7 +131,6 @@ export const reducers = createHandleActions({
...general.reducers,
...indexerOptions.reducers,
...indexers.reducers,
- ...languageProfiles.reducers,
...importLists.reducers,
...importListExclusions.reducers,
...metadataProfiles.reducers,
diff --git a/frontend/src/Store/Actions/trackActions.js b/frontend/src/Store/Actions/trackActions.js
index 75b9ca507..44292271a 100644
--- a/frontend/src/Store/Actions/trackActions.js
+++ b/frontend/src/Store/Actions/trackActions.js
@@ -55,11 +55,6 @@ export const defaultState = {
label: 'Duration',
isVisible: true
},
- {
- name: 'language',
- label: 'Language',
- isVisible: false
- },
{
name: 'audioInfo',
label: 'Audio Info',
diff --git a/frontend/src/Store/Actions/trackFileActions.js b/frontend/src/Store/Actions/trackFileActions.js
index 666a9c7a9..203258977 100644
--- a/frontend/src/Store/Actions/trackFileActions.js
+++ b/frontend/src/Store/Actions/trackFileActions.js
@@ -139,7 +139,6 @@ export const actionHandlers = handleThunks({
[UPDATE_TRACK_FILES]: function(getState, payload, dispatch) {
const {
trackFileIds,
- language,
quality
} = payload;
@@ -149,10 +148,6 @@ export const actionHandlers = handleThunks({
trackFileIds
};
- if (language) {
- data.language = language;
- }
-
if (quality) {
data.quality = quality;
}
@@ -169,10 +164,6 @@ export const actionHandlers = handleThunks({
...trackFileIds.map((id) => {
const props = {};
- if (language) {
- props.language = language;
- }
-
if (quality) {
props.quality = quality;
}
diff --git a/frontend/src/Store/Actions/wantedActions.js b/frontend/src/Store/Actions/wantedActions.js
index 12ccce802..4df132504 100644
--- a/frontend/src/Store/Actions/wantedActions.js
+++ b/frontend/src/Store/Actions/wantedActions.js
@@ -125,11 +125,6 @@ export const defaultState = {
isSortable: true,
isVisible: true
},
- {
- name: 'language',
- label: 'Language',
- isVisible: false
- },
// {
// name: 'status',
// label: 'Status',
diff --git a/frontend/src/Store/Selectors/createArtistLanguageProfileSelector.js b/frontend/src/Store/Selectors/createArtistLanguageProfileSelector.js
deleted file mode 100644
index 14c116ff4..000000000
--- a/frontend/src/Store/Selectors/createArtistLanguageProfileSelector.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { createSelector } from 'reselect';
-import createArtistSelector from './createArtistSelector';
-
-function createArtistLanguageProfileSelector() {
- return createSelector(
- (state) => state.settings.languageProfiles.items,
- createArtistSelector(),
- (languageProfiles, artist = {}) => {
- return languageProfiles.find((profile) => {
- return profile.id === artist.languageProfileId;
- });
- }
- );
-}
-
-export default createArtistLanguageProfileSelector;
diff --git a/frontend/src/Store/Selectors/createLanguageProfileSelector.js b/frontend/src/Store/Selectors/createLanguageProfileSelector.js
deleted file mode 100644
index c32f85ada..000000000
--- a/frontend/src/Store/Selectors/createLanguageProfileSelector.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { createSelector } from 'reselect';
-
-function createLanguageProfileSelector() {
- return createSelector(
- (state, { languageProfileId }) => languageProfileId,
- (state) => state.settings.languageProfiles.items,
- (languageProfileId, languageProfiles) => {
- return languageProfiles.find((profile) => {
- return profile.id === languageProfileId;
- });
- }
- );
-}
-
-export default createLanguageProfileSelector;
diff --git a/frontend/src/TrackFile/Editor/TrackFileEditorModalContent.js b/frontend/src/TrackFile/Editor/TrackFileEditorModalContent.js
index d18a4144b..f9d9cc282 100644
--- a/frontend/src/TrackFile/Editor/TrackFileEditorModalContent.js
+++ b/frontend/src/TrackFile/Editor/TrackFileEditorModalContent.js
@@ -32,11 +32,6 @@ const columns = [
label: 'Relative Path',
isVisible: true
},
- {
- name: 'language',
- label: 'Language',
- isVisible: true
- },
{
name: 'quality',
label: 'Quality',
@@ -112,16 +107,6 @@ class TrackFileEditorModalContent extends Component {
this.setState({ isConfirmDeleteModalOpen: false });
}
- onLanguageChange = ({ value }) => {
- const selectedIds = this.getSelectedIds();
-
- if (!selectedIds.length) {
- return;
- }
-
- this.props.onLanguageChange(selectedIds, parseInt(value));
- }
-
onQualityChange = ({ value }) => {
const selectedIds = this.getSelectedIds();
@@ -142,7 +127,6 @@ class TrackFileEditorModalContent extends Component {
isPopulated,
error,
items,
- languages,
qualities,
onModalClose
} = this.props;
@@ -154,15 +138,6 @@ class TrackFileEditorModalContent extends Component {
isConfirmDeleteModalOpen
} = this.state;
- const languageOptions = _.reduceRight(languages, (acc, language) => {
- acc.push({
- key: language.id,
- value: language.name
- });
-
- return acc;
- }, [{ key: 'selectLanguage', value: 'Select Language', disabled: true }]);
-
const qualityOptions = _.reduceRight(qualities, (acc, quality) => {
acc.push({
key: quality.id,
@@ -240,16 +215,6 @@ class TrackFileEditorModalContent extends Component {
Delete
-
-
-
-
state.settings.languageProfiles,
(state) => state.settings.qualityProfiles,
- (languageProfiles, qualityProfiles) => {
- const languages = _.map(languageProfiles.schema.languages, 'language');
+ (qualityProfiles) => {
const qualities = getQualities(qualityProfiles.schema.items);
let error = null;
- if (languageProfiles.schemaError) {
- error = 'Unable to load languages';
- } else if (qualityProfiles.schemaError) {
+ if (qualityProfiles.schemaError) {
error = 'Unable to load qualities';
}
return {
- isFetching: languageProfiles.isSchemaFetching || qualityProfiles.isSchemaFetching,
- isPopulated: languageProfiles.isSchemaPopulated && qualityProfiles.isSchemaPopulated,
+ isFetching: qualityProfiles.isSchemaFetching,
+ isPopulated: qualityProfiles.isSchemaPopulated,
error,
- languages,
qualities
};
}
@@ -71,7 +66,6 @@ function createMapStateToProps() {
return {
relativePath: trackFile.relativePath,
- language: trackFile.language,
quality: trackFile.quality,
...track
};
@@ -98,10 +92,6 @@ function createMapDispatchToProps(dispatch, props) {
dispatch(fetchTracks(updateProps));
},
- dispatchFetchLanguageProfileSchema(name, path) {
- dispatch(fetchLanguageProfileSchema());
- },
-
dispatchFetchQualityProfileSchema(name, path) {
dispatch(fetchQualityProfileSchema());
},
@@ -127,7 +117,6 @@ class TrackFileEditorModalContentConnector extends Component {
this.props.dispatchFetchTracks({ artistId, albumId });
- this.props.dispatchFetchLanguageProfileSchema();
this.props.dispatchFetchQualityProfileSchema();
}
@@ -138,12 +127,6 @@ class TrackFileEditorModalContentConnector extends Component {
//
// Listeners
- onLanguageChange = (trackFileIds, languageId) => {
- const language = _.find(this.props.languages, { id: languageId });
-
- this.props.dispatchUpdateTrackFiles({ trackFileIds, language });
- }
-
onQualityChange = (trackFileIds, qualityId) => {
const quality = {
quality: _.find(this.props.qualities, { id: qualityId }),
@@ -161,7 +144,6 @@ class TrackFileEditorModalContentConnector extends Component {
render() {
const {
- dispatchFetchLanguageProfileSchema,
dispatchFetchQualityProfileSchema,
dispatchUpdateTrackFiles,
dispatchFetchTracks,
@@ -172,7 +154,6 @@ class TrackFileEditorModalContentConnector extends Component {
return (
);
@@ -182,11 +163,9 @@ class TrackFileEditorModalContentConnector extends Component {
TrackFileEditorModalContentConnector.propTypes = {
artistId: PropTypes.number.isRequired,
albumId: PropTypes.number,
- languages: PropTypes.arrayOf(PropTypes.object).isRequired,
qualities: PropTypes.arrayOf(PropTypes.object).isRequired,
dispatchFetchTracks: PropTypes.func.isRequired,
dispatchClearTracks: PropTypes.func.isRequired,
- dispatchFetchLanguageProfileSchema: PropTypes.func.isRequired,
dispatchFetchQualityProfileSchema: PropTypes.func.isRequired,
dispatchUpdateTrackFiles: PropTypes.func.isRequired
};
diff --git a/frontend/src/TrackFile/Editor/TrackFileEditorRow.js b/frontend/src/TrackFile/Editor/TrackFileEditorRow.js
index 76c7039e3..e475c115b 100644
--- a/frontend/src/TrackFile/Editor/TrackFileEditorRow.js
+++ b/frontend/src/TrackFile/Editor/TrackFileEditorRow.js
@@ -1,7 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
import padNumber from 'Utilities/Number/padNumber';
-import Label from 'Components/Label';
import TableRow from 'Components/Table/TableRow';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
@@ -12,7 +11,6 @@ function TrackFileEditorRow(props) {
id,
trackNumber,
relativePath,
- language,
quality,
isSelected,
onSelectedChange
@@ -34,12 +32,6 @@ function TrackFileEditorRow(props) {
{relativePath}
-
-
-
-
{
- return {
- language: trackFile ? trackFile.language : undefined
- };
- }
- );
-}
-
-export default connect(createMapStateToProps)(TrackLanguage);
diff --git a/frontend/src/Utilities/Artist/getNewArtist.js b/frontend/src/Utilities/Artist/getNewArtist.js
index e46099eb6..d39855f04 100644
--- a/frontend/src/Utilities/Artist/getNewArtist.js
+++ b/frontend/src/Utilities/Artist/getNewArtist.js
@@ -4,7 +4,6 @@ function getNewArtist(artist, payload) {
rootFolderPath,
monitor,
qualityProfileId,
- languageProfileId,
metadataProfileId,
artistType,
albumFolder,
@@ -20,7 +19,6 @@ function getNewArtist(artist, payload) {
artist.addOptions = addOptions;
artist.monitored = true;
artist.qualityProfileId = qualityProfileId;
- artist.languageProfileId = languageProfileId;
artist.metadataProfileId = metadataProfileId;
artist.rootFolderPath = rootFolderPath;
artist.artistType = artistType;
diff --git a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.css b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.css
index d033cb221..106842b2b 100644
--- a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.css
+++ b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.css
@@ -1,5 +1,4 @@
.episode,
-.language,
.status {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
diff --git a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
index d29fc6232..34e1d501f 100644
--- a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
+++ b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
@@ -4,7 +4,6 @@ import albumEntities from 'Album/albumEntities';
import AlbumTitleLink from 'Album/AlbumTitleLink';
import EpisodeStatusConnector from 'Album/EpisodeStatusConnector';
import AlbumSearchCellConnector from 'Album/AlbumSearchCellConnector';
-import TrackFileLanguageConnector from 'TrackFile/TrackFileLanguageConnector';
import ArtistNameLink from 'Artist/ArtistNameLink';
import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector';
import TableRow from 'Components/Table/TableRow';
@@ -86,19 +85,6 @@ function CutoffUnmetRow(props) {
);
}
- if (name === 'language') {
- return (
-
-
-
- );
- }
-
if (name === 'status') {
return (
ArtistIds { get; set; }
public bool? Monitored { get; set; }
public int? QualityProfileId { get; set; }
- public int? LanguageProfileId { get; set; }
public int? MetadataProfileId { get; set; }
public bool? AlbumFolder { get; set; }
public string RootFolderPath { get; set; }
diff --git a/src/Lidarr.Api.V1/Artist/ArtistModule.cs b/src/Lidarr.Api.V1/Artist/ArtistModule.cs
index 552ce404b..5cb9c42c4 100644
--- a/src/Lidarr.Api.V1/Artist/ArtistModule.cs
+++ b/src/Lidarr.Api.V1/Artist/ArtistModule.cs
@@ -57,7 +57,6 @@ namespace Lidarr.Api.V1.Artist
ArtistAncestorValidator artistAncestorValidator,
SystemFolderValidator systemFolderValidator,
ProfileExistsValidator profileExistsValidator,
- LanguageProfileExistsValidator languageProfileExistsValidator,
MetadataProfileExistsValidator metadataProfileExistsValidator
)
: base(signalRBroadcaster)
@@ -78,7 +77,6 @@ namespace Lidarr.Api.V1.Artist
DeleteResource = DeleteArtist;
Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.QualityProfileId));
- Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.LanguageProfileId));
Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.MetadataProfileId));
SharedValidator.RuleFor(s => s.Path)
@@ -92,7 +90,6 @@ namespace Lidarr.Api.V1.Artist
.When(s => !s.Path.IsNullOrWhiteSpace());
SharedValidator.RuleFor(s => s.QualityProfileId).SetValidator(profileExistsValidator);
- SharedValidator.RuleFor(s => s.LanguageProfileId).SetValidator(languageProfileExistsValidator);
SharedValidator.RuleFor(s => s.MetadataProfileId).SetValidator(metadataProfileExistsValidator);
PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
diff --git a/src/Lidarr.Api.V1/Artist/ArtistResource.cs b/src/Lidarr.Api.V1/Artist/ArtistResource.cs
index 8017acdf7..264beb981 100644
--- a/src/Lidarr.Api.V1/Artist/ArtistResource.cs
+++ b/src/Lidarr.Api.V1/Artist/ArtistResource.cs
@@ -43,7 +43,6 @@ namespace Lidarr.Api.V1.Artist
//View & Edit
public string Path { get; set; }
public int QualityProfileId { get; set; }
- public int LanguageProfileId { get; set; }
public int MetadataProfileId { get; set; }
//Editing Only
@@ -85,7 +84,6 @@ namespace Lidarr.Api.V1.Artist
Path = model.Path,
QualityProfileId = model.QualityProfileId,
- LanguageProfileId = model.LanguageProfileId,
MetadataProfileId = model.MetadataProfileId,
Links = model.Metadata.Value.Links,
@@ -133,7 +131,6 @@ namespace Lidarr.Api.V1.Artist
SortName = resource.SortName,
Path = resource.Path,
QualityProfileId = resource.QualityProfileId,
- LanguageProfileId = resource.LanguageProfileId,
MetadataProfileId = resource.MetadataProfileId,
diff --git a/src/Lidarr.Api.V1/Blacklist/BlacklistResource.cs b/src/Lidarr.Api.V1/Blacklist/BlacklistResource.cs
index 61445bc94..e01254c63 100644
--- a/src/Lidarr.Api.V1/Blacklist/BlacklistResource.cs
+++ b/src/Lidarr.Api.V1/Blacklist/BlacklistResource.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using NzbDrone.Core.Indexers;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities;
using Lidarr.Api.V1.Artist;
using Lidarr.Http.REST;
@@ -13,7 +12,6 @@ namespace Lidarr.Api.V1.Blacklist
public int ArtistId { get; set; }
public List AlbumIds { get; set; }
public string SourceTitle { get; set; }
- public Language Language { get; set; }
public QualityModel Quality { get; set; }
public DateTime Date { get; set; }
public DownloadProtocol Protocol { get; set; }
@@ -36,7 +34,6 @@ namespace Lidarr.Api.V1.Blacklist
ArtistId = model.ArtistId,
AlbumIds = model.AlbumIds,
SourceTitle = model.SourceTitle,
- Language = model.Language,
Quality = model.Quality,
Date = model.Date,
Protocol = model.Protocol,
diff --git a/src/Lidarr.Api.V1/History/HistoryModule.cs b/src/Lidarr.Api.V1/History/HistoryModule.cs
index 62d29a682..27c951906 100644
--- a/src/Lidarr.Api.V1/History/HistoryModule.cs
+++ b/src/Lidarr.Api.V1/History/HistoryModule.cs
@@ -56,7 +56,6 @@ namespace Lidarr.Api.V1.History
if (model.Artist != null)
{
resource.QualityCutoffNotMet = _upgradableSpecification.QualityCutoffNotMet(model.Artist.QualityProfile.Value, model.Quality);
- resource.LanguageCutoffNotMet = _upgradableSpecification.LanguageCutoffNotMet(model.Artist.LanguageProfile, model.Language);
}
return resource;
diff --git a/src/Lidarr.Api.V1/History/HistoryResource.cs b/src/Lidarr.Api.V1/History/HistoryResource.cs
index 27c168b4b..398230864 100644
--- a/src/Lidarr.Api.V1/History/HistoryResource.cs
+++ b/src/Lidarr.Api.V1/History/HistoryResource.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using NzbDrone.Core.History;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities;
using Lidarr.Api.V1.Albums;
using Lidarr.Api.V1.Artist;
@@ -16,10 +15,8 @@ namespace Lidarr.Api.V1.History
public int ArtistId { get; set; }
public int TrackId { get; set; }
public string SourceTitle { get; set; }
- public Language Language { get; set; }
public QualityModel Quality { get; set; }
public bool QualityCutoffNotMet { get; set; }
- public bool LanguageCutoffNotMet { get; set; }
public DateTime Date { get; set; }
public string DownloadId { get; set; }
@@ -46,7 +43,6 @@ namespace Lidarr.Api.V1.History
ArtistId = model.ArtistId,
TrackId = model.TrackId,
SourceTitle = model.SourceTitle,
- Language = model.Language,
Quality = model.Quality,
//QualityCutoffNotMet
Date = model.Date,
diff --git a/src/Lidarr.Api.V1/ImportLists/ImportListModule.cs b/src/Lidarr.Api.V1/ImportLists/ImportListModule.cs
index b187f1840..b3d3965e8 100644
--- a/src/Lidarr.Api.V1/ImportLists/ImportListModule.cs
+++ b/src/Lidarr.Api.V1/ImportLists/ImportListModule.cs
@@ -10,18 +10,15 @@ namespace Lidarr.Api.V1.ImportLists
public ImportListModule(ImportListFactory importListFactory,
ProfileExistsValidator profileExistsValidator,
- LanguageProfileExistsValidator languageProfileExistsValidator,
MetadataProfileExistsValidator metadataProfileExistsValidator
)
: base(importListFactory, "importlist", ResourceMapper)
{
Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.QualityProfileId));
- Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.LanguageProfileId));
Http.Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.MetadataProfileId));
SharedValidator.RuleFor(c => c.RootFolderPath).IsValidPath();
SharedValidator.RuleFor(c => c.QualityProfileId).SetValidator(profileExistsValidator);
- SharedValidator.RuleFor(c => c.LanguageProfileId).SetValidator(languageProfileExistsValidator);
SharedValidator.RuleFor(c => c.MetadataProfileId).SetValidator(metadataProfileExistsValidator);
}
diff --git a/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs b/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs
index d5844824f..d23551e18 100644
--- a/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs
+++ b/src/Lidarr.Api.V1/ImportLists/ImportListResource.cs
@@ -8,7 +8,6 @@ namespace Lidarr.Api.V1.ImportLists
public ImportListMonitorType ShouldMonitor { get; set; }
public string RootFolderPath { get; set; }
public int QualityProfileId { get; set; }
- public int LanguageProfileId { get; set; }
public int MetadataProfileId { get; set; }
public ImportListType ListType { get; set; }
public int ListOrder { get; set; }
@@ -29,7 +28,6 @@ namespace Lidarr.Api.V1.ImportLists
resource.ShouldMonitor = definition.ShouldMonitor;
resource.RootFolderPath = definition.RootFolderPath;
resource.QualityProfileId = definition.ProfileId;
- resource.LanguageProfileId = definition.LanguageProfileId;
resource.MetadataProfileId = definition.MetadataProfileId;
resource.ListType = definition.ListType;
resource.ListOrder = (int) definition.ListType;
@@ -50,7 +48,6 @@ namespace Lidarr.Api.V1.ImportLists
definition.ShouldMonitor = resource.ShouldMonitor;
definition.RootFolderPath = resource.RootFolderPath;
definition.ProfileId = resource.QualityProfileId;
- definition.LanguageProfileId = resource.LanguageProfileId;
definition.MetadataProfileId = resource.MetadataProfileId;
definition.ListType = resource.ListType;
diff --git a/src/Lidarr.Api.V1/Indexers/ReleaseModuleBase.cs b/src/Lidarr.Api.V1/Indexers/ReleaseModuleBase.cs
index 994150dc2..a1ce46788 100644
--- a/src/Lidarr.Api.V1/Indexers/ReleaseModuleBase.cs
+++ b/src/Lidarr.Api.V1/Indexers/ReleaseModuleBase.cs
@@ -32,12 +32,6 @@ namespace Lidarr.Api.V1.Indexers
.Artist
.QualityProfile.Value
.Items.FindIndex(v => v.Quality == release.Quality.Quality) * 100;
-
- release.LanguageWeight = decision.RemoteAlbum
- .Artist
- .LanguageProfile.Value
- .Languages.FindIndex(v => v.Language == release.Language) * 100;
-
}
release.QualityWeight += release.Quality.Revision.Real * 10;
diff --git a/src/Lidarr.Api.V1/Indexers/ReleaseResource.cs b/src/Lidarr.Api.V1/Indexers/ReleaseResource.cs
index 2855435ff..bc10523cb 100644
--- a/src/Lidarr.Api.V1/Indexers/ReleaseResource.cs
+++ b/src/Lidarr.Api.V1/Indexers/ReleaseResource.cs
@@ -4,7 +4,6 @@ using System.Linq;
using Newtonsoft.Json;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Indexers;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities;
using Lidarr.Http.REST;
@@ -28,8 +27,6 @@ namespace Lidarr.Api.V1.Indexers
public string Title { get; set; }
public bool Discography { get; set; }
public bool SceneSource { get; set; }
- public Language Language { get; set; }
- public int LanguageWeight { get; set; }
public string AirDate { get; set; }
public string ArtistName { get; set; }
public string AlbumTitle { get; set; }
@@ -86,7 +83,6 @@ namespace Lidarr.Api.V1.Indexers
ReleaseGroup = parsedAlbumInfo.ReleaseGroup,
ReleaseHash = parsedAlbumInfo.ReleaseHash,
Title = releaseInfo.Title,
- Language = parsedAlbumInfo.Language,
ArtistName = parsedAlbumInfo.ArtistName,
AlbumTitle = parsedAlbumInfo.AlbumTitle,
Discography = parsedAlbumInfo.Discography,
diff --git a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj
index 8c28dce6f..4d9b79052 100644
--- a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj
+++ b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj
@@ -92,10 +92,6 @@
-
-
-
-
diff --git a/src/Lidarr.Api.V1/ManualImport/ManualImportModule.cs b/src/Lidarr.Api.V1/ManualImport/ManualImportModule.cs
index 3c41232c5..270eb930e 100644
--- a/src/Lidarr.Api.V1/ManualImport/ManualImportModule.cs
+++ b/src/Lidarr.Api.V1/ManualImport/ManualImportModule.cs
@@ -78,7 +78,6 @@ namespace Lidarr.Api.V1.ManualImport
Album = resource.Album == null ? null : _albumService.GetAlbum(resource.Album.Id),
Release = resource.AlbumReleaseId == 0 ? null : _releaseService.GetRelease(resource.AlbumReleaseId),
Quality = resource.Quality,
- Language = resource.Language,
DownloadId = resource.DownloadId,
AdditionalFile = resource.AdditionalFile,
ReplaceExistingFiles = resource.ReplaceExistingFiles,
diff --git a/src/Lidarr.Api.V1/ManualImport/ManualImportResource.cs b/src/Lidarr.Api.V1/ManualImport/ManualImportResource.cs
index b9a5735c6..d2a2b728d 100644
--- a/src/Lidarr.Api.V1/ManualImport/ManualImportResource.cs
+++ b/src/Lidarr.Api.V1/ManualImport/ManualImportResource.cs
@@ -1,7 +1,6 @@
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.MediaFiles.TrackImport.Manual;
using NzbDrone.Core.Qualities;
-using NzbDrone.Core.Languages;
using Lidarr.Api.V1.Artist;
using Lidarr.Api.V1.Albums;
using Lidarr.Api.V1.Tracks;
@@ -24,7 +23,6 @@ namespace Lidarr.Api.V1.ManualImport
public int AlbumReleaseId { get; set; }
public List Tracks { get; set; }
public QualityModel Quality { get; set; }
- public Language Language { get; set; }
public int QualityWeight { get; set; }
public string DownloadId { get; set; }
public IEnumerable Rejections { get; set; }
@@ -53,7 +51,6 @@ namespace Lidarr.Api.V1.ManualImport
AlbumReleaseId = model.Release?.Id ?? 0,
Tracks = model.Tracks.ToResource(),
Quality = model.Quality,
- Language = model.Language,
//QualityWeight
DownloadId = model.DownloadId,
Rejections = model.Rejections,
diff --git a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileModule.cs b/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileModule.cs
deleted file mode 100644
index 9c33e12e5..000000000
--- a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileModule.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Collections.Generic;
-using FluentValidation;
-using NzbDrone.Core.Profiles.Languages;
-using Lidarr.Http;
-
-namespace Lidarr.Api.V1.Profiles.Language
-{
- public class LanguageProfileModule : LidarrRestModule
- {
- private readonly ILanguageProfileService _profileService;
-
- public LanguageProfileModule(ILanguageProfileService profileService)
- {
- _profileService = profileService;
- SharedValidator.RuleFor(c => c.Name).NotEmpty();
- SharedValidator.RuleFor(c => c.Cutoff).NotNull();
- SharedValidator.RuleFor(c => c.Languages).MustHaveAllowedLanguage();
-
- GetResourceAll = GetAll;
- GetResourceById = GetById;
- UpdateResource = Update;
- CreateResource = Create;
- DeleteResource = DeleteProfile;
- }
-
- private int Create(LanguageProfileResource resource)
- {
- var model = resource.ToModel();
- model = _profileService.Add(model);
- return model.Id;
- }
-
- private void DeleteProfile(int id)
- {
- _profileService.Delete(id);
- }
-
- private void Update(LanguageProfileResource resource)
- {
- var model = resource.ToModel();
-
- _profileService.Update(model);
- }
-
- private LanguageProfileResource GetById(int id)
- {
- return _profileService.Get(id).ToResource();
- }
-
- private List GetAll()
- {
- var profiles = _profileService.All().ToResource();
-
- return profiles;
- }
- }
-}
\ No newline at end of file
diff --git a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileResource.cs b/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileResource.cs
deleted file mode 100644
index 3a33757a8..000000000
--- a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileResource.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using NzbDrone.Core.Profiles.Languages;
-using Lidarr.Http.REST;
-
-namespace Lidarr.Api.V1.Profiles.Language
-{
- public class LanguageProfileResource : RestResource
- {
- public string Name { get; set; }
- public bool UpgradeAllowed { get; set; }
- public NzbDrone.Core.Languages.Language Cutoff { get; set; }
- public List Languages { get; set; }
- }
-
- public class ProfileLanguageItemResource : RestResource
- {
- public NzbDrone.Core.Languages.Language Language { get; set; }
- public bool Allowed { get; set; }
- }
-
- public static class LanguageProfileResourceMapper
- {
- public static LanguageProfileResource ToResource(this LanguageProfile model)
- {
- if (model == null) return null;
-
- return new LanguageProfileResource
- {
- Id = model.Id,
- Name = model.Name,
- UpgradeAllowed = model.UpgradeAllowed,
- Cutoff = model.Cutoff,
- Languages = model.Languages.ConvertAll(ToResource)
- };
- }
-
- public static ProfileLanguageItemResource ToResource(this LanguageProfileItem model)
- {
- if (model == null) return null;
-
- return new ProfileLanguageItemResource
- {
- Language = model.Language,
- Allowed = model.Allowed
- };
- }
-
- public static LanguageProfile ToModel(this LanguageProfileResource resource)
- {
- if (resource == null) return null;
-
- return new LanguageProfile
- {
- Id = resource.Id,
- Name = resource.Name,
- UpgradeAllowed = resource.UpgradeAllowed,
- Cutoff = (NzbDrone.Core.Languages.Language)resource.Cutoff.Id,
- Languages = resource.Languages.ConvertAll(ToModel)
- };
- }
-
- public static LanguageProfileItem ToModel(this ProfileLanguageItemResource resource)
- {
- if (resource == null) return null;
-
- return new LanguageProfileItem
- {
- Language = (NzbDrone.Core.Languages.Language)resource.Language.Id,
- Allowed = resource.Allowed
- };
- }
-
- public static List ToResource(this IEnumerable models)
- {
- return models.Select(ToResource).ToList();
- }
- }
-}
diff --git a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileSchemaModule.cs b/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileSchemaModule.cs
deleted file mode 100644
index ecc154043..000000000
--- a/src/Lidarr.Api.V1/Profiles/Language/LanguageProfileSchemaModule.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System.Linq;
-using NzbDrone.Core.Profiles.Languages;
-using Lidarr.Http;
-
-namespace Lidarr.Api.V1.Profiles.Language
-{
- public class LanguageProfileSchemaModule : LidarrRestModule
- {
- private readonly LanguageProfileService _languageProfileService;
-
- public LanguageProfileSchemaModule(LanguageProfileService languageProfileService)
- : base("/languageprofile/schema")
- {
- _languageProfileService = languageProfileService;
- GetResourceSingle = GetAll;
- }
-
- private LanguageProfileResource GetAll()
- {
- var profile = _languageProfileService.GetDefaultProfile(string.Empty);
- return profile.ToResource();
- }
- }
-}
diff --git a/src/Lidarr.Api.V1/Profiles/Language/LanguageValidator.cs b/src/Lidarr.Api.V1/Profiles/Language/LanguageValidator.cs
deleted file mode 100644
index 62ac82807..000000000
--- a/src/Lidarr.Api.V1/Profiles/Language/LanguageValidator.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using FluentValidation;
-using FluentValidation.Validators;
-
-namespace Lidarr.Api.V1.Profiles.Language
-{
- public static class LanguageValidation
- {
- public static IRuleBuilderOptions> MustHaveAllowedLanguage(this IRuleBuilder> ruleBuilder)
- {
- ruleBuilder.SetValidator(new NotEmptyValidator(null));
-
- return ruleBuilder.SetValidator(new LanguageValidator());
- }
- }
-
-
- public class LanguageValidator : PropertyValidator
- {
- public LanguageValidator()
- : base("Must have at least one allowed language")
- {
- }
-
- protected override bool IsValid(PropertyValidatorContext context)
- {
- var list = context.PropertyValue as IList;
-
- if (list == null)
- {
- return false;
- }
-
- if (!list.Any(c => c.Allowed))
- {
- return false;
- }
-
- return true;
- }
- }
-}
diff --git a/src/Lidarr.Api.V1/Queue/QueueModule.cs b/src/Lidarr.Api.V1/Queue/QueueModule.cs
index f20cc377b..94c25ecea 100644
--- a/src/Lidarr.Api.V1/Queue/QueueModule.cs
+++ b/src/Lidarr.Api.V1/Queue/QueueModule.cs
@@ -5,9 +5,7 @@ using NzbDrone.Core.Configuration;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.Download.Pending;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Messaging.Events;
-using NzbDrone.Core.Profiles.Languages;
using NzbDrone.Core.Profiles.Qualities;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Queue;
@@ -23,13 +21,11 @@ namespace Lidarr.Api.V1.Queue
private readonly IQueueService _queueService;
private readonly IPendingReleaseService _pendingReleaseService;
- private readonly LanguageComparer LANGUAGE_COMPARER;
private readonly QualityModelComparer QUALITY_COMPARER;
public QueueModule(IBroadcastSignalRMessage broadcastSignalRMessage,
IQueueService queueService,
IPendingReleaseService pendingReleaseService,
- ILanguageProfileService languageProfileService,
QualityProfileService qualityProfileService)
: base(broadcastSignalRMessage)
{
@@ -37,7 +33,6 @@ namespace Lidarr.Api.V1.Queue
_pendingReleaseService = pendingReleaseService;
GetResourcePaged = GetQueue;
- LANGUAGE_COMPARER = new LanguageComparer(languageProfileService.GetDefaultProfile(string.Empty));
QUALITY_COMPARER = new QualityModelComparer(qualityProfileService.GetDefaultProfile(string.Empty));
}
@@ -98,13 +93,6 @@ namespace Lidarr.Api.V1.Queue
: fullQueue.OrderByDescending(q => q.DownloadClient, StringComparer.InvariantCultureIgnoreCase);
}
- else if (pagingSpec.SortKey == "language")
- {
- ordered = ascending
- ? fullQueue.OrderBy(q => q.Language, LANGUAGE_COMPARER)
- : fullQueue.OrderByDescending(q => q.Language, LANGUAGE_COMPARER);
- }
-
else if (pagingSpec.SortKey == "quality")
{
ordered = ascending
@@ -147,8 +135,6 @@ namespace Lidarr.Api.V1.Queue
return q => q.Album?.Title;
case "album.releaseDate":
return q => q.Album?.ReleaseDate;
- case "language":
- return q => q.Language;
case "quality":
return q => q.Quality;
case "progress":
diff --git a/src/Lidarr.Api.V1/Queue/QueueResource.cs b/src/Lidarr.Api.V1/Queue/QueueResource.cs
index c09ba55ef..c9913d7f6 100644
--- a/src/Lidarr.Api.V1/Queue/QueueResource.cs
+++ b/src/Lidarr.Api.V1/Queue/QueueResource.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities;
using Lidarr.Api.V1.Albums;
using Lidarr.Api.V1.Artist;
@@ -17,7 +16,6 @@ namespace Lidarr.Api.V1.Queue
public int? AlbumId { get; set; }
public ArtistResource Artist { get; set; }
public AlbumResource Album { get; set; }
- public Language Language { get; set; }
public QualityModel Quality { get; set; }
public decimal Size { get; set; }
public string Title { get; set; }
@@ -49,7 +47,6 @@ namespace Lidarr.Api.V1.Queue
AlbumId = model.Album?.Id,
Artist = includeArtist && model.Artist != null ? model.Artist.ToResource() : null,
Album = includeAlbum && model.Album != null ? model.Album.ToResource() : null,
- Language = model.Language,
Quality = model.Quality,
Size = model.Size,
Title = model.Title,
diff --git a/src/Lidarr.Api.V1/TrackFiles/TrackFileListResource.cs b/src/Lidarr.Api.V1/TrackFiles/TrackFileListResource.cs
index e8e6b4a7c..166836d9c 100644
--- a/src/Lidarr.Api.V1/TrackFiles/TrackFileListResource.cs
+++ b/src/Lidarr.Api.V1/TrackFiles/TrackFileListResource.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.Qualities;
namespace Lidarr.Api.V1.TrackFiles
@@ -7,7 +6,6 @@ namespace Lidarr.Api.V1.TrackFiles
public class TrackFileListResource
{
public List TrackFileIds { get; set; }
- public Language Language { get; set; }
public QualityModel Quality { get; set; }
}
}
diff --git a/src/Lidarr.Api.V1/TrackFiles/TrackFileModule.cs b/src/Lidarr.Api.V1/TrackFiles/TrackFileModule.cs
index a7be00e44..88265d667 100644
--- a/src/Lidarr.Api.V1/TrackFiles/TrackFileModule.cs
+++ b/src/Lidarr.Api.V1/TrackFiles/TrackFileModule.cs
@@ -123,11 +123,6 @@ namespace Lidarr.Api.V1.TrackFiles
foreach (var trackFile in trackFiles)
{
- if (resource.Language != null)
- {
- trackFile.Language = resource.Language;
- }
-
if (resource.Quality != null)
{
trackFile.Quality = resource.Quality;
diff --git a/src/Lidarr.Api.V1/TrackFiles/TrackFileResource.cs b/src/Lidarr.Api.V1/TrackFiles/TrackFileResource.cs
index 4470d01bf..28473ba51 100644
--- a/src/Lidarr.Api.V1/TrackFiles/TrackFileResource.cs
+++ b/src/Lidarr.Api.V1/TrackFiles/TrackFileResource.cs
@@ -1,6 +1,5 @@
using System;
using NzbDrone.Core.DecisionEngine.Specifications;
-using NzbDrone.Core.Languages;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Qualities;
using Lidarr.Http.REST;
@@ -16,13 +15,10 @@ namespace Lidarr.Api.V1.TrackFiles
public string Path { get; set; }
public long Size { get; set; }
public DateTime DateAdded { get; set; }
- //public string SceneName { get; set; }
- public Language Language { get; set; }
public QualityModel Quality { get; set; }
public MediaInfoResource MediaInfo { get; set; }
public bool QualityCutoffNotMet { get; set; }
- public bool LanguageCutoffNotMet { get; set; }
}
@@ -43,7 +39,6 @@ namespace Lidarr.Api.V1.TrackFiles
Size = model.Size,
DateAdded = model.DateAdded,
// SceneName = model.SceneName,
- Language = model.Language,
Quality = model.Quality,
MediaInfo = model.MediaInfo.ToResource()
//QualityCutoffNotMet
@@ -66,11 +61,9 @@ namespace Lidarr.Api.V1.TrackFiles
Size = model.Size,
DateAdded = model.DateAdded,
//SceneName = model.SceneName,
- Language = model.Language,
Quality = model.Quality,
MediaInfo = model.MediaInfo.ToResource(),
- QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(artist.QualityProfile.Value, model.Quality),
- LanguageCutoffNotMet = upgradableSpecification.LanguageCutoffNotMet(artist.LanguageProfile.Value, model.Language)
+ QualityCutoffNotMet = upgradableSpecification.QualityCutoffNotMet(artist.QualityProfile.Value, model.Quality)
};
}
}
diff --git a/src/NzbDrone.Core.Test/Datastore/Converters/LanguageIntConverterFixture.cs b/src/NzbDrone.Core.Test/Datastore/Converters/LanguageIntConverterFixture.cs
deleted file mode 100644
index 9d5fb3b58..000000000
--- a/src/NzbDrone.Core.Test/Datastore/Converters/LanguageIntConverterFixture.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-using FluentAssertions;
-using Marr.Data.Converters;
-using NUnit.Framework;
-using NzbDrone.Core.Datastore.Converters;
-using NzbDrone.Core.Languages;
-using NzbDrone.Core.Test.Framework;
-
-namespace NzbDrone.Core.Test.Datastore.Converters
-{
- [TestFixture]
- public class LanguageIntConverterFixture : CoreTest
- {
- [Test]
- public void should_return_int_when_saving_language_to_db()
- {
- var quality = Language.English;
-
- Subject.ToDB(quality).Should().Be(quality.Id);
- }
-
- [Test]
- public void should_return_0_when_saving_db_null_to_db()
- {
- Subject.ToDB(DBNull.Value).Should().Be(0);
- }
-
- [Test]
- public void should_throw_when_saving_another_object_to_db()
- {
- Assert.Throws(() => Subject.ToDB("Not a language"));
- }
-
- [Test]
- public void should_return_language_when_getting_string_from_db()
- {
- var language = Language.English;
-
- var context = new ConverterContext
- {
- DbValue = language.Id
- };
-
- Subject.FromDB(context).Should().Be(language);
- }
-
- [Test]
- public void should_return_db_null_for_db_null_value_when_getting_from_db()
- {
- var context = new ConverterContext
- {
- DbValue = DBNull.Value
- };
-
- Subject.FromDB(context).Should().Be(Language.Unknown);
- }
- }
-}
diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
index 52053ed50..58bc8cc89 100644
--- a/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/DatabaseRelationshipFixture.cs
@@ -6,7 +6,6 @@ using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Core.Music;
-using NzbDrone.Core.Languages;
using System;
namespace NzbDrone.Core.Test.Datastore
diff --git a/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs b/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs
index 0f121924c..9a5fdffe6 100644
--- a/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/MarrDataLazyLoadingFixture.cs
@@ -6,9 +6,6 @@ using NzbDrone.Core.Test.Framework;
using NzbDrone.Core.Music;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.MediaFiles;
-using NzbDrone.Core.Languages;
-using NzbDrone.Core.Profiles.Languages;
-using NzbDrone.Core.Test.Languages;
using Marr.Data.QGen;
using System.Collections.Generic;
using System.Linq;
@@ -29,17 +26,7 @@ namespace NzbDrone.Core.Test.Datastore
Items = Qualities.QualityFixture.GetDefaultQualities()
};
- var languageProfile = new LanguageProfile
- {
- Name = "Test",
- Languages = LanguageFixture.GetDefaultLanguages(Language.English),
- Cutoff = Language.English
- };
-
-
-
profile = Db.Insert(profile);
- languageProfile = Db.Insert(languageProfile);
var metadata = Builder.CreateNew()
.With(v => v.Id = 0)
@@ -50,7 +37,6 @@ namespace NzbDrone.Core.Test.Datastore
.All()
.With(v => v.Id = 0)
.With(v => v.QualityProfileId = profile.Id)
- .With(v => v.LanguageProfileId = languageProfile.Id)
.With(v => v.ArtistMetadataId = metadata.Id)
.BuildListOfNew();
@@ -130,7 +116,6 @@ namespace NzbDrone.Core.Test.Datastore
Assert.IsTrue(track.AlbumRelease.Value.Album.Value.Artist.IsLoaded);
Assert.IsNotNull(track.AlbumRelease.Value.Album.Value.Artist.Value);
Assert.IsFalse(track.AlbumRelease.Value.Album.Value.Artist.Value.QualityProfile.IsLoaded);
- Assert.IsFalse(track.AlbumRelease.Value.Album.Value.Artist.Value.LanguageProfile.IsLoaded);
}
}
@@ -306,33 +291,7 @@ namespace NzbDrone.Core.Test.Datastore
Assert.IsTrue(track.AlbumRelease.Value.Album.Value.Artist.IsLoaded);
Assert.IsNotNull(track.AlbumRelease.Value.Album.Value.Artist.Value);
Assert.IsTrue(track.AlbumRelease.Value.Album.Value.Artist.Value.QualityProfile.IsLoaded);
- Assert.IsFalse(track.AlbumRelease.Value.Album.Value.Artist.Value.LanguageProfile.IsLoaded);
- }
- }
-
- [Test]
- public void should_explicit_load_languageprofile_if_joined()
- {
- var db = Mocker.Resolve();
- var DataMapper = db.GetDataMapper();
-
- var tracks = DataMapper.Query