From 33d18a327841b048538095f5e89441e4e31eab57 Mon Sep 17 00:00:00 2001 From: rockstardev Date: Fri, 13 Jul 2018 15:58:59 -0500 Subject: [PATCH 01/12] Displaying payment method name during checkout Ref: https://github.com/btcpayserver/btcpayserver/issues/152 --- .../Controllers/InvoiceController.UI.cs | 17 +- .../Models/InvoicingModels/PaymentModel.cs | 10 +- .../Views/Invoice/Checkout-Body.cshtml | 17 +- BTCPayServer/Views/Invoice/Checkout.cshtml | 9 +- BTCPayServer/bundleconfig.json | 2 + .../wwwroot/checkout/css/normalizer.css | 3 +- .../wwwroot/checkout/css/vex-extrastyles.css | 32 + .../wwwroot/checkout/css/vex-theme-btcpay.css | 204 +++ BTCPayServer/wwwroot/checkout/js/vexdialog.js | 11 + .../vex/css/vex-theme-bottom-right-corner.css | 183 ++ .../vendor/vex/css/vex-theme-default.css | 162 ++ .../vendor/vex/css/vex-theme-flat-attack.css | 176 ++ .../wwwroot/vendor/vex/css/vex-theme-os.css | 165 ++ .../vendor/vex/css/vex-theme-plain.css | 107 ++ .../wwwroot/vendor/vex/css/vex-theme-top.css | 178 ++ .../vendor/vex/css/vex-theme-wireframe.css | 110 ++ BTCPayServer/wwwroot/vendor/vex/css/vex.css | 117 ++ .../wwwroot/vendor/vex/js/vex.combined.js | 1629 +++++++++++++++++ .../wwwroot/vendor/vex/js/vex.combined.min.js | 2 + BTCPayServer/wwwroot/vendor/vex/js/vex.js | 754 ++++++++ BTCPayServer/wwwroot/vendor/vex/js/vex.min.js | 2 + 21 files changed, 3877 insertions(+), 13 deletions(-) create mode 100644 BTCPayServer/wwwroot/checkout/css/vex-extrastyles.css create mode 100644 BTCPayServer/wwwroot/checkout/css/vex-theme-btcpay.css create mode 100644 BTCPayServer/wwwroot/checkout/js/vexdialog.js create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-bottom-right-corner.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-default.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-flat-attack.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-os.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-plain.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-top.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex-theme-wireframe.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/css/vex.css create mode 100644 BTCPayServer/wwwroot/vendor/vex/js/vex.combined.js create mode 100644 BTCPayServer/wwwroot/vendor/vex/js/vex.combined.min.js create mode 100644 BTCPayServer/wwwroot/vendor/vex/js/vex.js create mode 100644 BTCPayServer/wwwroot/vendor/vex/js/vex.min.js diff --git a/BTCPayServer/Controllers/InvoiceController.UI.cs b/BTCPayServer/Controllers/InvoiceController.UI.cs index 93a4d73e5..86a94377e 100644 --- a/BTCPayServer/Controllers/InvoiceController.UI.cs +++ b/BTCPayServer/Controllers/InvoiceController.UI.cs @@ -248,6 +248,8 @@ namespace BTCPayServer.Controllers { CryptoCode = network.CryptoCode, PaymentMethodId = paymentMethodId.ToString(), + PaymentMethodName = GetPaymentMethodName(paymentMethodId.ToString()), + CryptoImage = "/" + GetImage(paymentMethodId, network), IsLightning = paymentMethodId.PaymentType == PaymentTypes.LightningLike, ServerUrl = HttpContext.Request.GetAbsoluteRoot(), OrderId = invoice.OrderId, @@ -279,7 +281,6 @@ namespace BTCPayServer.Controllers TxCount = accounting.TxRequired, BtcPaid = accounting.Paid.ToString(), Status = invoice.Status, - CryptoImage = "/" + GetImage(paymentMethodId, network), NetworkFee = paymentMethodDetails.GetTxFee(), IsMultiCurrency = invoice.GetPayments().Select(p => p.GetPaymentMethodId()).Concat(new[] { paymentMethod.GetId() }).Distinct().Count() > 1, AllowCoinConversion = storeBlob.AllowCoinConversion, @@ -288,6 +289,7 @@ namespace BTCPayServer.Controllers .Select(kv => new PaymentModel.AvailableCrypto() { PaymentMethodId = kv.GetId().ToString(), + PaymentMethodName = GetPaymentMethodName(kv.GetId().ToString()), CryptoImage = "/" + GetImage(kv.GetId(), kv.Network), Link = Url.Action(nameof(Checkout), new { invoiceId = invoiceId, paymentMethodId = kv.GetId().ToString() }) }).Where(c => c.CryptoImage != "/") @@ -299,6 +301,19 @@ namespace BTCPayServer.Controllers return model; } + private static readonly Dictionary CURRENCY_NAMES = new Dictionary + { + {"BTC", "Bitcoin (BTC)" }, + {"BTC_LightningLike", "Bitcoin (BTC) Lightning" }, + {"LTC", "Litecoin (LTC)" }, + {"LTC_LightningLike", "Litecoin (LTC) Lightning" }, + {"DOGE", "Dogecoin (DOGE)" }, + }; + private string GetPaymentMethodName(string key) + { + return CURRENCY_NAMES[key]; + } + private string GetImage(PaymentMethodId paymentMethodId, BTCPayNetwork network) { return (paymentMethodId.PaymentType == PaymentTypes.BTCLike ? Url.Content(network.CryptoImagePath) : Url.Content(network.LightningImagePath)); diff --git a/BTCPayServer/Models/InvoicingModels/PaymentModel.cs b/BTCPayServer/Models/InvoicingModels/PaymentModel.cs index da28a8975..4350726d2 100644 --- a/BTCPayServer/Models/InvoicingModels/PaymentModel.cs +++ b/BTCPayServer/Models/InvoicingModels/PaymentModel.cs @@ -12,6 +12,7 @@ namespace BTCPayServer.Models.InvoicingModels public string PaymentMethodId { get; set; } public string CryptoImage { get; set; } public string Link { get; set; } + public string PaymentMethodName { get; set; } } public string HtmlTitle { get; set; } public string CustomCSSLink { get; set; } @@ -45,12 +46,13 @@ namespace BTCPayServer.Models.InvoicingModels public string StoreEmail { get; set; } public string OrderId { get; set; } - public string CryptoImage { get; set; } public decimal NetworkFee { get; set; } public bool IsMultiCurrency { get; set; } - public int MaxTimeMinutes { get; internal set; } - public string PaymentType { get; internal set; } - public string PaymentMethodId { get; internal set; } + public int MaxTimeMinutes { get; set; } + public string PaymentType { get; set; } + public string PaymentMethodId { get; set; } + public string PaymentMethodName { get; set; } + public string CryptoImage { get; set; } public bool AllowCoinConversion { get; set; } public string PeerInfo { get; set; } diff --git a/BTCPayServer/Views/Invoice/Checkout-Body.cshtml b/BTCPayServer/Views/Invoice/Checkout-Body.cshtml index aa596e9fc..e24cb4675 100644 --- a/BTCPayServer/Views/Invoice/Checkout-Body.cshtml +++ b/BTCPayServer/Views/Invoice/Checkout-Body.cshtml @@ -42,13 +42,22 @@
-
+
+ + {{srvModel.paymentMethodName}} +
+
+
diff --git a/BTCPayServer/Views/Invoice/Checkout.cshtml b/BTCPayServer/Views/Invoice/Checkout.cshtml index 26268045f..1ef0a6909 100644 --- a/BTCPayServer/Views/Invoice/Checkout.cshtml +++ b/BTCPayServer/Views/Invoice/Checkout.cshtml @@ -20,12 +20,15 @@ + - - @if(Model.CustomCSSLink != null) + @if (Model.CustomCSSLink != null) { } + +