From dbc784e94bcb67dab03643ee282fd13109dc3eca 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 | 3 +++ .../Configuration/DeploymentInfoProvider.cs | 3 +++ src/Radarr.Api.V3/System/SystemModule.cs | 3 ++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/src/System/Updates/Updates.js b/frontend/src/System/Updates/Updates.js index 290c9844dd..7b74896e4b 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'; @@ -28,6 +29,7 @@ class Updates extends Component { isInstallingUpdate, updateMechanism, isDocker, + updateMechanismMessage, shortDateFormat, onInstallLatestPress } = this.props; @@ -38,10 +40,11 @@ class Updates extends Component { const hasUpdateToInstall = hasUpdates && _.some(items, { installable: true, latest: true }); const noUpdateToInstall = hasUpdates && !hasUpdateToInstall; + const externalUpdaterPrefix = 'Unable to update Radarr directly,'; const externalUpdaterMessages = { - external: 'Unable to update Radarr directly, Radarr is configured to use an external update mechanism', - apt: 'Unable to update Radarr directly, use apt to install the update', - docker: 'Unable to update Radarr directly, update the docker container to receive the update' + external: 'Radarr 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 ( @@ -79,7 +82,7 @@ class Updates extends Component { />
- {externalUpdaterMessages[updateMechanism] || externalUpdaterMessages.external} + {externalUpdaterPrefix}
} @@ -212,6 +215,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 4003eed540..f0d93f10b4 100644 --- a/frontend/src/System/Updates/UpdatesConnector.js +++ b/frontend/src/System/Updates/UpdatesConnector.js @@ -14,6 +14,7 @@ import Updates from './Updates'; function createMapStateToProps() { return createSelector( (state) => state.app.version, + createSystemStatusSelector(), (state) => state.system.updates, (state) => state.settings.general, createUISettingsSelector(), @@ -21,6 +22,7 @@ function createMapStateToProps() { createCommandExecutingSelector(commandNames.APPLICATION_UPDATE), ( currentVersion, + status, updates, generalSettings, uiSettings, @@ -45,6 +47,7 @@ function createMapStateToProps() { isInstallingUpdate, isDocker: systemStatus.isDocker, updateMechanism: generalSettings.item.updateMechanism, + updateMechanismMessage: status.packageUpdateMechanismMessage, shortDateFormat: uiSettings.shortDateFormat }; } diff --git a/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs b/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs index 560699b4b4..bb11ec3ffa 100644 --- a/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs +++ b/src/NzbDrone.Core/Configuration/DeploymentInfoProvider.cs @@ -14,6 +14,7 @@ public interface IDeploymentInfoProvider string PackageAuthor { get; } string PackageBranch { get; } UpdateMechanism PackageUpdateMechanism { get; } + string PackageUpdateMechanismMessage { get; } string ReleaseVersion { get; } string ReleaseBranch { get; } @@ -41,6 +42,7 @@ public DeploymentInfoProvider(IAppFolderInfo appFolderInfo, IDiskProvider diskPr 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 @@ private static T ReadEnumValue(string fileData, string key, T defaultValue) 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; } diff --git a/src/Radarr.Api.V3/System/SystemModule.cs b/src/Radarr.Api.V3/System/SystemModule.cs index d1c9622686..b57a76f674 100644 --- a/src/Radarr.Api.V3/System/SystemModule.cs +++ b/src/Radarr.Api.V3/System/SystemModule.cs @@ -77,7 +77,8 @@ private object GetStatus() StartTime = _runtimeInfo.StartTime, PackageVersion = _deploymentInfoProvider.PackageVersion, PackageAuthor = _deploymentInfoProvider.PackageAuthor, - PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism + PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism, + PackageUpdateMechanismMessage = _deploymentInfoProvider.PackageUpdateMechanismMessage }; }