* Store Branding: Refactoring and logo as favicon
- Encapsulates store branding properties into their own view model
- Uses the logo as favicon on public pages
* Refactorings
* Updates
* Support the new LN lib
* fix test
* do not cache factories
* try without useless userinfo in lnd
* Remove monero wallet files
* support simpler DI too
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Checkout v2: Play sound when invoice is paid
Closes#5085.
* Refactoring: Use low-level audio API to play the sound
Allows to play the sound regardless of browser permissions.
* Add audio file detection
* Use model state for file upload errors
* Add default sound and customizing option
* Fix mp3 detection
* Add sounds
* Update defaults
* Add nfcread and error sounds
* Improve label wording
* Replace sound
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Make NFC built int
* support checkout v2
* uninstall old plugin
* fix lnurl in unified checkout
* fix tests
* fix tests
* fix old checkout unified qr
* clean up and make nfc submission more sturdy
* support topup invoices for lnurlw
* fix test
* Payment URI fixes
* Fix LNURL exclusion cases
* UI updates
* Adapt test
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Checkout v2: Configure countdown timer
This addresses feedback by @astupidmoose left [here](https://github.com/btcpayserver/btcpayserver/discussions/4308#discussioncomment-4438926): Make the countdown timer configurable with a minutes setting. This way the merchant has full control over when to display the timer. They could even set it to equal the invoice expiry, so that it is shown right from the beginning.
* Rename property and adjust wording
* Remove expiration percentage from Checkout v2
* Editorconfig: Add space_before_self_closing setting
This was a difference between the way dotnet-format and Rider format code. See https://www.jetbrains.com/help/rider/EditorConfig_Index.html
* Editorconfig: Keep 4 spaces indentation for Swagger JSON files
They are all formatted that way, let's keep it like that.
* Apply dotnet-format, mostly white-space related changes
* Make sure custom logo and CSS paths are relative
* match request host and scheme before replacing
* Fix the issue for greenfield as well
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Use better default than coingecko when creating a new store
* Improve recommended exchange UX
* Add btcturk for TRY
* Fix recommendation
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* 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>
* Opt-in for new checkout
* Update wording
* Create invoice view update
* Remove jQuery from checkout testing code
* Checkout v2 basics
* WIP
* WIP 2
* Updates and fixes
* Updates
* Design updates
* More design updates
* Cheating and JS fixes
* Use checkout form id whenever invoices get created
* Improve email form handling
* Cleanups
* Payment method exclusion cases for Lightning and LNURL
TODO: Cases and implementation need to be discussed
* Introduce CheckoutType in API and replace UseNewCheckout in backend
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Add logo upload
* Add brand color definition
* Cleanups
* Add logo to store selector
* Improve brand color handling
* Update color input
* Add logo dimensions hint
* Fixes
* Fix pattern and warning in js logs for color validation
* Fix condition, add test
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
Checks if the input is an output descriptor and explicitely handles that case instead of catching any errors. This allows us to display more detailed information about why an import might fail.
* 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>
* Move files
* Fix potentially missing default payment method
Before, it got removed if any other value was changed besides the default payment method.
* Fix missing store data
* Update BTCPayServer/Plugins/PayButton/PayButtonPlugin.cs
Co-authored-by: Pavlenex <pavle@pavle.org>
* Update pay button warning
Closes#3535.
Co-authored-by: Pavlenex <pavle@pavle.org>
* Add dashboard and chart basics
* More widgets
* Make widgets responsive
* Layout dashboard
* Prepare ExplorerClient
* Switch to Chartist
* Dynamic data for store numbers and recent transactions tiles
* Dynamic data for recent invoices tile
* Improvements
* Plug NBXPlorer DB
* Properly filter by code
* Reorder cheat mode button
* AJAX update for graph data
* Fix create invoice button
* Retry connection on transient issues
* App Top Items stats
* Design updates
* App Sales stats
* Add points for weekly histogram, set last point to current balance
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>