New: (UI) Detailed error message for inner exception in indexers validation

pull/2130/head v1.18.0.4543
Bogdan 4 months ago
parent 468436b9f7
commit 6e01f3187a

@ -1,3 +1,7 @@
.validationFailures { .validationFailures {
margin-bottom: 20px; margin-bottom: 20px;
} }
.details {
margin-left: 5px;
}

@ -1,6 +1,7 @@
// This file is automatically generated. // This file is automatically generated.
// Please do not change this file! // Please do not change this file!
interface CssExports { interface CssExports {
'details': string;
'validationFailures': string; 'validationFailures': string;
} }
export const cssExports: CssExports; export const cssExports: CssExports;

@ -1,7 +1,8 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';
import Alert from 'Components/Alert'; import Alert from 'Components/Alert';
import { kinds } from 'Helpers/Props'; import Icon from 'Components/Icon';
import { icons, kinds } from 'Helpers/Props';
import styles from './Form.css'; import styles from './Form.css';
function Form(props) { function Form(props) {
@ -26,6 +27,16 @@ function Form(props) {
kind={kinds.DANGER} kind={kinds.DANGER}
> >
{error.errorMessage} {error.errorMessage}
{
error.detailedDescription ?
<Icon
containerClassName={styles.details}
name={icons.INFO}
title={error.detailedDescription}
/> :
null
}
</Alert> </Alert>
); );
}) })
@ -39,6 +50,16 @@ function Form(props) {
kind={kinds.WARNING} kind={kinds.WARNING}
> >
{warning.errorMessage} {warning.errorMessage}
{
warning.detailedDescription ?
<Icon
containerClassName={styles.details}
name={icons.INFO}
title={warning.detailedDescription}
/> :
null
}
</Alert> </Alert>
); );
}) })

@ -18,6 +18,7 @@ using NzbDrone.Core.Indexers.Exceptions;
using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Validation;
using Polly; using Polly;
using Polly.Retry; using Polly.Retry;
@ -814,7 +815,10 @@ namespace NzbDrone.Core.Indexers
{ {
_logger.Warn(ex, "Unable to connect to indexer"); _logger.Warn(ex, "Unable to connect to indexer");
return new ValidationFailure(string.Empty, "Unable to connect to indexer, please check your DNS settings and ensure IPv6 is working or disabled. " + ex.Message); return new NzbDroneValidationFailure(string.Empty, "Unable to connect to indexer, please check your DNS settings and ensure IPv6 is working or disabled. " + ex.Message)
{
DetailedDescription = ex.InnerException?.Message
};
} }
catch (TaskCanceledException ex) catch (TaskCanceledException ex)
{ {
@ -841,7 +845,10 @@ namespace NzbDrone.Core.Indexers
{ {
_logger.Warn(ex, "Unable to connect to indexer"); _logger.Warn(ex, "Unable to connect to indexer");
return new ValidationFailure(string.Empty, "Unable to connect to indexer, check the log above the ValidationFailure for more details. " + ex.Message); return new NzbDroneValidationFailure(string.Empty, "Unable to connect to indexer, check the log above the ValidationFailure for more details. " + ex.Message)
{
DetailedDescription = ex.InnerException?.Message
};
} }
return null; return null;

Loading…
Cancel
Save