diff --git a/BTCPayServer/BTCPayServer.csproj b/BTCPayServer/BTCPayServer.csproj index 0c5d0e2aa..ed0d10ac2 100644 --- a/BTCPayServer/BTCPayServer.csproj +++ b/BTCPayServer/BTCPayServer.csproj @@ -8,19 +8,15 @@ - - - - diff --git a/BTCPayServer/HostedServices/CssThemeManager.cs b/BTCPayServer/HostedServices/CssThemeManager.cs index 7545d1c53..8c1814206 100644 --- a/BTCPayServer/HostedServices/CssThemeManager.cs +++ b/BTCPayServer/HostedServices/CssThemeManager.cs @@ -21,19 +21,29 @@ namespace BTCPayServer.HostedServices { public void Update(ThemeSettings data) { + if (String.IsNullOrWhiteSpace(data.ThemeCssUri)) + _themeUri = "/css/themes/classic.css"; + else + _themeUri = data.ThemeCssUri; + if (String.IsNullOrWhiteSpace(data.BootstrapCssUri)) - _bootstrapUri = "/vendor/bootstrap4/css/bootstrap.css?v=" + DateTime.Now.Ticks; + _bootstrapUri = "/css/bootstrap.css"; else _bootstrapUri = data.BootstrapCssUri; - if (String.IsNullOrWhiteSpace(data.CreativeStartCssUri)) - _creativeStartUri = "/vendor/bootstrap4-creativestart/creative.css?v=" + DateTime.Now.Ticks; + _creativeStartUri = "/css/creative.css"; else _creativeStartUri = data.CreativeStartCssUri; FirstRun = data.FirstRun; } + private string _themeUri; + public string ThemeUri + { + get { return _themeUri; } + } + private string _bootstrapUri; public string BootstrapUri { @@ -77,7 +87,7 @@ namespace BTCPayServer.HostedServices public void OnActionExecuted(ActionExecutedContext context) { - + } public void OnActionExecuting(ActionExecutingContext context) @@ -94,6 +104,10 @@ namespace BTCPayServer.HostedServices { policies.Clear(); } + if (manager.ThemeUri != null && Uri.TryCreate(manager.ThemeUri, UriKind.Absolute, out uri)) + { + policies.Clear(); + } } } } diff --git a/BTCPayServer/Services/ThemesSettings.cs b/BTCPayServer/Services/ThemesSettings.cs index c27e2e3bd..8018c3976 100644 --- a/BTCPayServer/Services/ThemesSettings.cs +++ b/BTCPayServer/Services/ThemesSettings.cs @@ -9,6 +9,11 @@ namespace BTCPayServer.Services { public class ThemeSettings { + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] + [MaxLength(500)] + [Display(Name = "Select Theme")] + public string ThemeCssUri { get; set; } + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] [MaxLength(500)] [Display(Name = "Custom bootstrap CSS file")] diff --git a/BTCPayServer/Views/Account/ForgotPassword.cshtml b/BTCPayServer/Views/Account/ForgotPassword.cshtml index 48d7fc087..b9dd62e56 100644 --- a/BTCPayServer/Views/Account/ForgotPassword.cshtml +++ b/BTCPayServer/Views/Account/ForgotPassword.cshtml @@ -13,12 +13,14 @@ } -
-
-

@ViewData["Title"]

+
+
+

@ViewData["Title"]


-
+
+
+

Start password reset


diff --git a/BTCPayServer/Views/Account/Lockout.cshtml b/BTCPayServer/Views/Account/Lockout.cshtml index 4d8c0e1cf..d7bc0e07e 100644 --- a/BTCPayServer/Views/Account/Lockout.cshtml +++ b/BTCPayServer/Views/Account/Lockout.cshtml @@ -5,8 +5,8 @@
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


diff --git a/BTCPayServer/Views/Account/LoginWith2fa.cshtml b/BTCPayServer/Views/Account/LoginWith2fa.cshtml index 2438df386..166aebff0 100644 --- a/BTCPayServer/Views/Account/LoginWith2fa.cshtml +++ b/BTCPayServer/Views/Account/LoginWith2fa.cshtml @@ -3,8 +3,8 @@
-
-

Two-factor authentication

+
+

Two-factor authentication


@@ -28,7 +28,7 @@
- +
diff --git a/BTCPayServer/Views/Account/LoginWithRecoveryCode.cshtml b/BTCPayServer/Views/Account/LoginWithRecoveryCode.cshtml index 6298b2c96..1af51bcaa 100644 --- a/BTCPayServer/Views/Account/LoginWithRecoveryCode.cshtml +++ b/BTCPayServer/Views/Account/LoginWithRecoveryCode.cshtml @@ -8,8 +8,8 @@
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


