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:
Qstick
2018-08-07 20:57:15 -04:00
committed by GitHub
parent afa78b1d20
commit 6581b3a2c5
198 changed files with 3057 additions and 888 deletions
@@ -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}
>
@@ -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}
>
@@ -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}