Payment requests have a receipt-ish style by default. Receipts for each individual invoice of a payment request can be quite confusing as individually they do not prove the pay request was settled.
* 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>
* Do not show remaining amount for topup invoices in expiry message
As [reported by @petzsch](https://chat.btcpayserver.org/btcpayserver/pl/gg1zy8t5h3dq7nme1nom93migo).
* Fix links on result page in Checkout Classic
Closes#4344.
* Better way to exclude Lightning if BIP21 is active and we have both PMs
Unify margins
* Indent all JSON files with two spaces
* Upgrade Vue.js
* Cheat mode improvements
* Show payment details in case of expired invoice
* Add logo size recommendation
* Show clipboard copy hint cursor
* Improve info area and wording
* Update BIP21 wording
* Invoice details adjustments
* Remove form; switch payment methods via AJAX
* UI updates
* Decrease paddings to gain space
* Tighten up padding between logo mark and the store title text
* Add drop-shadow to the containers
* Wording
* Cheating improvements
* Improve footer spacing
* Cheating improvements
* Display addresses
* More improvements
* Expire invoices
* Customize invoice expiry
* Footer improvements
* Remove theme switch
* Remove non-existing sourcemap references
* Move inline JS to checkout.js file
* Plugin compatibility
See Kukks/btcpayserver#8
* Test fix
* Upgrade vue-i18next
* Extract translations into a separate file
* Round QR code borders
* Remove "Pay with Bitcoin" title in BIP21 case
* Add copy hint to payment details
* Cheating: Reduce margins
* Adjust dt color
* Hide addresses for first iteration
* Improve View Details button
* Make info section collapsible
* Revert original en locale file
* Checkout v2 tests
* Result view link fixes
* Fix BIP21 + lazy payment methods case
* More result page link improvements
* minor visual improvements
* Update clipboard code
Remove fallback for old browsers. https://caniuse.com/?search=navigator.clipboard
* Transition copy symbol
* Update info text color
* Invert dark neutral colors
Simplifies the dark theme quite a bit.
* copy adjustments
* updates QR border-radius
* Add option to remove logo
* More checkout v2 test cases
* JS improvements
* Remove leftovers
* Update test
* Fix links
* Update tests
* Update plugins integration
* Remove obsolete url code
* Minor view update
* Update JS to not use arrow functions
* Remove FormId from Checkout Appearance settings
* Add English-only hint and feedback link
* Checkout Appearance: Make options clearer, remove Custom CSS for v2
* Clipboard copy full URL instead of just address/BOLT11
* Upgrade JS libs, add content checks
* Add test for BIP21 setting with zero amount invoice
Co-authored-by: dstrukt <gfxdsign@gmail.com>
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.
* Enable NETAnalyzers for whole project
- remove obsolete analyzers so that the .NET Core SDK NETAnalyzers can be used
- enable NETAnalyzers for all projects so that developers can use them by defining the AnalysisMode on individual projects
This is because if we set AnalysisMode to minimal, recommended or all it would spam with warning.
The idea is to be able to turn them on during development to fix recommended stuff without polluting the build output.
Following commits will implement some of the Code Analysis findings
* Performance hints for using char overloads for single characters (CA1834 and CA1847)
CA1834: Use StringBuilder.Append(char) for single character strings
CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters
Some quick win updates to the payment requests list that unify the display with the invoices list:
- Status is displayed as badge
- Amount is properly formatted
- Expiry date format and ability to switch to relative date
This allows external services to integrate with the payouts system to process payouts. This is also a step to allow plugins to provide payout processors.
* It provides the payment proof through the greenfield payoust api.
* It allows you to set the state of a payout outside of the usual flow:
* When state is awaiting payment, allow setting to In progess or completed
* When state is in progress, allow setting back to awaiting payment
Fix and test for a regression introduced with #4243: As the `PayPaymentRequest` action allows anonymous access, the `CookieAuthorizationHandler` isn;t run and hence the `GetCurrentStore` returns `null`.
This leads to an exception when creating the invoice. Store needs to be fetched seperately - like [before](4bbc7d9662 (diff-bdc264670a171e862d09fdf1a1c9f3ca14b41982a3c4c8e66d4f780cdde9f21dL241)).
Fixes#4246.
`LightningLikePaymentHandler.GetNodeInfo` needed the `throws` argument to handle the cases as previously, otherwise the catch case in `ShowLightningNodeInfo` never occured.
State with this PR: A node can be available, but not have any public addresses. The latter will now be reported when testing the connection and on the public node info page.