Moves the `ViewsRazor` extension into Abstractions, so that it can be used by plugins.
Separated out of #2701, prerequisite for the LNbank plugin integration.
* Improved the names of the Invoice webhooks to reflect the event type in code + better descriptions
* Gave proper name and better description.
* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.webhooks.json
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* wip
* Local GreenField Client for Plugins
* support notification handlers being missing
* Initial support for scoped btcpay client
* test out scoped local client
* wip
* small fix
* Throw exception if using local greenfield client and it has not been implemented yet
* adapt based on new changes in BTCPay
* update
* fix tests
* Allow Local client to bypass authorization handler
* Add Misc endpoints to Local API Client
* Add new endpoints
* Apply code review changes
* Auto-detect language on payment page
based on the requst Accept-Language header, which is the language you configured in your browser/OS and this 99.99% accurate
* Update BTCPayServer/Services/LanguageService.cs
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* Update BTCPayServer/Services/LanguageService.cs
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Update BTCPayServer/Services/LanguageService.cs
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Update BTCPayServer/Services/LanguageService.cs
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Added loop for all locales in Accept-Language sorted by weight + check if know this language
* New public method so a unit test can be created for it
* Unit test for language detection
* Fix language service when not in browser context
* fall back to default lang
* Auto-detect setting + ?lang=auto support
* Added invoice param "?lang=auto" info to docs
* Using null-coalescing assignment operator
* Reduce complexity and http dependency in language service
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* re-ordering
* adds section header
* updates label on "products"
* changes button to primary
* moves description
* updates partial
* re-ordering + section headers
* more section heads and ordering
* redorders
* Toggle custom amount and tips settings
* Use display name for point of sale app type
* Use switches for enabling options
* Add space before required indicator
* Set and consolidate view model display names
* Move redirects and custom CSS to additional options
* Revert to checkbox for discounts
* adds padding
* removes bs-parent for multiple open elements on accordion
* adds helper text to discount checkbox
* updates "default view" label text
* wording cleanup
* more wording adjustments
* updates
* Add display names for app types
* Extract template editor inline styles
* updates helper text
* Display names for app types
* Typo fix
* Move template back to editor
* Fix selenium test
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Refactor and decouple Payout logic
So that we can support lightning + external payout payments
Fixes & refactoring
almost there
final
Remove uneeded payment method checks
Refactor payouts to handle custom payment method specific actions
External onchain payments to approved payouts will now require "confirmation" from the merchant that it was sent by them.
add pill tabs for payout status
* Improve some UX around feature
* add test and some fixes
* Only listen to address tracked source and determine based on wallet get tx call from nbx
* Simplify isInternal for Payout detection
* fix test
* Fix Noreferrer test
* Make EnsureNewLightningInvoiceOnPartialPayment more resilient
* Make notifications section test more resilient in CanUsePullPaymentsViaUI
* Save paymentRequestId in Metadata when creating invoice
* Added Payment Request ID + link on invoice detail page
* Added paymentRequestId to the webhook payload
* Removed PaymentRequestId from webhook payload (rolled back previous change)
* Using strongly typed InvoiceMetadata
* Added OrderUrl metadata field to invoice + link
* Added Metadata.OrderUrl to docs
* Made orderUrl visible when no orderId is present
* Unit test to check for (possibly) external links
* Add rel="noreferrer noopener" to all external links so unit test passes
* Update BTCPayServer.Tests/UnitTest1.cs
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Update BTCPayServer.Tests/UnitTest1.cs
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Fixed bad merge from master
* PascalCasing
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Should be singular. Rewording to focus on a single result.
* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.stores-wallet.on-chain.json
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.stores-wallet.on-chain.json
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* removes hr, adds notification settings link
* adds if else to show "no notifications" or table view
* adds icon to settings button
* Fix link to notification settings
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Better API key page
Now we can see the permission code + Fixed a margin-bottom when selecting a specific store
* Improve responsiveness of API key permissions
* Improve webhook editing UX
Jumps to edited item after submit
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* removes back button
* removes wallet back on setupwallet page
* removes navbar section completely
* remove back button on modify wallet page
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Added "Checkout" button to invoice detail page
* Added missing icon
All other pages have a "plus" icon on the primary button, except this page
* Button icons are always in front, not after like here was
* Add payjoin option to hot wallet setup
Enables payjoin by default when creating a hot wallet and offers the user an opt-out.
Test fix
* Display PayJoin option only if it is available
* Test fixes
* Update hot wallet checks
* Test fix after rebase
* Use toggle buttons for enabling options
* Better webhook UI. Full URLs are visible.
* Using Bootstrap CSS class instead of a new class
* Created the generic class .sm:text-nowrap
* Renamed class
* Changed "sm" to "md"
* Signing Context cleanup
Removes extra NBXSeedAvailable property in SigningContext, which got introduced in #2559. It is not needed since each view model involved already has it.
* Fix button in link
* Mark Payouts as Paid
This PR allows users to mark payouts as paid manually through the UI and through the API. It also sets up the payout proof system to be able store a manual proof that will in a later PR allow you to specify a proof of payment (link or text)
* add docs, test and greenfield client
* remove extra docs stuff
* Update BTCPayServer.Tests/GreenfieldAPITests.cs
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* clean up pull payment/payouts fetch code
* Ensure payoutis are retrieved with pull payment
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* Set lightning invoice fallback in QR code as uppercase
On the lightning payment view the invoice is encoded as uppercase inside the QR code; however this is not true for the on-chain payment QR code if the invoice is set as fallback option.
This commit sets the fallback invoice as uppercase inside the QR code.
* Adds test case for uppercase fallback lightning invoice
* Apply suggestions from rockstar's review
Co-authored-by: Kukks <evilkukka@gmail.com>