-
\\^$.|?*+()[{ have special meanings and need escaping with a \\
' }} />
- {'More details'} {'Here'}
+
- {'Regular expressions can be tested '}
- Here
+
+
+
+
}
diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/DownloadClientsConnector.js b/frontend/src/Settings/DownloadClients/DownloadClients/DownloadClientsConnector.js
index d9e543469..0dc410fcb 100644
--- a/frontend/src/Settings/DownloadClients/DownloadClients/DownloadClientsConnector.js
+++ b/frontend/src/Settings/DownloadClients/DownloadClients/DownloadClientsConnector.js
@@ -5,12 +5,12 @@ import { createSelector } from 'reselect';
import { deleteDownloadClient, fetchDownloadClients } from 'Store/Actions/settingsActions';
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
import createTagsSelector from 'Store/Selectors/createTagsSelector';
-import sortByName from 'Utilities/Array/sortByName';
+import sortByProp from 'Utilities/Array/sortByProp';
import DownloadClients from './DownloadClients';
function createMapStateToProps() {
return createSelector(
- createSortedSectionSelector('settings.downloadClients', sortByName),
+ createSortedSectionSelector('settings.downloadClients', sortByProp('name')),
createTagsSelector(),
(downloadClients, tagList) => {
return {
diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.css b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.css
index c106388ab..6ea04a0c8 100644
--- a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.css
+++ b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.css
@@ -13,4 +13,4 @@
composes: button from '~Components/Link/Button.css';
margin-right: 10px;
-}
\ No newline at end of file
+}
diff --git a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.tsx b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.tsx
index 2722f02fa..b2c1208cb 100644
--- a/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.tsx
+++ b/frontend/src/Settings/DownloadClients/DownloadClients/Manage/ManageDownloadClientsModalContent.tsx
@@ -10,11 +10,11 @@ import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
+import Column from 'Components/Table/Column';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import useSelectState from 'Helpers/Hooks/useSelectState';
import { kinds } from 'Helpers/Props';
-import SortDirection from 'Helpers/Props/SortDirection';
import {
bulkDeleteDownloadClients,
bulkEditDownloadClients,
@@ -35,7 +35,7 @@ type OnSelectedChangeCallback = React.ComponentProps<
typeof ManageDownloadClientsModalRow
>['onSelectedChange'];
-const COLUMNS = [
+const COLUMNS: Column[] = [
{
name: 'name',
label: () => translate('Name'),
@@ -82,8 +82,6 @@ const COLUMNS = [
interface ManageDownloadClientsModalContentProps {
onModalClose(): void;
- sortKey?: string;
- sortDirection?: SortDirection;
}
function ManageDownloadClientsModalContent(
@@ -220,9 +218,9 @@ function ManageDownloadClientsModalContent(
{error ?
{errorMessage}
: null}
- {isPopulated && !error && !items.length && (
+ {isPopulated && !error && !items.length ? (
{translate('NoDownloadClientsFound')}
- )}
+ ) : null}
{isPopulated && !!items.length && !isFetching && !isFetching ? (
diff --git a/frontend/src/Settings/General/LoggingSettings.js b/frontend/src/Settings/General/LoggingSettings.js
index 93918a3d2..043867853 100644
--- a/frontend/src/Settings/General/LoggingSettings.js
+++ b/frontend/src/Settings/General/LoggingSettings.js
@@ -15,12 +15,14 @@ const logLevelOptions = [
function LoggingSettings(props) {
const {
+ advancedSettings,
settings,
onInputChange
} = props;
const {
- logLevel
+ logLevel,
+ logSizeLimit
} = settings;
return (
@@ -39,11 +41,30 @@ function LoggingSettings(props) {
{...logLevel}
/>
+
+
+ {translate('LogSizeLimit')}
+
+
+
);
}
LoggingSettings.propTypes = {
+ advancedSettings: PropTypes.bool.isRequired,
settings: PropTypes.object.isRequired,
onInputChange: PropTypes.func.isRequired
};
diff --git a/frontend/src/Settings/General/UpdateSettings.js b/frontend/src/Settings/General/UpdateSettings.js
index 081f5dda2..a151423e5 100644
--- a/frontend/src/Settings/General/UpdateSettings.js
+++ b/frontend/src/Settings/General/UpdateSettings.js
@@ -18,7 +18,6 @@ function UpdateSettings(props) {
const {
advancedSettings,
settings,
- isWindows,
packageUpdateMechanism,
onInputChange
} = props;
@@ -44,10 +43,10 @@ function UpdateSettings(props) {
value: titleCase(packageUpdateMechanism)
});
} else {
- updateOptions.push({ key: 'builtIn', value: 'Built-In' });
+ updateOptions.push({ key: 'builtIn', value: translate('BuiltIn') });
}
- updateOptions.push({ key: 'script', value: 'Script' });
+ updateOptions.push({ key: 'script', value: translate('Script') });
return (
);
}
diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
index 2799af7d8..d50fb2385 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
+++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js
@@ -292,7 +292,7 @@ function EditImportListModalContent(props) {
diff --git a/frontend/src/Settings/ImportLists/ImportLists/ImportListsConnector.js b/frontend/src/Settings/ImportLists/ImportLists/ImportListsConnector.js
index 5c6bad8e7..5eb47068d 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/ImportListsConnector.js
+++ b/frontend/src/Settings/ImportLists/ImportLists/ImportListsConnector.js
@@ -4,12 +4,12 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { deleteImportList, fetchImportLists, fetchRootFolders } from 'Store/Actions/settingsActions';
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
-import sortByName from 'Utilities/Array/sortByName';
+import sortByProp from 'Utilities/Array/sortByProp';
import ImportLists from './ImportLists';
function createMapStateToProps() {
return createSelector(
- createSortedSectionSelector('settings.importLists', sortByName),
+ createSortedSectionSelector('settings.importLists', sortByProp('name')),
(importLists) => importLists
);
}
diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.css b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.css
index c106388ab..6ea04a0c8 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.css
+++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.css
@@ -13,4 +13,4 @@
composes: button from '~Components/Link/Button.css';
margin-right: 10px;
-}
\ No newline at end of file
+}
diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx
index 60619c662..4fee485c9 100644
--- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx
+++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx
@@ -198,9 +198,9 @@ function ManageImportListsModalContent(
{error ?
{errorMessage}
: null}
- {isPopulated && !error && !items.length && (
+ {isPopulated && !error && !items.length ? (
{translate('NoImportListsFound')}
- )}
+ ) : null}
{isPopulated && !!items.length && !isFetching && !isFetching ? (
- {qualityProfile?.name ?? 'None'}
+ {qualityProfile?.name ?? translate('None')}
@@ -71,7 +72,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) {
- {enableAutomaticAdd ? 'Yes' : 'No'}
+ {enableAutomaticAdd ? translate('Yes') : translate('No')}
diff --git a/frontend/src/Settings/Indexers/Indexers/IndexersConnector.js b/frontend/src/Settings/Indexers/Indexers/IndexersConnector.js
index cb6e830fd..88c571a60 100644
--- a/frontend/src/Settings/Indexers/Indexers/IndexersConnector.js
+++ b/frontend/src/Settings/Indexers/Indexers/IndexersConnector.js
@@ -5,12 +5,12 @@ import { createSelector } from 'reselect';
import { cloneIndexer, deleteIndexer, fetchIndexers } from 'Store/Actions/settingsActions';
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
import createTagsSelector from 'Store/Selectors/createTagsSelector';
-import sortByName from 'Utilities/Array/sortByName';
+import sortByProp from 'Utilities/Array/sortByProp';
import Indexers from './Indexers';
function createMapStateToProps() {
return createSelector(
- createSortedSectionSelector('settings.indexers', sortByName),
+ createSortedSectionSelector('settings.indexers', sortByProp('name')),
createTagsSelector(),
(indexers, tagList) => {
return {
diff --git a/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.css b/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.css
index c106388ab..6ea04a0c8 100644
--- a/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.css
+++ b/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.css
@@ -13,4 +13,4 @@
composes: button from '~Components/Link/Button.css';
margin-right: 10px;
-}
\ No newline at end of file
+}
diff --git a/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.tsx b/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.tsx
index 8137111f5..997d1b566 100644
--- a/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.tsx
+++ b/frontend/src/Settings/Indexers/Indexers/Manage/ManageIndexersModalContent.tsx
@@ -10,11 +10,11 @@ import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
+import Column from 'Components/Table/Column';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import useSelectState from 'Helpers/Hooks/useSelectState';
import { kinds } from 'Helpers/Props';
-import SortDirection from 'Helpers/Props/SortDirection';
import {
bulkDeleteIndexers,
bulkEditIndexers,
@@ -35,7 +35,7 @@ type OnSelectedChangeCallback = React.ComponentProps<
typeof ManageIndexersModalRow
>['onSelectedChange'];
-const COLUMNS = [
+const COLUMNS: Column[] = [
{
name: 'name',
label: () => translate('Name'),
@@ -82,8 +82,6 @@ const COLUMNS = [
interface ManageIndexersModalContentProps {
onModalClose(): void;
- sortKey?: string;
- sortDirection?: SortDirection;
}
function ManageIndexersModalContent(props: ManageIndexersModalContentProps) {
@@ -215,9 +213,9 @@ function ManageIndexersModalContent(props: ManageIndexersModalContentProps) {
{error ? {errorMessage}
: null}
- {isPopulated && !error && !items.length && (
+ {isPopulated && !error && !items.length ? (
{translate('NoIndexersFound')}
- )}
+ ) : null}
{isPopulated && !!items.length && !isFetching && !isFetching ? (
- {
- !isWindows &&
-
-
- {translate('SkipFreeSpaceCheck')}
-
+
+ {translate('SkipFreeSpaceCheck')}
-
-
- }
+
+
state.settings.advancedSettings,
(state) => state.settings.namingExamples,
createSettingsSectionSelector(SECTION),
- (advancedSettings, examples, sectionSettings) => {
+ (advancedSettings, namingExamples, sectionSettings) => {
return {
advancedSettings,
- examples: examples.item,
- examplesPopulated: !_.isEmpty(examples.item),
+ examples: namingExamples.item,
+ examplesPopulated: namingExamples.isPopulated,
...sectionSettings
};
}
diff --git a/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js b/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js
index 20cefc53f..dc91e4622 100644
--- a/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js
+++ b/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js
@@ -75,12 +75,12 @@ class RootFolder extends Component {
{path}
-