From 14e13217ba8d11198236f804975a12d95a205021 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Sun, 3 May 2020 17:28:18 +0200 Subject: [PATCH] Added UpdateMechanismMessage to allow package maintainers provide custom message --- frontend/src/System/Updates/Updates.js | 12 ++++++++---- frontend/src/System/Updates/UpdatesConnector.js | 6 ++++++ src/Lidarr.Api.V1/System/SystemModule.cs | 3 ++- .../Configuration/DeploymentInfoProvider.cs | 3 +++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/frontend/src/System/Updates/Updates.js b/frontend/src/System/Updates/Updates.js index 6b6c21ac2..bedb1bd93 100644 --- a/frontend/src/System/Updates/Updates.js +++ b/frontend/src/System/Updates/Updates.js @@ -5,6 +5,7 @@ import { icons, kinds } from 'Helpers/Props'; import formatDate from 'Utilities/Date/formatDate'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import SpinnerButton from 'Components/Link/SpinnerButton'; +import InlineMarkdown from 'Components/Markdown/InlineMarkdown'; import Icon from 'Components/Icon'; import Label from 'Components/Label'; import PageContent from 'Components/Page/PageContent'; @@ -27,6 +28,7 @@ class Updates extends Component { isInstallingUpdate, updateMechanism, isDocker, + updateMechanismMessage, shortDateFormat, onInstallLatestPress } = this.props; @@ -36,10 +38,11 @@ class Updates extends Component { const hasUpdateToInstall = hasUpdates && _.some(items, { installable: true, latest: true }); const noUpdateToInstall = hasUpdates && !hasUpdateToInstall; + const externalUpdaterPrefix = 'Unable to update Lidarr directly,'; const externalUpdaterMessages = { - external: 'Unable to update Lidarr directly, Lidarr is configured to use an external update mechanism', - apt: 'Unable to update Lidarr directly, use apt to install the update', - docker: 'Unable to update Lidarr directly, update the docker container to receive the update' + external: 'Lidarr is configured to use an external update mechanism', + apt: 'use apt to install the update', + docker: 'update the docker container to receive the update' }; return ( @@ -77,7 +80,7 @@ class Updates extends Component { />
- {externalUpdaterMessages[updateMechanism] || externalUpdaterMessages.external} + {externalUpdaterPrefix}
} @@ -201,6 +204,7 @@ Updates.propTypes = { isInstallingUpdate: PropTypes.bool.isRequired, isDocker: PropTypes.bool.isRequired, updateMechanism: PropTypes.string, + updateMechanismMessage: PropTypes.string, shortDateFormat: PropTypes.string.isRequired, onInstallLatestPress: PropTypes.func.isRequired }; diff --git a/frontend/src/System/Updates/UpdatesConnector.js b/frontend/src/System/Updates/UpdatesConnector.js index 7c40069d4..753df5bbd 100644 --- a/frontend/src/System/Updates/UpdatesConnector.js +++ b/frontend/src/System/Updates/UpdatesConnector.js @@ -13,13 +13,17 @@ import Updates from './Updates'; function createMapStateToProps() { return createSelector( (state) => state.app.version, + createSystemStatusSelector(), (state) => state.system.updates, + (state) => state.settings.general, createUISettingsSelector(), createCommandExecutingSelector(commandNames.APPLICATION_UPDATE), createSystemStatusSelector(), ( currentVersion, + status, updates, + generalSettings, uiSettings, isInstallingUpdate, systemStatus @@ -39,6 +43,8 @@ function createMapStateToProps() { items, isInstallingUpdate, isDocker: systemStatus.isDocker, + updateMechanism: generalSettings.item.updateMechanism, + updateMechanismMessage: status.packageUpdateMechanismMessage, shortDateFormat: uiSettings.shortDateFormat }; } diff --git a/src/Lidarr.Api.V1/System/SystemModule.cs b/src/Lidarr.Api.V1/System/SystemModule.cs index 7b24f3e66..cbae7218c 100644 --- a/src/Lidarr.Api.V1/System/SystemModule.cs +++ b/src/Lidarr.Api.V1/System/SystemModule.cs @@ -77,7 +77,8 @@ namespace Lidarr.Api.V1.System StartTime = _runtimeInfo.StartTime, PackageVersion = _deploymentInfoProvider.PackageVersion, PackageAuthor = _deploymentInfoProvider.PackageAuthor, - PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism + PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism, + PackageUpdateMechanismMessage = _deploymentInfoProvider.PackageUpdateMechanismMessage }; } diff --git a/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs b/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs index 560699b4b..bb11ec3ff 100644 --- a/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs +++ b/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs @@ -14,6 +14,7 @@ namespace NzbDrone.Core.Configuration string PackageAuthor { get; } string PackageBranch { get; } UpdateMechanism PackageUpdateMechanism { get; } + string PackageUpdateMechanismMessage { get; } string ReleaseVersion { get; } string ReleaseBranch { get; } @@ -41,6 +42,7 @@ namespace NzbDrone.Core.Configuration PackageVersion = ReadValue(data, "PackageVersion"); PackageAuthor = ReadValue(data, "PackageAuthor"); PackageUpdateMechanism = ReadEnumValue(data, "UpdateMethod", UpdateMechanism.BuiltIn); + PackageUpdateMechanismMessage = ReadValue(data, "UpdateMethodMessage"); PackageBranch = ReadValue(data, "Branch"); ReleaseVersion = ReadValue(data, "ReleaseVersion"); @@ -94,6 +96,7 @@ namespace NzbDrone.Core.Configuration public string PackageAuthor { get; private set; } public string PackageBranch { get; private set; } public UpdateMechanism PackageUpdateMechanism { get; private set; } + public string PackageUpdateMechanismMessage { get; private set; } public string ReleaseVersion { get; private set; } public string ReleaseBranch { get; set; }