Added UpdateMechanismMessage to allow package maintainers provide custom message

pull/1689/head
Taloth Saldono 5 years ago committed by Qstick
parent 08b2aef5b7
commit 14e13217ba

@ -5,6 +5,7 @@ import { icons, kinds } from 'Helpers/Props';
import formatDate from 'Utilities/Date/formatDate'; import formatDate from 'Utilities/Date/formatDate';
import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import SpinnerButton from 'Components/Link/SpinnerButton'; import SpinnerButton from 'Components/Link/SpinnerButton';
import InlineMarkdown from 'Components/Markdown/InlineMarkdown';
import Icon from 'Components/Icon'; import Icon from 'Components/Icon';
import Label from 'Components/Label'; import Label from 'Components/Label';
import PageContent from 'Components/Page/PageContent'; import PageContent from 'Components/Page/PageContent';
@ -27,6 +28,7 @@ class Updates extends Component {
isInstallingUpdate, isInstallingUpdate,
updateMechanism, updateMechanism,
isDocker, isDocker,
updateMechanismMessage,
shortDateFormat, shortDateFormat,
onInstallLatestPress onInstallLatestPress
} = this.props; } = this.props;
@ -36,10 +38,11 @@ class Updates extends Component {
const hasUpdateToInstall = hasUpdates && _.some(items, { installable: true, latest: true }); const hasUpdateToInstall = hasUpdates && _.some(items, { installable: true, latest: true });
const noUpdateToInstall = hasUpdates && !hasUpdateToInstall; const noUpdateToInstall = hasUpdates && !hasUpdateToInstall;
const externalUpdaterPrefix = 'Unable to update Lidarr directly,';
const externalUpdaterMessages = { const externalUpdaterMessages = {
external: 'Unable to update Lidarr directly, Lidarr is configured to use an external update mechanism', external: 'Lidarr is configured to use an external update mechanism',
apt: 'Unable to update Lidarr directly, use apt to install the update', apt: 'use apt to install the update',
docker: 'Unable to update Lidarr directly, update the docker container to receive the update' docker: 'update the docker container to receive the update'
}; };
return ( return (
@ -77,7 +80,7 @@ class Updates extends Component {
/> />
<div className={styles.message}> <div className={styles.message}>
{externalUpdaterMessages[updateMechanism] || externalUpdaterMessages.external} {externalUpdaterPrefix} <InlineMarkdown data={updateMechanismMessage || externalUpdaterMessages[updateMechanism] || externalUpdaterMessages.external} />
</div> </div>
</Fragment> </Fragment>
} }
@ -201,6 +204,7 @@ Updates.propTypes = {
isInstallingUpdate: PropTypes.bool.isRequired, isInstallingUpdate: PropTypes.bool.isRequired,
isDocker: PropTypes.bool.isRequired, isDocker: PropTypes.bool.isRequired,
updateMechanism: PropTypes.string, updateMechanism: PropTypes.string,
updateMechanismMessage: PropTypes.string,
shortDateFormat: PropTypes.string.isRequired, shortDateFormat: PropTypes.string.isRequired,
onInstallLatestPress: PropTypes.func.isRequired onInstallLatestPress: PropTypes.func.isRequired
}; };

@ -13,13 +13,17 @@ import Updates from './Updates';
function createMapStateToProps() { function createMapStateToProps() {
return createSelector( return createSelector(
(state) => state.app.version, (state) => state.app.version,
createSystemStatusSelector(),
(state) => state.system.updates, (state) => state.system.updates,
(state) => state.settings.general,
createUISettingsSelector(), createUISettingsSelector(),
createCommandExecutingSelector(commandNames.APPLICATION_UPDATE), createCommandExecutingSelector(commandNames.APPLICATION_UPDATE),
createSystemStatusSelector(), createSystemStatusSelector(),
( (
currentVersion, currentVersion,
status,
updates, updates,
generalSettings,
uiSettings, uiSettings,
isInstallingUpdate, isInstallingUpdate,
systemStatus systemStatus
@ -39,6 +43,8 @@ function createMapStateToProps() {
items, items,
isInstallingUpdate, isInstallingUpdate,
isDocker: systemStatus.isDocker, isDocker: systemStatus.isDocker,
updateMechanism: generalSettings.item.updateMechanism,
updateMechanismMessage: status.packageUpdateMechanismMessage,
shortDateFormat: uiSettings.shortDateFormat shortDateFormat: uiSettings.shortDateFormat
}; };
} }

@ -77,7 +77,8 @@ namespace Lidarr.Api.V1.System
StartTime = _runtimeInfo.StartTime, StartTime = _runtimeInfo.StartTime,
PackageVersion = _deploymentInfoProvider.PackageVersion, PackageVersion = _deploymentInfoProvider.PackageVersion,
PackageAuthor = _deploymentInfoProvider.PackageAuthor, PackageAuthor = _deploymentInfoProvider.PackageAuthor,
PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism PackageUpdateMechanism = _deploymentInfoProvider.PackageUpdateMechanism,
PackageUpdateMechanismMessage = _deploymentInfoProvider.PackageUpdateMechanismMessage
}; };
} }

@ -14,6 +14,7 @@ namespace NzbDrone.Core.Configuration
string PackageAuthor { get; } string PackageAuthor { get; }
string PackageBranch { get; } string PackageBranch { get; }
UpdateMechanism PackageUpdateMechanism { get; } UpdateMechanism PackageUpdateMechanism { get; }
string PackageUpdateMechanismMessage { get; }
string ReleaseVersion { get; } string ReleaseVersion { get; }
string ReleaseBranch { get; } string ReleaseBranch { get; }
@ -41,6 +42,7 @@ namespace NzbDrone.Core.Configuration
PackageVersion = ReadValue(data, "PackageVersion"); PackageVersion = ReadValue(data, "PackageVersion");
PackageAuthor = ReadValue(data, "PackageAuthor"); PackageAuthor = ReadValue(data, "PackageAuthor");
PackageUpdateMechanism = ReadEnumValue(data, "UpdateMethod", UpdateMechanism.BuiltIn); PackageUpdateMechanism = ReadEnumValue(data, "UpdateMethod", UpdateMechanism.BuiltIn);
PackageUpdateMechanismMessage = ReadValue(data, "UpdateMethodMessage");
PackageBranch = ReadValue(data, "Branch"); PackageBranch = ReadValue(data, "Branch");
ReleaseVersion = ReadValue(data, "ReleaseVersion"); ReleaseVersion = ReadValue(data, "ReleaseVersion");
@ -94,6 +96,7 @@ namespace NzbDrone.Core.Configuration
public string PackageAuthor { get; private set; } public string PackageAuthor { get; private set; }
public string PackageBranch { get; private set; } public string PackageBranch { get; private set; }
public UpdateMechanism PackageUpdateMechanism { get; private set; } public UpdateMechanism PackageUpdateMechanism { get; private set; }
public string PackageUpdateMechanismMessage { get; private set; }
public string ReleaseVersion { get; private set; } public string ReleaseVersion { get; private set; }
public string ReleaseBranch { get; set; } public string ReleaseBranch { get; set; }

Loading…
Cancel
Save