* Add grouping by payment methods
* Add filtering by pull payment state
* Hide "Archive" button for archived pull payments
* Don't show payment methods bar if there is only one
* Add "All" payment method option
* Remove filtering by payment method
* Update state queries to not run on the client
* Add filtering by future pull payments
* Fix toggle alignment
* Crowdfund: Change defaults (disable sounds and Disqus)
* Crowdfund: Move callback notification URL into additional options
Same as with the Point Of Sale options.
* Crowdfund: Make enable toggle more prominent
* Crowdfund: Improve start and end date form group display
* Template Editor: Improve button spacing
* adjusts currency + target
* removes "other actions"
* adjusts text
* adjusts status message bottom margin
Co-authored-by: dstrukt <gfxdsign@gmail.com>
* Store Selector: Create first store button
* Add setup guide to homepage
* Policy update for stores list
* Fix test
* Initial create store button as primary
* Add notifications list to homepage
* Remove back to list from store create view
* Adapt content padding on desktop
* Add store home view with setup guide
* Fix active page nav highlighting
* Test fix
* Remove What's Next section
* Rename Store Home to Dashboard
* Fix Lightning setup link
* Add tests for store setup guide
* Update BTCPayServer/Views/Home/Home.cshtml
Co-authored-by: Pavlenex <pavle@pavle.org>
* Update BTCPayServer/Views/Stores/Dashboard.cshtml
Co-authored-by: Pavlenex <pavle@pavle.org>
* Remove setup guide on global homepage
* Remove Shopify setup link from nav
* Fix content container max-width on desktop
Co-authored-by: Pavlenex <pavle@pavle.org>
* updates create invoice
* updates invoice list
* formats
* updates row
* updates
* Improve invoice list markup and fix mass action form
* Responsive invoice table
* Improve spacing on invoice detail view
* Improve archive message
* Responsive status change partial
* Add test case for mass archiving
* Add mass unarchiving
Closes#3270.
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Update layout structure and header
* Implement store selector
* Simplify homepage
* Update layout
* Use dropdown for store selector
* Hide global nav in store context
* Horizontal section nav
* Remove outer section and container from content views
* Update nav
* Set store context for invoice and payment request lists
* Test fixes
* Persist menu collapse state on client-side
* MainNav as view component
* Update app routes to incorporate store context
* Test fixes
* Display ticker for altcoins build only
* Plugins nav
* Incorporate category for active page as well
* Update invoice icon
* Add apps list to nav
* Add store context to app type controllers
* Incorporate id for active page as well
* Test fixes
* AppsController cleanup
* Nav: Display only apps for the current store
* Remove leftover from merge
* Nav styles optimization
* Left-align content container
* Increase sidebar padding on desktop
* Use min-width for store selector menu
* Store settings nav update
* Update app and payment request routes
* Test fixes
* Refactor MainNav component to use StoresController
* Set store context for invoice actions
* Cleanups
* Remove CurrentStore checks
The response will be "Access denied" in case the CookieAuthorizationHandler cannot resolve the store.
* Remove unnecessary store context setters
* Test fix
* Remove Confirmed state in UI
Closes#1789.
* Add infobox & improve refund tooltip
* Update BTCPayServer/Views/Invoice/ListInvoices.cshtml
Add @dennisreimann suggestion
Co-authored-by: d11n <mail@dennisreimann.de>
* Add "don't show again" button
Adds a "Don't Show Again" button to the infobox. Also a bugfix that was preventing the new status from showing in the invoice details page.
* Add User blob and move invoice status notice to it
Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: Kukks <evilkukka@gmail.com>
* adds checkbox to pull payment
* adds label improvement
* removes "back to list"
* Remove superfluous style block
Seems to be a copy and paste remainder
* Make custom CSS additional options
* Fix input name and test
* Improve display for case with only one payment method
* Fix test
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Wallet settings merge
Merges both wallet settings screen from the wallets and the store section. Closes#2626.
* Improve wallet transactions view
* Remove unnecessary row/col construct
* Edit and view app name in app settings
Currently the "name" property is not exposed at all in an app's settings/update page, which can result in confusion about which app is being updated, and also a general confusion between the `Title` property and the `Name` property.
This PR gives visibility to the app name in settings, and allows updating of the same.
I also changed the display label for `title` and `name` to make them more distinct and specific.
* Fix tests
* Update AltcoinTests.cs
* Update SeleniumTests.cs
* fix tests
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
* LNURL Payment Method Support
* Merge recent Lightning controller related changes
* Fix build
* Create separate payment settings section for stores
* Improve LNURL configuration
* Prevent duplicate array entries when merging Swagger JSON
* Fix CanSetPaymentMethodLimitsLightning
* Fix CanUsePayjoinViaUI
* Adapt test for new cancel bolt invoice feature
* rebase fixes
* Fixes after rebase
* Test fixes
* Do not turn LNURL on by default, Off-Chain payment criteria should affects both BOLT11 and LNURL, Payment criteria of unset payment method shouldn't be shown
* Send better error if payment method not found
* Revert "Prevent duplicate array entries when merging Swagger JSON"
This reverts commit 5783db9eda.
* Fix LNUrl doc
* Fix some warnings
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
Currently invoice email notifications are only sent when the invoice is created via the API. This commit adds an option to set an email address for notifications when an invoice is created from the Web UI.
* Allow User to delete own account
* Add User delete e2e test
* fix test
* Apply suggestions from code review
Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: d11n <mail@dennisreimann.de>
* Patch bootstrap-vue modal close button
For Bootstrap v5 compatibility, which bootstrap-vue does not have currently.
* Crowdfund: Use common global layout head (and themes)
* Crowdfund: Display disabled alert also for simple variant
* Crowdfund: Unify non-JS/simple and JS-enabled view
* Improve fireworks animation
* Improve layout
Inspired by the Bitcoin Smiles compaign, see #2783
* Cleanup and remove views
* Fix typo
* Fix test
* Support taproot for HotWallet
* Support taproot for hardware wallets
* Fix NBX version
* Undo formatting
* Do not show Taproot when not supported
* Create taproot wallet from xpub
* Bug Fix
* Enhanced Files action by modifying it to accept a list of SelectedFileIds
* Added checks to verify all files passed to the files action exist, Updated tests
* Enhanced Files action to accept an array of fileIds
* Removed redundant fileId list
Moves the `ViewsRazor` extension into Abstractions, so that it can be used by plugins.
Separated out of #2701, prerequisite for the LNbank plugin integration.
* 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>
* 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
* 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
* 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>
* FIDO2/WebAuthN Support
This adds initial support for WebAuthN/FIDO2 as another MFA mode. U2F is still intact and runs alongside it for now. Once this is merged, I will start work on migrating U2F support to happen over the FIDO2 protocol instead.
* Refactor and future proof system (prep work of seamless u2f migration)
* attempt js fix for mobile devices
* Apply suggestions from code review
Co-authored-by: d11n <mail@dennisreimann.de>
* fix fido name saving
* do not spam logs and hide loader when failed
* PR Changes
* Apply suggestions from code review
Co-authored-by: d11n <mail@dennisreimann.de>
* attempt fido2 bump
* add name if not named for credentials
Co-authored-by: d11n <mail@dennisreimann.de>
* Separate coinswitch as a system plugin
* Decouple Coinswitch from Checkout UI
* remove dummy csproj
* Remove CoinSwitchTests.cs per @NicolasDorier feedback
Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
* Refactor and decouple Payout logic
So that we can support lightning and more complex flows like allowing external payments to payouts.
* fix dropdown align
* switch to simpler buttons
* rebase fixes
add some comments
* rebase fixes
add some comments
* simplify enum caveman logic
* reduce code duplication and db round trips
* Fix pull payment date format
* fix issue with payouts to send page not working correctly
* try fix some style issue
* fix bip21parse
* Improve and unify page headers
* Altcoin test fixes
* Update BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Update BTCPayServer/Views/Apps/UpdateCrowdfund.cshtml
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Fix missing store name in pairing view
* Fix CanUsePairing test
* Bump header navigation font size
* Use partial tag instead of Html.PartialAsync in views
As suggested by @nicolasdorier. These are equivalent, see details [here](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-3.1#partial-tag-helper).
* Fix docs link
As in #2432.
* Update BTCPayServer/Views/Wallets/SignWithSeed.cshtml
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* Update BTCPayServer/Views/Wallets/WalletSendVault.cshtml
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* Update BTCPayServer/Views/Wallets/WalletTransactions.cshtml
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
* Decouple Shopify from Store
* Decouple shopify from store blob
* Update BTCPayServer.Tests.csproj
* Make sure shopify obj is set
* make shopify a system plugin
* Make Invoice Create Faster And Fix Gap Limit Issue
This make address reserve only when user "activate" paymet method in ui. optional setting in store checkout ui.
* Fix swagger documentation around Lazy payment methods
* fix changed code signature
* Add missing GreenField API for activate feature
* Fix checkout experience styling for activate feature
* Fix issue with Checkout activate button
* Make lightning also work with activation
* Make sure PreparePaymentModel is still called on payment handlers even when unactivated
* Make payment link return empty if not activated
* Add activate payment method method to client and add test
* remove debugger
* add e2e test
* Rearranging lazy payments position in UI to be near dependent Unified QR code
* fix rebase conflicts
* Make lazy payment method mode activate on UI load.
Co-authored-by: Kukks <evilkukka@gmail.com>
Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
Co-authored-by: Andrew Camilleri <kukks@btcpayserver.org>
* Refactor how we handle and validate LN ConnectionStrings
* Migrate existing connection string to Internal Node if they are the same. Cleanup some obsolete fields
* Fix typos, remove duplicated method
* Add a InternalNodeRef to LightningSupportedPaymentMethod
* Prepare existing layouts and views
* Add icon view component and sprite svg
* Add wallet setup basics
* Add import method view basics
* Use external sprite file instead of inline svg
* Refactor hardware wallet setup flow
* Manually enter an xpub
* Prepare other views
* Update views and models
* Finalize wallet setup flow
* Updat tests, part 1
* Update tests, part 2
* Vaul: Fix missing retry button
* Add better Scan QR subtext
Still tbd.
* Make wallet account an advanced setting
* Prevent empty xpub
* Use textarea for seed input
* Remove redundant error message for missing file upload
* Confirm store updates after generating a new wallet
* Update wording
* Modify existing wallets
* Fix proposed method name
* Suggest using ColdCard Electrum export option only
Advise the user to use the electrum export of the coldcard instead of saying either electrum or wasabi export file … the electurm one contains more info, e.g. the wasabi one doesn't include the account key path.
* More concise WalletSetupMethod setting
* Test fix
* Update wallet removal code
* Fix back navigation quirk in change wallet case
* Fix behaviour on wallet enable/disable
* Fix initial wallet setup
* Improve modify view and messages
* Test fixes
* Seed import fix
Uses the correct form url for confirming addresses
* Quickfixes from design meeting
* Add enable toggle switch on modify page
* Confirm wallet removal
* Update setup view
* Update import view
* Icon finetuning
* Improve import options page
* Refactor QR code scanner
Allow for usage with and without modal
* Update copy and instructions on import pages
* Split generate options: Hot wallet and watch-only
* Implement hot wallet options correctly
* Minor test changes
* Navbar improvements
* Fix tables
* Fix badge color
* Routing related updates
Thanks @kukks for the suggestions!
* Wording updates
Thanks @kukks for the suggestions!
* Extend address types table for xpub import
Thanks @kukks for the suggestions!
* Rename controller
* Unify precondition checks
* Improve removal warning for hot wallets
* Add tooltip on why seed import is not recommended
* Add tooltip icon
* Add Specter import info
* UI: Hide pagination and page size when not necessary
* UI: Use pager component for notifications list
* UI: Use pager component for wallet transactions list
* UI: Improve pager component
* Fix from code review
This allows plugins to create custom dbcontexts, which would be namespaced in the scheme with a prefix. Migrations are supported too and the table would be prefixed too
* Improve payment print styles
Allows for export as invoice PDF to be used in accounting. Closes#1957.
* Change Transaction ID wording
* Minor payment request UI improvements
* Add amount paid, rate and colorize payment status
* Display rate at invoice level
* Inherit text color in print
* Show full date in print view
* Rearrange payment details
* Add received date for payments
* Fix amount calculation
* Fix validInvoice assignment
* Add PSBT QR code scan/show
This PR introduces support to show and read PSBTs in BC-UR format via animated QR codes. This allows you to use BTCPay with HW devices such as Cobo Vault and Blue wallet to sign transactions without ever exposing the keys outside of that device.
Spec: https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md
I've also bumped the QR code library we sue as it had a bug with large datasets.
* Reuse same code for all and allow wallet import via QR code scan
* remove unecessary js vendor files
* Allow export wallet from settings via QR
* formatting
* bundle
* fix wallet receive bundle
* BTCPay Extensions Part 2
This PR cleans up the extension system a bit in that:
* It renames the test extension to a more uniform name
* Allows yo uto have system extensions, which are extensions but bundled by default with the release (and cannot be removed)
* Adds a tool to help you generate an extension package from a csproj
* Refactors the UI extension points to a view component
* Moves some more interfaces to the Abstractions csproj
* Rename to plugins
I upgrade lightning max/bitcoin min to support better control in store. Now can have setting only enable specific payment method only if value high/low I think make code simple more too and backward compatible
* Rename user param to userId in API key redirect
This way it is clearer what to expect and it also make the parameteer easier to consume.
* Post redirect: Allow form url and prettify page
- Form URL as alternative to controller/action for external URLs
- Making it look nice and add explanation for non-JS case
* APIKeys: Minor view updates
fix
* APIKeys: Use POST redirect for confirmation
fix
* UI: Minor update to confirm view
Tidies it up and adapts to the newly added ConfirmAPIKeys view.
* APIKeys: Update delete view
Structures the information in title and description better.
* APIKeys: Distinguish authorize and confirm (reuse)
* Upgrade ChromeDriver
* Test fixes
* Clean up PostRedirect view
By adding missing forgery token
* Re-add tests for callback post values
* Rename key param to apiKey in API key redirect
* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.authorization.json
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Use DEBUG conditional for postredirect-callback-test route
* Remove unnecessary ChromeDriver references
* Add debug flag
* Remove debug flags
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* This refactors the email sending so that all the logic related to users and emails are now contained in one location.
* The Reset password screen has been updated from its ugly plain self to use the same layout as the login.
* An admin can now create a new account without specifying a password. A link is generated that can be given to the intended user to configure the password. If emails are configured, it also sends an email
* An admin can now create accounts that still require the user to verify their if the setting is enabled from the server settings. A link is generated that can be given to the intended user to configure the password. If emails are configured, it also sends an email.
* The above features can be used in conjunction: An email will have to verify their email through a link. Once verified, the user is redirected to setting the password.
* When an email has been verified OR a password has been set, users are now redirected to the login page with the email filled in and a success status message shown instead of a dedicated thank you page.
* Allow entry in wallet send via fiat
closes#1890https://i.imgur.com/RUrSqD7.gif
* fix min amount in wallet send
* Add divisibility when setting amount from fiat
* Improve invoices list view
* Pager: Only show options that make sense
* ListInvoices formatting
* Add separator for dropdown toggle split
* Minor ListInvoices improvement
* Improve payment requests list view
* Distinguish empty and filtered lists
* Properly align invoice details
* Add payment symbols to invoices list
* Improve payment symbols in invoices list
* Always display search on list pages
* Inline variable
* Move display logic to pager
e5040ede55 (commitcomment-41698272)
* Support wasabi file format input
This adds support to importing the wasabi file format which seems to be used more for imports by Wasabi,ColdCard,BlueWallet & Cobo Vault (and way better than electrum anyway)
* fixes
* add test