mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-22 06:21:44 +01:00
* wip * Cleanups * UI updates * Update UIFormsController.cs * Make predefined forms usable statically * Add support for pos app + forms * pay request form rough support * invoice form through receipt page * Display form name in inherit from store setting * Do not request additional forms on invoice from pay request * fix up code * move checkoutform id in checkout appearance outside of checkotu v2 toggle * general fixes for form system * fix pav bug * UI updates * Fix warnings in Form builder (#4331) * Fix build warnings about string? Enable nullable on UIFormsController.cs Fixes CS8632 The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. * Clean up lack of space in injected services in Submit() of UIFormsController.cs * Remove unused variables (CS0219) and assignment of nullable value to nullable type (CS8600) * Cleanup double semicolons while we're at tit * Fix: If reverse proxy wasn't well configured, and error message should have been displayed (#4322) * fix monero issue * Server Settings: Update Policies page (#4326) Handles the multiple submit buttons on that page and closes #4319. Contains some UI unifications with other pages and also shows the block explorers without needing to toggle the section via JS. * Change confirmed to settled. (#4328) * POS: Fix null pointer Introduced in #4307, the referenced object needs to be `itemChoice` instead of `choice`. * Add documentation link to plugins (#4329) * Add documentation link to plugins * Minor UI updates Co-authored-by: Dennis Reimann <mail@dennisreimann.de> * Fix flaky test (#4330) * Fix flaky test * Update BTCPayServer/PayoutProcessors/BaseAutomatedPayoutProcessor.cs Co-authored-by: d11n <mail@dennisreimann.de> Co-authored-by: d11n <mail@dennisreimann.de> * Remove invoice and store level form * add form test * fix migration for forms * fix * make pay request form submission redirect to invoice * Refactor FormQuery to only be able to query single store and single form * Put the Authorize at controller level on UIForms * Fix warnings * Fix ef request * Fix query to forms, ensure no permission bypass * Fix modify * Remove storeId from step form * Remove useless storeId parameter * Hide custom form feature in UI * Minor cleanups * Remove custom form options from select for now * More minor syntax cleanups * Update test * Add index - needs migration * Refactoring: Use PostRedirect instead of TempData for data transfer * Remove untested and unfinished code * formResponse should be a JObject, not a string * Fix case for Form type Co-authored-by: Dennis Reimann <mail@dennisreimann.de> Co-authored-by: JesterHodl <103882255+jesterhodl@users.noreply.github.com> Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com> Co-authored-by: Andreas Tasch <andy.tasch@gmail.com>
108 lines
3.8 KiB
C#
108 lines
3.8 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using BTCPayServer.Services.Apps;
|
|
using BTCPayServer.Services.Stores;
|
|
using BTCPayServer.Validation;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
|
|
namespace BTCPayServer.Plugins.PointOfSale.Models
|
|
{
|
|
public class UpdatePointOfSaleViewModel
|
|
{
|
|
public string StoreId { get; set; }
|
|
public string StoreName { get; set; }
|
|
public string StoreDefaultCurrency { get; set; }
|
|
|
|
[Required]
|
|
[MaxLength(50)]
|
|
[MinLength(1)]
|
|
[Display(Name = "App Name")]
|
|
public string AppName { get; set; }
|
|
|
|
[Required]
|
|
[MaxLength(30)]
|
|
[Display(Name = "Display Title")]
|
|
public string Title { get; set; }
|
|
[MaxLength(5)]
|
|
public string Currency { get; set; }
|
|
public string Template { get; set; }
|
|
|
|
[Display(Name = "Point of Sale Style")]
|
|
public PosViewType DefaultView { get; set; }
|
|
[Display(Name = "User can input custom amount")]
|
|
public bool ShowCustomAmount { get; set; }
|
|
[Display(Name = "User can input discount in %")]
|
|
public bool ShowDiscount { get; set; }
|
|
[Display(Name = "Enable tips")]
|
|
public bool EnableTips { get; set; }
|
|
public string Example1 { get; internal set; }
|
|
public string Example2 { get; internal set; }
|
|
public string ExampleCallback { get; internal set; }
|
|
public string InvoiceUrl { get; internal set; }
|
|
|
|
[Display(Name = "Callback Notification URL")]
|
|
[Uri]
|
|
public string NotificationUrl { get; set; }
|
|
[Display(Name = "Redirect URL")]
|
|
[Uri]
|
|
public string RedirectUrl { get; set; }
|
|
|
|
[Required]
|
|
[MaxLength(30)]
|
|
[Display(Name = "Text to display on each button for items with a specific price")]
|
|
public string ButtonText { get; set; }
|
|
[Required]
|
|
[MaxLength(30)]
|
|
[Display(Name = "Text to display on buttons allowing the user to enter a custom amount")]
|
|
public string CustomButtonText { get; set; }
|
|
[Required]
|
|
[MaxLength(30)]
|
|
[Display(Name = "Text to display in the tip input")]
|
|
public string CustomTipText { get; set; }
|
|
[MaxLength(30)]
|
|
[Display(Name = "Tip percentage amounts (comma separated)")]
|
|
public string CustomTipPercentages { get; set; }
|
|
|
|
[MaxLength(500)]
|
|
[Display(Name = "Custom CSS URL")]
|
|
public string CustomCSSLink { get; set; }
|
|
|
|
public string Id { get; set; }
|
|
|
|
[Display(Name = "Redirect invoice to redirect url automatically after paid")]
|
|
public string RedirectAutomatically { get; set; } = string.Empty;
|
|
|
|
public string AppId { get; set; }
|
|
public string SearchTerm { get; set; }
|
|
|
|
public SelectList RedirectAutomaticallySelectList =>
|
|
new SelectList(new List<SelectListItem>()
|
|
{
|
|
new SelectListItem()
|
|
{
|
|
Text = "Yes",
|
|
Value = "true"
|
|
},
|
|
new SelectListItem()
|
|
{
|
|
Text = "No",
|
|
Value = "false"
|
|
},
|
|
new SelectListItem()
|
|
{
|
|
Text = "Use Store Settings",
|
|
Value = ""
|
|
}
|
|
}, nameof(SelectListItem.Value), nameof(SelectListItem.Text), RedirectAutomatically);
|
|
|
|
[Display(Name = "Custom CSS Code")]
|
|
public string EmbeddedCSS { get; set; }
|
|
public string Description { get; set; }
|
|
|
|
[Display(Name = "Require refund email on checkout")]
|
|
public RequiresRefundEmail RequiresRefundEmail { get; set; } = RequiresRefundEmail.InheritFromStore;
|
|
|
|
[Display(Name = "Request customer data on checkout")]
|
|
public string FormId { get; set; } = null;
|
|
}
|
|
}
|