You have requested to login with a recovery code. This login will not be remembered until you provide diff --git a/BTCPayServer/Views/Account/LoginWithU2F.cshtml b/BTCPayServer/Views/Account/LoginWithU2F.cshtml index e7b832382..97949f43d 100644 --- a/BTCPayServer/Views/Account/LoginWithU2F.cshtml +++ b/BTCPayServer/Views/Account/LoginWithU2F.cshtml @@ -16,10 +16,10 @@

-
-

U2F Authentication

+
+

U2F Authentication


- +

Insert your U2F device or a hardware wallet into your computer's USB port. If it has a button, tap on it.

diff --git a/BTCPayServer/Views/Account/SecondaryLogin.cshtml b/BTCPayServer/Views/Account/SecondaryLogin.cshtml index 4c6c2dd5e..1d985d167 100644 --- a/BTCPayServer/Views/Account/SecondaryLogin.cshtml +++ b/BTCPayServer/Views/Account/SecondaryLogin.cshtml @@ -8,24 +8,24 @@ @if (Model.LoginWith2FaViewModel != null && Model.LoginWithU2FViewModel != null) {
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


- +
}else if (Model.LoginWith2FaViewModel == null && Model.LoginWithU2FViewModel == null) {
-
-

Both 2FA and U2F Authentication Methods are not available. Please go to the https endpoint

+
+

Both 2FA and U2F Authentication Methods are not available. Please go to the https endpoint


} - - + +
@if (Model.LoginWith2FaViewModel != null) { diff --git a/BTCPayServer/Views/Account/_WelcomeLayout.cshtml b/BTCPayServer/Views/Account/_WelcomeLayout.cshtml index 2b22336f1..fb44bf460 100644 --- a/BTCPayServer/Views/Account/_WelcomeLayout.cshtml +++ b/BTCPayServer/Views/Account/_WelcomeLayout.cshtml @@ -56,7 +56,6 @@ line-height: 1.2; /* or 150% */ letter-spacing: 0.1em; - color: #000000; } @@media screen and (min-width: 768px) { @@ -73,7 +72,6 @@ line-height: 33px; /* or 183% */ letter-spacing: 0.1em; - color: #000000; } .lead-h { @@ -86,11 +84,10 @@ /* identical to box height, or 129% */ letter-spacing: 0.1em; text-transform: uppercase; - color: #000000; } - +
@@ -138,7 +135,10 @@ { diff --git a/BTCPayServer/Views/Apps/CreateApp.cshtml b/BTCPayServer/Views/Apps/CreateApp.cshtml index 50bc80c55..09ca302c6 100644 --- a/BTCPayServer/Views/Apps/CreateApp.cshtml +++ b/BTCPayServer/Views/Apps/CreateApp.cshtml @@ -5,8 +5,8 @@
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


diff --git a/BTCPayServer/Views/Apps/ListApps.cshtml b/BTCPayServer/Views/Apps/ListApps.cshtml index 88632663d..0fc64c60e 100644 --- a/BTCPayServer/Views/Apps/ListApps.cshtml +++ b/BTCPayServer/Views/Apps/ListApps.cshtml @@ -14,57 +14,58 @@
}
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


Create and manage apps.

- -
-
+
- - - - - - - - - - - @foreach (var app in Model.Apps) - { +
+
StoreNameApp typeActions
+ - - - - + + + + - } - -
- @if (app.IsOwner) - { - @app.StoreName - } - else - { - @app.StoreName - } - @app.AppName@app.AppType - @if (app.IsOwner) - { - Settings - - } - View - - Remove - StoreNameApp typeActions
+ + + @foreach (var app in Model.Apps) + { + + + @if (app.IsOwner) + { + @app.StoreName + } + else + { + @app.StoreName + } + + @app.AppName + @app.AppType + + @if (app.IsOwner) + { + Settings - + } + View - + Remove + + + } + + +
diff --git a/BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml b/BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml index ef6d272b7..ffcb90361 100644 --- a/BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml +++ b/BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml @@ -25,8 +25,8 @@
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


diff --git a/BTCPayServer/Views/Apps/UpdatePointOfSale.cshtml b/BTCPayServer/Views/Apps/UpdatePointOfSale.cshtml index bdb1c9900..0e412913b 100644 --- a/BTCPayServer/Views/Apps/UpdatePointOfSale.cshtml +++ b/BTCPayServer/Views/Apps/UpdatePointOfSale.cshtml @@ -25,8 +25,8 @@
-
-

@ViewData["Title"]

+
+

@ViewData["Title"]


diff --git a/BTCPayServer/Views/AppsPublic/ViewCrowdfund.cshtml b/BTCPayServer/Views/AppsPublic/ViewCrowdfund.cshtml index 03de8cb8c..98fada78c 100644 --- a/BTCPayServer/Views/AppsPublic/ViewCrowdfund.cshtml +++ b/BTCPayServer/Views/AppsPublic/ViewCrowdfund.cshtml @@ -14,6 +14,7 @@ + @if (Model.CustomCSSLink != null) { @@ -32,7 +33,7 @@ @if (!string.IsNullOrEmpty(Model.EmbeddedCSS)) { - @Safe.Raw($""); + @Safe.Raw($""); } diff --git a/BTCPayServer/Views/AppsPublic/ViewPointOfSale.cshtml b/BTCPayServer/Views/AppsPublic/ViewPointOfSale.cshtml index 732253a20..490c35f53 100644 --- a/BTCPayServer/Views/AppsPublic/ViewPointOfSale.cshtml +++ b/BTCPayServer/Views/AppsPublic/ViewPointOfSale.cshtml @@ -22,6 +22,7 @@ + @if (Model.CustomCSSLink != null) { @@ -47,15 +48,19 @@ max-width: 320px; margin: auto; } - - .js-cart-item-count::-webkit-inner-spin-button, - .js-cart-item-count::-webkit-outer-spin-button { + + .js-cart-item-count { + -moz-appearance:textfield; + margin: 0; + text-align: right; + } + + .js-cart-item-count::-webkit-inner-spin-button, + .js-cart-item-count::-webkit-outer-spin-button { -webkit-appearance: none; -moz-appearance: none; appearance: none; - margin: 0; } - @if (!string.IsNullOrEmpty(Model.EmbeddedCSS)) { @@ -69,10 +74,10 @@ {image} {title} - + - +
@@ -85,7 +90,7 @@
- {price} + {price} @@ -112,7 +117,7 @@ @@ -147,10 +152,10 @@ @if (Model.EnableTips) { - @Model.CustomTipText + @Model.CustomTipText - +
@@ -173,16 +178,16 @@ }
- + } @if (this.TempData.HasStatusMessage()) @@ -269,7 +274,7 @@ diff --git a/BTCPayServer/Views/Authorization/Authorize.cshtml b/BTCPayServer/Views/Authorization/Authorize.cshtml index f4d9cb170..57085b8d9 100644 --- a/BTCPayServer/Views/Authorization/Authorize.cshtml +++ b/BTCPayServer/Views/Authorization/Authorize.cshtml @@ -14,8 +14,8 @@
-
-

Authorization Request

+
+

Authorization Request


@Model.ApplicationName is requesting access to your account.

diff --git a/BTCPayServer/Views/Home/BitpayTranslator.cshtml b/BTCPayServer/Views/Home/BitpayTranslator.cshtml index 98b25abd1..302563c85 100644 --- a/BTCPayServer/Views/Home/BitpayTranslator.cshtml +++ b/BTCPayServer/Views/Home/BitpayTranslator.cshtml @@ -21,8 +21,8 @@
}
-
-

The Bitpay Translator

+
+

The Bitpay Translator


Bitpay is using a deprecated standard in their invoices that most wallets do not support. Use this tool to transform their invoices to a regular address/amount.

diff --git a/BTCPayServer/Views/Home/Home.cshtml b/BTCPayServer/Views/Home/Home.cshtml index 5aec22c65..a68bf568b 100644 --- a/BTCPayServer/Views/Home/Home.cshtml +++ b/BTCPayServer/Views/Home/Home.cshtml @@ -3,7 +3,6 @@ ViewBag.AlwaysShrinkNavBar = false; } -
@@ -19,7 +18,7 @@
-

A Payment Server for Bitcoin

+

A Payment Server for Bitcoin


@@ -28,22 +27,22 @@
- -

Secure

+ +

Secure

The payment server does not need to know your private keys, so your money can't be stolen.

- -

Easy

+ +

Easy

A user-friendly Bitcoin checkout page for your customers.

- -

Visibility

+ +

Visibility

Manage, generate reports, and search for your invoices easily.

@@ -51,21 +50,15 @@
- -

Video tutorials

-
-
-
+ -
-
@@ -73,7 +66,7 @@
-

Donate

+

Donate


BTCPay Server is proudly free and open-source, built and maintained
by a world-wide community of passionate contributors.
@@ -81,7 +74,28 @@

- + + + + + + + + + + + + + + + + + + + + + +

@@ -92,7 +106,7 @@
-

Let's Get In Touch!

+

Let's Get In Touch!


An open source project is nothing without its community
@@ -100,35 +114,31 @@

-
-
+ +