Skip to content

Commit

Permalink
New: Set Instance Name
Browse files Browse the repository at this point in the history
  • Loading branch information
RobinDadswell authored and Qstick committed May 14, 2022
1 parent 6783514 commit 9d5d92b
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 0 deletions.
17 changes: 17 additions & 0 deletions frontend/src/Settings/General/HostSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ function HostSettings(props) {
bindAddress,
port,
urlBase,
instanceName,
enableSsl,
sslPort,
sslCertPath,
Expand Down Expand Up @@ -72,6 +73,22 @@ function HostSettings(props) {
/>
</FormGroup>

<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
>
<FormLabel>{translate('InstanceName')}</FormLabel>

<FormInputGroup
type={inputTypes.TEXT}
name="instanceName"
helpText={translate('InstanceNameHelpText')}
helpTextWarning={translate('RestartRequiredHelpTextWarning')}
onChange={onInputChange}
{...instanceName}
/>
</FormGroup>

<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
Expand Down
6 changes: 6 additions & 0 deletions src/NzbDrone.Core/Configuration/ConfigFileProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,13 @@ public interface IConfigFileProvider : IHandleAsync<ApplicationStartedEvent>,
string SslCertPassword { get; }
string UrlBase { get; }
string UiFolder { get; }
string InstanceName { get; }
bool UpdateAutomatically { get; }
UpdateMechanism UpdateMechanism { get; }
string UpdateScriptPath { get; }
string SyslogServer { get; }
int SyslogPort { get; }
string SyslogLevel { get; }
string PostgresHost { get; }
int PostgresPort { get; }
string PostgresUser { get; }
Expand Down Expand Up @@ -220,6 +222,7 @@ public string UrlBase
}

public string UiFolder => BuildInfo.IsDebug ? Path.Combine("..", "UI") : "UI";
public string InstanceName => GetValue("InstanceName", BuildInfo.AppName);

public bool UpdateAutomatically => GetValueBoolean("UpdateAutomatically", false, false);

Expand All @@ -228,8 +231,11 @@ public string UrlBase
public string UpdateScriptPath => GetValue("UpdateScriptPath", "", false);

public string SyslogServer => GetValue("SyslogServer", "", persist: false);

public int SyslogPort => GetValueInt("SyslogPort", 514, persist: false);

public string SyslogLevel => GetValue("SyslogLevel", LogLevel).ToLowerInvariant();

public int GetValueInt(string key, int defaultValue, bool persist = true)
{
return Convert.ToInt32(GetValue(key, defaultValue, persist));
Expand Down
2 changes: 2 additions & 0 deletions src/NzbDrone.Core/Localization/Core/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,8 @@
"IndexerVipCheckExpiredClientMessage": "Indexer VIP benefits have expired: {0}",
"IndexerVipCheckExpiringClientMessage": "Indexer VIP benefits expiring soon: {0}",
"Info": "Info",
"InstanceName": "Instance Name",
"InstanceNameHelpText": "Instance name in tab and for Syslog app name",
"InteractiveSearch": "Interactive Search",
"Interval": "Interval",
"KeyboardShortcuts": "Keyboard Shortcuts",
Expand Down
6 changes: 6 additions & 0 deletions src/NzbDrone.Core/Validation/RuleBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,11 @@ public static class RuleBuilderExtensions
{
return ruleBuilder.WithState(v => NzbDroneValidationState.Warning);
}

public static IRuleBuilderOptions<T, string> ContainsProwlarr<T>(this IRuleBuilder<T, string> ruleBuilder)
{
ruleBuilder.SetValidator(new NotEmptyValidator(null));
return ruleBuilder.SetValidator(new RegularExpressionValidator("prowlarr", RegexOptions.IgnoreCase)).WithMessage("Must contain Prowlarr");
}
}
}
1 change: 1 addition & 0 deletions src/Prowlarr.Api.V1/Config/HostConfigController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class HostConfigController : RestController<HostConfigResource>
SharedValidator.RuleFor(c => c.Port).ValidPort();

SharedValidator.RuleFor(c => c.UrlBase).ValidUrlBase();
SharedValidator.RuleFor(c => c.InstanceName).ContainsProwlarr().When(c => c.InstanceName.IsNotNullOrWhiteSpace());

SharedValidator.RuleFor(c => c.Username).NotEmpty().When(c => c.AuthenticationMethod != AuthenticationType.None);
SharedValidator.RuleFor(c => c.Password).NotEmpty().When(c => c.AuthenticationMethod != AuthenticationType.None);
Expand Down
2 changes: 2 additions & 0 deletions src/Prowlarr.Api.V1/Config/HostConfigResource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public class HostConfigResource : RestResource
public string SslCertPath { get; set; }
public string SslCertPassword { get; set; }
public string UrlBase { get; set; }
public string InstanceName { get; set; }
public bool UpdateAutomatically { get; set; }
public UpdateMechanism UpdateMechanism { get; set; }
public string UpdateScriptPath { get; set; }
Expand Down Expand Up @@ -67,6 +68,7 @@ public static HostConfigResource ToResource(this IConfigFileProvider model, ICon
SslCertPath = model.SslCertPath,
SslCertPassword = model.SslCertPassword,
UrlBase = model.UrlBase,
InstanceName = model.InstanceName,
UpdateAutomatically = model.UpdateAutomatically,
UpdateMechanism = model.UpdateMechanism,
UpdateScriptPath = model.UpdateScriptPath,
Expand Down

0 comments on commit 9d5d92b

Please sign in to comment.