mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-21 22:04:31 -04:00
New: UI Updates, Tag manager, More custom filters (#437)
* New: UI Updates, Tag manager, More custom filters * fixup! Fix ScanFixture Unit Tests * Fixed: Sentry Errors from UI don't have release, branch, environment * Changed: Bump Mobile Detect for New Device Detection * Fixed: Build on changes to package.json * fixup! Add MetadataProfile filter option * fixup! Tag Note, Blacklist, Manual Import * fixup: Remove connectSection * fixup: root folder comment
This commit is contained in:
@@ -66,9 +66,7 @@ class DelayProfiles extends Component {
|
||||
|
||||
return (
|
||||
<Measure onMeasure={this.onMeasure}>
|
||||
<FieldSet
|
||||
legend="Delay Profiles"
|
||||
>
|
||||
<FieldSet legend="Delay Profiles">
|
||||
<PageSectionContent
|
||||
errorMessage="Unable to load Delay Profiles"
|
||||
{...otherProps}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { sizes } from 'Helpers/Props';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import EditDelayProfileModalContentConnector from './EditDelayProfileModalContentConnector';
|
||||
|
||||
function EditDelayProfileModal({ isOpen, onModalClose, ...otherProps }) {
|
||||
return (
|
||||
<Modal
|
||||
size={sizes.MEDIUM}
|
||||
isOpen={isOpen}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
|
||||
@@ -85,6 +85,7 @@ function EditDelayProfileModalContent(props) {
|
||||
<FormInputGroup
|
||||
type={inputTypes.NUMBER}
|
||||
name="usenetDelay"
|
||||
unit="minutes"
|
||||
{...usenetDelay}
|
||||
helpText="Delay in minutes to wait before grabbing a release from Usenet"
|
||||
onChange={onInputChange}
|
||||
@@ -100,6 +101,7 @@ function EditDelayProfileModalContent(props) {
|
||||
<FormInputGroup
|
||||
type={inputTypes.NUMBER}
|
||||
name="torrentDelay"
|
||||
unit="minutes"
|
||||
{...torrentDelay}
|
||||
helpText="Delay in minutes to wait before grabbing a torrent"
|
||||
onChange={onInputChange}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
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 (
|
||||
<Modal
|
||||
size={sizes.MEDIUM}
|
||||
isOpen={isOpen}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
|
||||
+4
-10
@@ -1,16 +1,16 @@
|
||||
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 connectSection from 'Store/connectSection';
|
||||
import EditLanguageProfileModalContent from './EditLanguageProfileModalContent';
|
||||
|
||||
function createLanguagesSelector() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('languageProfiles'),
|
||||
(languageProfile) => {
|
||||
const languages = languageProfile.item.languages;
|
||||
if (!languages || !languages.value) {
|
||||
@@ -33,7 +33,7 @@ function createLanguagesSelector() {
|
||||
|
||||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('languageProfiles'),
|
||||
createLanguagesSelector(),
|
||||
createProfileInUseSelector('languageProfileId'),
|
||||
(languageProfile, languages, isInUse) => {
|
||||
@@ -186,10 +186,4 @@ EditLanguageProfileModalContentConnector.propTypes = {
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default connectSection(
|
||||
createMapStateToProps,
|
||||
mapDispatchToProps,
|
||||
undefined,
|
||||
undefined,
|
||||
{ section: 'languageProfiles' }
|
||||
)(EditLanguageProfileModalContentConnector);
|
||||
export default connect(createMapStateToProps, mapDispatchToProps)(EditLanguageProfileModalContentConnector);
|
||||
|
||||
@@ -51,9 +51,7 @@ class LanguageProfiles extends Component {
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<FieldSet
|
||||
legend="Language Profiles"
|
||||
>
|
||||
<FieldSet legend="Language Profiles">
|
||||
<PageSectionContent
|
||||
errorMessage="Unable to load Language Profiles"
|
||||
{...otherProps}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { sizes } from 'Helpers/Props';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import EditMetadataProfileModalContentConnector from './EditMetadataProfileModalContentConnector';
|
||||
|
||||
function EditMetadataProfileModal({ isOpen, onModalClose, ...otherProps }) {
|
||||
return (
|
||||
<Modal
|
||||
size={sizes.MEDIUM}
|
||||
isOpen={isOpen}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
|
||||
+4
-10
@@ -1,16 +1,16 @@
|
||||
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 { fetchMetadataProfileSchema, setMetadataProfileValue, saveMetadataProfile } from 'Store/Actions/settingsActions';
|
||||
import connectSection from 'Store/connectSection';
|
||||
import EditMetadataProfileModalContent from './EditMetadataProfileModalContent';
|
||||
|
||||
function createPrimaryAlbumTypesSelector() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('metadataProfiles'),
|
||||
(metadataProfile) => {
|
||||
const primaryAlbumTypes = metadataProfile.item.primaryAlbumTypes;
|
||||
if (!primaryAlbumTypes || !primaryAlbumTypes.value) {
|
||||
@@ -79,7 +79,7 @@ function createReleaseStatusesSelector() {
|
||||
|
||||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('metadataProfiles'),
|
||||
createPrimaryAlbumTypesSelector(),
|
||||
createSecondaryAlbumTypesSelector(),
|
||||
createReleaseStatusesSelector(),
|
||||
@@ -210,10 +210,4 @@ EditMetadataProfileModalContentConnector.propTypes = {
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default connectSection(
|
||||
createMapStateToProps,
|
||||
mapDispatchToProps,
|
||||
undefined,
|
||||
undefined,
|
||||
{ section: 'metadataProfiles' }
|
||||
)(EditMetadataProfileModalContentConnector);
|
||||
export default connect(createMapStateToProps, mapDispatchToProps)(EditMetadataProfileModalContentConnector);
|
||||
|
||||
@@ -51,9 +51,7 @@ class MetadataProfiles extends Component {
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<FieldSet
|
||||
legend="Metadata Profiles"
|
||||
>
|
||||
<FieldSet legend="Metadata Profiles">
|
||||
<PageSectionContent
|
||||
errorMessage="Unable to load Metadata Profiles"
|
||||
{...otherProps}
|
||||
|
||||
@@ -145,7 +145,7 @@ class EditQualityProfileModalContent extends Component {
|
||||
<div className={styles.formGroupsContainer}>
|
||||
<div className={styles.formGroupWrapper}>
|
||||
<FormGroup size={sizes.EXTRA_SMALL}>
|
||||
<FormLabel size={sizes.small}>
|
||||
<FormLabel size={sizes.SMALL}>
|
||||
Name
|
||||
</FormLabel>
|
||||
|
||||
@@ -158,7 +158,7 @@ class EditQualityProfileModalContent extends Component {
|
||||
</FormGroup>
|
||||
|
||||
<FormGroup size={sizes.EXTRA_SMALL}>
|
||||
<FormLabel size={sizes.small}>
|
||||
<FormLabel size={sizes.SMALL}>
|
||||
Cutoff
|
||||
</FormLabel>
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
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 { fetchQualityProfileSchema, setQualityProfileValue, saveQualityProfile } from 'Store/Actions/settingsActions';
|
||||
import connectSection from 'Store/connectSection';
|
||||
import EditQualityProfileModalContent from './EditQualityProfileModalContent';
|
||||
|
||||
function getQualityItemGroupId(qualityProfile) {
|
||||
@@ -33,7 +33,7 @@ function parseIndex(index) {
|
||||
|
||||
function createQualitiesSelector() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('qualityProfiles'),
|
||||
(qualityProfile) => {
|
||||
const items = qualityProfile.item.items;
|
||||
if (!items || !items.value) {
|
||||
@@ -63,7 +63,7 @@ function createQualitiesSelector() {
|
||||
|
||||
function createMapStateToProps() {
|
||||
return createSelector(
|
||||
createProviderSettingsSelector(),
|
||||
createProviderSettingsSelector('qualityProfiles'),
|
||||
createQualitiesSelector(),
|
||||
createProfileInUseSelector('qualityProfileId'),
|
||||
(qualityProfile, qualities, isInUse) => {
|
||||
@@ -439,10 +439,4 @@ EditQualityProfileModalContentConnector.propTypes = {
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default connectSection(
|
||||
createMapStateToProps,
|
||||
mapDispatchToProps,
|
||||
undefined,
|
||||
undefined,
|
||||
{ section: 'qualityProfiles' }
|
||||
)(EditQualityProfileModalContentConnector);
|
||||
export default connect(createMapStateToProps, mapDispatchToProps)(EditQualityProfileModalContentConnector);
|
||||
|
||||
@@ -51,9 +51,7 @@ class QualityProfiles extends Component {
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<FieldSet
|
||||
legend="Quality Profiles"
|
||||
>
|
||||
<FieldSet legend="Quality Profiles">
|
||||
<PageSectionContent
|
||||
errorMessage="Unable to load Quality Profiles"
|
||||
{...otherProps}c={true}
|
||||
|
||||
Reference in New Issue
Block a user