From 974c4a601b6b6871f8283a1b9472a987d32ff924 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Fri, 6 Sep 2024 20:53:55 -0700 Subject: [PATCH] Show save error in UI --- .../Quality/Definition/QualityDefinitions.css | 4 +++ .../Definition/QualityDefinitions.css.d.ts | 1 + .../Quality/Definition/QualityDefinitions.js | 32 +++++++++++++++++++ src/NzbDrone.Core/Localization/Core/en.json | 1 + 4 files changed, 38 insertions(+) diff --git a/frontend/src/Settings/Quality/Definition/QualityDefinitions.css b/frontend/src/Settings/Quality/Definition/QualityDefinitions.css index da5347737..23024bc3a 100644 --- a/frontend/src/Settings/Quality/Definition/QualityDefinitions.css +++ b/frontend/src/Settings/Quality/Definition/QualityDefinitions.css @@ -1,3 +1,7 @@ +.saveError { + margin-bottom: 20px; +} + .header { display: flex; font-weight: bold; diff --git a/frontend/src/Settings/Quality/Definition/QualityDefinitions.css.d.ts b/frontend/src/Settings/Quality/Definition/QualityDefinitions.css.d.ts index 72ba4f3a3..8c40bbc00 100644 --- a/frontend/src/Settings/Quality/Definition/QualityDefinitions.css.d.ts +++ b/frontend/src/Settings/Quality/Definition/QualityDefinitions.css.d.ts @@ -5,6 +5,7 @@ interface CssExports { 'header': string; 'megabytesPerMinute': string; 'quality': string; + 'saveError': string; 'sizeLimit': string; 'sizeLimitHelpText': string; 'sizeLimitHelpTextContainer': string; diff --git a/frontend/src/Settings/Quality/Definition/QualityDefinitions.js b/frontend/src/Settings/Quality/Definition/QualityDefinitions.js index 76b7ca383..2f72483ac 100644 --- a/frontend/src/Settings/Quality/Definition/QualityDefinitions.js +++ b/frontend/src/Settings/Quality/Definition/QualityDefinitions.js @@ -1,7 +1,9 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; +import Alert from 'Components/Alert'; import FieldSet from 'Components/FieldSet'; import PageSectionContent from 'Components/Page/PageSectionContent'; +import { kinds } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import QualityDefinitionConnector from './QualityDefinitionConnector'; import styles from './QualityDefinitions.css'; @@ -15,15 +17,44 @@ class QualityDefinitions extends Component { const { items, advancedSettings, + saveError, ...otherProps } = this.props; + console.log(saveError); + return (
+ { + saveError ? +
+ + {translate('QualityDefinitionsSaveError')} +
    + { + Array.isArray(saveError.responseJSON) ? + saveError.responseJSON.map((error, index) => { + return ( +
  • + {error.errorMessage} +
  • + ); + }) : +
  • + { + JSON.stringify(saveError.responseJSON) + } +
  • + } +
+
+
: null + } +
{translate('Quality')} @@ -72,6 +103,7 @@ class QualityDefinitions extends Component { QualityDefinitions.propTypes = { isFetching: PropTypes.bool.isRequired, error: PropTypes.object, + saveError: PropTypes.object, defaultProfile: PropTypes.object, items: PropTypes.arrayOf(PropTypes.object).isRequired, advancedSettings: PropTypes.bool.isRequired diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index aba736a67..a99ad4b88 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -1591,6 +1591,7 @@ "QualityCutoffNotMet": "Quality cutoff has not been met", "QualityDefinitions": "Quality Definitions", "QualityDefinitionsLoadError": "Unable to load Quality Definitions", + "QualityDefinitionsSaveError": "Unable to save Quality Definitions", "QualityLimitsSeriesRuntimeHelpText": "Limits are automatically adjusted for the series runtime and number of episodes in the file.", "QualityProfile": "Quality Profile", "QualityProfileInUseSeriesListCollection": "Can't delete a quality profile that is attached to a series, list, or collection",