Public Invoice receipt (#3612)

* Public Invoice receipt

* implement payment,s qr, better ui, and fix invoice bug

* General view updates

* Update admin details link

* Update view

* add missing check

* Refactor

* make payments and qr  shown by default
* move cusotmization options to own ReceiptOptions
* Make sure to sanitize values inside PosData partial

* Refactor

* Make sure that ReceiptOptions for the StoreData is never null, and that values are always set in API

* add receipt link to checkout and add tests

* add receipt  link to lnurl

* Use ReceiptOptions.Merge

* fix lnurl

* fix chrome

* remove i18n parameterization

* Fix swagger

* Update translations

* Fix warning

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
This commit is contained in:
Andrew Camilleri
2022-07-06 14:14:55 +02:00
committed by GitHub
parent 2a190d579c
commit 3576ebd14f
71 changed files with 785 additions and 199 deletions

View File

@@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using BTCPayServer.Services;
using Microsoft.AspNetCore.Mvc.Rendering;
using Newtonsoft.Json.Linq;
namespace BTCPayServer.Models.StoreViewModels
{
@@ -47,6 +48,26 @@ namespace BTCPayServer.Models.StoreViewModels
[Display(Name = "Custom HTML title to display on Checkout page")]
public string HtmlTitle { get; set; }
public class ReceiptOptionsViewModel
{
public static ReceiptOptionsViewModel Create(Client.Models.InvoiceDataBase.ReceiptOptions opts)
{
return JObject.FromObject(opts).ToObject<ReceiptOptionsViewModel>();
}
[Display(Name = "Enable public receipt page for settled invoices")]
public bool Enabled { get; set; }
[Display(Name = "Show the QR code of the receipt in the public receipt page")]
public bool ShowQR { get; set; }
[Display(Name = "Show the payment list in the public receipt page")]
public bool ShowPayments { get; set; }
public Client.Models.InvoiceDataBase.ReceiptOptions ToDTO()
{
return JObject.FromObject(this).ToObject<Client.Models.InvoiceDataBase.ReceiptOptions>();
}
}
public ReceiptOptionsViewModel ReceiptOptions { get; set; } = ReceiptOptionsViewModel.Create(Client.Models.InvoiceDataBase.ReceiptOptions.CreateDefault());
public List<PaymentMethodCriteriaViewModel> PaymentMethodCriteria { get; set; }
}