Adding overriding of CreativeStartUri, refactoring PoliciesSettings

This commit is contained in:
lepipele
2018-04-17 17:24:00 -05:00
parent d19b78b6cc
commit 195b5fdd1a
5 changed files with 47 additions and 19 deletions

View File

@@ -207,7 +207,7 @@ namespace BTCPayServer.Controllers
await _SettingsRepository.UpdateSetting(settings);
// TODO: remove controller/class-level property and have only reference to
// CssThemeManager here in this method
_CssThemeManager.Update(settings.CustomBootstrapThemeCssUri);
_CssThemeManager.Update(settings);
TempData["StatusMessage"] = "Policies upadated successfully";
return View(settings);
}

View File

@@ -21,24 +21,42 @@ namespace BTCPayServer.HostedServices
Update(settingsRepository);
}
private string _bootstrapThemeUri;
public string BootstrapThemeUri
{
get { return _bootstrapThemeUri; }
}
private async void Update(SettingsRepository settingsRepository)
{
var data = (await settingsRepository.GetSettingAsync<PoliciesSettings>()) ?? new PoliciesSettings();
Update(data.CustomBootstrapThemeCssUri);
Update(data);
}
public void Update(string newUri)
public void Update(PoliciesSettings data)
{
UpdateBootstrap(data.BootstrapCssUri);
UpdateCreativeStart(data.CreativeStartCssUri);
}
private string _bootstrapUri;
public string BootstrapUri
{
get { return _bootstrapUri; }
}
public void UpdateBootstrap(string newUri)
{
if (String.IsNullOrWhiteSpace(newUri))
_bootstrapThemeUri = "/vendor/bootstrap4/css/bootstrap.css";
_bootstrapUri = "/vendor/bootstrap4/css/bootstrap.css";
else
_bootstrapThemeUri = newUri;
_bootstrapUri = newUri;
}
private string _creativeStartUri;
public string CreativeStartUri
{
get { return _creativeStartUri; }
}
public void UpdateCreativeStart(string newUri)
{
if (String.IsNullOrWhiteSpace(newUri))
_creativeStartUri = "/vendor/bootstrap4-creativestart/creative.css";
else
_creativeStartUri = newUri;
}
}
}

View File

@@ -17,6 +17,9 @@ namespace BTCPayServer.Services
public bool LockSubscription { get; set; }
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
public string CustomBootstrapThemeCssUri { get; set; }
public string BootstrapCssUri { get; set; }
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
public string CreativeStartCssUri { get; set; }
}
}

View File

@@ -16,14 +16,23 @@
<div class="col-lg-6">
<form method="post">
<div class="form-group">
<label asp-for="CustomBootstrapThemeCssUri"></label>
<input asp-for="CustomBootstrapThemeCssUri" class="form-control" />
<span asp-validation-for="CustomBootstrapThemeCssUri" class="text-danger"></span>
<label asp-for="BootstrapCssUri"></label>
<input asp-for="BootstrapCssUri" class="form-control" />
<span asp-validation-for="BootstrapCssUri" class="text-danger"></span>
<p class="form-text text-muted">
<a href="https://bootstrap.build/app/v4.0/" target="_blank">Build your own theme</a>
or <a href="https://bootswatch.com/" target="_blank">pick one already made</a>
</p>
</div>
<div class="form-group">
<label asp-for="CreativeStartCssUri"></label>
<input asp-for="CreativeStartCssUri" class="form-control" />
<span asp-validation-for="CreativeStartCssUri" class="text-danger"></span>
<p class="form-text text-muted">
<a href="https://startbootstrap.com/template-overviews/creative/" target="_blank">Creative Start theme</a>
is used on top of Bootstrap
</p>
</div>
<div class="form-group">
<label asp-for="RequiresConfirmedEmail"></label>
<input asp-for="RequiresConfirmedEmail" type="checkbox" class="form-check-inline" />

View File

@@ -18,10 +18,8 @@
<title>BTCPay Server</title>
@* CSS *@
<link href="@themeManager.BootstrapThemeUri" rel="stylesheet" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
<link href="@themeManager.BootstrapUri" rel="stylesheet" />
<link href="@themeManager.CreativeStartUri" rel="stylesheet" />
<bundle name="wwwroot/bundles/main-bundle.min.css" />